Monday, November 6, 2017

Agile is about Deadlines

I have nothing on Martin Luther
but I know a little about software development.
Five hundred years ago a German monk named Martin Luther hammered 95 theses to a church door.  He was calling attention to corruption inside the Catholic Church and started the events which created the protestant reformation.  The agile manifesto is only sixteen years old, but it has produced a transformation in the business world.  I consider myself one of the evangelists spreading the word.  With every reformation, there is a counter-reformation, and today I would like to discuss one of the principle objections used by opponents of agile.

There is an excellent blog post written by the Wall Street Journal called “9 Myths About Agile.”  I strongly recommend it.  One of the most durable myths about Agile is the preconception that deadlines do not matter. Work gets completed, and deadlines are not necessary.  I wish to argue that deadlines are an essential part of the agile process and provide an example of how it works.

The most central feature of Agile and Scrum is the time box of the sprint.  For two to four weeks, the development team completes goals.  If they do not finish the stories in that period, then the sprint is considered a failure.  Failure is not a bad thing it is a learning opportunity for the team can to do better next time. Scrum relies on deadlines to focus effort and drive improvement.

Skeptics would then argue that sprints are well and good, but there are not firm due dates to communicate to upper management or the people paying for the work.  My reply is that with a sprint backlog following Roman Pichler’s DEEP model, it is easy to forecast when work will get completed.  The backlog is detailed to show the volume of work.   The backlog is estimated because it allows the product owner and the business to predict when work will get done.  The backlog is emergent so it can adjust to changing conditions as a project moves forward.  Finally, prioritization allows the firm to say what matters and what does not.

I am now going to provide a simple example.  The marketing department needs to incorporate social media into its website.   The works need to be accomplished by November 1st. The product owner gets to work, and come up with a list of features.  It should look like this:

  • Milestone: Social media on corporate website (Due Nov 1st)
    • Feature: Facebook
    • Feature: Google+
    • Feature: Twitter
    • Feature: Pinterest
Now it is up to the Product Owner and development team to write stories.  After a week or two of effort the backlog looks like the following:

  • Milestone: Social media on corporate website (Due Nov 1st)
    • Feature: Facebook
      • Set up a Facebook account.
      • Create Hooks into Facebook API.
      • UI for Social media on the page.
      • Create log internally when pages are shared.
    • Feature: Google+
      • Set up Google+ corporate account.
      • User Google tools to allow sharing of stories from the website.
      • UI for Social media on the Page.
      • Create log internally when pages and shared.
    • Feature: Twitter
      • Set up a corporate Twitter account.
      • Use Twitter API to post content.
      • UI for Social media.
      • Create log internally when pages are shared.
    • Feature: Pinterest
      • Set up corporate Pinterest account.
      • UI for Social media.
      • [Spike] prototype how to use Pinterest API.
      • Create a log when pages are shared.
The backlog looks typical to a scrum master or anyone on a development team.  The Vice President might understand what the group plans to do. The group estimates with story points because business people treat hours estimates as quotations of work.

  • Milestone: Social media on corporate website (Due Nov 1st)
    • Feature: Facebook
      • Set up a Facebook account. - 2
      • Create Hooks into Facebook API. - 3
      • UI for Social media on the page. - 3
      • Create log internally when pages are shared. - 13
    • Feature: Google+
      • Set up Google+ corporate account. - 2
      • User Google tools to allow sharing of stories from the website.- 3
      • UI for Social media on the Page. - 3
      • Create log internally when pages and shared. - 13
    • Feature: Twitter
      • Set up a corporate Twitter account. - 2
      • Use Twitter API to post content. - 3
      • UI for Social media. - 3
      • Create log internally when pages are shared. - 13
    • Feature: Pinterest
      • Set up the corporate Pinterest account. - 3
      • UI for Social media. - 3
      • [Spike] prototype how to use Pinterest API. - 8
      • Create a log when pages are shared. - 13

The estimates from the team point out severe risk and ambiguity.  Also, the team has not worked with Pinterest, so they are going to do some experiments to understand how it works.  The sponsor of the product might get frustrated at this point and ask, “When will it be done? Can I have it by November 1st?”

The scrum master should be able to answer that question.  According to the backlog, there are roughly 91 story points of work.  The team can do 21 story points a sprint and each sprint is three weeks long.  It will take roughly twelve weeks to do the job. It is good news if it is June but bad news if it is September.

So a process of negotiation begins where stories get prioritized, and others ignored.  If the company sells food products, Pinterest may be more critical than Google+.  A media company which relies on breaking news might ignore Pinterest and focus on Twitter.  The product owner might notice that each social media site has its analytics suite and that an internal log is not necessary.  Fifty-two story points fall off the board.  We have 39 story points of work which we can get done in two sprints or six weeks.  If we begin in August, we will hit our due date.  The final board looks like this:

  • Milestone: Social media on corporate website (Due Nov 1st)
    • Feature: Facebook
      • Set up a Facebook account. - 2
      • Create Hooks into Facebook API. - 3
      • UI for Social media on the page. - 3
    • Feature: Google+
      • Set up Google+ corporate account. - 2
      • User Google tools to allow sharing of stories from the website.- 3
      • UI for Social media on the Page. - 3
    • Feature: Twitter
      • Set up a corporate Twitter account. - 2
      • Use Twitter API to post content. - 3
      • UI for Social media. - 3
    • Feature: Pinterest
      • Set up the corporate Pinterest account. - 3
      • UI for Social media. - 3
      • [Spike] prototype how to use Pinterest API. - 8

So in this brief and simple example, I have shown there is a quantitative and drama free fashion to discuss projects where deliverables get negotiated, and deadlines get met.   Agile and Scrum can help people make educated decisions about what work can get done and when it will get done.  All that is required is a conscientious product owner, a dedicated development team, and a scrum master who will speak the truth to decision makers.

Agile is about deadlines, and I am willing to put my career at risk to prove it; just like that German Monk from five centuries ago.

Until next time.

1 comment: