Barcamp Philly 2010 Notes
How to Test Software
- What is the number of people that need to be hit by a truck before your project is unrepairable?
- Eliminate work from constructors.
- “Singletons are globals with a haircut.”
- SQLite has 600 times more test code than functional code.
- Continuous integration requires culture change.
- Builds should not fail – when they do, fixing them is the #1 priority.
- “If you need a monkey, we can hit the zoo.”
Steps to Quality Code
- Gather requirements
- Write tests against requirements
- Now you can write the code
Five W’s or Root Cause Analysis
American car makers refused to ever stop the assembly line. Doing so was a fireable offense. Because of this, even small problems that emerged became very expensive to fix. Toyota changed the game – anyone had the ability to stop the line. When it was stopped, everyone would drop what they were doing and focus on the issue at hand. The line would stop more often, but solving problems happened quicker and cost less.
Pair Programming
- Pairing enables rapid learning.
- Learn practically, not necessarily comprehensively (book learning).
- It’s actually fun.
- Driver + Navigator divide.
- Pairing is hard work – exhausting.
- Mix of work and research, instead of research on personal time.
Zombies In My Workplace
- “Change your organization, or change your organization.”
- Socialize at happy hours, lunches, coffee machine.
- Bitching is fun – people relate.
- Bitching gets old, and isn’t good for your health.
- Do not diverge down the bitching road.
- Code tasting (code review) – smells like legacy code from 1998.
- Don’t ask for permission.
- Weekly book club on a chapter by chapter basis.
- Find ways to inject pair programming.