In mijn omgeving, op fora en op mensen van mijn msn lijst (de mensen die geinteresseerd zijn in techniek) zie ik de laatste tijd een bepaald probleem terug. Het probleem is: techniek overkill. Mensen die hebben dan bepaalde technieken geleerd (vooral patterns), en passen het toe zonder aan de gevolgen te denken. Ze proberen ook alles in een ontwerp te plaatsen wat ze ook kennen. Aan 1 kant is dit wel goed aangezien het beter is dan iemand die echt niets kan en ik weet hun motivatie ook te waarderen (liever iemand die te veel zijn best doet dan te weinig). Maar in de praktijk is een technisch overontwikkelde oplossing denk ik bijna net zo erg als een technisch onder ontwikkelde oplossing.
Een aantal problemen van technisch onder ontwikkelde oplossingen:
-onduidelijk (wie begrijpt puinzooi)
-niet/slecht uitbreidbaar (als je geen duidelijk beeld krijgt van software kan je het ook niet aanpassen)
-aan allerlei kwaliteits attributen zoals performance, veiligheid etc kan niet worden voldaan
(als er geen structuur aanwezig is kun je niet over een systeem redeneren)
Technische overontwikkelde oplossingen:
-onduidelijk (complexe oplossingen kosten per definitie meer tijd om te begrijpen dan eenvoudige)
-niet/slecht uitbreidbaar (onnodige complexiteit zal in veel gevallen niet in de juiste richting ontwikkeld zijn mbt wijzigingen.. Je zit dus nu met een bepaald blok aan je been waardoor je niet even iets eenvoudig kunt aanpassen)
-als de omgeving goed is ontwikkeld maar te complex is voor zijn doel, dan is het nog steeds lastiger om over de kwaliteits attributen te redeneren dan in een omgeving die minimaal is voor dat doel).
Dit zijn nog maar een aantal punten...
Wie deelt deze indrukken met mij? Wie heeft het gevoel dat veel beginnende programmeurs volledig aan het cowboyen zijn....
ps:
ik moet ook eerlijk toegeven dat ik er vroeger ook wel eens een handje van heb gehad
En ik heb nu ook nog steeds de voet op de rem.. ho... wat gaan hiervan de consequenties worden? Past dit nog in het geheel en blijft de algehele structuur gehandhaafd? En het belangrijkste: blijven simpele dingen nog simpel?
Een aantal problemen van technisch onder ontwikkelde oplossingen:
-onduidelijk (wie begrijpt puinzooi)
-niet/slecht uitbreidbaar (als je geen duidelijk beeld krijgt van software kan je het ook niet aanpassen)
-aan allerlei kwaliteits attributen zoals performance, veiligheid etc kan niet worden voldaan
(als er geen structuur aanwezig is kun je niet over een systeem redeneren)
Technische overontwikkelde oplossingen:
-onduidelijk (complexe oplossingen kosten per definitie meer tijd om te begrijpen dan eenvoudige)
-niet/slecht uitbreidbaar (onnodige complexiteit zal in veel gevallen niet in de juiste richting ontwikkeld zijn mbt wijzigingen.. Je zit dus nu met een bepaald blok aan je been waardoor je niet even iets eenvoudig kunt aanpassen)
-als de omgeving goed is ontwikkeld maar te complex is voor zijn doel, dan is het nog steeds lastiger om over de kwaliteits attributen te redeneren dan in een omgeving die minimaal is voor dat doel).
Dit zijn nog maar een aantal punten...
Wie deelt deze indrukken met mij? Wie heeft het gevoel dat veel beginnende programmeurs volledig aan het cowboyen zijn....
ps:
ik moet ook eerlijk toegeven dat ik er vroeger ook wel eens een handje van heb gehad
[ Voor 11% gewijzigd door Alarmnummer op 28-03-2005 17:21 ]