Inom programutveckling letar vi hela tiden efter vad som är nästa stora sak. Vi har liksom inte gett upp hoppet om silverkulan, en dag bara måste den visa sig.
Det kanske inte är silverkulan, men jag sätter en slant på att nästa stora sak är liten, extremt liten. Vi är i början av en pytte-era.
Jag ser det som tre tidsperioder, eller tre utvecklingssteg:
1. Följ en stor leverantör och inget annat.
2. Använd många stora öppna ramverk.
3. Pytte-eran.
Om vi backar 10–20 år i tiden, så var det tiden jag kallar ”följ en stor leverantör och inget annat”. Man fick vad man behövde på ett ställe. Det kändes enkelt och det kändes säkert. Man blev omhändertagen och slapp tänka så mycket själv.
Ofta fick man hjälp av verktygen att snabbt skapa massvis med fulkod som man sedan skulle underhålla, det var mycket fokus på ”drag till you drop” i stället för att skriva kod.
Stora databasorienterade programmeringsmodeller och stora lösningar för att skapa illusioner att det inte är webb när man bygger för webb användes flitigt. När verktygsleverantörer gjorde visningar sades ofta: ”Och allt detta utan att jag skrev en enda rad kod.”
När man tittade på resultatet bakom kulisserna började man gråta, men inte lyckotårar.
Efter ett tag började några tappa sugen och det blev lite av en revolution. För sisådär tio år sedan och fram till nu har det varit alltmer fokus på öppen källkods-projekt och starka communities. Stora, generiska och viktiga ramverk växte fram och användes friskt. Låt oss kalla den eran för ”använd många stora öppna ramverk”.
Det var fokus på agil utveckling, ddd, elegant kod, tdd, craftmanship, mvc, o/rm och rest. Mycket var i grund och botten bra och sunt, men en vanlig avart var att den som använde flest designmönster i sin lösning vann. Det var också nu många av oss lärde sig – den hårda vägen – att stora, generiska ramverk inte bör uppfinnas. Chansen till framgång ökar radikalt om man i stället skördar dem.
Det tredje steget som nu börjar växa till sig är mer evolution än revolution. Jag kallar det för ”pytte-eran”.
En hel del från tidigare lever vidare såsom test-drivet, riktig ddd och fokus på superbra kod, men man vänder sig lite mindre till communities och öppen källkods-projekt för att hitta allt man behöver i form av stora generiska ramverk.
I stället blir fokus på att vända sig inåt och lösa uppgifter med pyttesmå, specifika ramverkslösningar utan allt extra som man inte behöver. Alternativt att ha beroende till extremt små kodsnuttar som löser en enda specifik uppgift på ett bra sätt. Ofta nyttjas de i kodform snarare än binärt.
Ett typiskt exempel för att göra samarbetet mellan utvecklare och beställare ännu bättre är att använda domänspecifika språk så att dokumentationen också är exekverbar.
Om ni får följande kommentar:
Har ni löst problemet med den där pyttelilla lösningen? Det känns ju inte särskilt ”enterprisey”.
Då har ni gjort något bra.