Het inkopen van teams voor softwareontwikkeling
door Strict op wo 10 apr 2019
Veel inhuurcontracten voor softwareontwikkeling zijn niet flexibel genoeg en sluiten daardoor niet volledig aan bij de ontwikkelbehoeftes die moderne organisaties hebben. Hoogste tijd om op een nieuwe manier tegen inhuurcontracten voor softwareontwikkeling aan te kijken en te zien waar en hoe flexibilisering mogelijk is.
De uitdaging bij inhuur
Om software te ontwikkelen worden vaak meerdere specialisten ingehuurd. Dit kunnen zelfstandigen zijn of medewerkers van verschillende bedrijven, of een mix. Het is dan aan de opdrachtgever om van deze groep mensen een team te smeden. Tijdens de inhuur fase moet de opdrachtgever goed letten op de capabilities van de individuele persoon. Hoe meer personen, hoe lastiger de puzzel is om alle benodigde capabilities goed af te dekken. Tijdens de softwareontwikkeling fase heeft opdrachtgever vervolgens de uitdaging om de groepsdynamiek te managen en de capabilities op peil te houden. Inhuren van individuele personen is een mooie oplossing die voor een tijdje goed kan werken, want er komt relatief snel capaciteit beschikbaar, alsook de benodigde kennis voor het produceren van functionaliteit. Echter, naarmate de softwareontwikkeling complexer wordt, langer gaat duren of dat behoeftes aan de functionaliteit wijzigen, is meer flexibiliteit gewenst. In een inhuur situatie kan alleen worden overgegaan tot vervanging van personen. Dat is vaak lastig omdat specifieke capabilities schaars zijn en integratie in het team de nodige tijd vraagt.
Naar een flexibel team contract
Een meer passende oplossing is het inhuren van complete teams bij één leverancier. De verantwoordelijkheid voor de performance en ontwikkeling van het team komt in die situatie bij de leverancier te liggen. En als de wereld om het team verandert, bijvoorbeeld als de vraag verandert, dan verandert het team mee om aansluiting te houden. De dienstverlening die nodig is om teams in te huren, vraagt een andere soort contract. Dat contract moet voorzien in mogelijkheden om teams te laten groeien (of krimpen) en teams te ontwikkelen. Hoe meer een contract gericht is op de inzet van een statisch team (een team met vaste rollen en bezetting), hoe lastiger het is om flexibel te zijn en hoe lastiger het is om in te spelen op veranderende omstandigheden. De inhuur van een statisch team lijkt sterk op de inhuur van meerdere personen tegelijkertijd. Het doel is echter om flexibiliteit te verkrijgen en dat vraagt dus om flexibele team contracten. Flexibele team contracten scheppen de mogelijkheid om beheerst aanpassingen in het team door te kunnen voeren.
Denk in teamgerichte diensten
Door te denken in diensten die zich richten op teams in plaats van op de individu, is het mogelijk om softwareontwikkeling voorspelbaar en flexibel te maken. De teamgerichte dienst kan geformuleerd worden in termen van de kwaliteit van een team. Kwaliteit wordt enerzijds bepaald door de mate waarin een team op elkaar is ingespeeld en anderzijds door de senioriteit van dat team. Uiteraard gaat het ook om de kennis van dat team met de software(ontwikkel)omgeving van de opdrachtgever, daar is de dienstverlener op geselecteerd. Waar de dienstverlener ook op is geselecteerd is hoe het team wordt gemanaged, wat de mogelijkheden van het team zijn en hoe het team wordt begeleid in de ontwikkeling.
Maak een teamgerichte ‘menukaart’
Een softwareontwikkelteam (dat praktisch uit 5 tot 9 teamleden bestaat) kent een historische samenwerktijd en een gemiddeld ervaringsniveau. De teamgerichte menukaart is gevuld met maandtarieven voor de inzet van een compleet team in een gewenste combinatie van historische samenwerktijd en gemiddeld ervaringsniveau. Van een team dat uit gemiddeld junioren bestaat is de verwachting dat het maandtarief lager ligt dan van een team dat uit gemiddeld senioren bestaat. Een team dat nog kort op elkaar is ingespeeld kent een lager maandtarief dan een team dat al een aantal jaren samenwerkt. Overigens zijn niet alle combinaties reëel. Wellicht is team dat nog nooit heeft samengewerkt en uit gemiddeld junioren bestaat niet gewenst vanuit ervaringsoptiek. Een team dat meer dan 5 jaar heeft samengewerkt en uit gemiddeld senioren bestaat kan erg kostbaar zijn. Als duidelijk is welke functionaliteit gewenst is, dan is vaak ook te bepalen welk budget daarmee gemoeid is. Door een menukaart te hanteren, kan een passende teamconfiguratie worden gekozen. In onderstaande menukaart is voorgaande teamgerichte zienswijze op hoofdlijnen weergegeven. Uiteraard kan de menukaart naar behoefte specifieker worden gemaakt.
Samenwerktijd |
Ervaringsniveau | ||
Gemiddeld Junior | Gemiddeld Medior | Gemiddeld Senior | |
0 – 1 jaar | |||
1 – 3 jaar | |||
3 – 5 jaar | |||
> 5 jaar |
Bepaal welke flexibiliteit nodig is
Inkoop is er vaak op gericht om het beste aanbod te verkrijgen voor op de markt verkrijgbare middelen. Inkoop lijkt complex wanneer dynamiek aan de orde is. Zowel capaciteit als functionaliteit kunnen namelijk sterk wijzigen gedurende de looptijd van een contract. Nu reeds een uitspraak kunnen doen over toekomstige behoefte aan capaciteit en functionaliteit is lastig. Want, wie heeft een glazen bol op tafel staan die zicht geeft op de toekomst? Contracten bevatten bindende afspraken en zijn bepaald gemaakt. Zowel het voorwerp van de inkoop alsook de omvang van de inkoop worden in een contract begrensd. Om te voorkomen dat dagelijks nieuwe contracten moeten worden gesloten, worden raamovereenkomsten toegepast.
Stel een raamovereenkomst op
Voor het inkopen van teamgerichte diensten is een raamovereenkomst een passende contractvorm. Raamovereenkomsten voorzien in een contractueel kader, waarbij enige afwijking ten opzichte van het voorwerp alsook de omvang wordt getolereerd. Natuurlijk zijn hier grenzen aan. Ten eerste, de aard van de raamovereenkomst mag niet worden gewijzigd. Ten tweede, de omvang kent ook zijn (financiële) bovengrens. En, ten derde, het werkingsgebied van de raamovereenkomst is beschreven, meestal in termen wie de opdrachtgevers kunnen zijn. Middels een raamovereenkomst kan het ‘recht tot koop’ worden ingekocht. Het sluiten van een nadere overeenkomst, onder verwijzing naar de raamovereenkomst, oefent dit recht uit. De frequentie waarmee een raamovereenkomst wordt ‘ingekocht’ wordt verlaagd tot elke vier jaren. Een langere looptijd is mogelijk, mits deugdelijk gemotiveerd, een kortere looptijd ook, maar in deze flexibele context minder wenselijk.
Sluit naar behoefte nadere overeenkomsten
Het afnemen van een team kan dan worden beschouwd als het sluiten van een nadere overeenkomst onder de raamovereenkomst. Door in de raamovereenkomst de mogelijkheid op te nemen om de parameters van de dienstverlening naar behoefte aan te kunnen passen, alsmede de mogelijkheid om te up- en downgraden, wordt in de benodigde flexibiliteit voorzien. Het is dan aan zowel de opdrachtgever als aan de dienstverlener om de gezamenlijk de dienstdefinitie op peil te houden en indien nodig aan te passen. De dienstverlener kan zich hierdoor beter focussen op de kwaliteit van het team, de bemensing, opleiding en tooling, zonder dat de opdrachtgever daar inhoudelijk mee bezig hoeft te zijn.
Verricht gezamenlijk capacity- en capabilitymanagement
Gezamenlijk bepalen opdrachtgever en dienstverlener of het gewenst is om een additioneel team in te zetten, of een teaminzet te beëindigen. Het uitgangspunt bij de inzet van teams is namelijk dat inzet in beginsel fulltime is en voor een lange periode. Deeltijdinzet is niet gewenst. Een team kan moeilijk weer bij elkaar worden gebracht nadat de teaminzet is beëindigd. Een ‘stoplicht relatie’ met het team dient voorkomen te worden. Capacitymangement – op teamniveau, niet op individueel niveau – blijft dus nodig. Naast capacitymanagement is capabilitymanagement aan de orde. De ontwikkeling van het team om bij te blijven bij de context van de opdrachtgever zal een regelmatig terugkerend agendapunt in het overleg tussen opdrachtgever en dienstverlener moeten zijn. Het kost namelijk tijd om een team te ontwikkelen. Een teamgericht ontwikkelplan is gewenst en wordt opgesteld door de dienstverlener. Een langere contractduur bevordert de ontwikkeling van het team, omdat investeringen meer tijd krijgen om te renderen.
Maak op termijn de contracten dunner
Door te denken (en handelen) in diensten, worden de verantwoordelijkheid voor de ‘wat’-vraag en ‘hoe’-vraag van elkaar gescheiden. Samenwerking tussen opdrachtgever en dienstverlener wordt bevorderd. Wellicht is het dan zelfs mogelijk om een toekomstige raamovereenkomst te vereenvoudigen, omdat een dergelijke samenwerking leidt tot een toename in vertrouwen. En een toename in vertrouwen leidt tot dunnere contracten en nog meer flexibiliteit.
- Technologie (134)
- Nieuws (70)
- 5G (67)
- Continuïteit (64)
- Security & Privacy (57)
- Agility (35)
- Podcast (34)
- Wendbaarheid (31)
- Klantcase (18)
- Webinar (18)
- Blog (16)
- Innovatie (13)
- Mission Critical (13)
- Healthcare (12)
- Overheid (12)
- AI (11)
- Cloud (9)
- Medewerker interview (8)
- Smart City (7)
- Video (7)
- OOV (5)
- Vervoer (5)
- Projectmanagement (3)
- Duurzaamheid (2)
- december 2024 (4)
- november 2024 (9)
- oktober 2024 (9)
- september 2024 (10)
- augustus 2024 (6)
- juli 2024 (9)
- juni 2024 (6)
- mei 2024 (3)
- april 2024 (9)
- maart 2024 (11)
- februari 2024 (4)
- december 2023 (2)
- november 2023 (4)
- oktober 2023 (3)
- september 2023 (3)
- juli 2023 (4)
- juni 2023 (3)
- mei 2023 (6)
- april 2023 (2)
- maart 2023 (5)
- februari 2023 (1)
- januari 2023 (1)
- december 2022 (1)
- november 2022 (2)
- oktober 2022 (3)
- september 2022 (3)
- augustus 2022 (3)
- juli 2022 (8)
- juni 2022 (6)
- mei 2022 (4)
- april 2022 (5)
- maart 2022 (4)
- februari 2022 (5)
- januari 2022 (2)
- november 2021 (2)
- oktober 2021 (1)
- september 2021 (3)
- augustus 2021 (2)
- juli 2021 (1)
- juni 2021 (1)
- mei 2021 (1)
- april 2021 (3)
- maart 2021 (1)
- februari 2021 (1)
- november 2020 (1)
- augustus 2020 (1)
- juli 2020 (2)
- mei 2020 (2)
- april 2020 (4)
- maart 2020 (5)
- februari 2020 (3)
- januari 2020 (5)
- december 2019 (2)
- november 2019 (3)
- oktober 2019 (5)
- september 2019 (1)
- augustus 2019 (3)
- juli 2019 (2)
- juni 2019 (3)
- mei 2019 (2)
- april 2019 (4)
- maart 2019 (8)
- februari 2019 (6)
- januari 2019 (3)
- december 2018 (4)
- november 2018 (2)
- oktober 2018 (10)
- september 2018 (6)
- augustus 2018 (8)
- juli 2018 (2)
- juni 2018 (7)
- mei 2018 (3)
- maart 2018 (3)
- februari 2018 (3)
- januari 2018 (3)
- december 2017 (6)
- november 2017 (5)
- oktober 2017 (5)
- september 2017 (5)
- juli 2017 (1)
- juni 2017 (4)
- mei 2017 (1)
- maart 2017 (9)
- februari 2017 (1)
- januari 2017 (1)
- december 2016 (1)
- oktober 2016 (2)
- september 2016 (2)
- augustus 2016 (6)
- juli 2016 (1)
- juni 2016 (3)
- mei 2016 (2)
- april 2016 (3)
- maart 2016 (3)
- januari 2016 (1)
- december 2015 (1)
- november 2015 (2)
- oktober 2015 (1)
- september 2015 (2)
- augustus 2015 (1)
- juli 2015 (1)
- juni 2015 (2)
- mei 2015 (2)
- maart 2015 (2)
- februari 2015 (2)
- juni 2014 (1)