
Tio steg till högre utvecklarproduktivitet
Patrik Fredriksson | PNEHM! #1 2007 | 2007-05-06
Inspirerad av min kollega Tobias Fors blogserie "Men vad kan jag göra?" beslutade jag mig för att dela med mig från min samling av tips för att öka din produktivitet som systemutvecklare. I motsats till herr Fors kan jag dock inte lova 99 punkter, men jag vågar nog lova att jag kommer till tio.
Först kan man förstås fundera lite runt varför det är så viktigt att bli effektivare i sin roll som utvecklare. Varför denna besatthet av produktivitet?
Ja, det är en rimlig fråga, antar jag. Det korta svaret är att om du inte är snabb nog så kommer någon annan snart att göra ditt jobb. Om det blir någon i Indien eller din närmaste granne (eller möjligen både och, om du bor i Indien), spelar inte så stor roll. De allra flesta av oss rör oss i en starkt konkurrensutsatt miljö. Förmågan att snabbt leverera fungerande mjukvara av hög kvalitet är en nyckelegenskap hos en framgångsrik utvecklare. De lättrörliga metoder som fler och fler av oss använder fungerar bäst om vi kan jobba i relativt korta iterationer. En väl avstämd iterationslängd är nyckeln till att balansera önskemålen från beställaren om att kunna påverka och ändra bland kraven, mot önskemålen från utvecklarna att få arbeta i lugn och ro. Dessutom är det kul att vara snabb! Kanske eftersom det inte är helt vanligt 1. Lär känna din problemdomän. Så det första du bör göra när du kommer i kontakt med en ny domän är att lära dig så mycket det bara går om domänen i fråga. Det finns ofta massor med resurser att tillgå, köp en bok, leta artiklar på Internet, se en film etc. Be någon domänexpert i projektet att tipsa om bra källor! Bjud in dig hos de domänexperter du hittar och fråga "Varför?" tills de slänger ut dig från sina rum. Jag lovar att de allra flesta med glädje kommer att avvara tid för att svara på dina frågor, de kommer att uppskatta att "någon från IT" faktiskt är intresserad av vad de gör. När du väl har börjat utforska området och lära dig mer, se till att kontinuerligt hålla dig uppdaterad om vad som händer inom domänen. Du kommer omgående att kunna dra nytta av din nyvunna kunskap. Du kan använda den till exempel för att tillsammans med tekniker som domändriven design utforska domänen ytterligare och skapa kraftfull mjukvara som verkligen adresserar domänens specifika situation. Du kan förenkla kommunikationen med domänexperter och beställare. Du kan också lättare ställa de rätta frågorna i din strävan att maximera affärsnytta. 2. Skaffa den bästa utvecklingsmiljö som finns. Och lär dig använda den. "Ja, men jag programmerar faktiskt i Ruby, och Ruby är världens bästa programmeringsspråk, det är så enkelt, men ändå kraftfullt och bra, att det inte behövs någon utvecklingsmiljö". Jag hävdar att det där helt enkelt inte är sant. Om du är som jag; är kontinuerlig refaktorering en integrerad del i ditt dagliga arbete som utvecklare. Du gör det utan att ens reflektera över det som en aktivitet längre. Att byta namn på en metod utan stöd från utvecklingsmiljön kommer garanterat att dämpa din framfart. I värsta fall kommer det att stoppa dig från att göra det bara för att slippa plågan av en manuell sök/ersätt. Ja, det dynamiska typsystemet i populära språk utgör en utmaning för verktygsleverantörerna. Men det tog många år av mediokra utvecklingsmiljöer för Java innan IntelliJ visade hur man gör. Vi tar det vi kan få. Men se till att lära dig verktyget. "A fool with a tool is still a fool", som det så fint brukar heta. 3. Versionshantera. Genom att kombinera effektiv versionshantering med enhetstester kan du säkert och effektivt utforska alternativa vägar och nya idéer utan att vara rädd att gå vilse. Skaver någon del av koden? Gör en ny gren, testa alternativa vägar. Knåda koden. En framgångsrik refaktorering försäkrar att du kan hålla hög hastighet i ditt utvecklingsarbete även framöver. Ledde förändringen till en försämring? Inga problem, rulla tillbaka förändringarna. Prova igen. Ett system för versionshantering hjälper dig även att bolla flera olika leveranser och fortsatt utveckling. En väl fungerande process för versionshantering garanterar att du aldrig behöver fixa en bug mer än en gång. 4. Lär dig vilka färdiga kodbibliotek och API:er som finns. Använd dem. 5. Bygg med en knapptryckning. Det finns många mer eller mindre bra verktyg för detta. Prova! 6. Google. 7. Lär dig använda kraften i ditt operativsystem. Total Commander för Windows må vara ruskigt fult och småknepigt att lära sig. Men en person som behärskar verktyget hinner göra en nästan osannolik mängd filrelaterade operationer på den tid det tar för dig att starta Utforskaren. På samma sätt kan en van användare av Quicksilver i Mac OS X hinna starta två program, byta låt i iTunes, göra en snabb beräkning, checka ut en fil från Subversion, skicka ett mail, samt boka ett möte i Google Calender innan den genomsnittliga användaren ens lyckats starta Word. Och dessutom göra det med stil. 8. Fokusera. Om du sitter i ett kontorslandskap kan ett par hörlurar kanske fungera. Eller varför inte lämna rummet om du behöver bearbeta ett speciellt utmanande problem. Använd de funktioner som finns i de verktyg du använder för att avskärma dig från e-post och andra program som vill stjäla ditt fokus. Använd fullscreen-läget till exempel. Slå av avisering av nya meddelanden. Det finns även verktyg som specifikt skapats för att hjälpa till med fokusproblemet. Jag skriver detta i ett verktyg som heter WriteRoom, helt fantastiskt. För Windows finns motsvarande funktion i Dark Room. 9. Se till att ha bra hårdvara. Det här kan vara saker som ser dyra ut på pappret (även om det nu för tiden knappast är så längre), men jämför man med vad din tid som utvecklare kostar, ja, då är det en struntsumma. Jobbar du snabbare med mer minne installerat så kommer denna kostnad tjänas in på mycket kort tid. Datorkraft är billigt, hjärnkraft inte fullt lika så. 10. Omge dig med bra kolleger. OK, jag skickar med två bonustips: 11. Sträva alltid efter att lära dig mer. 12. Var utvilad. Efter att ha läst dessa tips kanske du tycker att det här var en lång lista av självklarheter som redan appliceras av alla systemutvecklare. Du använder i alla fall tipsen redan idag! Det är ju utmärkt i så fall. Tipsen är baserade på mina erfarenheter, och dessa säger mig dessutom att alltför ofta saknas viktiga komponenter som skulle kunna öka produktiviteten markant. Jag vet, baserat på erfarenhet, att ju fler delar från denna lista på tips som du applicerar, desto mer produktiv kommer du att bli.
![]()
Ordet PNEHM! bildas av de värdeord Citerus konsulter vill bli förknippade med; prestigelöshet, nyfikenhet, engagemang, helhetssyn och mod. Utropstecknet står för en vilja att agera professionellt i alla lägen.
|
Dragarbrunnsgatan 24 753 20 Uppsala Tel: 018-51 51 13 | Fax: 018-51 51 95 |
Barnhusgatan 16 | 111 23 Stockholm Tel: 08-56 29 53 00 |