Enkelte mennesker er i stand til å designe fungerende, komplekse systemer kun ved hjelp av indre visualisering. Jeg er ikke en av dem.
Gitt et problem, så starter jeg, på en god dag, gjerne med å bekjempe impulsen til å ty til innlært cargo cult-adferd og intelligent design (*). Jeg liker ihvertfall å tro det. Bokser og piler krasjer ikke, og det er derfor svært lite du kan lære av å leke med dem.
Designprosessen min starter nå med at jeg stirrer olmt på noen blanke sider i en notatbok. Deretter kjefter jeg litt på ungene for at de har rappet den gode trykkblyanten min. Etter så å ha funnet den igjen i min egen jakkelomme, så knotter jeg ned fragmenter av helt åpenbare sammenhenger og konsepter, slik jeg forstår dem. Deretter – etter ha innsett at dette er totalt utilstrekkelig, så forsøker jeg gjerne å avdekke hvordan andre har løst tilsvarende problem før.
Selv om man til tider skjemmes over egen utilstrekkelighet, så anser jeg dette som nødvendig oppvarming før man skal gå i gang med noe nytt. Hvordan skal man ellers begynne ?
Resultatet er at jeg på dette stadiet, har en bedre oppfatning av problemdomenet. Som regel tar jeg her katastrofalt feil, men jeg vet det ikke enda.
Jeg starter derfor prosessen med å dunke runde pinner inn i firkantede hull i meat space. Evnen til total fornektelse av Newton, samt en fantastisk kapasitet til å overvurdere egne ferdigheter er her helt uvurderlig hvis man ønsker å lære noe.
Etter så å ha brukt for mye tid og penger (eller plast hvis du er så heldig å ha en 3D-printer), så har jeg nå gjerne en fysisk del i hånda. En del som skal realisere et aspekt ved mitt elegante design. En del som helt åpenbart:
a) ikke passer.
b) ikke ville løst problemet, selv om det hadde passet.
c) funksjonelt er like clunky som en 6-årings første dorull-robot.
Men…
dette er feedback. Og feedback er gull.
Jeg har nå innledet en dialog med det jeg har laget. Som et resultat av denne dialogen, så øker forståelsen min, og som en konsekvens av dette kan jeg nå lage noe som er bedre (**). Deretter starter en ny dialog. Resultatet er at jeg ikke lenger trenger å stå på andres skuldre – jeg kan stå på mine egne ! Genialt !
(Fra skisse til clunky del i meat space – dialog 3.)
*) Har du litt fartstid i programvarebransjen, så vet du hva jeg mener, og du må innrømme at ordspillet er for bra til ikke å bli brukt :)
**) Hvis det mot formodning ikke er riktig, så må jeg se meg nødt til å skrive et sint innlegg til ACM og argumentere for at Brooks tok feil. Vi får krysse fingrene for at dette ikke blir nødvendig.