Hoe vind je de beste programmeurs in een markt waar de vraag ernaar al heel lang groter is dan het aanbod? Daar lag ik best wel vaak van wakker, totdat ik ‘collaborative coding’ ontdekte. Meer, dit heeft de toekomst omdat het helpt beter en efficiënter bij het communiceren en samenwerken. En mooie bijvangst is dat het een nieuwe generatie programmeurs aanspreekt – en die hebben we hard nodig.
Wat heb je nodig om de snelle groei te kunnen bijbenen? Een deel van het antwoord vond ik toen ik vorig jaar geïnterviewd werd door IT Labs en een wens mocht doen. Ik wenste een omgeving waarin developers samen kunnen werken aan code, zoals tekstschrijvers dat ook kunnen in Google Drive of gamers dat doen in multiplayer-spellen als Fortnite. Die wens heet collaborative coding, een manier van code sharing waarmee programmeurs echt in realtime in de cloud – dus via hun browser – kunnen samenwerken.
Dit mag een paar stappen verder gaan dan pair programming, waarbij twee developers op één werkstation samenwerken; mob programming, met één bestuurder en meerdere navigators die de bestuurder begeleiden om de code te schrijven of code sharing, waarbij developers op hun eigen laptop of werkstation, thuis, op kantoor of desnoods aan de andere kant van de wereld werken, terwijl alle leden van het team in realtime de mogelijkheid hebben om elkaars code te herzien, te verbeteren, te debuggen of toe te voegen.
Wens
Mijn wens lijkt in de afgelopen maanden gehoord. Want collaborative coding wint terrein. Vercel bijvoorbeeld, ontwikkelaar van het platform Next JS, introduceerde onlangs Next JS Live, waarmee realtime in de browser code is te delen. En dat heeft voordelen. Samen coderen valt of staat weliswaar met goede communicatie, maar het kan veel miscommunicatie voorkomen. Want als iedereen tegelijk naar dezelfde code kijkt, worden fouten eerder opgemerkt. Bovendien is werk makkelijker over te nemen als een teamlid een dag of week afwezig is. Ook kan het coderen gewoon doorgaan als iedereen wegens een nieuwe lockdown onverhoopt weer vanuit huis moet werken. Daarbij kunnen junior programmeurs makkelijker de hulp inroepen van een ervaren collega als ze ergens niet uitkomen.
Ik weet dan ook zeker dat collaborative coding en code delen een vlucht zullen nemen. Collaborative coding is niet alleen efficiënt en effectief, het spreekt een nieuwe generatie programmeurs aan. Jonge mensen zijn immers gewend om in de cloud samen te werken aan projecten en te gamen. Door programmeren op deze manier te leren zien ze het meer als een game dan als werk: samen dingen proberen en bouwen. Misschien moet ik snel weer een wens doen.
(Auteur Merlijn Bruijnes is cto bij Marvia.)
“Samen coderen valt of staat weliswaar met goede communicatie, maar het kan veel miscommunicatie voorkomen. Want als iedereen tegelijk naar dezelfde code kijkt, worden fouten eerder opgemerkt.” Juist. Maar omdat de meeste programmeurs in een internationaal bedrijf of internationale context werken zijn de soft skills en met name culturele competentie en interculturele communicatie skills uitermate belangrijk voor efficiency en succes. Lees mijn eBook bij Bookboon. Uitgebreide papieren versie verschijnt eind van het jaar.
1) In vergaderingen e.d. zijn het niet de supertechnische types die de overhand hebben. Integendeel. Terwijl je – als je over kwaliteit van code spreekt – toch heel graag de beste wil hebben en niet het gewauwel van de minder begaafden die qua geluid domineren, gelijk de kritiek uit de middeleeuwen waar de sterkste regeerde en zeker niet de slimste.
2) Code is een heel trieste manier om je redenering in uit te drukken. Een Jackson structuur is écht aanzienlijk beter. Alleen zie je dat tegenwoordig nauwelijks nog. Grappig genoeg zie je in de aanvragen de laatste wat vaker de vraag naar bekendheid met gestructureerd programmeren. Kennelijk zijn er nog een paar oude zielen die snappen dat dit toegevoegde waarde heeft.
3) Ik schaakte vroeger in een wat kleinere schaakclub. De top-speler was aanzienlijk beter dan de rest. Scheelde vlot 200 ELO punten, dus alleen een heel kleine kans voor de mindere goden om te winnen. Eén keer kwam iemand op het lumineuze idee om de topper simultaan te laten spelen tegen de rest. Dat kon hij makkelijk en had hij ook al vaker laten zien. Alleen deze keer nam hij een vriend mee, die ook van zijn niveau was. Wauw. Twee toppers zouden simultaan tegen de rest spelen. Ze zouden als gedeelde simultaanspeler spelen, dus na elkaar. Tot onze verbazing gebeurden er dingen als dat de tweede speler het kennelijk niet eens was met de vorige en soms ook een zet terug deed. Kennelijk een ander plan. Logischerwijs minder efficiënt. Uiteindelijk won dit tweetal zeker niet alle partijen, hetgeen ieder afzonderlijk dat met gemak wel had gekund. Tja…. Voor mij bewees dit dat sommige zaken écht aanzienlijk beter gebeuren als iemand in zijn eentje zijn werkstuk afmaakt vanwege de consistentie van het plan.
Zo ook bij het programmeren. De neurotische time-boxing aanpak van tegenwoordig die men scrum e.d. pleegt te noemen met korte intervals qua taken van 2 weken, bieden niet de beste basis als er échte kwaliteit moet worden geleverd, zoals een échte Jackson programmeur dat kan. Oude gezegdes over kwaliteit, buying monkeys, goedkoop/duurkoop, onderstrepen dit. Gekke ideetjes die de gehaaste maar technisch onkundige managers ter wille zijn, zullen de wereld vooral verrassen met schier eindeloze updates, vol met nieuwe verrassingen.
Cheers!
Crox, heb je de uitgebreide papieren versie al besteld ?