26 Apr Hidden Costs of Creating Software
“Analysis of Penalties Incurred by Sub-par Skills vs Potential Savings on IT Staff Hourly Rates”
Outsourcing software development services is an ongoing trend for years now and although it is still a popular approach in many industries it is far from having a perfect track record of meeting executives’ expectations. What seemed like an easy win when comparing operational costs on paper proved to be far more complicated when attempted in real life. For example, General Motors’ dissatisfaction with outsourcing its IT caused the company to reverse the process. In 2012 GM has announced plans to move 3000 of IT jobs previously outsourced to Hewlett-Packard back in-house. By the mid-2015 automaker’s plans included having 12000 strong IT staff by 2017, an almost ten-fold increase compared to 1400 IT workers in 2012.
This article attempts to describe often overlooked aspects of outsourcing software development that greatly influence the overall effect such initiatives have on business outcomes.
Software Outsourcing Often Fails To Meet Expectations
Qualified software developers are an expensive workforce. Comparing IT wages in countries like Germany, UK or USA to going rates provided by near- or offshore vendors it seems as the only rational choice is to switch over to their services. On paper, this decision gives immediate 20-70% cost savings. But does it really?
For some reason, a lot of outsourcing arrangements deeply disappoint failing to meet business expectations. The pace at which new software is delivered is lower than expected. Support and maintenance costs skyrocket. Introducing even fairly simple changes takes weeks or even months. The reliability of IT solutions is far from satisfactory causing an onslaught of outages hurting the bottom line and/or reputation among external partners and clients.
A lot of those failures start with an overly simplistic approach to ROI calculations, reducing the cost of software to almost exclusively cost of labor. Based on our experience differences in quality of skills might affect the bottom line to a far greater extent than differences in hourly rates.
Savings on Skills Generates Significant Hidden Costs
If outsourcing initiative planned ROI is calculated focusing mainly on comparing hourly rates of contracted staff against in-house personnel or those offered by other vendors then very significant hidden costs are not accounted for. In this article, we will focus on two often overlooked factors greatly influencing the bottom line of any software development initiative: efficiency of software delivery process and financial impact on lacking quality caused by under-qualified development teams.
Software delivery process efficiency
One of the critically important aspects that define an organization’s ability to generate high ROI on investment in software development is the efficiency of the development process itself.
There is a clear global trend in the industry to move away from traditional waterfall development processes to leaner approaches. Agile, adaptive, and empirical methodologies like SCRUM are now a go-to solution in all companies aspiring to industry leadership. Doing it right gives organizations significant advantages:
- Short time-to-market for delivering business value to end-users
- Better ability to adapt to changing business conditions
- Significantly better control over project cost and scope
Short time-to-market for delivering business value to end-users, whenever internal or external (customers, partners). Projects done in the traditional waterfall process tend to last months, sometimes even years. Any investment in the development efforts is locked and frozen until the software reaches its users. The main principle of the agile methodologies is to deliver workable software releases incrementally adding business value with each release. That means that after each release (usually at least once a month or two, with the best teams shortening it down to two weeks or more) benefits provided by the software start to pay back costs of creating it.
Better ability to adapt to changing business conditions. If a project is done in a traditional model then the process of introducing a change is a complicated and cumbersome one. It requires altering design documents, project schedules, negotiated scope, and project timeline. This is made way more complicated as the requirement specifications, design documents and project schedules created in the project’s inception phase are covering the entire project.
In a lean process specification/design/plan phases are done in shorter cycles focusing on features ordered by their ability to generate business value. This naturally reduces the scope of any changes that might be requested by the business stakeholders. It means a much lower procedural barrier to introducing changes that otherwise are penalized by the change management costs.
Significantly better control over project costs and scope. One of the costly misconceptions common among non-technical managers is that a waterfall project gives better control over project delivery timeline, budget, and general ROI. This stems from the faulty assumption that it is possible to accurately specify, design, and schedule a complex, multidisciplinary, multi-actor, communication-heavy process of delivering complicated software. A vast plethora of failed waterfall projects that were either canceled or vastly exceeded planned budgets proves how both dangerous and widespread this assumption is.
Discussion on how lean and agile processes can give product sponsors far greater control over their IT spending is definitely out of the scope of this article. One of the best introductions to this topic is a highly recommendable book “Software in 30 Days”, by SCRUM creators Ken Schwaber and Jeff Sutherland. This great management-centric introduction to SCRUM describes its principles, benefits, and approaches to introduce it into an organization. Chapter on how lean empirical process increases planning precision has been an eye-opener for many used to traditional thinking about IT project planning and budgeting.