- Care about your craft
- Think! About your work
- Provide options, no excuses
- Don't live with broken windows
- Be a catalyst for change
- Remember the big picture
- Make quality a requirements issue
- Invest regularly in your knowledge
- Critically analyze what you read and hear
- It's both what you say and how you say it
Thinking
What
Interest
Sophistication
Detail
Own
Motivation
- Know what you want to say
- Know your audience
- Choose your moment
- Choose a style
- Make it look good
- Involve the audience
- Be a listener
- Respond
Tackling
- DRY - Don't Repeat Yourself
- Make it easy to reuse
- Eliminate effects between unrelated objects
- There are no final decisions
- Use tracer bullets to find the target
- Prototype to learn
- Program close to the problem domain
- Estimate to avoid surprises
- Iterate the schedule with the code
Tools
- Keep knowledge in plain text
- Use command shells
- Use a single editor well
- Always use source control management software
- Fix the problem not the blame
- Don't panic
- Take the signs for what they are
- Don't assume it - Prove it
- Learn a text manipulation language
- Debugging steps
- Are you seeing a symptom, or the root cause?
- Write down the problem as in an email to a co-worker
- If we see problems and the tests are passing, then are the tests complete?
- Where else does this problem exist, or need to be checked?