Jonathan is an experienced technology director at Expedia. A former developer who moved into a Tech Lead role about 10 years ago, he has a wide range of experience of managing a variety of teams both onshore and offshore, across a number of industries. He is a Chartered Member of the Chartered Management Institute and a strong advocate of employee engagement initiatives. He recently pioneered and runs the Hotels.com Engineering Leadership Program (HELP). In his spare time he is a keen Open Water Swimmer and competes in an occasional triathlon.
We've probably all been asked to come up with a set of software estimates for a project with very little detail, very little time to do it and plenty of quizzical looks when it's given. Writing software is very rarely like painting a room, where a person can reasonably give an estimate to the nearest day.
Between tech debt, lack of useful documentation and a new requirement never done before, it is very hard for a software team and the lead developer to come up with what the business often wants - an accurate estimate! (if such a thing were possible).
So, what is the solution? Storypointing, MVPs, spikes and an iterative approach all help towards a goal of better software estimation and therefore the success of a project, but the best, single most important element I have seen is the existence of trust between a software team and product owner. On the product owner, that they won't make promises to the business based on estimates and on the software team, that they will give an honest assessment of the work involved and not inflate estimates.
When it works it is a powerful thing and is a million times more effective than the 'them' and 'us' attitudes that exist in some places and that do nobody any good.