This Computer Weekly Developer Network series is devoted to examining the leading trends that go towards defining the shape of modern software application development.
As we have initially discussed here, with so many new platform-level changes now playing out across the technology landscape, how should we think about the cloud-native, open-compliant, mobile-first, Agile-enriched, AI-fuelled, bot-filled world of coding and how do these forces now come together to create the new world of modern programming?
Ross writes as follows…
Around 20 years ago, Waterfall development was a popular software development model.
As the name suggests, it is based on a development process that flows sequentially, like a waterfall, from one phase to the next – leading to the delivery of a final software product. However, it also means that customer requirements have to be defined upfront. As the flow generally can’t go backwards and there is no overlapping of phases, it is seen as a highly risky model.
A customer takes a gamble in the hope that the initial costly investment will actually then meet the business goals and provide value by the time the software application has been delivered two to three years later. Considering the long-term payout, it comes as little surprise that various projects developed using this legacy approach failed during the late 1990s and early 2000s.
The birth of Agile agility
By the mid-2000s a more measured approach to software development began being introduced. As opposed to Waterfall’s linear approach, the Agile model of development is concurrent; it focuses on continuous iteration throughout the software development process. Based on incremental progress with short timescales between deliverables, it’s a flexible model that is receptive to changes.
The challenge with Agile methodology, though, is showing continuous new features and business value in short 1- or 2-week increments or ‘sprints’ as they are known.
This challenge highlighted inefficiencies and error-prone steps in the software development lifecycle which resulted in the introduction of a slew of new DevOps software tools to support the Agile implementation of software. This included tools such as CI/CD (Continuous Integration & Continuous Delivery), automated testing frameworks, including the likes of FitNesse, Cucumber and Selenium and many other tools that boosted developer productivity. While the original Agile movement was about agility to respond to changing business requirements, the tools that supported Agile added the benefit of accelerated speed of development.
Despite the large number of developer productivity tools introduced to support Agile and speed software development, the acceleration was still not enough to keep pace with global market demand for new digital solutions.
There continued to be a skills shortage of well-trained developers using classical development frameworks such as Java or Microsoft .NET. Out of this low-code visual development frameworks were reborn to accelerate the composition of software.
While the concept of visual development, or fourth-generation programming languages, was defined in the 1970s, not until the 2010s did the global market demand for software drive mass adoption of low-code platforms.
Current low-code platforms have further evolved to incorporate all the agility of DevOps tools with the speed of visual composition to create a new modern paradigm for application development.
Speed and agility are now the defining attributes of modern application development and this attribute has become abundantly clear during the Covid-19 (Coronavirus) pandemic. Businesses who lacked the agility to quickly adapt their digital business operations to allow customers to interact with their business found they were at a severe disadvantage.
This experience has highlighted the need to accelerate their digital transformation and fundamentally change how future applications are developed. Tools to support that change include, for example, low-code development tools and automated DevOps tools.
An eye for AI
Covid-19 caused huge human suffering and wrought global economic disruption – but it also drove home the point that the digital experience is your business and that digital agility is the key to business survival. Whether it’s now or five or 10 years down the line, this agility and speed of building applications and adapting to business change will continue to be crucial.
To address this future need, we at Appian are investing in development tools that are augmented by Artificial Intelligence (AI). Initially, AI engines will monitor how developers are building software. In the future, these engines will start to proactively build software solutions themselves, automatically implementing changes in software. Businesses will gain agility and resilience from software that will essentially build software and adapts to the changing market dynamics.