Creating a new custom software application can represent a significant investment, and most companies will do their due diligence to find the best price while still ensuring a quality product and a pleasant development experience. But if you’ve ever actually shopped around for a development firm, you may have experienced a wide range of prices quoted for the same project. So, what accounts for the difference in those quotes? For most development firms, it’s not as simple as paying by the hour or project. There are many factors that can influence the final price you pay upon completion, and over the life of the project. For simplicity’s sake, let’s take a closer look at the most important factors that can influence custom software pricing from start to finish, ignoring post deployment cost of ownership factors, for now.
Level of Effort
This may seem obvious, but the single biggest factor in pricing variances for custom software projects is the level of effort, in man hours, it will take to deliver a custom software application from start to finish. Of course, a lot of factors determine the ultimate level of effort. For a given scope, a good software delivery manager will always attempt to deliver the project with the least level of effort and in the most efficient manner, which are related but different considerations. By level of importance, the following factors have the greatest effect on level of effort:
- Correctly Scoping the Requirements (and estimating a level of effort to completion) – Some say this process is more art than science, and I have to agree. The costs for well-defined custom software applications are less variable than a fly by the seat of your pants effort, but still must account for scope creep, covered later, and hidden skeletons that are inevitably revealed during most projects. Many custom software applications begin as well-conceived, but loosely defined ideas where detailed functionality are defined on the fly and deployed in stages. Level of effort can still be estimated for this type of development effort, but the level of variability will be inherently higher.
- Development Window – This is time from start of the development effort to delivery of the final product. Given a constant scope, a shorter development window will result in higher project costs, due to increased workflow frictions introduced by a larger development teams and inherent communications delays between the development team and client subject matter experts. In general, the larger the team, the lower the efficiency of each development hour. Workload and responsiveness of customer SMEs also factor heavily into team efficiency as collaboration and iteration between customer and developers are lynchpins of effective process and a cornerstone of a quality product. In summary, compressed deadlines have a major effect on pricing variances of custom software development projects. It is the development company’s responsibility to discuss this risk factor with the customer to ascertain options to hard deadlines such as phased deployments, and to tease out whether the deadlines are critical or “nice to haves,” considering the potential impact on end product quality and cost.
- Team Stack Experience and Composition – Within the framework of a solid process environment, team experience and training arguably have the greatest effect on short- and long-term application costs. Properly staffing a software development team with top notch technicians, with the optimal FTE fractions deployed at the right times, ensures optimal efficiency in the development process, which is reflected in time to delivery and ultimately, cost and product quality.
Scope creep is the term used to describe what happens when the scope of a project moves beyond the original scope and requirements envisioned and documented when the development project began. Scope creep is often the result of a client deciding they want to add new functionality, create new integrations or address new business needs after development has already started. It can also be attributed to the discovery of previously unknown attributes of the project environment, which can encompass a lot of different variables. Some of the most common include a new, undocumented interface that was missed during the design phase, or a use case that wasn’t considered, or a key report for which the level of effort was underestimated. Scope creep will almost always affect pricing and delay your project timeline.
The best way to avoid scope creep and get the most accurate pricing possible is to establish your key objectives for the new software, the business case, and all other technical requirements before launching the project. Of course, this approach is not always feasible.
Scope creep has historically been considered in a very negative light that must be suppressed at all cost. Great amounts of effort have been inefficiently expended on the front end of a project to minimize the effect of scope creep during development. But what if scope creep were instead considered a natural factor in any project? What if it were accepted and addressed within the boundaries of an effective agile development environment, where logical discussions regarding cost and deadline implications can be made on a case by case basis? And the timing and priority of each new discovery can be sensibly debated against the universe of known requirements in the project? In this scenario, the customer helps decide how the new requirements fit within the overall scope, budget and timelines. This approach doesn’t eliminate scope creep, nor embrace it. Rather, it accepts the inevitability of scope creep and makes it manageable.
Software Development Process
One could easily argue that software development process has the largest impact on the pricing of custom software development process. Veterans of custom software development campaigns will tell you that timelines, budgets and requirements are essentially infinite without solid software development processes. Naturally, most of your math-based metrics fail as they end in infinity along with the project itself, and perhaps careers and associated businesses. The obvious conclusion is that any software develop project needs to occur within the boundaries of a proven agile based software development process, executed by experienced professionals.
Level of Service
There is a lot of variation among software development firms in the level of service they provide customers during the development period and the subsequent support period. In this context, support can be most easily defined by frequency of communication between developer and clients followed by velocity of response. As with most relational human activities, and software development can be firmly considered one of those activities, more frequent bilateral communication leads to better outcomes. In this case, the outcome is defined in the level of software application quality and cost. If it were possible to quantify the ratio of quality to cost, that is the metric you are trying to maximize. In our experience, the minimal additional investment to achieve top notch level of service is a given within the context of a process that seeks to maximize quality and value.
While a higher level of service may come with a slightly higher price tag, it can pay off significantly in the long run. For example, if you experience issues during deployment that delays implementation, you risk missing a market opportunity or alienating your existing customer base. So, a better development experience (with a higher price point) can be a net gain in the end. When considering various developers, be sure to ask not only about their development capabilities, but also the kinds of ancillary services and support they can offer.
Developer’s Business and Delivery Model
Sometimes differences in pricing have nothing to do with your project itself, but with the business model and delivery model your developer employs. Development firms are businesses after all, and just like any other business, their needs and ambitions affect how they deliver and price their services. For the last few decades, many stateside development firms have scrambled to establish offshore development arms in order to cut costs, facilitate growth and increase their competitive position Similarly, offshore firms have established U.S. based headquarters which act as sales and marketing arms, assigning development tasks to their offshore development teams. Both models recognize the greatest cost to any software development project is the labor component used to produce the software. Each model seeks to leverage offshore development teams that work for hourly rates, typically at a fraction of the cost of stateside developers. Hourly rates are much lower for a variety of reasons that, in summary, boil down to cost/quality of living which is an objective/subjective measure that varies within any country and even within regions of a country. The lower labor costs of offshore models, while very appealing on the surface, are balanced by several factors which often erase the labor cost advantage. Veteran consumers of stateside and offshore software development services are aware of the factors, for which a discussion is outside the scope of this article. The point is, the business and labor model for the largest cost input for software development projects, labor, have a big impact on the long-term ROI of the project.
Something as simple as office overhead can also be a significant factor. For example, a development firm with offices in the heart of Manhattan will have much higher overhead than a developer with cheaper office space in a smaller community, or one that functions with a virtual office, although office rent typically comprises a smaller percentage of each development dollar. More relevant is the higher salaries expected and required to live in big cities, to compensate for the higher cost of living. By choosing to partner with a development firm located in a smaller city, you may be able to cut costs without sacrificing any quality in the end product, or in the development experience.
In the end, it’s important to remember that pricing, while an important factor, should only be one of the factors you consider when selecting a software development firm. By doing your research and choosing a partner that meets not only your budgetary needs, but also addresses your core business needs, you can help ensure a successful project and achieve your target results.