The similarities between Angry Birds and multi-faceted, complex trading systems is not immediately obvious. But increasingly, what links the two is a reliance on agile development techniques. In fact, smartphone apps perfectly illustrate agility in practice: incremental development that continues to add functionality in response to changing user needs and experience.
Agile development practices have been around for some time, and are becoming an increasingly common sight in IT departments throughout financial services. Over the past decade, it has become apparent that modular software applications that can be delivered to market relatively quickly, and which offer greater levels of customization are far more in tune with today’s business requirements. The old model of static software and regular upgrade schedules is showing its age. Across the board, trading applications are receiving a higher level of scrutiny. To meet the often overlapping demands of national and increasingly international regulation requires complex rules and compliance processes to be embedded in the trade flow.
Equally, as smarter trading venues have developed, consolidated, and carved out a position for themselves, traders require much faster and more flexible ways of reaching a diverse range of markets. Algorithmic servers have come to fruition and require continual tuning and enhancing to find the best match opportunities.
Front-end solutions, such as execution management systems and order management systems cannot be implemented and then left. They too require continual fine-tuning to meet the multi-asset requirements of portfolio managers and their clients, and the embedded analytics that the big data phenomena demands.
In this environment, it is clear that traditional waterfall development methodologies offer sub-optimal results. The pace of change in trading applications and the wider environment in which they operate has become so fast, the old-school process of designing complete software applications with lengthy specifications can no longer dominate the development cycle.
Agile development practice does away with the lengthy pre-implementation specifications and replaces it with increased, real-time interaction between development teams, business heads, and product leaders. One of the interesting features of agile development techniques, is the level of human engagement and interaction that it requires. It embraces collaboration and brings IT development closer to the heart of the business.
Agile is also an acknowledgement that there are no crystal balls when it comes to software development. No one is capable of predicting and therefore planning for the future. Instead, new requirements are allowed for by the development of shorter, iterative packets of code that add features and functions as they are required in near real time. The results of agile development are quicker release cycles and a constant revolution of product functionality. It enables businesses to move faster and develop a competitive position rapidly and with lower risk, since positions can be exited equally quickly. It also improves internal working relationships between separate groups and business units, allowing for improved interoperability throughout the business.
Of course, to make agile work, new ways of ensuring quality assurance must be developed alongside the code. One of the fears of the early 1990s, when agile first attracted attention, was that it would create a fertile ground for rogue developers and present them with opportunities to inflict serious damage on systems and business.
Today that fear has largely dissipated, largely thanks to the best practice guides and increasing formality that surrounds the practice of agile development. This is no longer the wild west of corporate IT, but a controlled and carefully monitored function. It may do away with volumes of pre-coding specifications, but it still requires post-release write-ups of new functions.
It is also true to say that agile is more suited to certain areas than others. The back-office, for example, presents some opportunity for agile development. But the relatively slow rate of change, reduced requirement for feature enhancement and minimal levels of segmentation, customization and differentiation required of back office functions means that it is not the natural habitat for agile development.
Agile development is an acknowledgement that software solutions are always a work in progress. Something new will inevitably arrive and change requirements – often before a platform has been implemented. It recognizes that the biggest hindrance to developing a good solution is frequently the vision of a perfect solution. So if there is one vision of the future that we can predict with confidence, it is that agile will have an increasingly dominant position. It is not just a competitive move, it is a market necessity.
—David Meitz is Managing Director, CTO at ITG, the execution and research broker. Responsible for software development, technology and trading support services, and information security, Mr. Meitz joined ITG in 2002 from Reuters America, where he was an EVP responsible for consulting and client site services. Mr. Meitz previously held technology and customer service management positions at Citibank and Quotron Systems.