Vasco Duarte suggests that people should experiment with #NoEstimates to learn and find ways in which it can help them to deliver value on time and under budget. He is writing a book on #NoEstimates in which he explains why estimation does not work and how you can use #NoEstimates to manage projects.
InfoQ interviewed Vasco and asked him to share his view on #NoEstimates and how people can make decisions in projects that deploy #NoEstimates. InfoQ also asked why people resist to #NoEstimates and how to deal with that. Vasco also explained how he found and got started with #NoEstimates.
InfoQ: Can you briefly share your view on #NoEstimates?
Duarte: Certainly. Many years ago, around 1999/2000, I was stuck in projects that, although they were mostly on time, they were painful to manage. We had difficult meetings, people were burn-out, we were constantly struggling to meet our deadlines, and near the end we were fighting the bugs to try to release the projects on time. In short, I knew there was a better way, and started experimenting to find that better way.
At first we started by experimenting with the requirements process. We worked with Vision document and Use Cases only, instead of the traditional requirements. To my surprise, and delight, the teams were happier, the projects delivered better results (more value), and it was much easier to make the tough decisions of what to remove from the scope, to be able to meet our deadlines. Meeting the deadlines was still a struggle, however.
The next step for us was very clear. Instead of estimating our Use Cases, we started managing them to meet certain internal deadlines. We had constant scope meetings, we tested much earlier, we invested in test automation and stopped estimating all together, we were just delivering value, in small increments and measuring our delivery velocity. Today we call this Agile - except we didn’t use estimates at all. So, even before I knew about Agile, we were practicing something that is close to what we today call Scrum, without estimates. For me, #NoEstimates is about just that: deliver value, on time - and under budget.
Infoq: Can you explain how you managed your Use Cases to deliver in small increments?
Duarte: This is a great question: how can we deliver incrementally, even when it does not seem easy to do so? In fact, this is such an important question that I’ve started working on a guide to help the readers of my #NoEstimates book to do just that: find, in any user story or use case, a way to deliver that functionality incrementally.
What we did at that time was to constantly, and thoroughly review each Use Case with one question in mind: what can we leave off and still deliver value? We reviewed each Precondition, Actor, Guarantee, Scenario, etc. and asked: can we leave this off and still have value delivered? What made it easier (after many iterations) was to define a very clear priority for Actors (who to serve first, second, etc.) and to introduce the concept of the Demo, which we took into use when we adopted Scrum. One important point is that, thanks to Agile Software Development adoption the process of delivering incrementally has been made much easier.
InfoQ: Many people will argue that without an estimate we can’t really compare options and make decisions in projects. How can you make decisions in projects with #NoEstimates?
Duarte: There are many types of decisions that are made in projects, every day. The type of decisions that benefit the most from #NoEstimates are the ones that have to do with existing constraints that are beyond the control of the project. In my early use of #NoEstimates we had a very concrete schedule constraint. The market we were selling our products in was not flexible at all regarding deadlines. We worked on consumer software products, and our biggest selling window was Christmas. There’s no way that date will change, no matter how good your arguments are. We did not have the luxury of being late. Not even a few days.
For me #NoEstimates delivers especially in these situations, where time is non-negotiable. In order to meet this kind of deadlines we need to make 100’s or even 1000’s of decisions in a project. Without a clear and verifiable source of data to guide our decisions we would fail at meeting our Christmas deadlines. Estimates are neither clear nor verifiable (at least not until it is too late). Estimates are affected by all kinds of internal politics, and normal biases that affect our judgement. Before we started using #NoEstimates, the company where I worked had a track record of 62% average project delay, that’s 62 days over schedule for every 100 day project. Simply unacceptable. With #NoEstimates we went down to a perfect track record of being on time because we were not estimating, but rather making decisions based on existing progress data that is available in any project.
InfoQ: Which progress data did you use, and how did you use it?
Duarte: For us, progress was Use Cases (and later Features or User Stories) delivered to a production-like environment. In fact, this is critical. If we finalize the development of a Use Case but don’t deploy it, then we will find problems later on. Maybe they will be integration problems, or quality problems, or other types of problems, so it is critical that the progress be measured as Running Tested Stories (the term I currently use in my own work), i.e. Stories that are developed, tested, and running in a production-like environment.
This progress data informs our decisions by providing constantly (weekly or even daily in some projects) up-to-date information about what is completed, and what is left to be done.
By looking at this progress data, and forecasting the future based on this data we are constantly updating the timeline for the project with little or no cost, no need for long and boring estimation meetings when you collect progress data such as this.
InfoQ: I see people that resist to #NoEstimates. Do you know why this is happening? Any suggestions how people can deal with it?
Duarte: People in general resist any ideas that threaten their beliefs or makes them feel outside their comfort zone. For me it was the same, the only reason why I discovered #NoEstimates in my practice was that I had no choice. Estimation does not work if what you want is to be on time and under budget. There’s plenty of data out there to corroborate that, and even some funny laws created around this realization. My favourite: Hofstaedter’s Law, which goes like "It will always take more time than you think, even if you take into account Hofstaedter’s Law!" :)
InfoQ: Can you recommend some resources if people want to learn more about #NoEstimates?
Duarte: There are many people right now speaking, and writing about NoEstimates. The easiest is to go to YouTube and search for "NoEstimates", many videos will come up that will help you learn more about what #NoEstimates is all about. I’ve started writing a book on the topic as well, in which I try to help people that are already stuck in projects that are failing, and explain how they can turn those projects around with the help of #NoEstimates. The book is available for free (for a limited time) at NoEstimatesBook.com.
InfoQ: Do you think that any further developments are needed before #NoEstimates can be used?
Duarte: Yes, everyone should experiment and find the way in which #NoEstimates can help them. There isn’t a single, universal definition for #NoEstimates, and I would expect the ideas to be incorporated by other methods, such as Scrum, Kanban, etc. What is important to me is that people experiment with the ideas, learn and share their insights. We are still at the start of the journey with #NoEstimates.
InfoQ: Where do you think that #NoEstimates will go, what will the future bring us?
Duarte: #NoEstimates is a conversation, started by a hashtag on twitter, that our industry needs to have. I get emails every week from people discovering these ideas and being excited about the possibility of finally having a thinking model that helps them deliver their projects on time, and without burning out on overtime and bad pizzas. We deserve a good quality of life in the software industry, that’s what led me to discover #NoEstimates. The knowledge is out there, there’s no way to hide it anymore. Now everyone can use it and benefit from it.