Software gaat over mensen, niet over code

Toen ik begon, dacht ik dat softwareontwikkeling volledig over code ging. immers was dat het belangrijkste waar ik mee bezig was. Nou ja, misschien niet het enige, want ik moest ook weten welke code ik moest schrijven, hoe ik met andere code moest communiceren, welk probleem er werd opgelost, hoe ik het moest opleveren, de correctheid van de code en hoe deze onderhouden kon worden.

Maar het schrijven van de code voelde als het belangrijkste deel van de baan. Het was zeker het meest tastbare en fundamentele aspect. Immers, als de code niet werkt, maken al die andere dingen toch niet uit?

Dit leidde ertoe dat ik me concentreerde op hoe ik code moest schrijven. Om een betere programmeur te worden, ondernam ik de volgende activiteiten:

  • Ik schreef een stijlgids voor het bedrijf.
  • Ik deed onderzoek naar nieuwe technologieën.
  • Ik las en reageerde in online forums.
  • Ik leerde hoe ik Java-bytecode kon decompileren om propriëtaire software te reverse-engineeren.
  • Ik voerde discussies over code-opmaak.
  • Ik sloot me aan bij een discussiegroep over design patterns.
  • Ik bezocht meetups en schreef blogs.

Uiteindelijk kwam ik er echter achter dat mensen veel belangrijker zijn voor het succes van een softwareproject dan de code. Dit werd voor mij duidelijk nadat ik een aantal zeer interessante codebases zag die werden verlaten vanwege het ontbreken van een markt of andere zakelijke gebreken.

Dit was een verrassing voor me, omdat ik had aangenomen dat de code het belangrijkste onderdeel van softwareontwikkeling was. Maar in werkelijkheid is het volgende waar:

  • Software en code worden gemaakt voor mensen en hun doelen. Het bestaat niet op zichzelf, geïsoleerd van menselijke behoeften.
  • Mensen zullen de tools of applicaties die met code zijn gebouwd gebruiken (of, erger nog, ze zullen dat niet doen). Dit betekent dat zij moeten instemmen met wat er wordt gebouwd en geraadpleegd moeten worden over de functionaliteit.
  • De meeste mensen weten niets van de code en geven er ook niet om. (Als ze dat wel deden, zouden ze waarschijnlijk zelf ontwikkelaar zijn.) Ze proberen gewoon iets te bereiken. De mooiste, best geteste, flexibele, configureerbare, gedocumenteerde en toekomstbestendige codebase die het verkeerde doet, is nutteloos.
  • Uiteindelijk is code een algemeen hulpmiddel, net als boekhouden of onderzoek en ontwikkeling. Code moet echte problemen van echte mensen oplossen.

Met vriendelijke groet,

Dan