kunskapsbaren 2011 linköping - koda om eller koda nytt?

18
LINKÖPING 12 MAJ, 2011

Upload: hiqinternational

Post on 13-Dec-2014

310 views

Category:

Documents


4 download

DESCRIPTION

Michael Lundkvists och Mattias Borgströms presentation från Kunskapsbaren 2011 i Linköping den 12 maj. Ämnet var "Koda om eller koda nytt?".

TRANSCRIPT

LINKÖPING12 MAJ, 2011

Vägen framåt...

Analys Medel Mål

Hur blev det så här?

• Prototyper som får liv• Time to market är viktigt, så vi har ofta bråttom

• Flyttskadad kod• Ibland måste man ta över saker som andra gjort

• Kod som åldras – sällan med värdighet• Om du inte alltid sköter om din kod så blir den dålig

4

Identifiera dålig kod

• Vi kan inte fixa allt• Se till att fixa det värsta först

• Var uppmärksam på tecken på dålig kod• Höga estimat för att införa ny funktionalitet• Leta efter områden med hög komplexitet• Lyssna på vad utvecklarna säger om koden• Titta på felrapporter

5

Analys av felrapporter

• Felrapporter kan användas till mycket mer än att lösa ett specifikt problem

• Hur många fel har vi? • Vad är det för sorts fel vi har?

• I vilken fas uppstod felet?• I vilket område har vi felen?• Att försöka hålla en övergripande koll på alla

felrapporter är nyttigt

6

Miljö

• Utan fungerande verktyg kan ingen jobba• Börja med att se till att förutsättningarna finns

• Byggmiljö• Varje bygge måste lyckas• Byggtiderna måste vara korta

• Versionshanteringssystem• Analysverktyg• Felrapportering

• Tänk på både intern och extern användning

7

Att lära sig produkten

• Det är OK att läsa kod• Funktionstester säger ofta mer om produkten än

designdokumentation• Ibland är det svårt att identifiera rätt väg framåt

• Gör prototyper för att lära sig mer• Dela upp produkten i bitar och håll en seminareserie

• Kan kombineras med ett modulansvar

8

Kodgranskningar

• Kodgranskning kan ske på flera nivåer• Parprogrammering• Kompisgranskning• Expertgruppsgranskning

• I en produkt full av dåliga exempel är ett viktigt syfte att styra kulturen

• Se till att bra exempel sprids

9

Skriva om eller rätta till?

• I början är det lätt att vilja skriva om all dålig kod• Om man inte förstår koden, hur kan man skriva om

den?• Hitta områden med stora skillnader i komplexitet mellan

problemet och lösningen• 10000 rader för att flytta filer mellan två datorer

• Se till att du inte tappar någon funktionalitet• Om koden är dålig så är säkert testerna dåliga

10

Funktionstester

• Bra funktionstester är utmärkt stöd vid omimplementering

• Automatisera funktionstesterna• Regressionstester kan snabbt hitta problem

• Se till att du testar rätt saker• Använd rätt villkor för pass/fail

11

Unittester

• Unittesta gammal kod är sällan vettigt• Detta får inte spilla över till ny kod

• Bra designade unittester hjälper till vid refactoring• Det är dock lätt att göra fel

12

Förändra gammal eller ärvd kod (eng. Legacy)

• Leta efter förändringsställen• Hitta testpunkter• Bryt isär beroenden• Skriv tester• Förändra

13

Vägen framåt...

Analys Medel Mål

Kultur

• Hålla motivationen uppe• Jobba för små segrar

• Bryta dåliga designmönster• En organisation med god smak

• Scoutregeln• Lämna alltid koden lite bättre än när du fick den

15

Mod, tillit, förtroende och ansvar

• Mod hos organisationen• Tillit från kunden och användaren• Förtroende för individen• Ansvar hos utvecklaren

16

Litteraturtips

• Working Effectively with Legacy CodeMichael C. FeathersPrentice Hall 2005, ISBN 0-13-117705-2

• Kod, mer kod och lite till…

17

THANK YOU!