Software archaeology for beginners: code, community and culture


Published on

Most open source projects are rightly proud of their communities, long histories (both measured in time and version control), passionate debates and occasional trolling. Newcomers to these communities often face an uphill battle, though. Not just in understanding decision making processes and community standards, but in coming to terms with often complex, contradictory, and poorly documented code bases. This talk will introduce you to the concepts and tools you need to be an expert code, culture, and community archaeologist and quickly become productive and knowledgeable in an unknown or legacy code base.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Software archaeology for beginners: code, community and culture

  1. Software Archaeology  For Beginners Code, Community and Culture
  2. who engineer and operations chap open source chap funny accent (photo by Jennie Rainsford)
  3. other matters author hack-n-slash developer pontification
  4. The LogStash Book
  5. The Docker Book
  6. Who are you?
  7. Why?
  8. Three themes A bit of culture Some things about community Quite a lot about code, documentation and tests
  9. But I thought this talk was just technical? Or ...  Why do I give a crap about culture and community?
  10. Culture
  11. What's culture? Why is culture important?
  12. Read & Listen Patience is a virtue
  13. Community
  14. Communication Use the mechanisms the project use Ask questions Over-share Be polite, be upbeat
  15. Collaboration Earn trust through little steps
  16. But it's broken!
  17. You catch more flies with honey
  18. Code, Documentation and Tests
  19. What is Software Archaeology? The fine art of software dumpster diving
  20. Documentation Visualization Testing & Truth Design & Style Performance
  21. Read all the documentation
  22. Run all the documentation
  23. (Re-)Write documentation
  24. Is there a design?
  25. Draw pictures and write down the story
  26. Build a development environment And yes document it.
  27. Run the tests
  28. Fix the broken tests
  29. You fixed the tests?
  30. What do the tests cover?
  31. #g ts -oe o et cvr PS AS cvrg:97 o saeet oeae .% f ttmns o k gtu.o/ocoddce 044 ihbcmdtlu/okr .4s
  32. Wow do we suck
  33. Write new tests
  34. Tests as documentation
  35. Run Metrics
  36. Metrics reveal Code smells Troubled subsystems All good places to start coding
  37. Style & Linting
  38. #g to vt. o ol e cmad.o57 agsfrpit vr % o wogt omnsg:6: r o rnf eb d f rn egn/tem_etg:6:agepceOtu frp niesrasts.o18 r xetdupt o egn/tem_etg:2:psil fratn dr niesrasts.o28 osbe omtig ie gahrvraf/usts.o39 agcag.idf rpdie/usaf_etg:8: r hneKn gahrvraf/usts.o49 agcag.idf rpdie/usaf_etg:2: r hneKn gahrvrdvaprdvcstg:5 src fed rpdie/empe/eiee.o3: tut il
  39. Profiling
  40. #g to prfaiaipo o ol po p p.rf Wloet prf Frhl,tp 'ep. ecm o po! o ep ye hl' (po)tp0 prf o1 Ttl 22 smls oa: 55 ape 28 1.% 1.% 9 18 18 35 1.%rniempces 4 37 utm.aacs1 28 1.% 2.% 6 06 24 22 8.%mi.idop 14 41 anFnLos 21 99 3.% 5 .% 24 41 1.%sabok 5 79 cnlc 18 70 3.% 7 .% 94 31 1.%hs_net 5 39 ahisr ...
  41. Performance problems are often tied to code smells
  42. So what have we learnt?
  43. Understand all of culture, community and code
  44. Little things can have big impacts
  45. Leave things better than you found them.
  46. Questions?
  47. references Dig - Copyright University of California Santa Cruz 2009 Culture - Copyright Charles Ebereonwu Community - Copyright Storm Crypt Flies and Honey - Copyright Kent Wang Happy Kids - Copyright Lighttruth A Picture is worth a thousand words - Copyright Jessica Hemrick