Presentation on how to troubleshoot stuff for fun and profit
- troubleshooting, not just debugging
-
toată lumea întreabă colegi, caută pe Google
-
răspuns greșit: Cat Driven Development (anecdotă)
-
întrebare capcană: ca să rezolvi, trebuie să înțelegi
-
odată ce ai înțeles, e ușor să rezolvi
- diferență între realitate și imaginea ta despre realitate
- e.g. crezi că mecanica newtoniană descrie realitatea, și afli că viteza luminii e constantă
(Problemă, nu bug; bugul poate fi foarte simplu, știi imediat ce e de făcut; problema poate apărea chiar în timpul dezvoltării, cînd deodată așteptările tale nu sunt îndeplinite.)
- scientific method
- emiți o ipoteză
- proiectezi un experiment care să confirme sau infirme ipoteza
- rulezi experimentul
- dacă ipoteza a fost infirmată, ai învățat ceva și emiți o nouă ipoteză
- trebuie să ai instrumente de măsură (profiler, debugger, Fiddler, printf etc.)
- pentru troubleshooting în producție, instrumentele trebuie să existe în aplicație
- nu pierde din vedere ce ipoteză investighezi, de unde ai plecat și ce ai aflat pînă acum
- experiența îți spune care ipoteze sunt mai plauzibile
- timebox: dacă în două ore nu ai aflat nimic nou, întoarce-te de unde ai plecat și încearcă altceva