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:
- Date (Shipping date)
- Features (Capabilities, what the app can do)
- Quality (UI/UX/Code)
Sounds reasonable, right? But here’s the catch: As much as you’d like to do it all, 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?
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 farther and farther away with every tweak.
How it works during real life
With Clear, 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 an extremely short period of time. This this sense, Clear for iOS manages to fit 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.
Unfortunately projects don’t always go according to plan
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 three to four 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. Of course, this was to be expected. You will endure lots of changes in the development process until you find the right package.
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.
Where does that leave us?
To be frank, I’m really not sure. 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.