Het wiel opnieuw uitvinden

Soms moet je het wiel opnieuw uitvinden. Door alleen maar beproefde bibliotheken te gebruiken kom je minder snel tot productieve inzichten. In deze post maak ik duidelijk waarom ik dat vind.

Begrijp mij goed. Ik zie in dat het gebruik van beproefde bibliotheken om verschillende redenen verstandig is. Een bibliotheek zal uitvoeriger getest zijn en daarmee stabieler zijn. Het zal een grotere bekendheid hebben, waardoor een grotere groep ontwikkelaars er mee gewerkt heeft. Daarbij zal er uitgebreide documentatie en kennisdeling te vinden zijn. In sommige gevallen wordt de bibliotheek actief ontwikkeld. Jouw feedback kan er dan voor zorgen dat de bibliotheek beter aansluit op jouw wensen. Allemaal redenen om op zoek te gaan naar een passende, beproefde bibliotheek.

Daarnaast wordt er vaak laatdunkend gedaan over ‘het wiel opnieuw uitvinden’. In het licht van bovenstaande argumenten lijkt ook moeilijk te verdedigen. Hoe kan ik als eenzame ontwikkelaar een soortgelijk product afleveren? Ik heb noch de tijd, noch de kennis, noch de vaardigheden om de gehele bibliotheek te evenaren. Laat staan dat ik het kan verbeteren. Het opnieuw uitvinden van het wiel is als het waanzinnige avontuur dat Don Quichot onderneemt. Waarom zou ik het wiel dan toch opnieuw willen uitvinden?

Het wiel opnieuw uitvinden dient volgens mij een ander doel. Als jonge software ontwikkelaar vliegen de buzz-woorden je om de oren. Hibernate, Spring, Struts, JavaServer Faces, DOA’s, CRUD, DDD, SQL en DSL’s zijn maar enkele van de termen die je hoort vallen. Het zijn ongetwijfeld mooie frameworks, technieken, talen en ideeën. Ze passen vast goed in hun niche. Maar voor mij lossen zij in eerste instantie een probleem op wat ik zelf nog nooit heb gehad. Hoe kun je een goede bibliotheek kiezen als je het probleem niet ziet, of niet goed kent?

Door het wiel opnieuw uit te vinden stel je jezelf voor een uitdaging. Je bent op zoek naar een oplossing voor een bepaald probleem. Door bezig te zijn met je zoektocht naar een oplossing, leer je automatisch het probleem beter kennen. Je stelt jezelf voor alternatieven. De keuzes die je maakt hebben gevolgen voor de ontwikkeling van je oplossing. Je komt tot inzichten. Die inzichten overtuigen je van je (verkeerde) beslissing. Door het wiel uit te vinden kom je tot belangrijke ideeën, die je anders niet zou hebben gehad.

Daarom ben ik van mening dat het verstandig is om het wiel opnieuw uit te vinden. Het kan namelijk inzichten opleveren die je anders niet had verworven.