Smalltalk-visionen från 1993 är äntligen verklighet
I början av nittiotalet, på mitt första jobb på Ericsson i Karlstad, föddes en målbild som har följt mig genom hela min karriär. Jag jobbade på en avdelning för stödsystem till AXE-utvecklarna. Vi byggde kompilatorer, ritverktyg och felrapporteringssystem. Det var en tid av intensivt lärande där vi var tidiga med att utforska objektorienterad analys och programmering.
Det var under de här diskussionerna, mitt bland kurser och metodikdebatter, som jag hörde historien om Smalltalk-konsulten.
Smalltalk ansågs på den tiden vara den ultimata miljön för produktivitet. Legenden sa att den här konsulten besökte sin kund varje förmiddag för att diskutera krav, nya funktioner och ändringar. På eftermiddagen gick han tillbaka till kontoret och implementerade allt. Nästa morgon var han tillbaka hos kunden för att visa upp resultatet och få ny feedback.
Feedbackloopen var 24 timmar. Det kändes som science fiction.
Tre decennier av väntan
Under de trettio år som har gått sedan dess har jag jagat den där hastigheten. Jag har sett tekniker komma och gå. För tio år sedan, när jag jobbade med Ruby on Rails, kände jag att jag började närma mig, då kunde vi leverera features på några dagar. Men i takt med att systemen blivit mer komplexa och "Clean Architecture" blivit branschstandard, har vi ofta backat in i en verklighet där enkla ändringar tar veckor på grund av lager-på-lager-abstraktioner och teknisk overhead.
Men nu, med .NET 10 och en pragmatisk syn på AI-stöd, har jag äntligen nått målet. Visionen från nittiotalet är inte längre en myt. Den är min vardag.
Att klättra i näringskedjan
Det som har förändrats är att jag har kunnat flytta min arbetsprocess högre upp i "näringskedjan". Att gå från att skriva all kod själv till att arbeta med en AI-assistent påminner om skiftet från assembler till högnivåspråk.
- Generisk kod är ett löst problem: Behöver jag spara data i en databas eller anropa ett publikt REST-API? AI:n har redan läst dokumentationen. Koden finns där på 30 sekunder.
- Gränssnittet är inte längre en flaskhals: Jag har aldrig gillat CSS, och att integrera avancerade grafer i Blazor-komponenter har tidigare tagit dagar. Nu beskriver jag vad jag vill ha, och det fungerar oftast på under en kvart.
Genom att låta AI:n sköta det tekniska fotarbetet kan jag fokusera helt på logik, algoritmer och arkitektur.
Arkitekturen kräver fortfarande en människa
Trots AI-stödets effektivitet finns det en sak som inte går att delegera: arkitekturen. Det har sagts att arkitektur är det man inte kan googla fram, och det stämmer i allra högsta grad även i AI-eran.
För att nå "en feature om dagen" krävs en struktur som tillåter det. Jag har helt skrotat tunga lager till förmån för Vertical Slice Architecture. Genom att organisera koden efter funktionalitet istället för teknisk implementation, kan jag och AI:n jobba fokuserat på funktionalitet utan att drunkna i interfaces och boilerplate. Som ansvarig för koden är det mitt jobb att se till att den är framtidssäker och begriplig – AI:n hjälper mig att bygga huset, men det är jag som är arkitekten.
Cirkeln är sluten
Ett färskt exempel: I mitt nuvarande projekt för att styra husets värmepump och elbilsladdning behövde jag integrera väderprognoser från SMHI. Dokumentationen är komplex, men mönstret är nu bekant: Jag diskuterar algoritmen, AI:n skriver integrationen, och 2 timmar senare är funktionen i drift och visualiserad i gränssnittet.
Det tog mig trettio år av teknisk utveckling att komma tillbaka till den där förmiddagen hos Smalltalk-konsulten. Skillnaden är att nu är det jag som sitter där med kunden – och verktygen är äntligen ikapp visionen.
Om mitt projekt
Jag återkommer till projektet men användargränssnittet finns tillgängligt på https://thomasbjork.net/ChargeMaster