There has been terrific coverage this week on agile development and its alignment with agile principles implemented throughout the enterprise. Strategic corporate management, database issues, and the basics have all been addressed, with some common themes of short-term development and deployment and managed and mitigated failure emerging as a common message.
Strategic corporate management
An interview with CVS Caremark SVP and CIO Stephen Gold provides great perspective on how agile development meshes with corporate strategy. The nexus of the retail and medical sectors makes for a rapidly changing business environment, and Gold offers the roadmap for how he has put CVS Caremark, as well as his earlier employers, on a path to quickly enable an IT department to support that change.
Gold explains that CVS Caremark’s business agility comes from being able to combine elements of its drugstore, prescription benefit management, and retail medical clinic businesses in new ways. Toward that capability, there has to be something of an interchangeable, plug-and-play aspect to its corporate IT, including its access to data. He describes the following, transformational use of agile within CVS Caremark:
“We’re building an enterprise project office. We have transformed project management in the company; now not only are we using those techniques for IT projects, but for business projects as well. We’re also doing some hiring now with the quality office, again starting it inside the IT organization and eventually using it to engineer quality into all of the work that we do. We are also focusing on a data office as a partnership between my most senior technical data leader and his corresponding leader on the business side, and they’re jointly developing the next generation of data strategy for the company.”
On a technical level, ‘Your database is a major agility risk factor. Here’s how to fix it’, offers a fair argument from a database tools vendor for addressing the database side of agile software development. The article acknowledges how database construction and management in some ways has been subject to less automation and modernization than has the software development process, and thus has often been the first and most persistent source of system ‘silos’ within an enterprises IT environment.
In the article, Yaniv Yehuda, co-founder and CTO of DBmaestro, outlines his person personal list of best practices in the software development life cycle:
“Requirement management – A continuous process throughout a project of documenting, prioritising and tracking requirements, change requests, and trouble tickets, then controlling change and communicating to relevant stakeholders. All participants must clearly understand why changes are being made.
Development – The ongoing management of changes, using version control and change management, will ensure that it is clear who did what, when, and why. Task based development is a great way to correlate development work with requirement management.
Build – Link development changes with the requirements that initiated them, and build the next relevant release. Only agreed-upon changes should be implemented: nothing more, nothing less.
Testing – Quick development cycles challenge our ability to properly test our projects, as there is simply not enough time in each cycle. Regression testing and unit testing can effectively help focus on relevant changes, while making sure nothing else gets broken in the meantime.
Release – Release automation is a great way to make sure we create and test our change packages, and manually process them as little as possible. The more we automate, the more we can expect the same result from the same steps we take.
Operation – Roll back scenarios should be ready for each release. This is our last safety net.”
Yehuda further offers agile development and database change management as the two key elements to integrate database development into the larger SDLC process testing, regression testing, and automation as critical factors to mitigating database-based risk in the new environment.
Building for the very short term
An article in diginomica this week quotes Matt Quinn, the CTO for Tibco, “Businesses need to remember that success doesn’t last, so even if the business gets the right tools for the job now they probably won’t be right in a few months’ time”. Even more provocatively, he suggests that every application is going to be “beta”. That is, but the time it has reached the final stage of being “ready” it will likely be time to kill it off.
The MIT Technology Review yesterday posted ‘What every company should know about agile software development’, which is a primer on the process from the perspective of an agile tools vendor that argues for the adoption of the culture across the enterprise. The need for implementing small, rapid changes is, with agile development, becoming a commonplace in the realm of software development. But the recognition that digital capabilities are making nearly all firms providers of software capabilities at some level makes these principles both applicable and necessary across the enterprise.
The application of agile principles within enterprise environments has not been without its pitfalls and failures. A mature understanding of the concept requires sufficient controls on quality and rollout to the customer level, especially, that mitigate the damage of inadequate testing for critical environments.
But those companies that have seen its benefits also see the inevitable application of the agile management within their business units. Otherwise, the real gains in the technology will not be realized. Firms such as CVS Caremark that successfully combine agile development with agile business management naturally implement a shared responsibility for systems, such as a data office with both business and technical staff, as project management increasingly adheres to agile principles across the business.
Click here for a Gigaom Research report on How to unlock the promise of agile in the enterprise.