Verwijderd schreef op zondag 12 februari 2006 @ 17:38:
Dit is uiteraard bijzonder inefficiënt, maar het schijnt meer voor te komen onder software-ontwikkelaars. Herkennen mensen dit 'ontwikkelperfectionisme'? Op welke manier kan de 'angst om het niet mooi genoeg te doen' worden geneutraliseerd?
Door zelf de rekening te betalen van de tijd die je steekt in software development. Op een gegeven moment kom je er achter dat er een balans is tussen perfectionisme en pragmatisme: er zijn helaas altijd factoren binnen een project die bepalen dat je niet het perfecte programma kunt maken, maar slechts het 'best haalbare'. Door pragmatisch om te gaan met de mogelijkheden die je hebt en de limieten waarmee je moet werken kun je EN goed resultaat afleveren EN toch iets afkrijgen.
Ik zie overigens het pragmatisch kunnen oplossen van een probleem ook als eigenschap van een goede software engineer. Je kunt nl. een probleem vaak op vele manieren oplossen en dan de oplossing kiezen die het meest efficientst is qua kwaliteit en tijdsinvestering (dus niet OF, maar EN) is IMHO de beste oplossing.
Staar je niet blind op die OH-sessies van wat ik 'cleanroom specialisten' noem: mensen die oplossingen verzinnen die perfect werken in een volledig gecontrolleerde omgeving maar die volledig voorbij gaan aan factoren waar je IRL mee te maken hebt in een project. Een software project heeft nu eenmaal een paar factoren waar je niet onderuit kunt. Zoals men zegt: "Your project can be: Efficient, cheap and perfect. Pick 2" (of van die strekking).
Verwijderd schreef op zondag 12 februari 2006 @ 17:41:
[...]
Dat doe ik sowieso altijd, maar het gaat er meer om dat ik altijd een soort frustratie ervaar met betrekking tot de elegantie van datgene wat ik op dat moment aan het schrijven ben of reeds heb geschreven. Terwijl ik aan het tikken ben ben ik met mijn gedachten al bij mogelijke alternatieve ontwerpen die het probleem nog eleganter oplossen.
Nou en? Denk je echt dat dat over gaat op je 45e nadat je JAAAAREN van alles gedaan hebt? no way. Ik maak nu 12 jaar professioneel software en ik heb ook dagen dat ik denk "waarom heb ik dit in vredesnaam zo opgelost?" (ik werk met mn eigen code, dus kan alleen mezelf de schuld geven

) . Er is echter 1 ding dat je niet moet vergeten: een goed stukje code wat gewoon werkt, is een goed stukje code. Een GEWELDIG stukje code wat hetzelfde resultaat heeft, heeft nog steeds hetzelfde resultaat.
Michali schreef op zondag 12 februari 2006 @ 18:12:
De term die je zoekt is Agile. Dat is ontwikkelen op zo'n manier dat je per definitie rekening houdt met eisen die gaan wijzigen. En ze zullen wijzigen in bijna alle gevallen. Refactoring is daar idd heel nauw mee verbonden, maar het is een beter idee om dat te combineren in de context van een Agile methodologie. Misschien een idee om daar iets over op te zoeken?
Refactoring is niet gratis, het kost tijd en als je niet oppast ERG veel tijd. Er zijn class hierarchies te bedenken die bij het begin van het project volledig logisch leken maar na 3 kwart van het project moet je ineens iets erbij bouwen waardoor het handiger zou zijn geweest als je het ANDERS gedaan had. En de classes dan refactoren is niet aan te bevelen, tenzij je unlimited funding hebt en tijd (en dan nog).
Agile development is overigens ook niet iets wat deadlines, tijdtekort, en gebrek aan geld doet verdwijnen. Je hebt nog altijd te maken met die factoren en die zijn t.a.t. de factoren die bepalend zijn voor de kwaliteit. Tenzij je toch wel betaald krijgt natuurlijk of je wel of niet iets oplevert (zoals de gemiddelde consultant). Wanneer het opleveren van iets essentieel is voor wat je als beloning krijgt voor je werk, dan is het zaak rekening te houden met de factoren die ik net noemde, en is perfectionisme een leuke eigenschap voor de buhne maar gebruik het met mate, zoals ik zei: in balans met pragmatisme.
[
Voor 49% gewijzigd door
EfBe op 12-02-2006 21:28
]