There is a lot of buzz around the use of Agile methodologies for software development, and Agile is providing quantifiable benefits for companies engaged in large-scale development projects. By applying Agile principles, software development executives have reported multiple benefits, including higher quality software, a product that “hits the mark” in terms of meeting business requirements, and improved collaboration between engineering teams and the business.
Although to date Agile principles have been primarily applied to software projects, some leading industry thinkers believe they may be applicable to other types of business projects and problems, as well. Israel Gat, a BMC Software VP in R&D, is one industry leader who has applied Agile to commercial software development. This article is based in part on conversations with Gat about the results. (For more information on his thoughts and approach, check out his posts at the Agile Thinkers blog: agilethinkers.com/israel_gat_bmc). There are multiple definitions of Agile, but a few key ideas seem to resonate across methodologies and practitioners.
▫ Advocate that software development projects deliver a product in small increments via multiple iterative and incremental cycles, with each cycle delivering a subset of the overall capabilities.
▫ Enable a team to focus on only the most important thing(s) at a given point in time.
▫ Encourage a Darwinian elimination of requirements that will not be implemented.
▫ Provide for flexibility throughout the development cycle, as requirements adapt and evolve.
▫ Promote a highly collaborative approach in which small teams (typically no more than 10 engineers) work closely together and meet frequently (typically 15-20 minutes daily).
▫ Emphasize continuous integration and testing.
▫ Provide for stakeholder involvement throughout the process.
▫ Deliver products frequently and often, with stakeholder acceptance and signoff as project milestones.
There is growing interest in Agile ideology and it appears that Agile is becoming the de-facto standard for software development. In 2004, Gat introduced Agile at BMC.
BMC used Agile techniques to re-architect and re-write some of the products in its business service management (BSM) portfolio. The resulting products are simpler to deploy and manage, easier to integrate to cross-vendor solutions, and easier to use than previous software versions. From both capability and time-to-market perspectives, the results are impressive. The BMC Agile teams won the Application Development Trends 2006 Innovator of the Year Award.
Since investment in innovation always competes with maintenance of existing products for R&D dollars, many vendors in this space consistently lag behind the technology curve. Delays of a year or more are not uncommon. As an illustration, many management vendors are still in the process of adapting to the introduction of .NET to the enterprise.
Gat wanted BMC to be well positioned as an innovator rather than a follower, and introduced Agile methodologies to his teams over four years ago. Agile has now spread far beyond the few teams and BMC now has close to 1000 “scrummers”—Agile developers.