Kunskapsbaren 2011 Linköping - Koda om eller koda nytt?HiQInternationalMichael Lundkvists och Mattias Borgströms presentation från Kunskapsbaren 2011 i Linköping den 12 maj. Ämnet var "Koda om eller koda nytt?".
Javaforum coinSqueedVilka problem har man historiskt sett haft med att kompilera dynamiska språk till Java bytekod? Vad fanns för work-arounds? Vilka andra roliga saker kan man göra själv med Invokedynamic?
Även om du bara har en vag bild på vad en bytekod överhuvudtaget är och varför du skall bry dig om en ny sådan så är det här en presentation som kommer att fördjupa din förståelse av Java på riktigt låg nivå.
Fel, fel, fel!Agila SverigeVad är ett fel? Hur uppstår fel? Vad gör ett fel mer allvarligt än ett annat? Är fel ounvikliga? Vad tusan är en "bugg"? Hur väl man lyckas med sin mjukvara handlar mycket om vilken attityd man har till fel. I max 10 minuter tittar vi på fel, fel attityder till fel och fokus på fel och rätt typ av fel.
Talare är Joakim Ohlrogge från Agical AB
Sverige kan bli världsledande på digital designinUseFöreläsning på Offentliga Rummet 2011 - se http://www.offentligarummet.se/plenartalare/jonassoderstrom.4.5977b2391296cc4d0c7800019690.html
De tre vanligaste missarna när man väljer standardsysteminUsePresentationen från inUse frukostseminarium om att välja rätt standardsystem som hölls i september i Stockholm, Göteborg och Malmö.
Affärssystem: Eget vs. standard Alex ErikssonDet eviga dilemma som företagen ställs när man skall besluta om införande av ett nytt affärssystem så är det om man skall köpa ett “standard system” eller om man skall utveckla ett “eget” från scratch? Vilka är utmaningar för respektive typ?
Kreativa processer lektion 5 2011Patrik Åkerman von KnorringFöreläsning 5 av utbildningen i Kreativa Processer för Nackademins studenter på Interaktionsdesigner programmet. Vi går igenom olika verktyg, agil design, överlämning mellan design till teknik
Fel, fel, fel!Agila SverigeVad är ett fel? Hur uppstår fel? Vad gör ett fel mer allvarligt än ett annat? Är fel ounvikliga? Vad tusan är en "bugg"? Hur väl man lyckas med sin mjukvara handlar mycket om vilken attityd man har till fel. I max 10 minuter tittar vi på fel, fel attityder till fel och fokus på fel och rätt typ av fel.
Talare är Joakim Ohlrogge från Agical AB
Sverige kan bli världsledande på digital designinUseFöreläsning på Offentliga Rummet 2011 - se http://www.offentligarummet.se/plenartalare/jonassoderstrom.4.5977b2391296cc4d0c7800019690.html
De tre vanligaste missarna när man väljer standardsysteminUsePresentationen från inUse frukostseminarium om att välja rätt standardsystem som hölls i september i Stockholm, Göteborg och Malmö.
Affärssystem: Eget vs. standard Alex ErikssonDet eviga dilemma som företagen ställs när man skall besluta om införande av ett nytt affärssystem så är det om man skall köpa ett “standard system” eller om man skall utveckla ett “eget” från scratch? Vilka är utmaningar för respektive typ?
Kreativa processer lektion 5 2011Patrik Åkerman von KnorringFöreläsning 5 av utbildningen i Kreativa Processer för Nackademins studenter på Interaktionsdesigner programmet. Vi går igenom olika verktyg, agil design, överlämning mellan design till teknik
6. Dyraste buggen
Den som produktionssätts
och hittas av slutanvändaren
HP: 100 gånger dyrare att laga bugg
efter release än vid granskning
– exklusive badwill!
Källa: Frank W. Blakely and Mark E. Boles. "A Case Study of Code Inspections"
Hewlett-Packard Journal, Oct. 1991
Mattias Jiderhamn
7. Exempel
10 utvecklare - 3 månader - 10 000 LOC
Buggar rättade under 6 månader
Antal Kostnad
431 st
174 000 USD
269 st 120 000 USD
Utan granskning / Med granskning Utan granskning / Med granskning
Fler designfel identifierades
Mattias Jiderhamn
8. Fungerar det?
AT&T, 200 personer
• 90% minskning av buggar
• 14% ökad produktivitet
Aetna
• 82% av felen hittades
• 20% lägre kostnad
Källa: Code Complete, Steve McConnell
Mattias Jiderhamn
9. Fungerar det?
Samma grupp utvecklare
• 5 program utan granskning: 4,5 fel / 100 LOC
• 6 program med granskning: 0,82 fel / 100 LOC
• Över 80% av felen eliminerades
Förvaltnings-organisation
• 55% av enrads-ändringar var fel
• Med granskning: 2%
Källa: Code Complete, Steve McConnell
Mattias Jiderhamn
10. ղö?
Hitta buggar tidigt
Spara tid
Spara pengar
+ Du blir en bättre utvecklare!
Mattias Jiderhamn
11. Självklart…?
• Jämför korrekturläsa böcker
• Fortsätt samarbeta efter krav och design!
• För jobbigt / för tråkigt?
It’s a dirty job
but someone’s
gotta do it
Mattias Jiderhamn
12. vs TDD
• Enhetstester 25%
• Granskning 55-60%, uppåt 80-90%
Fyller olika syften:
• Granskning minskar buggar etc i ny kod
• TDD/JUnit minskar regressionsbuggar
• Tester minskar konceptuella buggar
Alla tre behövs!
Mattias Jiderhamn
14. Positiva bieffekter
• Vetskapen att (eventuellt) bli granskad och
förberedelsen leder i sig till bättre kod
• Kunskapsöverföring - åt båda hållen
Du blir en bättre utvecklare av
att granska och granskas
Mattias Jiderhamn
15. När granska?
• Efter lyckad kompilering…
• Efter ev statisk kodanalys
• Före eller efter incheckning/merge?
• Före eller efter manuell testning + debug?
• Granska testfall före implementation?
Mattias Jiderhamn
16. Metrics
• LOC = Antal rader granskad kod
• Tid = Tid för granskning
• Antal defekter
• Hastighet:
LOC / h
Defekter / h
• Densitet: defekter / LOC
Använd ej för utvärdering av utvecklare
Mattias Jiderhamn
17. Hur granska?
Experterna säger
• Max 200 – 400 LOC / tillfälle
• Hastighet: 300 – 500 LOC / h
• Max 1 h / dag
Slutsats: Mer tid = fler buggar funna
Checklista
• Dokumentation, enhetstester, parameter-
kontroll, trådsäkerhet, prestanda, …
Mattias Jiderhamn
18. Hur börja?
• Frivilligt vid behov?
• Obligatoriskt i viss kod?
• Stickprov?
Mattias Jiderhamn
19. Hur vi började
CVS query
E-post
Word
Verktyg
Demo!
Mattias Jiderhamn
20. Mattias råd
• Preskribera all gammal kod när du börjar
• Ta fram en gemensam coding convention
• Jämföra med spec eller ej?
• Pre-checkin / pre merge
• Granska testfall, ev före implementation
• Anpassa kommentarerna till nivån hos kodaren
• Utmaning: Lagom portioner
• Utmaning: Refaktoreringar
• Fokusera på en bra slutprodukt!
Mattias Jiderhamn
21. Personlighetstyper
• Diktatorn
• Mobbaren
• Politikern
• ”Maskaren”/”Mjölkaren”
• Vilde Bill
• Smugglaren
• Curling-barnet
• Den frälse
• Dumparen
• Den orättvisa
Mattias Jiderhamn