Breaking the Backlog in Business App Development
Failure is the norm when it comes to business apps. They're expensive to develop, take too long to deliver, and there’s a high risk of failure. What can you do about it?
Join the DZone community and get the full member experience.Join For Free
It has always been difficult for IT departments to balance the need to maintain and update existing systems with the desire to adopt and implement the latest technology. The idea of IT debt was defined by Gartner as the cost of clearing the backlog of maintenance required to bring corporate applications up to date. Gartner analysts suggested it stood at $500 billion in 2010 and would reach $1 trillion by this time.
The two traditional approaches to tackling this backlog have been to build or buy new business applications. Try to build without a well-designed infrastructure, tightly defined scope, and an expensive development team with highly specialized skill sets, and there’s little chance of success. Buying is the less risky option, but any generic product necessitates integration and modification to meet company needs.
It soon becomes apparently difficult to unify your systems or keep them up to date, so that you can benefit from the latest advancements.
Failure Is the Norm
Despite the best efforts of CIOs and their IT staff, successfully developing business applications continues to be challenging. Business applications are too expensive to develop, they take far too long to deliver, and there’s a high risk of failure.
Last year 66% of technology projects ended in partial or total failure, and 17% of large IT projects went so badly that they threatened the very existence of the company, according to Standish Group’s 2015 Chaos Report.
You could argue that failure is a necessary step on the road to innovation, but to derive real benefits, you must be able to iterate rapidly and fail fast — and that’s not happening. There’s clearly something wrong here. The current model for delivering software is falling short. It’s time for some fresh thinking.
Studying Successful Trends
If we look at popular trends in modern business, we can see that there’s a major shift underway in how we develop, maintain, and integrate software. Barriers between roles are coming down as companies try to leverage their employees’ skills more effectively. DevOps adoption has reached 74% of businesses this year, up from 66% last year, according to RightScale’s 2016 State of the Cloud Survey.
Continuous Integration and Continuous Delivery are pushing us towards a fully automated pipeline for delivering software to users. Automation can speed up the development process, reduce errors, and free up skilled employees to focus on adding value.
The growth of a microservices architecture has led to independently deployable systems working together to replace monolithic applications. Breaking everything into manageable chunks introduces much greater transparency, making it easier to change, add, and improve. It’s a simplification that enables businesses to be more Agile.
Digital Transformation Is Delivering Benefits
As companies adopt these digital transformation initiatives, the main drive is to deliver faster, better quality software that aligns with business goals. The benefits are tangible, according to Enterprise Management Associates research. Making better use of employee skills and automating where possible is having a positive financial impact. By extending these principles we may find a viable way of breaking the current backlog.
As it stands, just throwing more money at the problem is not going to work. The talent required for a major increase in business application development simply is not there. Consider that 65% of CIOs believe a lack of talent will prevent their organization from keeping up with the pace of change, up 10% from last year, according to a KPMG survey.
If we accept the logic of Continuous Delivery, why not take automation a step further and automatically generate code?
Another Step Forward for Automation
The idea that we need to develop bespoke solutions to meet every business requirement is fundamentally flawed. There are lots of repeating patterns in business interactions that apply across a wide range of different industries. If we really want to increase our capacity to deliver business applications, then we need to simplify the development process.
Imagine if business analysts were empowered to design applications by feeding their requirements into an automated system that could generate the user interface, the normalized database, and the process layer without them having to engage a small army of developers. Technology automation would allow us to cut team sizes, cut time to market, cut costs, and cut risks. Applications could be developed without the need for skill sets that are in short supply.
A flexible, automated system that can be endlessly reconfigured to meet changing needs and accommodate feedback would provide the agility, speed, and quality that companies crave, all at a much lower cost than current methods.
Opinions expressed by DZone contributors are their own.