SlideShare a Scribd company logo
Ferdig snart?
KJETIL KLAUSSEN – SENTINEL SOFTWARE AS
KRISTIANSUND UTVIKLERFORUM, APRIL 2013
Prime Time


  KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
Ikke forstyr!
OG IKKE LA DEG FORSTYRRE




     KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
Todo:


KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
Start raskere

NOTHING LIKE THE SMELL OF A BROKEN TEST IN THE MORNING




                    KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
Automatiser



  KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
 Beskytt din Prime Time
 Vit hva du skal gjøre
 Kom raskt i gang
 Automatiser det kjedelige



        KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
Vær dyktig

KONTINUERLIG EGENUTVIKLING




      KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
http://www.shelfari.com/kjetilk




 KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
If you really want to do
something, you’ll find a way;
if you don’t, you’ll find an excuse
                                                                  - Frank Banks




            KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM
…and thanks for all the fish
      kjetil.klaussen@gmail.com
                       @kjetilkl
                    kjetilk.com




        KJETIL.KLAUSSEN@GMAIL.COM | @KJETILKL | KJETILK.COM

More Related Content

Viewers also liked

Poland
PolandPoland
UPC and eCommerce
UPC and eCommerceUPC and eCommerce
UPC and eCommerce
Paul Stafford
 
Raspberry Pi (NNUG Februar 2013)
Raspberry Pi (NNUG Februar 2013)Raspberry Pi (NNUG Februar 2013)
Raspberry Pi (NNUG Februar 2013)
Kjetil Klaussen
 
право и мораль
право и моральправо и мораль
право и моральLepercus
 
Strategic Management Practice in Community Sport Lecture 3 070314
Strategic Management Practice in Community Sport Lecture 3 070314Strategic Management Practice in Community Sport Lecture 3 070314
Strategic Management Practice in Community Sport Lecture 3 070314
Halafi01
 
право и мораль
право и моральправо и мораль
право и моральLepercus
 
TDD er død. Lenge leve TDD!
TDD er død. Lenge leve TDD!TDD er død. Lenge leve TDD!
TDD er død. Lenge leve TDD!
Kjetil Klaussen
 
Final INTED 2013 presentation 040313
Final INTED 2013 presentation 040313Final INTED 2013 presentation 040313
Final INTED 2013 presentation 040313
Halafi01
 
Guidelines for marine lifting operations
Guidelines for marine lifting operationsGuidelines for marine lifting operations
Guidelines for marine lifting operations
zombie399
 
Separable phrasal verbs (2)
Separable phrasal verbs (2)Separable phrasal verbs (2)
Separable phrasal verbs (2)
imariabel
 
Optimizarea SEO in 2015
Optimizarea SEO in 2015Optimizarea SEO in 2015
Optimizarea SEO in 2015
Marcel Bagrin
 
Profeta Ezequiel
Profeta EzequielProfeta Ezequiel
Profeta Ezequiel
Amélio Barbosa
 

Viewers also liked (14)

Poland
PolandPoland
Poland
 
UPC and eCommerce
UPC and eCommerceUPC and eCommerce
UPC and eCommerce
 
Raspberry Pi (NNUG Februar 2013)
Raspberry Pi (NNUG Februar 2013)Raspberry Pi (NNUG Februar 2013)
Raspberry Pi (NNUG Februar 2013)
 
Chanel
ChanelChanel
Chanel
 
право и мораль
право и моральправо и мораль
право и мораль
 
Strategic Management Practice in Community Sport Lecture 3 070314
Strategic Management Practice in Community Sport Lecture 3 070314Strategic Management Practice in Community Sport Lecture 3 070314
Strategic Management Practice in Community Sport Lecture 3 070314
 
право и мораль
право и моральправо и мораль
право и мораль
 
TDD er død. Lenge leve TDD!
TDD er død. Lenge leve TDD!TDD er død. Lenge leve TDD!
TDD er død. Lenge leve TDD!
 
Final INTED 2013 presentation 040313
Final INTED 2013 presentation 040313Final INTED 2013 presentation 040313
Final INTED 2013 presentation 040313
 
Guidelines for marine lifting operations
Guidelines for marine lifting operationsGuidelines for marine lifting operations
Guidelines for marine lifting operations
 
Separable phrasal verbs (2)
Separable phrasal verbs (2)Separable phrasal verbs (2)
Separable phrasal verbs (2)
 
Ayon sa katangian
Ayon sa katangianAyon sa katangian
Ayon sa katangian
 
Optimizarea SEO in 2015
Optimizarea SEO in 2015Optimizarea SEO in 2015
Optimizarea SEO in 2015
 
Profeta Ezequiel
Profeta EzequielProfeta Ezequiel
Profeta Ezequiel
 

Recently uploaded

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 

Ferdig snart? (KsuDev)

Editor's Notes

  1. Jeg husker den første jobben jeg hadde som programmerer. Der hadde jeg en sjef som alltid spurte dette spørsmålet; Ferdig snart? Han visste ikke nødvendigs hva vi drev på med, men han spurte alltid det samme spørsmålet; Ferdig snart?Som utviklere sitter vi i en lukket, liten verden som få andre har noe innblikk i og det er ingen andre enn en selv som kan svare på dette spørsmålet. Så da er det også naturlig at man får dette spørsmåletDet enkleste er å faktisk bli ferdig snart. Og det jeg tenkte å ta for meg her i dag er noen triks som jeg har erfart og som fungerer for meg. Med andre ord; ingen garanti for de samme triksene vil hjelpe for deg.
  2. Prime Time er den tida på jobb som du er mest effektiv og mest produktiv. Dette kan variere fra person til person, men for min del er det gjerne starten av dagen.
  3. Jeg har et par småttiser som liker å stå opp ganske tidlig, hvilket betyr at jeg må stå opp ganske tidlig, og dermed er jeg gjerne på jobb ganske tidlig ettersom det er madammen som tar seg levering i barnehage for tiden.
  4. Når jeg kommer på jobb er jeg derfor ofte alene i en times tid og det tar gjerne en halvtime til time før jeg blir forstyrret. Denne tida - når hjernen er fullt uthvilt og kaffen har begynt å virke – er min Prime Time. Da er jeg mest produktiv.Og denne tida prøver jeg å beskytte.
  5. Mye av kommunikasjonen mellom meg og omverden er asynkron – både på jobb og privat; Epost, sms, twitter, lynmeldinger, etc.
  6. Og asynkront betyr at du bestemmer når du skal svare. Man skal ikke forvente et svar med en gang dersom man sender epost eller sms. Hvis man trenger svar med en gang, bruker man synkrone metoder; ring eller skype.
  7. Når du er på ditt mest produktive ønsker du ikke at asynkrone henvendelser skal få deg ut av sonen. Slå av alle notifikasjoner som kan få deg ut av denne modusen. Slå av epost- og twitter-notifikasjoner. Sett status til ‘opptatt’ på lynmeldingstjenesten du bruker. Slå av lyden på telefonen. Lukk deg inne. Har du f.eks. 2 eller 3 skjermer, kan du ha alt av epost, skype, twitter, osv på den sekundære skjermen. Når du virkelig trenger å konsentrere deg, slår du av denne skjermen. Når du bestemmer deg for å ta et avbrekk, slår du på igjen.Det viktige er at det er du som er sjefen over din egen tidsbruk. Sett heller av faste tidspunkter på dagen hvor du svarer på epost og sjekker twitter.
  8. For å vite når man er ferdig, må man vite hva man skal gjøre. En enkel måte å gjøre det på er å sette opp en liste over ting du har tenkt å gjøre.
  9. For eksempel bruker jeg å skrive en liste over ting jeg ønsker å teste når jeg starter med en programmeringsoppgave. Enten det er en ny feature eller en bugfiks, så setter jeg opp de tingene jeg har tenkt å teste som kommentarer i test-klassen. Noen velger å gjøre det samme ved å skrive test-metodene med en Assert.Inconclusive() i metodekroppen, men det synes jeg tar for mye tid. Navngivning er vanskelig og det å ha et bra navn på en test krever tankearbeid. Men i denne fasen ønsker jeg bare å drodle ned det som faller inn av ting som kan være kjekt å teste. Og ofte kommer jeg på mere etter hvert som jeg bare legger til lista. Når jeg har implementert testen, fjerner jeg kommentaren, så når lista er tom er jeg ferdig.
  10. Mer tradisjonelle ToDo-lister kan ha mange former, men et godt tips er å dele den inn i 4 faser: I dag, i morgen, i overmorgen og en eller annen gang i fremtiden. Det 3 første kategoriene er ganske finkornet, dvs typisk 1-4 timers jobbing, mens fremtidige oppgaver er større og gjerne bare noen stikkord. Når man flytter fremtidige oppgaver inn i nær fremtid, brytes oppgavene opp i mindre deler så man vet at man kan få krysset dem av i løpet av en dag.Det er flere viktige momenter med å lage slike lister; For det første sikrer man at når man kommer på noe så det blir det ikke glemt senere. For det andre gir det en varm, god følelse av progresjon å faktisk krysse av eller stryke ut noe man er ferdig med.
  11. Men for at slike lister skal fungere må man ha gode rutiner. Start dagen med å se over oppgavene som er planlagt for i dag og avslutt med å stryke ut alt som er gjort og flytt morgendagens oppgaver til i dag. I tillegg kryss man gjerne av underveis i løpet av dagen også. Det å sette en strek over noe og vite at man er ferdig, gir en god følelse.
  12. Har du todo-lister hjemme også, så gjør det til en rutine og sjekke dem på faste tidspunkter. F.eks. ved frokostbordet, etter middagen og på kvelden. Kommer du på noe du skal ha gjort, legg det inn i lista med en gang så slipper du bli stresset av å måtte huske på det.
  13. Litt av clue’et med å stresse ned er å organisere huskelapper i et system som du stoler på. Men hvis hjernen ikke stoler på systemet, vil den hele tiden prøve å minne deg på det du skulle gjort. Men disse påminnelsene kommer gjerne på tidspunkter hvor du ikke har noen mulighet for å få gjort dem. Så poenget er å ha et system som du har tilgjengelig når du faktisk kan få gjort noe med dem.I tillegg kan det være lurt å kategorisere eller tag’e oppgavene med den konteksten du må være i for å få utført dem; For eksempel ved pc’en, hjemme, eller på butikken.
  14. Disse bøkene av David Allen beskriver en metodikk som han har kalt Getting Things Done – eller GTD – og her er det masse slike gode tips og ikke minst forklaringer på hvorfor slike lister faktisk fungerer. Og det er også mange tips til hvordan man skal få inn gode rutiner som hjernen stoler på.
  15. Verktøy er selvfølgelig viktig for å få organisert todo-listene og det finnes en uendelig mengde digitale verktøy og apps for ToDo-lister. Personlig driver jeg og tester ut en del ulike apps, men har ikke funnet en jeg er helt fornøyd med ennå. Problemet er hovedsakelig at jeg synes det er knotete å legge inn oppgaver på mobilen, men det er vel en vanesak vil jeg tro.
  16. På jobb har jeg alltid penn og papir foran meg. Ulempen er naturligvis at det ikke er like enkelt å reorganisere oppgaver og at man ikke alltid har dem tilgjengelig, for eksempel når jeg er ute og reiser eller sitter hjemme og jobber. Men fordelen er at det går kjapt å skrive ned det man kommer på og det tar ikke opp noe skjermplass.
  17. I tillegg har jeg en slik kort-holder med notisbok. Jeg bruker en slik for å ha oversikt over ting jeg skal gjøre til daglig; Innkjøp, telefoner jeg må ta, etc
  18. Et alternativ til lister er å bruke kanban. Kanban kommer fra produksjonsmetodikken til Toyota og er en såkalt Lean arbeidsmetodikk. Jeg skal ikke gå inn i detalj på kanban her i dag, men et av hovedpoengene med kanban er å få en enkel, visuell visning av status på oppgaver. Så i stedet for en flat liste sortert på dato eller kategori eller status eller lignende, så er her status visualisert ved hjelp av kolonner. Dermed ser man ganske lett hvilke oppgaver som er planlagt, hvor mange man jobber med akkurat nå, og hvor mange man er ferdig med. Akkurat hvor mange kolonner og hva de skal hete er opp til en selv, men typisk har man i alle fall har en for planlagte, en for work in progess og en for ferdig.
  19. Litt av utfordringen med en kanban er at det fungerer aller best med en visuell, fysisk tavle hvor man faktisk flytter kanban-kortene bortover kolonnene. Dermed er det ikke like enkelt å gjøre dem bærbare, men en teknikk som jeg har sett vært brukt er å ha ei mappe med tilsvarende kolonner som på tavla og rett og slett bare plukke med seg de lappene man trenger fra tavla og ned i mappa.
  20. For å komme raskt i gang om morgenen liker jeg å ha en feilende test som ligger og venter på meg. Når jeg kommer på jobb kjøres alle testene, hvis det dukker opp en rød test går jeg til den og da er jeg i gang med å kode i løpet av noen få minutter. Dermed er oppstartstiden min veldig kort; Den består i hovedsak i å vekke pc’en, starte visual studio, åpne solution, hente en kopp kaffe, og når jeg kommer tilbake har NCrunch kjørt test-suiten og vist meg hvor jeg skal starte opp.
  21. Denne teknikken funker for andre oppgaver også. Hvis man vet man skal gjøre noe neste dag og ikke rekker å få gjort det i dag, så start på oppgaven og ha den liggende til neste dag. For eksempel om det er en epost man skal sende eller et dokument man skal skrive, kan man opprette eposten eller dokumentet, fylle inn noen stikkord og lagre den som en kladd. I løpet av tiden fram til neste morgen vil underbevisstheten jobbe med kladden i bakgrunnen og man vil ha flere momenter å fylle inn med neste morgen.
  22. Sentinel Software som jeg jobber hos har levert inn en søknad til Skattefunn. Blant annet ble det søkt om refusjon for en del jobb som ble gjort i 2012 hvilket for oss utviklere betød at alle timene vi hadde ført i Target Process måtte overføres til et regneark som skulle sendes med søknaden til Skattefunn. Høres ut som en morsom oppgave? Nei, ikke akkurat. Nå fikk jeg dratt ut alle timene jeg hadde ført i ei tekstfil med ei rad for hver timeføring. Men fortsatt var det ganske mye jobb som gjenstod for å få mappet opp alle timeføringene fra csv-fila til Excel-arket som skulle sendes inn. Så jeg satt der og klaget min nød til min kollega om hvor håpløst dette var og hvor lang tid jeg kom til å sitte å tjone med dette. Og da kommer det; «Dette er enkelt i perl». Dessverre kan ikke jeg Perl og ikke har jeg prioritert å lære meg noe annet script-språk heller, men heldigvis tok kollegaen min på seg jobben. Så i stedet for at jeg måtte sitte og bruke 2-3 dager på å få ført de fordømte timene for hånd, så brukte han 2-3 timer på å lage et perl script som tok inn csv-fila jeg hadde og spyttet ut timer på et format som gjorde at jeg kunne bare copy-paste inn i excel-arket. Så vi brukte da til sammen 4-5 timer på en jobb som jeg lett hadde kommet til å bruke 2-3 dager på alene. Og ikke bare det; timene for 4 andre måtte også inn i samme excel-arket. Så vi sparte da minst ei ukes dritkjedelig jobb på et en halvdag.Så clue’et her er å bruke automatisering for alt det er hvert. Husk at vi er utviklere! Det er dette vi skal kunne; Forvandle dritkjedelig, manuelle, repetitive oppgaver til et knappetrykk.
  23. Og det finnes masse verktøy vi kan bruke. Av mer høy-nivå, makro verktøy på Windows-plattformen har vi for eksempel AutoIt og AutoHotKey. Her kan man scriptet museklikk, åpning av programmer, inntasting av tekst, copy/paste, osv.I visual studio har vi snippets to T4 templates. Eller hvis man har ReSharper har man tilsvarende som heter live og file templates. Alt dette er verktøy som kan autogenere masse kode eller kode-snutter som vi driver og gjentar og gjentar. Jeg antar at dere har hørt om DRY-prinsippet? Don’tRepeatYourself? Det er ment for koden i seg selv – ikke dupliser kode unødvendig – men det kan like gjerne gjelde for kodingen også. Og hvis man ikke har verktøy, så kan man gjøre som kollegaen min gjorde; lage dem selv. Jeg kunne nok sikkert gjort noe tilsvarende som det han gjorde i Perl i C# også, men script-språk som Perl, Ruby, PowerShell og Python er langt bedre egnet til slike typer oppgaver.
  24. Jeg antar at dere har hørt om DRY-prinsippet? Don’tRepeatYourself? Det er ment for koden i seg selv – ikke dupliser kode unødvendig – men det kan like gjerne gjelde for kodingen også.
  25. Så langt har jeg fortalt dere om det å beskytte prime time’en din, det å ha en enkel todo-liste, om det å komme raskt i gang på og om det å automatisere kjedelige oppgaver.Det siste tipset jeg har til dere er dette;
  26. En dyktig programmerer vil alltid være mer effektiv og ha høyere leveransehastighet over tid enn en middelmådig programmerer.
  27. Så hva gjør jeg for å bli bedre? Jeg bruker ganske mye tid på å lese hva andre og langt dyktigere programmerer har erfart før meg. Det finnes fantastisk mye bra faglitteratur i dag og disse bøkene er uendelig mye bedre enn de tørre, kjipe bøkene dere måtte lese på skolen. Her er noen av de bøkene jeg har lest og hvis dere går inn på ‘shelfari.com/kjetilk’ så kan dere se resten av dem samt hvilke bøker jeg har leser nå og hvilke jeg har tenkt å lese. Dersom dere har lest noen gode bøker vil jeg gjerne ha tips til dem, så lag gjerne en liste her dere også og send meg linken eller friend meg på shelfari.I tillegg leser jeg en del blogger og følger med på twitter, i tillegg til at jeg blogger og twitrer litt selv.
  28. Men man trenger ikke å lese for å lære noe nytt og nyttig. Det finnes ganske mange gode, programmeringsrelaterte podcaster. Her er noen av dem og disse hører jeg gjerne på når jeg har dødtid hvor jeg ikke har hendene fri. Typisk når jeg sykler eller går til jobb, eller er ute og kjører, eller reiser. Eller når jeg trener. Det ser kanskje ikke sånn ut, men jeg faktisk begynt å trene – mest fordi jeg måtte på grunn en kranglete rygg – og da passer det ypperlig med en podcast på øre.
  29. Eller en screencastslashcodecast. Ettersom jeg sitter på en romaskin så har jeg selvfølgelig satt opp en pc som jeg kan bruke til å både se screencasts og høre podcasts. For det meste går det i TekPub og Pluralsight for min del, men som dere ser så er det mye å velge i her også.
  30. Men det viktige er å prioritere tid til egenlæring. Ikke sitt og håp på at arbeidsgiver skal legge alt til rette for deg og bruke arbeidstid på å lese bøker, ta kurs osv. Det kan godt hende dere er heldige og får mye kurs og tid til egenlæring i arbeidstiden også, men husk at det er ditt hodet og det er ditt ansvar å gjøre det bedre. Drit i TV’en, les ei bok!