- Someone estimates the project as 3 months.
- A team breaks down the work and adds up the estimates. It becomes 6 months. (If you break work down and add it up, the estimate will always grow).
- Some things get de-scoped. Some estimates get squeezed. They arrive back at the 3 month estimate, and senior stakeholders are appeased.
- Work begins, and in the early days it becomes clear that things are slipping. Badly. But the PM (yes we're probably talking about a non-Agile environment) sits on this information rather than put the cat among the pigeons - after all it's early days, we might be fine.
- The three month deadline approaches, and the PM goes cap in hand to the stakeholders and makes a poorly thought through request for one more month.
- Two months later the team is exhausted and miserable, and the backlog is still groaning with work (including the performance testing - everyone agrees we really should get going on that).
- The PM is secretly angry with the team - how can they have taken so long? Why is it always like this?
- The stakeholders are angry with the team - they put money and reputation on this project, and these developers are obviously not up to the job. More developers are dragged (possibly literally) to join the team.
- The developers are all talking about leaving (except the guy who isn't very good).
- The system is now complex and buggy, and more worryingly, it's laughably far from the performance targets they set at the start. How can it take 20 seconds to return a page?
- At 6 months, a senior architect or tech lead is parachuted in. The PM is changed. More and more money is sunk into the project. It can't fail now, otherwise everyone's wasted half a year and a scary amount of money. More importantly, the stakeholders will look like fools.
- The project limps out the door at 9 months, performing poorly and riddled with bugs.
- The business decides they need more rigid and formal processes to stop this happening again.
Tuesday, 17 May 2016
The Shit Nightclub antipattern
Thursday, 15 October 2015
Nuance and momentum
Is Eliminating Cross Team Handoffs Possible?
- No communication overhead. Everyone knows exactly what's going on, and everyone is working from the same assumptions.
- Focus. There's no way you're going to be able to juggle 5 projects at the same time like bigger teams are often expected to do.
- A sense that you really are a team, and that you own this deliverable end to end. This is the same reason that startups are such exciting and dynamic places to work, and often take the market by storm.
- You wake up and feel motivated to come to work! It's fun. And when people have fun doing their jobs, all sorts of virtuous cycles develop. Talented people want to come and work for you. People feel inspired to come up with genuinely new and exciting ideas.
- Everyone in that small group is forced to understand all the domains end to end, which were previously kept separate. And when people understand things end to end, your quality shoots up because there are no unexpected implications from decisions made in isolation; there are no lost opportunities ("if I'd known that was something we'd want to do, I'd have built it differently!")
- The team can be autonomous. No more waiting. No more chopping and changing at the whim of far-removed senior management or marketing teams. With clear goals, and empowerment, it's pretty amazing what three people can achieve.
The Vicious Cycle of Support
Death By a Thousand Incomplete Refactorings
Some conscientious members of the team ask when we'll move on to the next phase of refactoring. Tumble weeds drift across the office floor. Strangely, no one fancies descending back into that dark chapter of their lives.
The final solution, once all functionality had been refactored, meant the switching off of the old system:
However, what the Make It Shiny Again project actually achieved was this:
1 See Martin Fowler's TechnicalDebtQuadrant↩
Thursday, 8 May 2014
Bend Over Backwards. Now Stay There.
High staff turnover is a bad thing. Pretty much everyone would agree on that - especially for a development team where knowledge of the system is essential.
In fact surely keeping staff happy - retaining the best talent - is a priority for all managers.
But when the pressure's on, IT managers will end up cascading the misery to their team for the simple reason that all managers are primarily judged on and therefore incentivised by meeting project deadlines.
Meeting deadlines means meeting budgets and delivering ROI. In other words, it means making money - and this is the only priority of any company anywhere regardless of what their website says about CSR, diversity or people development. Money is all they care about - make no mistake.
So what does this mean for you as a developer? It means that the only person you can rely on to look out for you is yourself. If you regularly bend over backwards to meet deadlines then that becomes the norm. If you join the Working Late Gang, you give them strength in numbers - it becomes the culture. The unrealistic expectations, the flawed process, the poor planning - all of it is hidden or condoned by you picking up the strain and making it happen.
Stop.
Thursday, 27 February 2014
Lazy developers?
The problem, in a nutshell, is that people don't believe that the developers have thought "creatively" enough about how to meet the deadline; on some level they're trying to give themselves an easy ride.
- "I'd need to consult with Pete, it's not my remit to say whether or not we can add more people to that."
- "It'd be best if we didn't distract Pete right now to ask him for estimates on this. He's maxed out."
- "The team as a whole has had 5 distractions this sprint already, and that's our stipulated maximum, sorry."
- "No, Pete said 10 days. He might turn out to be wrong because it's just an estimate, but he's the most qualified person to provide that estimate and we have to go with that."
- "No we can't commit to that date. We don't know if it's achievable or not. But we can commit to delivering the stuff you said was highest value first, and involving you all the way."
- "We could try and achieve that, but the team's been flat out on this stuff for months, and are having a pretty tough time. We need to try and find a sustainable pace for everyone's sanity."




