Budgeting for Your Software Project
Working as a consultant in web and software development has been incredibly rewarding, as it has allowed me to engage with a diverse range of industries and people I might not have otherwise encountered. I have a deep respect for those who are hardworking, conscientious, and willing to roll up their sleeves to tackle any problem that comes their way. While it's not difficult in the way portrayed in Mike Rowe's Dirty Jobs, creating custom software and websites shares a similarity with the popular TV show: every situation is unique, and with each new project comes a wealth of new learning opportunities.
Estimating and budgeting for these projects can be a challenging task, often fraught with uncertainty. One of the most common questions I receive from prospective clients is, "How much does it cost to build a website?" While this is a crucial question, it's difficult to provide a precise answer without additional details. Just as you can't determine the length of a piece of string without more information, it's nearly impossible to accurately estimate the cost of a website without a thorough understanding of the project's scope and requirements.
The Value of Cost
A monetary investment is necessary to complete a project. Whether the project is a website or custom software, setting a budget is one way to put guardrails on the investment. Even a preliminary budget determines the pedigree of partners you can choose from. A $10,000 investment isn’t in the same stratosphere as a $50,000 one, or even less so than a $250,000 one.
Complicating matters, getting a budget amongst a multi-disciplinary leadership team can also be fraught with political ramifications. In an environment of scarce resources—and resources are always scarce—navigating the complex web of interests and priorities can be a veritable landmine. The fact that the cost can be capitalized over 3 years may help ease the burden, but the nature of owning software is similar to the nature of owning a car—it must be (at the very least) maintained over time to stay in good working order. Consequently, if maintaining software pulls from the same budget as the initial capitalized expense of designing, developing, and deploying it, one might be less inclined to see his own budget squeezed for other uses. Prioritization can be a beast.
The risk, of course, in setting any budget is ensuring that the amount set aside is enough to do the job right, without overpaying for the value received in return. It’s impossible to calculate the value if it’s never been examined or even considered. As the saying goes, “It’s impossible to read the label of the jar you’re in.” So best have someone from the outside help you figure that out.
After all, the cost of doing the wrong thing at the right price is often higher than doing the right thing at a higher price.
Cost vs Value
When determining what to budget for a website or software, discerning organizations must evaluate not only the cost of the project, but also what value completing it will bring to the organization. Direct cost, after all, is but one type of cost. Other types of cost, such as indirect costs and opportunity costs, are harder to measure. We (that is, all of humanity) have a strong bias to reach for simpler explanations. The tangible. The concrete. The numbers that are available instead of the numbers that are hidden. We don’t hunt until we’ve found the optimal answer with great certainty. We grope for the attractively adequate. In short, we “satisfice.”
Failing to identify the costs results in an underestimated value of the software solution that materially changes the conditions of the affected parties. Inaccurate value estimates lead to sacrifices in software quality in order to bring the costs in line with the perceived value.
It is not necessary to solve every problem and pounce on every opportunity under the sun right out of the gate. Many complicated software projects can be broken down into logical releases that satisfy meaningful objectives at each stage, and then optimized for the outcomes the owner desires. If it’s impossible to raise the funds necessary to complete everything all at once, it may be a good idea to plan a smart software release schedule that takes into account your organization's highest priorities while allowing the budget to catch up.
So What is Value?
Value is the worth or importance of something. It does not always refer to a direct economic benefit, though those are often the most attractive and receive the attention of senior people. However, these other benefits ought not be overlooked.
- Time saved on a certain process.
- Employee satisfaction.
- Gaining new analytic capabilities.
- Goodwill.
- Increased search visibility.
- Realized opportunities.
Whatever the value is, if it is not yet quantified in terms of economic value, it should be discussed and, if possible, approximated or modeled. Goals should, in short, be S.M.A.R.T.
Specific
Measurable
Achievable
Relevant
Time-Based
While it may make good economic sense for large organizations to meticulously measure and optimize time spent doing certain tasks, many smaller organizations don’t have the luxury to hire an entire person (or people) who has the responsibility of optimizing their employees’ time to save a specific amount of money that justifies the hiring of someone to measure and optimize it. Smaller organizations have to think about it in terms of the work that they don’t have time to do well.
One of my most memorable projects involved a client who spent three weeks each year compiling a report. During our initial discovery, I was heartbroken to learn about this time-consuming task. The underlying issue was a data architecture problem that couldn't be resolved with their current software. When we took on the project, our primary goal wasn't to reduce the time spent on the report. However, after the launch, we managed to streamline the process, reducing the report preparation time to just 30 minutes. This improvement was transformative. Not only did it free up three weeks of valuable time, it also allowed the client to focus on more productive activities. By leveraging the computer's ability to handle large data sums efficiently, we were able to deliver a solution that truly made a difference.
This is about more than just the wages paid to the people doing the work, or optimizing the size of the workforce. It’s far more interesting to ponder the productive things people could do if they weren’t burdened with work that a computer is built to do faster and more accurately. The two underappreciated value propositions are the opportunities afforded by efficiency, not to mention the happiness of the people who were previously performing the tasks that they can better focus on more meaningful work.
Scope of Work
As you move from the abstract idea about the sort of thing you need to build to more specific requirements that must execute the application, you get more precise answers concerning what the project will cost. When hiring an agency to do any work at all, one of the first things to do is set the boundaries of the relationship. If software development isn’t your line of work, even if you’ve had experience in it before, chances are there are aspects of the project that you haven’t considered ahead of time. To complete the first version of the product, everything has to be done. It stands to reason, then, that someone has to do it. Here’s a rough outline of the project activities that must be both performed and managed:
Planning & Design - The agency attempts to learn the depth of your organization’s opportunities and challenges, your audience and make recommendations on how to meet your organization’s goals. It is where clarity becomes manifest through increasingly precise descriptions about what will be built. The design, as Steve Jobs said, is not just about how it looks and feels, but how it works. This is also where significant decisions are made about the technology that will be required to deliver the solution. A big part of this process involves interviews and potentially other types of research. If you have your own research, then the agency must consume it and process it. To only slightly paraphrase user experience honcho Jared Spool, “There’s a technical name for the absence of research: guessing.”
Content Creation & Procurement - The type of project you bring plays a big role in how big of a job this is and whether it can be outsourced at all. Data-heavy software needs the data which may or may not be available or transferable. Lead-generating, ecommerce, and other types of websites don’t just need content, they are content. But what kind? And where’s it coming from? Will the video have a high production value? Will copy be professionally written and proofread? What about charts, photographs, illustrations, animations, and infographics? Not every situation requires every kind of content, but every design must account for the content it will contain.
System Administration, Development & Deployment - Until a software or website project is complete, you don’t have a solution; you have a daydream. And if the development and operations team does not execute it well, you potentially have a fevered hallucination, which is a dangerous place to be. There are far too many factors to itemize generally to provide a blanket answer to the question. The project requirements built up to this point will provide additional clarity. For the budget-conscious who haven’t been involved in a software development lifecycle project like this one before, there are a few things to keep in mind before executing the plan.
- Building and maintenance of test or staging environments
- Connecting software environments through APIs
- The architecture and administration of data
- The computing power and plan necessary to sustain the application through heavy usage
Ongoing Investment
Once your project is launched publicly, it’s okay to take a moment to celebrate. But before you get your organization into any custom software or website, you should have a good idea about what sort of ongoing investment you can expect.
First of all, there can be costs associated with keeping your tech stack up to date, supportable, and secure. This will not be done consistently and reliably over a long period of time without some intervention. Every time one thing gets upgraded, it has to be tested for compatibility with every tool and library used in the software, as well as every API that connects to something else. How much to budget for these things can be elusive, but a ballpark estimate should be achievable.
Product launch is also a good time to review the roadmap for rolling out features that were not included in the original release. On top of that, if you’re paying attention to what your users are doing (and you should be), you’ll find additional opportunities for enhancements and optimizations to improve the lives and efficiency of your users and your organization. As before, consider the value-to-cost ratio of making those enhancements.
Eventually, someone is going to use the software in a way that the team couldn’t have anticipated. It may expose a bug that needs to be fixed or an error message that must be better presented. Plan some budget for ongoing support for this as well.
Now that your organization has this shiny new software or website, one thing you must weigh is how quickly you require a response to certain kinds of difficulties, whether they be bugs, training, hosting problems, or just ordinary customer support. A bug or temporary system outage may or may not be the most devastating thing that can happen to your organization, so budget accordingly.
Conclusion
The challenge of aligning expectations with budget is a widespread issue, so much so that it's a popular topic in memes shared by millions. When we find humor in these situations, it's often a coping mechanism. However, this widespread amusement also highlights a significant problem: many people underestimate the value of the software or website they're commissioning, particularly in the service industry. To address this, it's crucial to either adjust expectations or increase the budget. The key to overcoming this challenge lies in education and knowledge. When planning your project, start by determining the long-term value of the final product. This will help you set a realistic budget and manage expectations effectively.