Choosing an agile methodology? That’s easy. Scaling across a large enterprise? That’s hard, and a real challenge for the most seasoned Scrum Master or agile team.

In speaking with several project managers, Scrum Masters and tool providers, it seems that the key to successful agile adoption is to change the corporate culture. The goal: getting everyone on board. The message (often): Failure is necessary in order to ultimately succeed. The necessity: the right agile tools for the job.

“Tools shouldn’t be there as a hammer; they’re there to help from a visibility and accessibility point-of-view,” said Robert Holler, CEO of VersionOne.

Anders Wallgren, CEO of Electric Cloud, said that while tools won’t necessarily make you agile, the lack of tools could hinder the adoption process.

Alan Bustamante, senior agile consultant at Seapine, recommended watching how other teams in your company, and perhaps in other companies, have adopted agile, and then taking some of your methods from them. He advised, however, against mimicking them completely.

“There is no ‘one’ process across the board. Teams develop different tools with different processes,” Bustamante said.

Richard Cheng and Fadi Stephan, managing consultants at Excella Consulting, recommended keeping tools as light as possible when starting out.

“It is hard to learn a new tool and a new process, and teams want to be sure that they don’t let the tool mold the process,” Cheng said, adding that teams should be the ones driving the adoption of the tool instead of having it imposed upon them in a top-down approach.

“Once you buy a tool, you’re stuck with it for the time being,” said Victor Szalvay, senior director of ScrumWorks engineering at CollabNet. He added that it is important to evolve your process before picking the tool so that you can decide how customizable your tool needs to be.

Patric Palm, CEO of Hansoft, believed customization should be left to the development team, so team members can decide what exactly they need from the tools.

Bustamante said it is important to recognize that there are high-tech, high-touch tools as well as low-tech, high-touch tools, and that both can be beneficial to the adoption and development process. High-tech, high-touch tools include digital tools specifically built for agile methodologies, and low-tech, high-touch tools include more tangible tools: whiteboards, sticky notes and Web conferencing.

Web conferencing in the early adoption of agile was often a sufficient way to help teams that may be located in the same building but not on the same floor, although Todd Olson, vice president of products at Rally Software, said that isn’t the way to do it anymore.

Web conferencing won’t work for large companies, mainly because you can’t have someone checking a camera that points at a whiteboard all day long, Olson said. He noted that teams have more feedback channels than ever before and that they should embrace tools that give them access to social media channels.

Philip Black, COO of Emergn, also believes that software tools for agile management are absolutely essential to some organizations. “Global enterprise clients always have complex environments. Tools are fundamentally needed,” he said, adding that he believed the process should be defined before the tools are fully adopted within an enterprise.

Distributed teams most commonly look to high-tech tools in order to deliver their software due to the nature of how they work: Some of them work in different offices, different time zones and, sometimes, on different parts of the project simultaneously.

“Traditional agile gurus say you need to be in the same location, but now that’s just not possible,” said Andy Singleton, CEO and founder of Assembla. “There are many more distributed teams, and in that situation, you need to have the workload be more visible.”

Having access to automated reports is one of the factors driving tool adoption, according to Alex Perec, senior product manager at TechExcel. “Agile processes traditionally don’t [call for tools], but people are realizing that having access to all the reports is great, especially with larger teams,” he said.

Outsourcing is another area where tools are needed, according to Hansoft’s Palm. He said that distributed teams need tools in order to stay on top of one another’s progress, but when they’re manufacturing hardware and software, or have software with outsourced components, it’s also important to manage those parts of the development cycle.
#!
Questions and answers
Scott Ambler, chief methodologist of agile and lean at IBM Rational, said teams need to manage the portions of the process in order to understand what they’re doing, which is the goal of agile scaling.

“Agile helps people understand what they’re doing [by forcing them to ask questions],” he said. ” ‘Are we in a regulatory environment?’ ‘How rigid?’ ‘Are there multiple systems to consider? What’s the domain complexity?’ ‘How many legacy teams? What’s the organizational complexity?’ ”

Ambler said all of these questions help teams determine what they’re actually working with instead of making inaccurate predictions. Tools make these questions much easier to answer, which is why it is important to use tools that not only foster collaboration, but also make the work easier to do in a shorter period of time.

Palm said that at Hansoft, the company believes it is important that a good tool helps developers stay out of the tool and do their work.

“A huge part of agile is trying to automate as much as possible,” said TechExcel’s Perec.

Automation and tool usage are also dependent upon the constraints on a company and teams, according to Seapine’s Bustamante. He said teams need to understand organizational constraints, and even though they may be fully committed to be the purest agile team out there, their company or industry constraints may dictate otherwise.

“If it is a heavily regulated industry, the product and process won’t be as agile as a startup,” he said.

Magdy Hanna, CEO and chief architect of Rommana Software, said that a team has to be flexible not only within the tool but also with how its works. Some clients may require or allow teams to be a bit more ad hoc when it comes to the development processes, and others may be more rigid. It is about recognizing what the client wants and how to tailor the process to how the team works and how the client needs you to work.

“Everything in agile requires collaboration, and tools are necessary for this,” Hanna said, adding that agile makes collaboration an essential part of the development process, one that must be tracked and monitored. Teams can forget a requirement or feature if the tool does not remind them, or if someone is not keeping track of what needs to be done, he added. This is where high-tech tools help teams stay on top of their chosen process and evaluate where they can improve.

Failure is part of the learning process, Bustamante said. “Corporate culture doesn’t believe failure to be an option, but it should be. Tools help you log the processes so you can learn from failed attempts.”

Coaching and training can help with this “learn-from-your-failures” process. Teams need to be shown where they can constantly improve their processes, particularly in the early stages of adoption, Bustamante said.

Feedback from the team and end users is also an important part of the learning-from-failures stage in agile adoption. Perec said that the feedback channels have been very helpful for the TechExcel team when developing its solutions.

“Multiple feedback teams are great, and you can watch other teams in order to see if their methods work for you,” he said.

Teams should learn from themselves, but also from one another and need the flexibility to change at a moment’s notice, according to Bustamante. Companies need to let the teams self-organize in order to allow them to have any chance of succeeding at agile, which goes back to the need to change the corporate culture to one that facilitates adoption of the principles and methodologies.
#!
A sampling of tools

AccuRev
AccuRev’s software change management tool, AccuRev SCM, allows developers to monitor changes and manage their source code. AccuRev also offers agile resources and additional tooling on its website to help development teams manage their processes. Additional tools include AccuReplica, which scales AccuRev SCM to larger organizations; AccuWork, a catalog used to track issues in development; AccuWorkflow, a collaborative environment; and AccuSync, a tool that provides bidirectional integration for AccuRev, Atlassian JIRA, ClearCase and Rally software.

Assembla
Assembla workspaces bring together ticketing and issue management, source-code management and collaboration tools in an on-demand environment to help teams manage their workflow. The activity stream in the workspace allows team members to follow all the activity for a development project in one window with custom alerts.

CollabNet
CollabNet’s tools include TeamForge, for agile application life-cycle management; Subversion Edge for SVN; and ScrumWorks Pro for enterprise developers. ScrumWorks follows the Scrum project management methodology that is part of the agile methodology and helps teams collaborate around this management strategy. It provides reporting, notifications and visibility into the process. CollabNet also provides cloud services, which help teams manage their code repositories in Git, SVN and CVS under the Codesion cloud-service company, which CollabNet recently acquired.

Electric Cloud
Electric Cloud tools include ElectricCommander for workflow automation; ElectricAccelerator for measuring and tracking build speeds; and ElectricInsight for teams doing software build visualizations and understanding what logic is behind the software they are creating. SparkBuild is another free build tool that helps developers debug broken builds.
 
Hansoft
Hansoft’s project management tool was created with game developers in mind, and can be used for teams that deal with both hardware and software components. The methodology used is Kanban, with a bit of Scrum for project management, but teams can also customize the tool to suit their needs.

Kovair
Kovair’s application life-cycle management tool, Kovair ALM Studio, includes a requirements manager; test manager; test cases and test sets; issue tracker; risk management to determine which issues can cause problems in the cycle; release management features; and project management features. The tool is Web-based and allows for multiple input methods; developers can use the Rich Text Editor in the tool or import from e-mails, Word documents or Excel sheets, or use third-party tools.

Perforce
This software change management tool allows teams to use different streams of work for a given project together at the end of development. This stream design allows teams to automate simple tests or portions of the build in order to speed up development. The tool also has integrations for management, bug tracking, and capabilities for distributed development.
#!
Rally
Rally provides an agile ALM platform, coaching and services. The application life-cycle management platform provides project management, release management, and visibility into the whole team and process through one portal. The tool can also be customized to include testing support and tracking. Rally also offers coaching services to help teams begin the process of adopting agile.

Rommana
Rommana is a fully integrated application life-cycle management solution that supports both agile and non-agile teams. It allows teams to choose how rigorous their process is and determine what types of formal reporting they require. It has several components, including a requirements manager, testing manager, bug manager, change-management solution, collaboration manager and sprint manager. The tool is methodology- and process-agnostic; all tools and components merely allow teams to manage their process, no matter how it is defined.

Seapine
Seapine’s application life-cycle management tools include testing tools, configuration management with Surround SCM, test-case management, and requirements management. Additionally, the company offers agile training and assessments to help teams determine what exactly they need to do in order to become an agile development shop.

TechExcel
TechExcel’s tool is based on the Scrum project-management methodology and offers teams an application life-cycle management platform as well where they can manage the requirements, development and testing. The DevSuite ALM, Agile Studio and DevTest Studio products are all built for different use cases around the same theme. The DevSuite includes collaboration wikis, project planning and resource management, tracking, and an integrated test environment.

ThoughtWorks Studios
ThoughtWorks’ tools support adaptive application life-cycle management through three products: Mingle, Go and Twist. Mingle provides a common workspace environment; Go gives real-time visibility and control; and Twist is a collaboration environment that manages the features and requirements. These tools also promote automation, which helps in the testing phase of agile. ThoughtWorks also provides coaching and educational webinars through its website.

UrbanCode
The UrbanCode DevOps platform includes a continuous delivery methodology that began when the company was created around the continuous integration server in 2001. Urban Deploy is a release automation tool that helps teams deploy distributed applications into production environments that usually include several different machines. It can also be deployed into an environment made up of different components.  
VersionOne
The VersionOne Agile Management suite includes tools for reporting, product planning, sprint planning, release planning and tracking. Additionally, teams can review past iterations to see what they did and improve in future iterations. The company also offers coaching and services on its website.