Configuration: that famously under-appreciated part of application development. It sounds like a dry subject, doesn’t it? In fact, it’s fascinating to analyse and explore.
But first, what actually is application configuration?
You may have heard of ‘DevOps’ or ‘Development and Operations’. DevOps involves multiple teams collaborating together to deliver software or applications. It’s a business practice, a digital movement and a working culture all rolled into one acronym.
Imagine a busy airport with its planes, ground teams, air traffic controllers and at the end of the chain, the passengers.
Many of the processes connecting each team together are similar to what’s found in DevOps and its development processes. Those doing the bulk of the work are the pilots, or those coding the application (Development). Next are the Test and Quality Assurance teams, or the maintenance staff checking the plane before a flight. User Acceptance Testing (UAT) follows after - that’s the control tower checking the airspace is clear. Finally is Production, the final stage as the application launches, or to complete the comparison, you and I fly.
Holding these teams together are a number of complex processes.
In our scenario, these are application configuration and change management. For example, when a change to an application has been agreed, corresponding changes to its configuration (packages), code (new binaries) or both, must be made. When DevOps is concerned, this means alterations to every active environment and application instance (i.e. the above airport stages).
In highly distributed applications, there can be tens or hundreds of environments and instances. The scale of some complex applications is truly astonishing - a point the average user takes for granted.
Even once the desired change has been initiated, the sense of process doesn’t stop there. The change needs approving, implementing, testing, recording for compliance and then further testing before it is deployed.
Too many flights…
As you would expect, when so many teams of people are involved, the risk of mistakes occurring increases. Working with so many configuration variations can be overwhelming to even the most experienced of software professionals.
Concentration spans can easily slip, especially when manually replicating changes across so many application environments.
Time-pressures also increase the chance of human error. Developers, software integrators, IT teams and operational staff now have to launch new applications and features faster than ever. New functionality must be delivered within weeks or days. The pace of many industries has increased significantly, so waiting months for a new application feature is no longer a viable business model.
Surely changes can be fast-tracked and fixed with patches? A strategy of that nature would see an application regularly fail, and plenty of angry customers and unproductive employees.
If the sector is highly regulated, errors are even more damaging - reduced profitability, a damaged reputation and the prospect of regulator fines.
Financial trading providers and banks are two examples. Application reliability is fundamental to long-term success. Regulatory penalties extend into the millions of pounds, particularly with the introduction of MiFID II.
Therefore, when a single line of errant code or configuration can bring an application to its knees, it’s easy to see why so much due diligence is needed and why changes still take a substantial amount of time, cost and effort.
Automating for Success
How can developers and IT departments prevent this nightmare scenario from occurring?
Invoke the power of technology. New automation tools are coming to the market that remove the need for manual processes, which in turn reduces human error, increases the pace of change management and ensures a more predictable configuration pipeline.
Accountability is also improved. Expecting an individual to record every single change they make is counter-productive. Instead, tools record who made a change, when it was made and the parties involved in the process. This strengthens compliance and enables managers to quickly identify what went wrong before the application makes it to a live state.
As one would expect, this does require teams to adopt a new way of working and some experienced application developers could be apprehensive about trusting such an integral part of the development process to technology.
But, look at the evidence. Ullink is a financial services software provider and trusted by 150 of the world’s leading banks and brokerage firms. The company has been using a software tool that automates application configuration to an impressive degree – on one project over 18 months, there were 85 release changes with zero failures.
In the world of international finance and software development, zero failure is the level of reliability every organisation strives for. It is also what regulators expect.
As more configuration solutions emerge, teams should assess current procedures and decide whether there is a more efficient way of working. This should not mean a complete overhaul of application configuration, but rather tactical small-scale workflow changes and technologies that enable people to work more productively, and with greater confidence that they are no longer making mistakes.
Thierry Hue – CEO & Co-Founder - DynamicIQ