We're not good enough - and that's okay (Norwegian)
This Norwegian language blog post summarizes my talk at Oslo Agile Meetup in the beginning of October.
Jeg tror ingen egentlig vet hvordan de skal få til bra utviklingsprosjektet. Selv når vi lykkes så er det veldig mye flaks. De fleste av oss tror vi kunne gjort mye bedre. For de fleste av oss holder tilstanden til kodebasen oss tilbake fra det vi synes vi burde ha fått til.
Vi har lært en del ting om hva som i teorien skal være løsning:
- Clean code skal være løsningen. Dersom vi bare hadde brukt de riktige patterns, prinsipper og teknikker så hadde alt vært bra.
- Software craftsmanship - eller håndverksånd - skal være løsningen. Dersom vi bare hever lista for oss selv som fagfolk så hadde alt vært bra.
- Funksjonell kontroll skal være løsningen. Hadde vil bare hatt en dyktig produkteier (fagfolk!) og en ryddig produktkø så hadde alt vært bra.
Men det er jo ikke sant.
- Selv om alle er enige om a koden skal være god, så er vi veldig uenige om hva som er god kode. Spesielt koden andre skriver. Mange team har stille eller støyende uenigheter om koden skal være slik eller sånn.
- Jeg programmerer som en adspredelse i stedet for å spille data eller se på serier. Det er veldig praktisk for meg at det å trene på faget er verdsatt; MEN DET BURDE IKKE VÆRE EN FORVENTNING for at man skal kunne være stolt av jobben.
- Og det vi driver med er ofte ikke så viktig for den store verden. Det er ikke verdt å tape familietid eller søvn over. Noen ganger kan det være direkte skadelig. Vi skal ta oss i akt og huske at et av de eldste informasjonssystemene var det Dehomag leverte til Nazistene for å drive konsentrasjonsleire. Oppgaver som er verdt å gjøre følger ikke fra funksjonelle beskrivelser
Så hva kan man gjøre, da?
- For å få en kodebase med mindre hindringer er det viktigste skrittet at utviklerne snakker mer om koden og at man lærer seg å være ydmyk. Spesielt vi mannfolka må bli flinkere til å si “jeg tok feil”. Og det krever trening! Og parprogrammering funker!
- Vi må lære oss å begrense oss selv. Den viktigste måten jeg har fått opp farten på er ved å gå saktere - spesifikt ved at hele teamet fokuserer på ÉN oppgave om gangen. Dette kalles gjerne swarming. Som team: Bli ferdig med én ting og gå til neste i stedet for å starte på enda flere ting.
- Til slutt må vi lære oss å si stopp. De fleste organisasjoner mangler mekanismer for å oppdage og handle dersom man driver med tull. De fleste personer har problemer med å innse at man løper et tapende løp. Det aller viktigste er på det personlige plan: Ikke forbli et sted der kulturen er dårlig og hvor folk ikke er snille med hverandre.
Jeg vet ikke hva som skal til for å lykkes, men jeg vet noen måter vi alltid tabber oss ut på: Jeg vet det er vanskelig å si “jeg tok feil”; jeg vet det er vanskelig å si “la oss bli ferdig med dette før vi starter på noe nytt”; jeg vet det er vanskelig å si “nok er nok”. Disse tingene er hva jeg vil bli flinkere til.