Many companies are shifting from waterfall to agile as their preferred software development project methodology. Yet while agile offers developers the advantage of build flexibility as users’ ideas and requirements clarify, the methodology lacks an efficient means by which the different stakeholders and developers can communicate thoughts and changing needs.
In my recent InfoWorld article “How to scale agile: 6 keys to success,” I cited a Gartner statistic that indicates that the use of waterfall appears to be in slow decline, while agile methodologies are in the ascendant. Companies using agile grew from some 37 percent in 2015 to 41 percent in 2016, and if my own mere impressions from IT conferences count, then I’d say that through 2017 and into 2018, agile has become an even more popular choice over waterfall. Let me briefly outline each approach, before coming onto an essential element of agile principles that is often missing (or becomes frustrated) in practice.
The traditional waterfall methodology takes a sequential approach to the key elements of a software development project; from requirements gathering to design, coding, testing, and delivery. Stages demand precision and can take months (sometimes many months to complete before the next phase can begin). It’s well suited to projects where the requirements are static and getting every detail defined at the start is deemed essential to a successful outcome. Systems of record such as legacy ERP, financials, manufacturing, CRM, and HR applications will often have been developed under waterfall conditions.
Agile approaches like scrum, on the other hand, follow more a set of principles than a strict methodology and support an iterative style of development. Developers craft an application over short iterations (sprints). They mould the application as they progress coming ever closer to a deliverable that might be hazy at the start, but which in a process of innovation and feedback becomes clearer as work progresses. Flexibility is a central aim. The secret to success is for developers, users, and other stakeholders to engage in regular communication and close collaboration to provide input, feedback, and new ideas to guide the development. In practice, most business application development projects will benefit from an agile approach and research from the Standish Group shows that, particularly for medium and large projects, the failure rate for agile projects is half that of waterfall projects.
But here’s the challenge with agile: If you’ve been involved in any kind of agile software development project, you’ll have quite possibly encountered one core area where things might have gone better for you; developer-user communication and collaboration. As cited in this article about a developer’s experiences at Erie Insurance, teamwork is key. Regular feedback sessions and the rapid exchange of ideas are essential to success. The trouble is though, that developers often speak something of a different language to the business users with whom they must collaborate, and users typically can’t understand or comment upon the lines of code that make up the nuts and bolts of an application. Meetings and more meetings won’t cut it. You have to find a way to bridge the communication gap.
One way successful agile teams are building this bridge, is by shifting from code-based development to visual-model-based (or low-code platform) development. Because they’re easily understood by the entire team, visual models facilitate ongoing collaboration between developers and the business. At any point—even early in the process—different people from across the organization can sit together to discuss and review functionality, gather feedback, validate assumptions, and identify improvements. And because development is so fast, and apps can be previewed instantly, low-code platforms enable rapid iteration. Developers can make changes in real time based on user feedback, iterating continuously toward the desired results in a process of innovation. For example, in a case study written by Mendix on how its low-code platform is used by the courier TNT Express, a senior member of the business team there says, “I watched the developer build and mould the application [to meet my needs] right before my eyes.”
Low-code platforms also support agile in other ways too. For example, certain platforms allow user stories to be captured and continually updated via a feedback loop. Feedback can be captured automatically and connected to the the element of the application requiring further iteration. Platforms also provide an automated testing suite, offering a comprehensive set of tools for creating, refactoring and automating reusable end-to-end tests based on user stories. One thing to note, though: If you do select a low-code platform to support your agile initiatives, do choose one that’s cloud-native, that is stateless, and that will support containerization. Cloud portability is essential to enabling easy setup and automated deployment of apps to target environments for test, acceptance, and production (as part of the CI/CD process) and once in production, allows changes to be made rapidly, in keeping with your agile goals.
It is widely accepted that if used correctly, agile development can contribute to positive outcomes in application software development projects. However, the IT industry needs more than just guiding principles. While collaboration among stakeholders, users, and IT is at the core of agile, business teams and developers tend to think and speak different languages. Low-code platforms overcome this barrier using visual models for much of the development work, enabling the parties involved to view work in progress, share ideas, and provide feedback.
This article is published as part of the IDG Contributor Network. Want to Join?