Why shipping on time is hard

dan Written by Dan on April 24th, 2013 in Business

When the company was much younger, we used to pre-announce releases with a fair amount of notice. As with any project, best laid plans get changed, and release dates get missed.

Recently we’ve been a lot more disciplined in how we plan our releases. It’s a popular myth that apps are “easy” to make and I thought I’d talk about the compromises and decisions we have to make every day when building apps.

So there’s this thing called the Iron Triangle. It’s been slightly adapted and tweaked for software development over the years, but basically the saying goes that there are three variables to keep in mind while developing an app:

  1. Date (Shipping Date).
  2. Features (Capabilities, what the app can do).
  3. Quality (UI/UX/Code).

Sounds reasonable. But here’s the catch, in reality you can only ever really prioritise two out of the three attributes. Here’s a typical diagram showing what an Iron Triangle looks like. Pretty boring, huh?

Iron Triangle & Software Development

Here’s an example of how it might work during a project. Imagine you’re halfway through development of an app and you decide to add a new feature, albeit a small one. By doing this one of the other variables will have to give. You can ship on time with a slightly less polished app, or keep the quality up and ship later than planned. These seemingly little changes can happen countless times during a project and as the changes stack up things can get out of control very quickly. That shipping date you originally planned for just keeps getting further and further away.

Now lets look at a real world example. With Clear for iPhone we made the decision to choose date and quality. We wanted to ship a polished app (that’s always our main goal), but not spend a year on it as we wanted test the waters on iOS. Cutting back on features was the obvious choice although not an easy decision. By doing this we managed to ship a high quality app in a very short space of time. So Clear for iOS easily fits within the rules of the iron triangle.

Perhaps it’s better visualised as an isosceles triangle, instead of an equilateral triangle. Mainly due to the fact that we give more weight to two out of the three attributes.

Iron Triangle & Clear

Unfortunately projects don’t always go to plan… We’re now wrapping up development on one of our other yet to be released iOS apps. As with Clear we decided to focus on time and quality, build an app that is super focused, has a great experience and only has the features that really matter. Everything looked good on paper so we set aside around 3-4 months to build it. During development things changed. Features were added, the UI was tweaked, the user flow re-worked many times, In-App Purchase (IAP) was added then removed and many other little decisions were made along the way. All these changes happened because we care deeply about the products we ship, we care about keeping the quality up, about building something that feels just right.

Mystery App

So where does that leave us? I’m really not sure to be honest. But whatever the shape of the project, the takeaway from this is to use the iron triangle as a reminder of how every little decision you make along the way affects all other aspects of the project more than you might realise.

We’ll be taking the wraps off our next iOS app in the coming weeks - follow @realmacsoftware to be the first to know when it hits.