I assumed that the day would come that I would discuss software project estimates with someone who regarded me suspiciously merely by virtue of seeing me tweet with the hashtag #NoEstimates. Now that a group has begun to congregate around this term, it has become a movement, and consequently I risk my reputation by association.

I leave these articles about #NoEstimates on this blog purely for reference. I do not use the hashtag. I do not belong to "the movement". I believe that, for many projects and people, estimating anything smaller than about 3 months' work is probably a waste of time and energy on average. I'm happy to discuss that with people who want to learn more, but not with people who have just discovered the hashtag and wish to tell me that "no estimates" is stupid. Please read what I've written so far on the topic, and then if you have questions, please ask. All "criticism" will be ignored. All inquiry is welcome. (If you don't understand the reasons for this, then please don't waste your energy nor mine.)

As I have recently written, labels are both horrific and necessary. This label, #NoEstimates, won’t escape the typical problems with labels.

I don’t intend to answer for the comments and actions of other people who’ve rallied around #NoEstimates. I even tweet under the less-threatening hashtag #MehEstimates to try to paint a more accurate picture of my position: if you must produce estimates, then do, but if you think you can get away with not producing estimates, then try, because I think you’d learn some very helpful lessons.

I hope that any reader who views #NoEstimates with skepticism will also view this guilt-by-association with similar skepticism. I depend on it. Even so, if you’ve had a bad experience arguing with a #NoEstimates-ist, then I can’t fault you for undertaking a discussion with me with a certain uneasiness or mistrust. I will try to earn that trust, but I also reserve the right to leave if you decide to withhold that trust unreasonably.

You see, I suppose I am a #NoEstimates-ist, because as a default strategy, knowing nothing else about your environment, I will tend towards recommending against publishing cost estimates for small tasks. I simply haven’t seen enough people derive enough benefit from doing this to believe that it adds value on average. In situations where I think the people involved suffer greatly from dysfunction related to estimates, I will probably push the issue. I find that eminently reasonable and justifiable.

Some people have adopted rather extreme attitudes related to #NoEstimates. I consider that a sign that “the movement” has struck a chord and sparked some interest. People have passionate opinions about estimates. I like that, and I want to foster that. I hope that we’ll temper our passion with respect and compassion for one another. I’ll try. Please try with me.

My own position looks extreme if you tilt your head just so. Judge as you like, but if you intend to engage me in a discussion, please keep a few things in mind:

  • If some other #NoEstimates-ist has wronged you, then I feel bad for you, but I won’t answer for it. I don’t encourage it, I don’t foster it, I didn’t do it.
  • My experience is my experience; your experience is your experience. I will seek to understand you; I hope that you will do the same.
  • Ultimately, I see #NoEstimates as a “pattern interrupt”: an abrupt signal to re-examine some of our fundamental assumptions. I wish the human mind didn’t make such things necessary, I accept that it does.

On those terms, I’m happy to debate, even hotly, with the goal of learning. I invite you to do the same. Maybe we can advance the state of the art of delivering software together. Wouldn’t that be lovely? Hmm?

Epilogue

Seconds after I tweeted about this article, someone who seems like a #NoEstimates person chose to characterize two dissenters as "bullies". This person cited two people with whom I've interacted, and I've had drastically different experiences between them: one civil, one decidedly uncivil. I found common ground with one and turned my back completely on the other. Please don't let your frustration at dissenters become public stereotyping and name-calling. First, please treat individuals as individuals, and not as an inhuman mass. Second, if you must vent your frustration, then please do it in private, or go for a walk, or make yourself a coffee.

Epi-epilogue

Sadly, only a few weeks after writing the Epilogue, the other of those two dissenters started treating me quite harshly in a Twitter exchange and entirely ignored my requests for him to stop. I now consider them bullies and have had to block all contact from them. Sad, really. Even so, they remain people.

References

When I say #NoEstimates, I mean it in the sense that Extreme Programming meant "no documentation". Johanna Rothman recently wrote about this in her article "Is Anyone Using This?". I view task-level estimates (anything below the order of 1-3 months' work) with this kind of skepticism. It also accounts for why we have relatively little useless stuff in our house: we rid ourselves of about 2/3 of our stuff twice in two separate moves about two years apart.