As 2016 is just round the corner, enterprises are looking to gain velocity with best practices positioned to enable collaborative environments where diverse teams can continuously learn, improve, grow and produce. Agile software development and Agile 2016 initiatives are underway at many leading digital enterprises – the realization that your enterprise may be better with an agile methodology is now almost a reality.
Today’s massive enterprises are competing to become leading digital enterprises. They realize that approaching business development in an Agile manner allows the savvy enterprise to maneuver meeting and exceeding user demands. The changes in software development cycles necessitate building a more customer-centric legacy.
In a report released in July 2015, the research firm Gartner not only strongly recommended adopting agile, but offered CIOs several principles they can follow and adopt to create agile environments.
Why? According to Gartner, agile development is seen as a way for CIOs adjust to a new way of doing business, and Gartner believes IT leaders and executives need to adopt this approach as quickly as possible. In fact, Gartner’s research finds there are 10 guiding principles that should motivate enterprises to go agile in 2016. Gartner identified:
Agile is not one thing.
Agile development methodologies are a set of approaches to software development that share a common philosophy but are sharply distinguished in the details of their implementations. They therefore tend to be adapted to different sorts of problems. Sophisticated organizations with a lot of experience may well use more than one of these approaches, but an organization that is getting started should select one approach and master it before attempting other approaches.
Agile is not a “pick’n mix” methodology.
Agile methods are highly systematic. Every component element of the methodology is crucial to the success of the methodology. A common mistake is for an organization to embrace some elements of an agile methodology, such as the sprint, but to ignore or play down other elements, such as managing “technical debt.” Such organizations enjoy the kudos that comes from rapid development and release of new code, but they are storing up trouble by failing to address technical debt.
Embracing agile is a joint business-IT activity.
The full benefits of agile cannot be achieved without engaging with business leaders, management and the user community. If the rest of the business does not have an immediate appetite for working in a new way, careful planning and communication will be needed to bring different communities of managers and users on board.
With agile, it is important to walk before you try running.
Experienced agile practitioners can tackle large-scale developments — the equivalent of climbing Mount Everest. But it takes many years to develop the necessary skills to be able to take on such large-scale software projects. Any organization that is starting out on the agile journey needs to start in the foothills to develop the confidence and competence to take on larger tasks.
Embracing agile is embracing continuous learning.
Agile practitioners must be committed to continuous improvement in quality and cost-effectiveness, which means that every development is analyzed for lessons that can be used to improve policies and working practices. This analysis and learning are not the responsibility of a small number of senior practitioners; they are fundamental components of the workload of all agile practitioners. Furthermore, the learning is not just appropriate to the programmers who are directly involved in software development; it is also essential for all the related skills, such as project management, architecture, quality assurance and IT budget management.
Agile is about teams and teams of teams.
The basic organizational unit of delivery in agile development is a small team, typically expressed as “seven, plus or minus two” people — both developers and quality assurance. From an HR perspective, managing agile teams involves walking a fine line between keeping productive teams together and moving individuals between teams to encourage cross-fertilization of ideas. If people are moved too frequently, the teams fail to develop into highly productive units; if people are not moved between teams enough, then each team starts to become isolated and diverges from the other teams. It is important to note that physical location of teams is much more important with agile methods than with conventional approaches to development.
Documenting, managing and eliminating technical debt is a core concept of all agile methods.
Technical debt is the difference between the state of a piece of software today and the state that it needs to be in to meet appropriate and necessary requirements for quality attributes such as reliability, performance efficiency, portability, usability, maintainability and security. All development creates technical debt. The difference with agile methods is that technical debt is recognized and added to the backlog, not swept under the carpet. Any organization that seeks to embrace agile methods must put in place the necessary elements of the chosen method dedicated to ruthless refactoring and the elimination of technical debt.
Working with third-party development service providers on agile development demands special care and attention.
Many user IT organizations have a long history of outsourcing application development to specialist service providers. While there is a role for service providers in agile development, it is a very different commercial model and a very different engagement model. Since co-location with business users is axiomatic to agile methods, the opportunities for sending large amounts of work offshore are somewhat limited, so some form of supplemental staffing is likely to be a more useful model.
The impact of agile goes well beyond the software development teams.
An integral component of the agile methodologies is the concept of “continuous delivery.” Agile methodologies are predicated on continuous engagement with business managers and users, and lead to the delivery of a continuous stream of new and modified software into the operational environment. This demands significant changes in working practices for both business governance and relationship management and the infrastructure and operations teams.
Other software development methodologies will still have a place in your portfolio.
In most commercial and public sector organizations, the application portfolio will present many different classes of development problems, some of which will be well-suited to agile, while some may be better-suited to incremental, iterative development and some to a modified waterfall model. Agile is not “better”; it is simply better-adapted to some problems, but not so well-adapted to others.
The Agile Landscape
As more enterprises are looking to deploy cloud-based services in order to enhance their IT experience, the prospect of going agile is growing increasingly valuable. While reinventing an organization for success in an agile landscape may seem initially daunting, the benefits of adopting agile can be meteoric for organizations looking to increase productivity, elevate software quality and experience the joy of happy customers.