Enkelhet, ikke så enkelt

Skrevet den November 16, 2009
Kategori smidig, utvikling | Skriv en kommentar

Dette er en artikkel i kategorien refleksjon og det kommer som et resultat av det jeg har erfart i de siste årene hvor Smidig-bevegelsen virkelig har blitt allemannseie. Jeg har både vært team medlem, Scrum Master, arkitekt og delvis produkt eier i ulike sammenhenger. En ting har alltid ligget å ulmet i bakhodet mitt de siste årene og det har med begrepet enkelhet eller simplicity.

Begrepet brukes til veldig mye rart og har blitt en viktig ingrediens i alle dokumenter om visjoner og strategier. Alt skal være enkelt. En annen setting hvor enkelhet nevnes hyppig er i diskusjoner rundt konkrete løsninger. Her brukes begrepet ofte som hersketeknikk hvor den som kommer med “men det er jo ikke enkelt” eller “det er unødig komplisert” forsøker å parkere andre forslag. Det er i denne andre konteksten hvor det hele tiden har skurret i hodet mitt. Veldig ofte bruker man begrepet enkelt på en måte som tilsier at noe skal være banalt eller simpelt. Løsninger som involverer teknikker eller noen biblioteker blir ofte merket som kompliserte (ofte med unødvendig som prefix).

Enkelhetens lover

Enkelhet kan oppnås på mange måter, hvor en av de er å redusere og fjerne noe. Dette er grunntanken de fleste forbinder med enkelhet, men etter å ha lest John Maeda sin The Laws Of Simplicity ble jeg klar over at dette er bare en av veldig mange teknikker som kan brukes til å oppnå enkelhet.

Maeda oppsummerer enkelhet i ti lover som kan brukes i et arbeid med å oppnå enkelhet i løsninger. I det daglige hører jeg stortsett snakk om å oppnå enkelhet gjennom Lov 1: Reduser. Det er selvsagt en viktig teknikk for å oppnå enkelhet, men den er overvurdert særlig i forbindelse med å løse problemer som oppstår under systemutvikling. Dersom det er en problemstilling som ikke er triviell, så er det faktisk slik at det er en del andre lover som faktisk gir bedre resultat enn bare å redusere kompleksitet og å “dumb it down”. Organisering og kunnskap fører veldig ofte til enkelhet i løsningen, på tilsvarende måte som loven om å redusere.

Simplifisering mer enn bare å redusere

Hvis du må lage et rammeverk for å utøve f.eks mapping fra ett objekt til et annet, så kan det gjøres enkelt dersom du sørger for at rammeverket er godt organisert og hvis du sørger for å la de som skal bruke det få økt kunnskap gjennom eksempler og dokumentasjon.  Veldig mange vil si at å lage et rammeverk strider imot det å gjøre noe enkelt, men det blir for enkelt mener jeg. Et godt skrevet rammeverk som er testet og skrevet brukervennlig vil jeg si er essensen i enkelhet. Du gjør en ofte utført operasjon enkel for flere. Hvorvidt det ligger avansert kode i rammeverket er egentlig uinteressant. Ingen stiller spørsmål rundt hvorvidt Spring rammeverket bruker noe avansert for å oppnå det de gjør. Hvorfor skal man i prosjekter måtte gå kanossagang om man ønsker å benytte seg av noe som av enkelte oppfattes som avansert?

Balanse

Enkelhet består ikke i å fokusere på reduksjon eller bare å se på tidsbesparelser. Evnen til å vurdere flere av lovene slik at de balanserer hverandre ut som er nøkkelen til å oppnå enkelhet.

Det viktigste er likevel å innse at for å oppnå enkelhet kreves mer enn reduksjon. Hvis du synes utvikling av web applikasjoner er vanskelig med Java verdens mange rammeverk, så blir det ikke bedre av å redusere alle slike å bare bruke servlet klassene. En slik drastisk reduksjon er ofte fundert på en tanke om enkelhet, trukket altfor langt. Ofte bunner slike på manglende kunnskap eller behov for å bevise noe, som begge er krefter som trekker i retning av “dumbing down”: ikke enkelhet.

Refleksjoner rundt Smidig 2009

Skrevet den October 26, 2009
Kategori smidig | Skriv en kommentar

Nok en gang samlet Smidig-menigheten seg til to dager i refleksjonen og læringens tegn på Smidig 2009 konferansen. Konferansen er den største grasrot konferansen i Skandinavia som handler om smidige metoder. De frivillige som bruker enormt med tid på å gjøre dette mulig fortjener all mulig heder og ære. Jeg har vært så heldig å få delta de to siste årene og det har vært ekstremt læreriktig og morsomt.

Årets utgave av Smidig var langt bedre enn fjorårets. Lyntalene var bedre, spissere og mer variert enn fjorårets. Innholdet i talene var også langt mer givende enn før. Alt dette fine til tross så sitter jeg igjen med en liten følelse av å være litt skuffet. Vi har kommet langt, men det er en ting som jeg synes mangler fullstendig i all iveren etter å være smidig og det er fokuset på forretningen i det hele. Jeg snakker her ikke om forretningssiden, som er veldig mye omtalt i smidige metoder. Nei, jeg snakker om hvorfor smidige metoder er økonomisk bra og er fornuftig business. Statoil-Hydro adopterer ikke Beyond Budgeting fordi de er idealister, nei de gjør det fordi de skal effektivisere sine prosesser.

Utviklere liker gjerne å tro at smidige metoder vinner nytt terreng fordi all ønsker dem godt og at alle setter pris på godt håndverk utført i trygge omgivelser. Jeg mener dette bare er en heldig sideeffekt som de fleste ikke egentlig bryr seg om. Smidige metoder brer om seg fordi det er bra business, ikke fordi alle ønsker en bedre verden. Det var ikke noe fokus på forskuttering, måling av effekt eller andre økonomiske aspekter. Dette er tross alt hovedgrunnen til at stadig fler bruker smidige metoder, nemlig at det er kostnadsbesparende og gir mer verdi igjen for en investering.

Det norske smidig miljøet er veldig god på å fremheve og fokusere på de mykere sidene ved smidige metoder, men vi ignorer i veldig stor grad fundamentet for at smidige metoder lykkes. Nemlig de forretningsmessige aspektene ved metoden og hvordan man  i smidige metoder skaper et samspill med den administrative / økonomiske delen av en organisasjon.

Oppsummering

Igjen så må jeg rose arangørene av årets Smidig konferanse, dere leverte virkelig varene i år. Eneste forbedring er at middagen burde vært i et øl telt ute på Youngs-torget!

Essensen i brukergrensesnittsutvikling

Skrevet den September 21, 2009
Kategori utvikling | Skriv en kommentar

null Midt i det som skulle være pappa-permen min så stakk jeg innom JavaZone 2009 for å holde en presentasjon om brukergrensesnittsutvikling. Jeg har lenge tenkt på å holde et foredrag om dette emnet, ettersom det er noe jeg ofte ser behov for i prosjekter jeg har jobbet på. Tradisjonelle Java utviklere sliter veldig med å applisere sine kunnskaper om objekt orientert programmering i utformingen av brukergrensesnitt. Det er essensen i utvikling av grensesnitt, ingen sort-magi eller annen heksekunst. Teknikken med å objekt orientere er The Essence of User Interface Programming.
I tillegg kommer jeg med en hjelpende hånd til utviklere som starter med grensesnittsutvikling, hvor jeg gir noen tips om hvordan de bør forholde seg til noen av de kjente fallgruvene/problemstillingene som kommer opp i grensesnittsutvikling.

Se foredraget The Essence of User Interface Programming og legg gjerne inn din kommentar. Takk til JavaZone for å arrangere en bra konferranse og det er alltid morsomt å delta!

« go backkeep looking »
Better Tag Cloud