How to Reduce Product Development Costs by Sharing Responsibilities
In a Modern Software Development process, non-functional requirements such as security or user conversion may account for 50% of the total product development costs. Can this be optimized?
If you are a product owner, having your developer resources spend half of his time on things that don't directly benefit the end-user seems like an unacceptable expense? This observation is misleading, though, as all users expect high-quality, secured, available and performant applications. You cannot forgo these invisible features in your cost estimate.
The appropriate question then becomes: How can you specifically optimize or decrease the costs of those expected non-functional capabilities, which aren't a strong business differentiator?
Approaches That Don't Work
Even though they may seem like logical options, these three frequently seen short term approaches are often the root causes of project failures:
Using low-cost knowledge workers will slow down a project by a higher factor than the compensation cost savings and effectively makes the Total Cost of Ownership (TCO) higher. The more complex technical requirements of today's software engineering can result in less talented developers being unable to deliver a working product.
Doing too much in-house development increases the cost and delivery timeline of a software project dramatically. By not aligning with the business objectives, this situation often results in cancelled projects or products not being funded.
Skipping essential steps in the development process, such as automating quality assurance testing, creates a technical debt and bugs that slow down the project to a grind before its delivery. The rework to correct these weaknesses later is sometimes too costly or even impossible.
Shared Responsibilities to the Rescue
The answer to cost reduction is to adopt a shared responsibility model, where you let a trusted partner take care of some parts of your software development at a lesser cost.
The collaboration can provide these benefits for less because the software development costs are spread to multiple consumers. For instance, instead of hiring an in-house security expert, you'll be more secure for a lot less money if you deploy your solution on a public cloud. You will never be able to match Amazon's hundreds of security experts working round the clock to keep your infrastructure secured.
By delegating responsibility, you'll free time and money to create more visible value in a new product for your customers. You will also get reduced time to market, which could be the biggest gain of all.
Approaches that Work
Here are typical cost reduction strategies based on responsibility delegation:
Stop managing your infrastructure and basic building blocks by transferring your operations to a public Cloud and its managed services.
Automate repetitive tasks like software testing and deployments instead of having humans do them.
Use existing libraries and frameworks instead of re-inventing the wheel.
Favour open-source software instead of proprietary, licensed components.
Integrate with 3rd party SaaS tools like UserFlow or Intercom to promote user engagement.
Forgo most infrastructure concerns by using higher-level abstractions like serverless.
Outsourcing to a technology partner like INGENO who has been there and done that, saving you the delays of acquiring specialized knowledge and preventing costly mistakes.
Where to Begin
Contrary to popular belief, a CTO's primary responsibility is not to drive project execution. Instead, a CTO must ensure that the development arm of the company stays relevant.
The pace of innovation is doubling every ten years. Therefore, for software teams to stay relevant, you must leverage external innovation as much as your own.
You can surf the global innovation wave by sharing responsibilities to deliver value faster.