Agile ALM and business agility have been around the software development world long enough to prove themselves effective, and they don't necessarily require purchasing and learning new tools. In this article, learn what Agile ALM and business agility are and how they are intimately connected, and get general tips on the functionality their tools need. There are hundreds of good, reliable tools available. It can be difficult to determine which meet an organization's specific needs.
Defining Agile ALM and business agility
As a software project manager interested in Agile ALM and business agility, the first thing to do is define what it means for the company. The acronym stands for application lifecycle management: how to manage, control and measure the work being done. The term ALM already includes planning, project management, developing to requirements, and building and testing so as to improve software quality. Agile ALM is just managing the Agile implementation, which could employ a variety of methods either completely or partially. Agile ALM is the same management principle applied to an Agile methodology.
Business agility is the business' ability to adapt rapidly and effectively to change. It's being Agile by being flexible, productive and organized from the requirements phase of development all the way through customer delivery. It's about not just implementing Agile methodologies as fits the company, but actually being Agile.
Agile is a way of increasing business agility by empowering the entire software development team from product managers, developers and testers to customer support and implementation professionals. It's not unorganized, random or undocumented chaos. It is organized, flexible, repeatable, manageable, maintainable and easy-to-follow software development processes. In this way, Agile becomes business agility, or the two become essentially one and the same thing.
Agile ALM tools have various uses
There are numerous Agile ALM tools available. Many are proven tools from large vendors and adapted from ALM for Agile ALM, while some are smaller, more focused tools. The first thing to consider is what is needed from the tool: Will this tool manage everything or just some parts?
For example, you may use one tool to manage requirements, testing and metric reporting. There may be a need for another tool to serve as a virtual work board or kanban board managing user stories, work tasks and work prioritization. Also, the tool has to fit the Agile method being implemented. If the team is doing Agile Scrum, not Agile kanban or some variation thereof, make sure you review the tools and see which offers the most options for Agile Scrum.
The tool needs to make the job easier by providing a simple, organized method of creating user stories and defect reports, and offering a method to organize work into releases, iterations or backlogs, as well as a way to prioritize work. It should provide automatically generated metrics, reports and traceability matrices without the need to re-enter information manually.
Performance is also a concern if there are large projects with multiple stories and generous amounts of work in the backlog. Agile ALM tools typically don't allow enough individual configuration options for users to alter them to fit their personal needs. Look for one that can be altered to fit custom use cases, so the tool gets used and works for the long term.
A few popular Agile ALM tooling options
Rally Software provides a tool that works decently for either Agile scrum or kanban. It's visually easy to view, but the workflow is not intuitive and somewhat clunky. The search feature is tricky and one can get lost in it rather easily. Rally's electronic kanban board is one of the better ones, but still is limited in what users can alter to suit their individual needs.
VersionOne workflow is generally intuitive: It searches more effectively, and I've yet to actually get stuck in it. It isn't as visually appealing as Rally and is lacking in the electronic kanban area compared to Rally. It's more user-friendly, but not as visually clear as it could be.
Neither of these tools offers a full ALM solution. Consider where test cases are stored, executed and managed.
For test data, HP Quality Center is a useful ALM choice that can be altered to fit with Agile. It's difficult to set up and manage, and typically requires at least one or more dedicated resources. It lacks in reporting detail and version control abilities.
Microsoft Test Manager, or MTM, is another tool that manages the testing of artifacts, and is incorporated with Visual Studio to give you full ALM management. The user makes it Agile by applying Agile principles to it during setup and organizing the structure. As a test management system, it works well overall and is surprisingly intuitive. Additionally, it does include full help documentation through the Microsoft Developer Network.
Again, like many tools, how MTM functions really depends on how it's set up and whether all or just a few of the features are used. The only negatives are its inability to edit queried test suites and the forced, manual runner execution in test mode. In a regression suite, even one I build a query with, I still want the ability to remove tests that I may just simply not want to execute.
Of course, the user can opt to save money and use a manual kanban board or Scrum tracking system and employ written tests and requirements managed in a folder system. The biggest difficulties I've run into with manual systems is they're difficult to keep up with when you work remotely, and pieces of paper (sticky or not) or other data frequently get lost. In any case, plan to invest time and energy into researching several and deciding which one best suits your current needs and budget.