Archives

Do you have a real deadline?

Do not cross the lineThe first written record on the use of the word “deadline” was in 1864.  It was a the term to describe the line over which prisoners were forbidden to go –
Along the interior of the stockade, 19 feet from the stockade wall, was a line of small wooden posts with a wood rail on top. This was the “deadline”. Any prisoner who crossed the deadline could be shot by guards stationed in the sentry boxes. [1]
The words are quite literal – a line where it will make you dead.
Not all deadlines are bad.  But we must be careful on how often we impose them and for what purpose.  Many deadlines are largely unwarranted and generally harmful.
Deadlines can provide a sense of urgency and focus.  Goals without deadlines are dreams, so deadlines can reduce the amount of procrastination and avoid Parkinson’s Law.  And when deadlines are self-imposed, it can challenge us to get stuff done – there is a sense of achievement on getting a job done in record time.  Deadlines used with the right mindset can help teams really focus on what is important and what isn’t.  With the right mindset, it facilitates bias towards action and help us prioritise so we are doing the important things for the customer and help identify wasteful (corporate) activities so we can improve and eliminate.
When used judiciously, deadlines can get an important piece of work over the line as it focus teams on production.  However, if this is forcing the pace of work that causes burnout, bad things start to happen.  Agile processes promote sustainable development
“The sponsors, developers, and users should be able to maintain a constant pace indefinitely” – Agile Manifesto.
Deadlines used as an extrinsic motivator and holding a threat for unclear purposes is dangerous to our modern way of working as it imposes fear.
In a complex environment we do not know and cannot predict what will happen when we do action ‘ABC’ and there are many possible actions that we could do.  So when promises of dates are made early on, it causes a ripple effect as people will start setting deadlines off your deadline and it becomes self-reinforcing.  As a result of this you remove a lot of options for adaptation and unexpected events.
There are deadlines that have a “real” business impact or have an actual business consequence for failing to meet the deadline.  For instance, meeting an regulatory reporting requirement (eg APRA in the Australian Financial Industry, or Sarbanes-Oxley)  or studying for an exam.  There is little value in finishing something for an event (eg trade show) or holiday special (Mother’s Day) after the event.  The “Y2K Bug” is also another example of a real deadline.  Anything where the value of completing the work drops significantly or disappears altogether is a real deadline.  If the work is still mostly valuable if you get it done after the deadline, you probably have an arbitrary or “perceived” deadline pretending to be a “real” deadline.
A genuine deadline tells you “If we don’t get done by the deadline, there’s not much reason to get it done at all and we should stop”.  These type of deadlines, whilst are valid, they are actually not that common.
“Perceived” deadlines are actually the most common. There is a very significant difference between real deadlines and perceived deadlines.  Perceived deadlines tend to arise from questions like “How long do you think this will take?” or “Do you think we could have this by [date]?”.  They exist to keep work (eg a project) from going on indefinitely and create an arbitrary line in the sand where people can expect delivery.
Often these deadlines are a result of setting expectations, often very early on based on long-term or coarse grained estimates, and estimates of that sort are never accurate.  We are bad estimating – experience and scientifically it has been repeatedly shown that getting accurate estimates is extremely difficult, if not impossible.
The real problem with deadlines, is that any deadline longer than a day or two you are asking people to fail.  What you are really measuring with deadlines is the ability to estimate. If you are trying to convince people to get something by a deadline, the only way they could get something done by a deadline is by getting better and better at estimating.  This is something you cannot do, even with experience.  [2]
In a complex world where you can’t predict the future of doing ‘ABC’ you are constantly punishing people for something they can’t get better at.
Deadlines based on annual budgeting and financial cycles is also a type of perceived deadline.  Teams working towards nominal end date (or start date) that aligns with the financial year is also nonsensical as customers do not operate (and don’t really care) when you make your investments and how you fund and capitalise work.
The best way to determine if you have a perceived deadline is to ask the question, “What will happen if we miss this deadline?”  If the answer is mainly, “people will be disappointed”, “someone promised that date to the market” or “we already announced that date” then you probably have an arbitrary deadline with no actual business impact on it.  Many of these deadlines are actually wishful thinking or commitments made on behalf of others doing the work based on theoretical plans and no evidence of actual production work.  There is little surprise why we have missed expectations and the ensuing conflict and confusion on why things never get done “on time”, why the quality of the product isn’t better and why we don’t have time to improve.
These perceived deadlines tend to cause undue stress on teams for no particularly good reason.  This creates short-term thinking and approaches aimed at getting across a finish line with little sense of what comes afterwards.  Heroics are often required to get things done and the product is sub-optimised as quality is sacrificed as hidden technical debt is accumulated which are rarely quantified or explained.
Jim Benson, author of Personal Kanban, has been credited with the diagram attached – deadlines as influencers of ‘crap’.  Simply put – as your deadline approaches your options are reduced and you choose options to fit the deadline rather than satisfy your customer.
DeadlinesAndCrap
In the novel, The Phoenix Project this common situation was aptly portrayed –
I’ve seen this movie before.  The plot is simple: First, you take an urgent date-driven project, where the shipment date cannot be delayed because of external commitments made to Wall Street or customers.  Them you add a bunch of developers who use up all the time in the schedule, leaving no time for testing or operations deployment.  And because no one is willing to slip the deployment date, everyone after Development has to take outrageous and unacceptable shortcuts to hit the date.
A much better way to get a predictable timeline is to make projections based off the team’s actual metrics of progress and constantly adapt based on new information.  That’s why agile promote working solution/product (ie shippable state) as a measure of progress.  We need to act our way to the future, rather than plan or guess our way to the future.  We should only commit at the last responsible moment.  Never commit early unless you know why (ie have you got a real deadline such as an “AFL Grand Final moment”).
Not all deadlines are bad but next time before setting a deadline please consider why you are imposing the deadline and what is the real need for that deadline.  Be on the look out for a perceived deadline acting as a real deadline as these will undermine teams with a constant push towards an illusory goal resulting in sub-optimal results, poor customer and business outcomes.  And along the way, hopefully we will reduce the number of times people crossing the deadline being shot.
[1] Reading 1: Andersonville Prison, https://www.nps.gov/nr/twhp/wwwlps/lessons/11andersonville/11facts1.htm
[2] Jabe Bloom, Beyond Deadlines, https://vimeo.com/52255565

Seeking the exact answers

“No battle plan survives contact with the enemy.”
— Helmuth von Moltke

Sooner or later you will have the business asking questions like “How much is it going to cost?”, “What will I get?” and “When can I have it?”.  The honest answer to this which often provokes a reaction of surprise are: “How much do you want to spend?”, “Tell us what you want” and “As long as it takes” respectively.

Technology projects are complex and high risk, and in particular there is high uncertainty especially before any actual development taking place.  The Cone of Uncertainty [McConnell] describes the uncertainty in estimates of software development project cost, effort, and duration, throughout the lifecycle of a project.   The degree of uncertainty is very large at the beginning of the project, which is often when decisions are made about project pricing and contracts which results in unrealistic project plans and expectations.

Agile or traditional, estimates on duration and costs are inherently very vague at the beginning of a project.  For some complex projects, this uncertainty can last much later in the development process.

We are so accustomed to fixed price, time & cost projects, but in reality they are anything but.  None of this information is new.  However, project sponsors consistently latch on to the initial estimates project managers propose for the schedule and cost of a project at the start when the least is known and when there is the highest variability.  And because project sponsors don’t understand project complexity and other factors influencing cost and schedule when requirements change and emerge, they may see the project as a failure if costs increased, even if the changes improved the value delivered to the business.  Unfortunately, business executives’ lack of understanding about project management influences their perception of IT project success and failure [CIO].

There is inherent uncertainty, even in well-run projects.  This is especially true in projects that involve complex software, large systems, large development effort, new application domains, new users.  Furthermore, unlike manufacturing or building a house software development is a creative process and largely knowledge work which does not fit a cookie cutter model.  We need to recognize that the Cone of Uncertainty implies substantial risks for traditional fixed-price and fixed-scope projects.  The Cone of Uncertainty indicates we cannot predict the future accurately and that we need to restrain from traditional thinking.  If you can’t predict the future, don’t plan it in detail.

A barrier to agile is the lack of the comforting predictive detailed plan whereby we plan out the uncertainty in a project, plot the path, determine the end date and the cost then produce the nice reports along the way.  Interestingly enough whenever we question “are those plans ever right?”  the response is often negative.  Yet we place so much faith in them and they absolutely have to be there because it would be too scary to proceed without one.

Agile practitioners will do an order of less magnitude less effort to come up with a plan and provide answers to the questions “How much is it going to cost?”, “What will I get?” and “When can I have it?” that are just as good and just as inaccurate as traditional approaches.

We strive to ask for exact answers when exact answers don’t exist (estimates are just an approximate judgment or calculation – it’s a guess, but we seem to forget that).    Reality will come to light soon enough.  Striving for exact answers typically results in both time and money being wasted with little improvement in accuracy of the estimates to show for it.

An agile project will come up with a baseline view of how much the project will cost and when it is likely to be finished.  The only difference to traditional thinking is that agile is very explicit right from the start that this is not accurate and the team will strive to understand more as soon as we start working it.  We want to get to the actual development effort where we regularly deliver high quality, working software that maximizes the business’ ROI.

There is an amazing feeling of relief when agile teams can become comfortable with uncertainty and a freedom to actually discover what is needed at the appropriate time.  Instead of relentlessly following the pre-defined plan agile teams will adapt to the inevitably changing conditions.

Being on time, on budget and to specification means nothing when we have delivered the wrong product with low quality that has no business value.

So rather seeking the exact answers, should we be asking if we are delivering business value?

%d bloggers like this: