The Pragmatic Programmer - Chapter 8 Before the project
The requirements kit
- Requirements are learned in a feedback loop
- What user wants vs. how user wants it
- Documents are not for clients but for developers to plan
Solving impossible puzzles
Your conscious brain is aware of the problem, but your conscious brain is really pretty dumb (no offense). So it’s time to give your real brain, that amazing associative neural net that lurks below your consciousness, some space. You’ll be amazed how often the answer will just pop into your head when you deliberately distract yourself.
To put it plainly—people who were distracted did better on a complex problem-solving task than people who put in conscious effort.
Working together
- Build the code, not your ego. It’s not about who’s brightest; we all have our moments, good and bad.
- Start small. Mob with only 4-5 people, or start with just a few pairs, in short sessions.
- Criticize the code, not the person. “Let’s look at this block” sounds much better than “you’re wrong.”
- Listen and try to understand others’ viewpoints. Different isn’t wrong.
- Conduct frequent retrospectives to try and improve for next time.
The essence of agility
Principle of Agile:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What do we do?
- Work out where you are
- Make the smallest meaningful step towards where you want to be
- Evaluate where you end up, and fix anything you broke