Om goede software te maken, is het nodig om vroegtijdig alle belanghebbenden bij het ontwikkeltraject te betrekken. Een goede samenwerking is nodig om het project te laten slagen. Maar dat betekent zeker niet dat iedereen het altijd maar met elkaar eens moet zijn en dat je niet voor je mening mag opkomen uit angst de sfeer te verpesten. Richard Campbell is medeoprichter van DEVIntersection en is ervan overtuigd dat projectleden vaker voor hun mening moeten opkomen en hierbij conflicten niet uit de weg moeten gaan.

"Softwareontwikkeling is alsof je iets uit staal maakt. Je hebt wrijving en hitte nodig voor het beste resultaat. Wat ik heel vaak zie is dat mensen proberen om conflicten te vermijden. Het is zo belangrijk om goed met elkaar om te gaan, dat ze hun mening liever voor zich houden. Dat is niet goed, want als niet alle standpunten vertegenwoordigd worden, levert dat nooit de beste software op."

Assets beschermen

Al tijdens de ontwerpfase is het nodig om alle stakeholders bij elkaar te roepen. Denk aan een architect, de ontwikkelaars en een database administrator. Zet ze bij elkaar in een kamer en laat ze met elkaar praten over de te ontwikkelen software. "Helaas maak ik in de praktijk vaak mee dat niet iedereen betrokken wordt", vertelt Campbell. "Een architect bedenkt bijvoorbeeld iets en gooit het vervolgens over de muur naar de ontwikkelaars. Vroeger werden database administrators vroegtijdig bij het database-ontwerp betrokken, maar nu worden ze er vaak achteraf pas bijgehaald om de troep op te ruimen."

Het idee leeft dat alles snel moet gebeuren en dat naarmate je er meer mensen bij betrekt, alles alleen maar langzamer gaat. "Data is een belangrijke asset. Als het niet in een bruikbare vorm wordt gegoten, of de applicatie er langzaam van wordt, verlaag je de waarde voor de business. Een goede DBA kan data zo rangschikken, dat de organisatie er optimaal profijt van heeft. Dus als een DBA ergens bedenkingen over heeft, heeft hij daar een goede reden voor en kun je maar beter naar hem luisteren. Hij beschermt een belangrijke asset van je organisatie."

Maar het gaat Campbell niet alleen om ontwikkelaars, dba-ers en architecten. "Je hebt ook securitymensen, user interface-ontwerpers en de gebruikers die de software uiteindelijk gaan gebruiken nodig. Die hebben allemaal belang bij goede software."

Korte en lange termijn

Het zijn de ontwikkelaars die uiteindelijk de applicatie maken. Ze werken Agile en staan onder druk om de deadline van de huidige sprint te halen. "Daarom proberen ze iets met zo min mogelijk code en complexiteit voor elkaar te krijgen", benadrukt Campell. "Begrijpelijk, maar het is belangrijk dat er niet alleen naar de huidige versie wordt gekeken. Het is de taak van de architect om ervoor te zorgen dat er software ontwikkeld wordt die goed aanpasbaar is en die zich kan evolueren naarmate de eisen van de business veranderen."

Een architect kijkt net als de DBA naar de langere termijn. Terwijl ontwikkelaars vooral op de korte termijn zijn gericht. Dat botst: "Architect en DBA zorgen met hun lange termijn-visie voor extra complexiteit in de software. Zodat wat vandaag gebouwd wordt, ook morgen nog bruikbaar is. Dat vraagt wel om extra inspanning van de kant van de ontwikkelaars en daar zitten die niet op te wachten. Daarom is het nodig om druk uit te oefenen. Je moet hierbij een goede balans zien te vinden tussen een redelijk ontwikkeltempo en voldoende hoge kwaliteit van de software."

Gemeenschappelijke doelen

In Campbells visie is het zaak om eerst de betrokken mensen bij elkaar te krijgen en vervolgens de individuele standpunten zo naar elkaar toe te drukken, dat je tot het best mogelijke applicatieontwerp komt. "Ik wil echt niet alleen maar aansturen op conflicten", benadrukt Campbell. "Maar als je niet assertief genoeg bent en je onvoldoende voor je standpunt opkomt, krijg je nooit echt goede software. Mensen denken vaak dat ze het altijd maar met elkaar eens moeten zijn en durven daarom geen druk uit te oefenen. Terwijl er juist druk nodig is om het volledige potentieel van de groep te benutten."

Je te assertief gedragen waardoor anderen in hun schulp kruipen, is overigens ook weer niet de bedoeling. "Het draait vooral om het vinden van gemeenschappelijke doelen. Doelen waarmee iedereen wint. Je kunt belanghebbenden als cirkels zien. Alleen waar de cirkels elkaar overlappen, krijg je de beste resultaten. Probeer een hechte band tussen de projectleden te creëren en laat ze vertrouwen krijgen in elkaar. Dat kost tijd. Als ik een productief team tegenkom dat goede software maakt, bestaat er altijd een hoog vertrouwen tussen de teamleden. Een deel van dat vertrouwen is ontstaan door eerdere successen, het andere deel komt doordat de mensen gewoon naar elkaar luisteren."

Het DEVIntersection evenement brengt op 15 en 16 oktober de verschillende disciplines in Amsterdam bij elkaar. Geïnteresseerd? Kijk op de site. Met kortingscode EK366 krijg je 10% extra korting als je je inschrijft voor 30 juni.