Jeg besøkte ruinene av en romersk bosetning, den andre dagen som ble satt i en vakker dal i midten av en øy.
Innstillingen var idyllisk, skjermet fra vind og ikke for langt fra den viktigste handelsby, virket det et ideelt sted å gård og bringe opp en familie.
Sin historie ble gjennomtenkt gitt på skiltene rundt ruinene av en betydelig bolig, som hadde blitt utvidet i romertiden for å inkludere en varm og kald bad og mosaikkgulv. Alt dette var veldig attraktivt og en betydelig investering for grunneier.
Men oppgjøret ble forlatt, og det slo meg at det måtte være en god grunn siden det var klart at noen hadde lagt ned mye innsats og finans i sin drøm.
Jeg lurte på om vikingene, som var kjent for å være aktive på dette området etter at romerne forlot, hadde angrepet den, men det var ingen tegn til forkullede murstein arbeid eller etterkant av kampen.
Ser rundt et annet tegn avslørte problemet.
Det hadde vært mer enn ett forsøk på å bosette seg i området, men landet dannet et naturlig punkt av drenering for åsene rundt, og påfølgende bygninger hadde hver til slutt bukket under for innsynkning.
Jeg var ikke i tvil om at bygningene var av god kvalitet og at utbyggere var kompetent på konstruksjon, men klart det hadde tatt et par generasjoner å regne ut at dette ikke var et egnet sted for bygging. Hvis vi virkelig ønsket å bosette dette stedet nå ville vi kjøre hauger dypt ned i bakken for å overvinne den innsynkning.
Poenget at denne kjørte inn i mitt sinn var at for å utvikle programvare. Det er altfor ofte slik at programvareutvikling organisasjoner og deres kunder gjør de samme feilene om igjen. Dersom grunnlaget er ustø så det er ingen vits i å bygge, men med litt omtanke noen vil kunne løse problemet, og gir en sikker måte å levere et godt fundament.
Den største feilen som organisasjoner gjør er å haste å kutte koden før de forstår problemet de er løse.
Det betyr ikke at du må være selvtilfreds og som sitter rundt i noen møter vil løse alle dine problemer
Hva bør gjøres er: -..
Ring gjerdet hva du vet
Ring gjerdet hva du ikke vet.
Pass på at du utvikler riktig produkt.
Bygg programvaren som du vet vil ikke endre seg.
Sjekk at det du bygger er det som er ønsket.
Ofte kunden vet bare ikke nøyaktig hva de vil, så du trenger å involvere dem i utviklingsprosessen.
Jo tidligere de blir kjent med produktet deretter mer sannsynlig det