February 2011
-
Maximise success
Many processes and organisational controls are set up to minimise failure. They are set up to minimise the number of times a team releases bad software; minimise the number of customer complaints; minimise the server crashes or minimise the failed product launches. What if instead of trying to minimise failure, your organisation focused on maximising…
-
Not my job
Not my job One of my first jobs was as a bartender in a pub. My supervisor, Ted, had what I then thought was a compulsive neatness habit. If he saw a chair was out of place, he would straighten it. If there was an empty glass on the table, he would take it. A…
-
Pay off your debt
Photo from here. In Agile development teams we talk about technical debt. A debt is basically anything you owe the codebase; anything you need to pay back. When you make a decision to ship less-than-pefect code to meet a deadline, the less-than-pefect code is the debt you have to pay back. When a junior programmer…
-
Communication in standups: watch the team, not the speaker
You can gain a lot of insights about people’s mood and reaction to news and disucssions just by watching them. One habit I have picked up is during the daily standup, instead of watching the person speaking, I look around and watch the other members of the team. If I know the speaker is discussing…
-
Software’s worst enemy: consensus
A vote for everybody is a vote for nobody. Photo from here. The best software and products dazzle out of the box. They set new boundaries and exceed expectations. And they don’t settle for less than outstanding. Designing software with lots of stakeholders is complicated, but when the product manager prioritises reaching a compromise between…
-
Focusing on your product vision
In agile we promote working in small iterations, and building just enough to solve your problem today. I try to encourage my team to avoid designing a problem to the very end, but to focus only on what is necessary to solve the first; most basic problem. BUT: focus and iterative execution should not be…