Are deadlines evil? - 2


My last post generated a lot of reactions and it seemed like I was only asking questions and not giving any solutions. So here it goes, how would I release (or propose) to release software projects / products without a deadline. My answer is pretty simple (hence this short blog post), do it the Scrum way -

  1. Create a product backlog, identifying all the features / user stories / user requirements you would like your product to have. Arrange the features by priority.
  2. Ask yourself, what are the bare minimum features that you need to get the first release out. Ideally the first release should be timed between 3-6 months.
  3. Based on the team's comfort / skillset / experience select a time frame that you need to deliver the features for the first release or the bare minimum product. This can be a rough estimate for now (say 12-15 weeks).
  4. Iterate over two week "sprints", implementing the features one by one in order of priority.
  5. Each iteration of two weeks, produces a demoable, deployable piece of software. This may generate some feedback, add the feedback to the product backlog and re-prioritize it.
  6. If more work is discovered while developing the product, you can move the release date or re-prioritize the backlog based on what you can do within the time frame.
  7. After each demo, ask yourself "Can I release this?" or "What is stopping me from releasing this product?" or "Is this in line with my original release plan?". Re-prioritize the backlog again if needed.
  8. If things go well, you should be able to release on the originally launched date plus or minus 1-2 sprints.
  9. If things go bad, you can ask yourself, "What has changed?", and re-prioritize the backlog and ask the question again "When can I release this?". Usually this is a smell that something bad has happened, remember the demos we gave all along.
  10. Release, iterate, add features and release again.