Sinds een maand heb ik een nieuwe baan bij een bedrijfje wat een online (J2EE) applicatie ontwikkeld. Men is daar nu met ongeveer 2 man zo'n 4 jaar mee bezig. Vergeleken met mijn vorige baan, waar ik aan een soortgelijke applicatie mee bouwde, is de organisatie echter een enorme schok voor me:
-Er wordt gewoon -niet- aan design gedaan. Niet een beetje, of een beetje slordig, gewoon 0,0. Requirements worden even doorgenomen en meteen geimplementeerd.
- Een beetje samenhangend hiermee is er dus ook geen documentatie van het software systeem. Als nieuwe programmeur moet je dus de source lezen, waar ook al geen commentaar in staat, en waar er commentaar voorkomt zijn dit kromme zinnen die door zwaar dyslectische personen zijn opgeschreven.
- Het testen is een complete ramp. Er zijn geen test-plannen, geen intergration tests, al helemaal geen unit-tests. Testen bestaat uit een paar uur voor het live gaan nog even snel door de applicatie heen klikken. Daarbij gaat er code live waar men een half uur geleden nog aan zat te werken.
- De 'projecten' voor de programmeurs worden opgedeeld in kleine en grote projecten. Een klein project is dan een halve dag tot een dag, en een groot project is een paar dagen tot 1 week, of uitzonderlijk 2 weken.
Men wil het liefst dat je enkel aan "kleine dingen werkt die zo snel mogelijk zo veel mogelijk winst op leveren". Het beter structureren van de source code (zodat ik deze als nieuwkomeling beter kan begrijpen) is uit de boze. Kreten die ik hoor zijn dan "De klant heeft helemaal niks te maken met source-code." en "We gaan nog wel eens een betere structuur opzetten, maar als we mogen niet meer bestaan hebben we daar ook niks aan." Volgens een senior programmeur die al 4 jaar mee draait wordt dat laatste overigens als vanaf het begin gezegd.
Het gevolg is een source-base die werkelijk bol staat van code die niet meer van toepassing is. Vorige week mijn hele weekend besteed aan het proberen te begrijpen van een stuk code waar ik niet uitkwam. Maandag ochtend om hulp gevraagt, zegt de verantwoordelijk programmeur dat dat stuk oud is niet meer wordt gebruikt. Echter, tijdens het draaien van de applicatie werd het nog wel gewoon aangeroepen!
Het rare is echter dat de applicatie opzich wel goed draait. Ik heb altijd geleerd dat je zonder structuur rampzalige software krijgt, maar dat valt (aan de buitenkant) best wel mee.
Omdat dit pas mijn 2de echte baan is vraag ik me af of een dergelijke werkwijze gebruikelijk is binnen een klein bedrijf (in nederland).
-Er wordt gewoon -niet- aan design gedaan. Niet een beetje, of een beetje slordig, gewoon 0,0. Requirements worden even doorgenomen en meteen geimplementeerd.
- Een beetje samenhangend hiermee is er dus ook geen documentatie van het software systeem. Als nieuwe programmeur moet je dus de source lezen, waar ook al geen commentaar in staat, en waar er commentaar voorkomt zijn dit kromme zinnen die door zwaar dyslectische personen zijn opgeschreven.
- Het testen is een complete ramp. Er zijn geen test-plannen, geen intergration tests, al helemaal geen unit-tests. Testen bestaat uit een paar uur voor het live gaan nog even snel door de applicatie heen klikken. Daarbij gaat er code live waar men een half uur geleden nog aan zat te werken.
- De 'projecten' voor de programmeurs worden opgedeeld in kleine en grote projecten. Een klein project is dan een halve dag tot een dag, en een groot project is een paar dagen tot 1 week, of uitzonderlijk 2 weken.
Men wil het liefst dat je enkel aan "kleine dingen werkt die zo snel mogelijk zo veel mogelijk winst op leveren". Het beter structureren van de source code (zodat ik deze als nieuwkomeling beter kan begrijpen) is uit de boze. Kreten die ik hoor zijn dan "De klant heeft helemaal niks te maken met source-code." en "We gaan nog wel eens een betere structuur opzetten, maar als we mogen niet meer bestaan hebben we daar ook niks aan." Volgens een senior programmeur die al 4 jaar mee draait wordt dat laatste overigens als vanaf het begin gezegd.
Het gevolg is een source-base die werkelijk bol staat van code die niet meer van toepassing is. Vorige week mijn hele weekend besteed aan het proberen te begrijpen van een stuk code waar ik niet uitkwam. Maandag ochtend om hulp gevraagt, zegt de verantwoordelijk programmeur dat dat stuk oud is niet meer wordt gebruikt. Echter, tijdens het draaien van de applicatie werd het nog wel gewoon aangeroepen!
Het rare is echter dat de applicatie opzich wel goed draait. Ik heb altijd geleerd dat je zonder structuur rampzalige software krijgt, maar dat valt (aan de buitenkant) best wel mee.
Omdat dit pas mijn 2de echte baan is vraag ik me af of een dergelijke werkwijze gebruikelijk is binnen een klein bedrijf (in nederland).
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.