We frequently describe the software development process as being similar to construction. An architect creates a blueprint from an idea, and then a builder uses the blueprint to build what the client expects. It’s a fabulous analogy because everyone knows you shouldn’t start pouring a foundation without knowing what you’re building. Fixing a foundation later is costly.
This analogy is also perfect when it comes to picking priorities in development. In a construction project, if the client’s move-in date is right around the corner and absolutely non-negotiable, that client expects to pay top dollar for speed. If the client has a tight budget that cannot be exceeded, that client doesn’t expect mahogany flooring and marble countertops. If the client insists on a building suited for royalty, that client doesn’t expect budget pricing.
When planning for your new development project, keep the Iron Triangle in mind when setting your priorities. The decisions you make here will impact the app you launch.
Everyone wants an amazing app. We do too. In construction, “quality” involves things like building materials and craftsmanship. In development, we’re referencing scope when we talk about quality. There is an element of workmanship that goes into development, and that is reflected in what is actually built. A less skilled developer who commands a lower price will generally build something less robust than a more skilled developer would.
For example, a form at its root provides fields for a user to complete and then submits that information somewhere. A very lightweight version of a form (small in scope) may simply deliver entered text in the body of an email to the app administrator. A robust version of a form (large in scope) may have built-in logic and dynamic fields that route the user intelligently based on answers and stores those answers into a database that the app references.
When your top priority is quality, you have to be prepared to have the budget to support it. Every line of code is written by someone, whether its by ten people in two weeks or two people in ten weeks. Elegance is impressive, but it doesn’t come without a cost.
Budget is important in any new software project because it’s a big investment. Strict budgets aren’t uncommon. It’s typical for a nonprofit with a grant, a startup with a small investment, or a large corporation with a strict department budget to apply a firm limit on what can be spent on a software project. As long as the firm budget is within reason for what you’re hoping to accomplish, it’s a fine priority.
When price is your top priority, you have to be willing to be more flexible on scope and time. Some of your features may not be as robust as you originally imagined because the budget ran out, or the project may take longer to complete as it gets tabled in order to not burn through hours you can’t afford while decisions are made. Agile project management helps prioritize price by treating the scope as flexible. This involves making decisions about how to best use the remaining budget instead of striving to accomplish absolutely everything. Using the form example above, it means you may get the lightweight form instead of the robust one if you’re prioritizing price.
We’ve seen companies try to outsmart the triangle by hiring cheap development to drive down price while delivering extensive features on a short timeline, but the resulting app is similar in quality to a house constructed by a builder cutting corners to cut costs. You may not notice it on the walkthrough when the project is finished, but the first time it rains, you see the leaks.
Software projects are often related to an event: an annual sales meeting, a conference, an unveiling of a new logo, a kickoff, or a myriad of other events. When software is launched on a schedule that reflects something other than development, the timeline becomes fixed. Unless you’ve started the conversation far in advance, that deadline dictates how much time you have to complete your development project.
Developers can only write so much code per hour. While you can speed up the process by putting more developers on a project, you cannot code the entire app simultaneously. For example, if your project scope will take approximately 600 hours to build, you can’t throw 25 developers at it and have it complete in three days. Elements are always interconnected. Your deadline for launch comes into play when determining if the firm needs to allocate four developers working full-time on your project or if they can allocate two developers and extend the timeline.
When your timeline is top priority and very short, expect to make some compromises in scope or in price. You’ll either have to cut some features in order to finish things in time, or you’ll have to pay top dollar to have the developer prioritize your project over another client, therefore extending someone else’s timeline.
Quality, price, and time in software development are deeply connected. When you move one, the other two move as well. All three are admirable priorities to have, but each one will require at least a modest compromise on another one. Adding scope? Extend the timeline or increase cost. Want it done sooner? Increase the cost or cut features. Need it done for cheaper? Cut features or extend the timeline.
Both you and your developer will be happier when you have the right expectations about how priorities will impact the project. Don’t hesitate to tell your developer what your top priority is. They can help guide your project to reflect what is most important to you.
Looking for a developer to help you navigate the world of custom software? Let’s chat.