Opportunity Costs in Software Development
Software is the product of innovation, which requires substantial time and resources to create. The practical applications of software are nearly unlimited. Software powers our transportation systems, our business productivity tools, our homes and our communication. And most software products are ever-evolving. If a company intends to derive future revenue from a software product, most often that company also has a plan for the continued development of that product.
Choosing that development path means setting priorities, and that job typically falls to software project managers. In an accounting sense, it’s fair to say that the work of software product managers is largely an exercise in managing opportunity costs. Dedicating limited resources to a nearly unlimited list of potential development priorities means choosing options at the expense of others. Product managers must confidently proceed in executing upon their priorities with the knowledge that they’ve put their teams work to best use.
The opportunity costs of software development are primarily informed by market research. Determining a product development path requires insight into market needs and demands, and market research helps identify customer needs and market requirements. As development needs are identified, other questions must be answered. They include:
Is the solution technically tenable? Can the solution be created internally? Is it already available in the market? Will the solution help sell product? Is it necessary to ensure continued sales? Can a profit be derived by implementing a solution? Will other development efforts and more pressing market needs be delayed or ignored as a result?
Â
Many opportunities compete for valuable resources in software development, they include:
Untapped business opportunity Matching or improving upon competitive offerings Tailoring software for industry-specific applications Language and localization issues User interface improvements Bug fixes
Any effort undertaken by the development team receives resources in lieu of sourcing other potentially worthy development efforts. In weighing the opportunity costs of software development, it is important to understand the potential tradeoffs and consequences that come with any decision.
Untapped Business Opportunity: Untapped revenue opportunities often represent the most valuable investment path of development resources. Product managers cannot blindly chase untapped opportunities without ample consultation with marketing and sales. Specifically, it is important to determine that the company will have the sales, marketing and domain expertise to sell to new opportunity after development. A company must have technical, sales and marketing resources to sustain development into a profitable gain before software development invests resources into developing new features for an untapped market.
Chasing the Competition: Many software development efforts are undertaken in response to competitive pressures and a fear of lagging on innovation. Chasing competitive threats without weighing consequences can cause a company to quickly burn through an R&D budget with little return. It’s important to understand whether a competitive threat is worth chasing, or would the development time be better spent improving upon other, perhaps more core strengths.
Often there are many ways that companies may respond to competitive threats without investing heavily in software development. Some software companies will partner with other technology providers who offer needed solutions. Ensuring interoperability with complementary technologies can resolve competitive threats. Other times, the technology may be acquired from other technology companies. Sometimes competitive threats may be best answered by improving user access to the features already inherent within a product, and by offering the right training and support to make users successful.
Addressing Vertical Requirements: Software products often find strong reception in specific vertical markets, and these markets can become preferred targets for future development. Addressing vertical requirements further establishes innovation and leadership in that space. However, it’s important for companies to not lose sight of their potentially more profitable cross-market – or horizontal – opportunities and development needs at the expense of serving a niche market.
Language and Localization: A software product’s market is limited by its support for local language and currency. Software companies require global market expertise and awareness to effectively localize and sell software worldwide. Localization can be expensive to initiate and maintain, and some international markets may not present the long-term revenue that’s would make the initial investment worth the effort. Companies must be selective about localization opportunities, or risk spreading resources too thin.
Usability and Interface Issues: Software users continually grow in their ability to put powerful software to work, and they grow ever more demanding in their expectations of usability. Usability issues are constantly evolving, and software companies must work to keep their products easy to use and well designed. It’s a delicate balancing act, however, as companies cannot afford to make jarring changes to the user interface and risk losing loyal, existing users. Changes to the user interface of a software product must be gradual and intuitive.
Fixing Bugs, the Work Never Ends: Bugs and glitches make their way into software code constantly. Sometimes new code causes existing code to not act as it should. Bug fixes are scaled according to severity and impact on users, and product managers ensure they are fixed in line with other priorities. Failure to fix bugs quickly could leave negative residual impression on users, even if its interference with productivity is minimal.
While software development resources are limited, demands for those resources are virtually unlimited. Market research, along with strong insight of sales’ reach and domain expertise, all must be considered when assessing a development path. Customers have many opinions and can be very vocal about their demands on software makers. In this case, the customers are not always right. While loyal users can have great insight, they do not represent the whole set of opportunity costs that a software company must consider. Only a project manager can assess both new and existing opportunities for development and set about the right course of action.
