In Why Agile Estimates Don't Work - Part 1 I've explained why estimates don't work if someone sees them primarily as a commitment to timing. And, just as I expected, some aficionados rushed to educate me on the subject of estimates in agile, that they are not a commitment but, in short, a discussion of chances and odds of how the development will go, considering the challenges of this particular production environment. Probably, some of those aficionados have accused me of the gravest sin ever, and namely, not reading Mike Cohn's "Agile Estimating and Planning". Relax, guys. I studied Cohn's book long ago, and time after time I would flip its pages to refresh things in my memories, not to mention other books, articles and from-the-trenches stories. My most reliable source for making conclusions, however, is my work. If someone stays out-of-the trenches and theoretizes about estimates, this is just theory. My view on estimates lies in the practical, pragmatic context: if they don't work as commitment to timing, but as a discussion of chances and odds, why most companies continue to play this game? What makes them go on with it? Why spending lots of time on discussing chances is valued more than action itself?
What Is an Estimate? (take 2)
I've cited two options to answer this question in Part 1. Some people, who are, likely, not educated in agile theory, look at agile as a next best silver bullet to complete projects on time and they might wrongly view estimates as a promise of that. They genuinely believe that agile estimates will give them so much sought after reliable reference point about the time of completion. The second group of believers consciously accepts that estimating is a discussion of chances, a probability forecast. The burndown chart provides such forecast based on velocity. Let's refresh the classical definition of velocity in our memory, quoting from here: "The main idea behind velocity is to help teams estimate how much work they can complete in a given time period based on how quickly similar work was previously completed". Does it ring any bells now? If we never build the same feature twice, just as you can't step twice into the same river, then why velocity-based forecast should be relied on? In general, this stands true for all the forecast techniques based on past performance, including forecast models. Yes, there are cases when a team's work is monotonous, iteration in, iteration out, but from what I've been able to observe, it happens very rarely. Mostly, in any company and team, the tasks to be done and challenges to be resolved are unique, for each iteration, and for each release. You never know when something pops up and kicks this neat forecast in the butt.
The Devil Is In...
.. not only in the details. The second most common habitat of the said devil, which goes after the details, is human nature itself. Nothing else explains this better than the good old Parkinson's Law:
Yes, indeed. Having all the time in the world is loose. It's either you have time, or you don't have it. It's either you have the guts and sixth sense to define what should be included to the minimal viable product, for instance, or not. Let's not forget that no one cares about software development for its own sake, except the software developers who view their work as craft. We do things for the market. For the customers, and they don't care about the development kitchen constraints, challenges and brilliant solutions. Same stands true for UX.
Now, how this reasoning fits into the subject of estimates, someone might ask? Here's the astounding truth. Teams and companies start playing around and messing with estimate rituals when they have some extra fat to burn. There's no room for activities that are waste in a bootstrapped, mission-oriented, do-or-die start-up squad of several people. If you are in such a team, and tempted to start a planning poker session, don't do this. Rather than waste your time on playing with probabilities, get some real work done. Write code, do a UI sketch, instill clarity to the work of your team. Some mathematical forecast model surely has it that a brick will fell on your head one day. But you'd hardly be wasting your time to estimate how many more bottles of champagne are likely to slip out of a torn plastic bag, when one of those bottles has already hit the concrete, and there are 3 more in the bag. You'd rush to catch the rest of the bottles, not to let them slip, right? Or will you freeze and estimate the probability of all of the bottles being shattered? This reminds me of the fact, that some business people who are skeptical about shamanism, astrology and other such things, devotedly indulge into what is, in essence, shaman rituals with estimates. Come on, the estimate of completion based on burndown or a planning poker session, is as valid as an astrological forecast. There's no big difference. It's either you're "fat" enough as an organization to afford wasteful rituals or not. In fact, even in large companies that seem to be so safe and secure there's always the bottomline point of "do or die". That's what a recent story with massive job cut by Microsoft proves. Ritual is a waste. If there's time for rituals left, this is a sign of unhealthy fat. Burn it. If a workgroup discusses development, there's no need to wrap it in the ritual of estimating, because when a discussion turns into a draining debate of "how probable" this timeframe is, the work suffers. Someone said, there's a limited number of brains to do the job, and they should be used efficiently. One can suffice with a draft estimated timeframe, there's no use trying to gauge on the likelihood of this happening, when there's real work to be done.
Worship the Idol: How Do I Tell My Higher-Ups ..?
As life has it, however, most of us have to cope with the fallacy around estimates being employees in fat organizations, and, hard as you might, a mere human being can not move a mountain. There's no way to persuade a higher-up non-developer manager, or a client, or a stakeholder in the vanity of estimates. That's why people go on playing games, as they attend to those who expect a feature or a project to be done on time, as derived from estimate-related shamanic rituals. And, that's where another interesting booster for evolution is hiding. Luckily — and, yes, I mean it, luckily — there are more non-developers in the position of authority than developers. There's always a point of litmus test, when someone with a developer background (a project manager, team leader, or someone in middle management) meets the non-developer stakeholder. Why I call it a booster for evolution? If every stakeholder were a developer, they would have probably ended up whining on each other's shoulder about how difficult life is, and how impossible it is to commit to any timeframe. Having to deal with a non-developer stakeholder about a deadline is stimulating. If you've been thinking that something has changed from the hunter-gatherer times, I have bad news for you. The seeming "comfort" guises the basic instinct to act. You either act, or you rot. There's no other option. No one cares for reactive rants. It's your actions that define you. It's your choice to agree to play the estimate game by the rules and accept this as a given, or to quit and find a job where they will not f...k your brain with estimates. If you choose to deal with ruthless stakeholders that are oh-so-not-understanding of how hard a life of a true software craftsman is, move the conversation from the level of rant to the level of action. Use every opportunity to spread the awareness of the challenges that software development portends, and why this domain is un-deadline-ifiable by nature. Amazingly, there are so many people in this world who sincerely believe that an estimate is a credible measure for completion date. Write articles, speak on conferences, join the "no estimates" movement. Fix the gap between what you know, and what they know. If everyone has their say, this world will become a better place, with less projects and software screwed. And, even if you'd still have to deal with the waste of estimates, you'd feel better inside, because you'd be doing your all to change things, instead of ranting.
Enough of thought boosters (or busters?). In Part 3 of the series I will give an outline of some techniques, commonly regarded as techniques for estimates, that might work as a tool for workgroup discussions in some teams. Keep in mind the waste-value balance, though.
Why Agile Estimates Don't Work - Part 1
Custom Terms and Redesigned Terms Editor in Targetprocess v.3:
Targetprocess 3 is very customizable for all things project management, and we hope you had a chance to try the tool's innovative features. On the other hand, some handy legacy features of Targetprocess 2 have been missing, and we are working to make them available in Targetprocess 3. Custom Terms is one such feature. Now you can customize terms for your development process the way you want, and you can do that in the improved terms editor UI. Custom terms can be used for the following Targetprocess 3 entities:
- Team Iteration
- User Story
To configure your Terms, go to Processes in System Settings. As an example, you can type in 'Epic' instead of 'Feature' (the plural form will be auto-prompted but you can always change it, if something is wrong). Note that all the changes can be reverted by clicking 'Reset to default' button.
Custom Terms make their appearance throughout Targetprocess 3:
- Search will be fulfilled respecting your Custom Terms
- DSL filters have Custom Terms in the hints
- Customize cards: the units will have your Custom Terms
- List View supports Custom Terms in column headers/tooltips and in Quick Add
- Export and Charts both support Custom Terms, so the reports will have custom names for entities, too.
You can find more information about Custom Terms for Targetprocess 3 in the user guide.
- Quick Add performance improved
- Test Plan Runs should only be estimated in hours
- Allow to quick add a team iteration as a custom field value
- User cannot access attachment description in New look
- Attachment preview: cross in behind the screen
- "Reload button" mashup fixed
- Focus on email/password field on the login page
As you read this headline, many things came to your mind, probably. You might have recalled those many hours of meetings as you tried to come up with a time estimate for a project or for a product release. Or, you might have remembered the planning poker sessions, which were intended as a spot-on pragmatic business activity, but in the long run proved to be nothing else than a child's game, because the estimates attained as a result of planning poker sessions differed 2 or 3 times from what the actual work really took. The sharp question that I want to ask is: how many times did you feel deep inside that when they make you do an estimate (them being managers, or clients, or anyone else in charge), you end up with nothing else but a waste of time, because later in the project you still face the need to explain why your initial estimate proved to be that different from how things actually turned out, and feeling guilty in the process, though probably nothing of it was actually your fault?
Don't get me wrong. My initial intent was pure and well-behaved. I humbly wanted to write an article to sum up techniques for estimation used in agile, describe their pros and cons, and provide people with a single-point reference for all those techniques. However, as I went deeper into the research, I was astounded. It turned out that there are many more articles and write-ups out there in orthodox agile circles on "How to estimate?" as opposed to "Why estimate at all?" In those few cases, where I saw some attempts at explaining "why?", they stroke me as incongruent and built on some very loose logic. This very fact of the looseness of "why?" puts a big question mark on the validity of the "hows", because the "how" is a product of "why?" or "what?' I've cited this in one of my previous articles, and I'll repeat it one more time, because this axiom is universal, and works for all things life and project management alike: The hows will appear if the what becomes clear.
Let's take the scalpel of pragmatism and dissect the faulty logic behind all things agile estimates.
What is an estimate?
Is it a measure of commitment? Or is it a lazy talk? I tried to find some stats on the actual usefulness of the estimates in story points, and how they've proven themselves valid in the bottomline world of business. I found none. From my own experience, I know that estimates never work. I've seen this in project-by-project software development and in product development. A slightly modified quote from here:
It's impossible to estimate something that is being built for the first time.
We never build the same feature twice.
The only viable example of valid use of estimates that comes to my mind goes as far back as to the early 2000's, when people wanted simple e-commerce web-sites, or dating sites, or something of that kind. Having built a handful of such web-sites, software vendors were more likely to give their clients a realistic estimate of completion, because these web-sites didn't have a heavy baggage of residual debris, such as technical debt, bulky databases, or an octopus-like architecture, which just spreads, rendering futile any attempts to commit to the bottomline "get the sh..t done on time" stuff.
Next, if any attempts at estimating are futile, then why do most companies continue to play this game, which resembles courting, but unlike courting promises no pleasure ahead, only the ever increasing snowball of mess, feeling guilty, unproductive and unaligned with the only goal that matters: get the job done well and on time?
Stay tuned for the answers and even sharper disclosures in the upcoming part 2 of this article.
5 Reasons Why You Should Stop Estimating User Stories
Joy Spring and Estimated Deadlines
2 Meta-Principles for User Interface Writing
UX: Why User Vision Design Matters
Why Agile Estimates Don't Work - Part 2
We use Slack as a team collaboration tool, and it displays cheering messages on load screens. Such as, "What good shall I do today?" or "You got in, and day just got better". One such message from Slack inspired me to write this post. The message goes like this: "Remember to get up and stretch once in a while".
There's no doubt, that with the bulk of our days spent at our desks, we do need some sort of stretching. It's hardly that any IT worker, or knowledge worker, will question the need to exercise and to keep fit. Media advertise lifestyles where some sort of physical training is a must. So, if we don't want to be labelled as "couch potatoes", or if we lack movement, we naturally want to compensate for that. Many years spent studying, and then working, and sitting all the while, require some sort of compensation. At one point or another, any sedentary worker will want to step on the path of exercising. It seems, what can be wrong about it? Everyone is doing this, and it feels so great to exercise! The devil is in the details, as usual, and I want to outline the trend that I currently observe with some of my colleagues, and which, actually, I observed earlier in my own life. This is not a wellness blog, and this article is not about wellness and keeping fit. It is about keeping ourselves sustainable for doing our work in software development. It might sound as a bummer, but if we put too much of our personal energy into exercising, this will not only be of any good, but it will, in fact, sabotage our productivity.
It's quite hard nowadays to resist following the lifestyle that media impose. We are told to go jogging, or to ride a bike, or to be a triathlete, or to run a marathon. I'm 100% certain that everyone who will read this article is either doing these activities themselves, or has some friends that do. Now, here's what the trick is. As I was able to observe, people usually start out with their athletic pursuits after they lack physical movement for many years. It's as if they are let loose from a leash, and it's a euphoric experience, to feel yourself moving, exercising, pursuing, being an athlete. Until there comes a time when you realize that this euphoria is not endless, and investing too much effort in exercising backfires, and backfires hard. That was the case with me. In my late 20's I felt some sort of itching to exercise, and I started out with jogging in a nearby park (on concrete, and jogging on concrete is a knee joints killer, no matter how hype your sports shoes are, but that's a whole other story). Then, I really got into tennis and passionately devoted myself to mastering this sport. I'm a stubborn and persevering girl, and if you're serious about doing tennis, you need to keep yourself in good physical shape. So, apart from my tennis practice, several days per week, I did jogging, went to the gym, did some tennis-specific workouts, and I used to have 2 or even 3 training sessions per day (!), and I was doing this in parallel with my day job. Everyone cheered me, because it's a commonplace belief that it's such a great thing for knowledge workers to exercise. I managed to maintain this regimen for about 7 years, until at one point of time I realized that I can't do this anymore. Instead of being a joy, playing tennis — this most beautiful, graceful, smart and elegant sport ever — turned into a dull burdensome chore for me. Besides, my health deteriorated, and this prevented me from doing my best at work. I realized that I need to make a choice, and since I had no intention of becoming a professional athlete, I terminated my tennis practice for an indefinite time. Someone might say, come on, you can just play leisurely, once or twice in a week! The point is that with this fatigue from overexercising that has accumulated over those years, I'm happy and comfortable with this indefinite break. Now I exercise as I swim in lakes (no chlorine for me, thanks), or go on walks, and my favourite way to exercise at the moment is to walk barefoot in a park, on a grass lawn.
Why I'm telling this story? Ironically, I see that some of my colleagues in their late 20's experience the same curve of being fatally drawn to exercising. They suffer from injuries, but still exercise, as if butterflies drawn to a fire. Everyone lives their own life, and it's their journey. But I can clearly see, and I can tell from my experience that overdoing with exercises is not only harmful for health. It switches focus from work to exercising. If you have friends who show these symptoms, try to talk them out of the exercising madness, if they agree, and help them look at their life from the perspective of holistic personal energy management. There's a great book that can help with that. We don't need the overstrain and depression from exercising ourselves to death. This is not a war, and there's no way that someone will put up a monument on our grave for that. We need some sort of light activity, and it's a matter of personal preference. As for me, I'd rather prefer not to expose my spine and joints to unnecessary physical load. Sitting in a chair, no matter how ergonomic it is, is bad for our spines, so I'm particularly sensitive about all things spine, and I'd rather do some soft exercises, such as yoga postures, or stretching (I've got the whole baggage of cool tennis stretches from the years of my practice :), or use a fitness ball. Or, walk and swim. Skipping, biking, or, God forbid, jogging on a concrete are my least preferred kinds of physical activities. Another bottomline thing is that the healthcare bills are not ethereal. They are real. So, if we do not want to end up being healthcare bankrupts by our 50's, it's better to use caution about exercising as early as in the 20's, or at least 30's.
Last week-end I had a flashback to this do-or-die exercise mindset. I was walking barefoot in Delaware Park, enjoying the feel of grass and fresh air after the rain, the landscape was so serene, and there were not too many people in the park. Then, I saw a massive guy, who was obviously doing some sort of plyometric training, running uphill in sprints. He was huffing and puffing, and, as I sat nearby, I could hear some hard-and-push music from his earphones. Well, his huffing and puffing was actually breaking the serenity of the moment, but I could definitely empathize with this guy, because he reminded me of those days when I used to be like that myself. Then, after a while, the guy was done with his training and, as if sensing my discomfort, said to me as he passed by: "Now you can have it all to yourself". I laughed and said: "I hope your workout was good!" He didn't answer and looking at him one could say that he was rather exhausted than happy and filled with energy after this workout. Then, I proceeded walking barefoot around the loop of the Hoyt Lake, and spotted a beautiful piece of street art as I went:
Now, tell me, who do you think felt recharged and re-energized on Monday? Me or that guy? The answer looks obvious.
Top 5 Non-Office Brain Killers
Cognitive Endurance Basics for Software Developers
Continuous Problem-Solving Is No Accident
5 Things We Need For Sustainable Performance At Work