Judith is a Certified Scrum Master and the Vice President of Product Operations for CDC Software, a provider of enterprise software products. Judith has had responsibility for taking the entire product engineering organization Agile.
As businesses today demand more options and greater flexibility in how they source technology, enterprise software companies are making significant changes in their delivery models.
Many are opting for a multi-modal or hybrid software delivery model that incorporates elements of both SaaS and traditional on-premise software. These vendors understand that organizations will both continue to require that some applications and data remain behind their firewall, while also leveraging the benefits of hosted solutions in the cloud in other areas.
This fundamental shift in the way software is delivered, however, requires new approaches to software development, delivery, and maintenance. The inherent differences in how on-premise software and cloud applications are delivered are significant. And the complexity of developing and maintaining a variety of applications on different platforms demands more agility and control over process.
In the past few years, many software companies have adopted Agile methodologies to respond more efficiently to growing customer demands. Agile methodologies have helped hundreds of technology companies — including those that offer hybrid solutions — achieve very aggressive market delivery targets while maintaining cost structures that are optimized to the current economic climate.
But the secret to building and maintaining a successful hybrid software delivery model is not just introducing Agile methodologies. Success predicates on how these techniques are used — and how they are combined with other lean principles to achieve fast, flexible, and resilient delivery processes that speed up time-to-market and help development teams achieve higher levels of quality assurance.
A Self-Management Philosophy
One of the many advantages Agile has over the traditional waterfall approach to development is that Agile is a “pull” rather than a “push” system. So where most waterfall systems are very much command-and-control in nature, with Agile it’s the actual development team that heads the effort, pulls the work and commits to what it will get done within a certain iteration.
This self-managing philosophy is a critical distinction between Agile and waterfall methodologies. At the same time, Agile requires a new way of thinking that calls for greater individual and team responsibility. Teams have to take ownership. They have to start thinking about things such as collaboration, communication and business goals.
Keeping Projects Focused with Scrum
The Scrum methodology, in particular, has been a key component of our organization’s Agile initiative. One of the biggest benefits of Scrum is that it uses the actual progress of a project to plan and schedule releases. Projects are divided into defined blocks called sprints, which are typically two weeks in duration. At the end of each sprint, stakeholders and team members gather to determine how the project is progressing, to make adjustments and to plan next steps.
By evaluating progress on an ongoing basis and at short intervals, the team and other project stakeholders can make decisions based on completed worth rather than on gut feel or speculation.
Test-Driven Development Maintains Project Focus and Software Quality
Another Agile technique that’s essential for development teams who work on hybrid software solutions is test-driven development. With this approach, the team needs to first determine what specific tests that code will need to pass before any coding begins.
Rather than spending months in design work, a few more months coding, and then another three months going through quality assurance, you instead spend time up front deciding what exactly you’ll be testing for. This is a significant departure from waterfall, since it enables you to have potentially deliverable software at the end of every iteration.