Individual craftsmanship has a place even in an engineering discipline. “We who cut mere stones must always be envisioning cathedrals”
- Care about your craft
- Think about your work
- You have agency
- Provide options, not excuses
- Don’t live with broken windows
- Survey your project with your team. Choose 2-3 broken windows and discuss the problems and what could be done to fix them
- Be a catalyst for change (like the soldiers with the stone soup)
- Remember the big picture
- Make sure you are making the change for the good of others, and not boiling the fabled frog.
- Make quality a requirements issue
- Would your users rather use software with rough edges today, than “perfect” software next year?
- Invest regularly in your knowledge portfolio
- Learn one new language every year
- Read a technical book each month (read non-technical too)
- Apply the same financial investing principles to your knowledge investments. Diversification, market timing, etc.
- Critically analyze what you read and hear
- English is just another programming language.
- It’s both what you say and the way you say it
- Build documentation in, don’t bolt it on
- Comment about the WHY, code already describes the how
- Good design is easier to change than bad design
- Don’t repeat yourself
- Make it easy to re-use
- Eliminate effects between unrelated things
- There are no final decisions
- Forgo following fads
- Use tracer bullets to find the target
- Prototype to learn
- Program close to the problem domain