Programming 70,939 views
Posted Wednesday, January 11, 2017 by DAVID MAGNAN
New advances in technology come thick and fast, but most companies are unable to keep pace. It can be a struggle just to ensure that existing systems are kept up to date. Few companies are agile enough to leverage the latest tech and drive innovation. The idea that a new, all-encompassing, bespoke application must be developed or cobbled together is pervasive. The truth is that software like this costs too much to develop and maintain, takes too long to produce, and tends to have a disappointingly short shelf life.
These monolithic projects aren’t just expensive and time-consuming, they’re also not getting results. In 2015 as many as 66% of technology projects ended in partial or total failure, according to Standish Group's 2015 Chaos Report. To make matters worse, 17% of large IT projects went so badly that they threatened the very existence of the company.
Expectations are lowered
This level of failure should not be tolerated. It should be prompting an outcry, but it’s not just accepted - it’s actually expected. When Geneca surveyed 600 business and IT executives it found that 75% felt their projects were always or usually “doomed right from the start”. Even although key stakeholders often feel this way, projects are still greenlit.
We are repeatedly making the same mistakes and it’s costing our businesses a lot of money.
Almost all cloud ERP projects will fail by 2018, Gartner predicts. Why do we continue to throw good money after bad? Expectations have been lowered to such a degree that no one seems to be asking pertinent questions about return on investment. It doesn’t have to be this way.
Business requirements as building blocks
If we really want to meet the demand for application development and maintenance, then it’s clear that we need to change the way we approach the problem. Perhaps hand-crafting software isn’t the right way to go. Let’s cut through the complexity and make it simpler to develop applications.
The same patterns repeat over and over in business interactions. This idea that you need a bespoke software solution is a fallacy. We can break virtually all business software into individual chunks that can be generated automatically and assembled quickly based on shifting business requirements. There’s no need to go back to the drawing board every time we have a new idea. This democratizes application development, enabling business people to define their requirements, generate code automatically and test it, then tweak or redesign as necessary.
Programmers can focus on translating business requirements into logical structure models that can be employed by the code generator to produce new systems. That means they can work on multiple projects, instead of being bogged down coding and testing on one. It also boosts overall productivity and eliminates the IT governance process restricting business growth.
Driving agility and innovation
Innovation is vitally important to sustaining growth in any business. 97% of CEOs value innovation, 51% feel it’s a priority, and 10% named it as their primary goal in a recent PWC survey. The main constraint that 43% of CEOs highlighted as holding their company back from being more innovative was financial resources. It needs to be cheaper to develop software.
When business people are armed with the building blocks they need, it’s possible for them to roll out new ideas rapidly and get the feedback that will help them to identify beneficial leaps and drive innovation. Applications can be developed with fewer people, much faster than before, freeing up programming resources to add more value and tackle the backlog.
This approach encourages an iterative mindset, that can accommodate and integrate change, whether it’s fresh security standards, modern technology or a new idea. It allows for the flexibility and agility you need to quickly prototype new products and services, leverage the latest cream of the tech crop and continue to maximize the value of existing systems.
The only real certainty with the current approach is that the majority of projects will fail to deliver. If we really want faster, cheaper, better technology, then we need to stop reinventing the wheel and try something new.