Micro Focus is now part of OpenText. Learn more >

You are here

You are here

Top agile tools that keep software engineers productive

public://pictures/Peter.Wayner.jpg
Peter Wayner Freelance writer
 

For the last decade, one of the hottest questions for development teams has been whether or not to embrace the idea of agile development, a philosophy that encourages developers to be flexible and creative in delivering just what the user needs.

The idea began when developers chafed under managers who imposed highly structured plans with fixed roles and inflexible schedules, pushing programmers into tight boxes. The programmers craved a chance to unleash their intuitive and improvisational ways of collaborating.

While some hidebound developers saw only chaos in the idea of letting developers roam freely and organize their own workflow, the idea has caught on. Studies have found that more than one quarter of development teams have used at least some agile methods in the last year.

Tools of the trade

The key to success in agile development is to enable flexibility while maintaining organization. The best way to do this is to deploy a set of good tools that help track the project and organize the team's progress. They don't impose strict schedules and roles, but merely make it easier for the developers to self-manage and converge on their goals.

There are dozens of software products designed to help managers set priorities and developers write code that addresses them. Some of these tools are designed to track different forms of development, including projects that are more centrally managed, but they are flexible enough to be used for agile development. Others are built specifically to fit the agile model and nurture as much programmer freedom as possible.

The tools support the project by helping the team identify the requirements and split them into a number of smaller tasks. Then it tracks the programmers as they work collaboratively on the parts. The process is often split up into short cycles that gradually converge on the final result. The cycles alternate between planning sessions and code sprints. Keeping the cycle short and including plenty of developer feedback in the planning lets the team adjust and focus.

A common feature of all these agile tools is a graphic dashboard that reports how the team is progressing and meeting the goals. Some of the more sophisticated tools are integrated with code repositories and continuous integration tools that automatically graph how the new code is evolving. Is the latest code passing tests? Are more features coming online? These questions are all answered on a dashboard that everyone can see. When the team can follow each other's progress visually, they're better able to stay on track.

Another important part of this process is communication. Good agile tools organize the discussion and planning. The developers can focus on each of the features, tasks, or bugs in separate threads. Splitting the discussions up helps the project move forward at the right rate for each section.

Here are the top tools that are forming the foundation teams rely upon to ship code on time or even ahead of schedule.

Source control tools

Git, like some of the other tools here, wasn't built just for agile teams but is still essential. It offers much of the flexibility that teams need to move ahead. The lack of one dominant central repository makes it simpler for different developers to follow different paths and then merge their code later. Git is widely supported, and many teams now use its hosting services to keep their code organized. Many of the other tools in this list take their cues from Git and use the updates to the repository to track and test progress. Other top source control tools include Mercurial, Subversion, and CVS.

Continuous integration tools

Just like Git, continuous integration tools aren't explicitly designed to support agile development, but it would be hard to imagine running a large agile team without their help. The tools automatically add a layer of processing when code is committed, helping to ensure that the team is working smoothly together. The tools have hundreds of plugins for tasks such as creating documentation or compiling statistics. Their most important job is running unit tests that ensure the software is performing correctly after all the new code is added to the stack. Many of the tools in this list also use the results from post-commit testing to determine how quickly the code is meeting goals.

There are a number of good continuous integration tools that play well with agile management systems. Some of the best known tools include Hudson, Jenkins, Travis CI, Strider, and Integrity.

Team management tools

Agile Manager

HP's Agile Manager is built to organize and guide teams from the beginning as they plan and deploy working code through the agile model. At the early stages of the cycle during the release plan, the managers gather the user stories and decide how the teams will attack them. These set the stage for the sprints and deployment.

During each code sprint, the scrum masters and developers record their progress on the user stories and issues. All the progress (or failures) from the build and the unit tests are plotted in charts on a dashboard so the entire team can watch how they're converging on the release.

The tool gathers information directly from major tools such as Jenkins, Git, Bamboo, and Eclipse. To complete the cycle, Agile Manager will push stories and tasks directly to these tools so developers can keep track directly from their favorite IDE.

Active Collab

From juggling tasks to tracking time and generating bills, Active Collab is organized to help software shops deliver code and account for their time. The heart of the system is a list of tasks that can be assigned and tracked from conception to completion. A system-wide calendar helps the team understand and follow everyone's roles. The system checks the amount of time devoted to all the tasks so the team can determine how accurate their estimates are.

The system also supports a collaborative writing tool so everyone can work together on documentation, an essential operation that sets the stage for more agile collaboration later.

The tool can be hosted locally or used through a cloud service.

JIRA Agile

The JIRA Agile tool adds a layer for agile project management that interacts with the other major tools from Atlassian. The team creates a list of project tasks with a tool called Confluence and then tracks them on an interactive Kanban board that developers can update as they work. The Kanban boards become the center of everyone's focus in planning how to attack the code.

The Agile tool is well-integrated with other Atlassian tools. The dashboard updates the moment code is committed to Stash or Bitbucket, Atlassian's Git hosting products. Bamboo (see number three above) offers continuous integration that builds and tests the code before reporting the relative success or failure back to the main JIRA page. Discussions take place through HipChat, which indexes the discussions to the tasks.

Agile Bench

The Agile Bench tool is a hosted platform that emphasizes tracking the work assigned to each individual. The release schedule begins as a backlog of user stories and other enhancements. As they're assigned, the team must gauge both the business impact and the cost of development by assigning an estimate of the complexity of each task in points. The dashboard tracks both of these values so that members can tell who is overloaded and which tasks are the most important.

The tool is well-integrated with standard Git hosting sites like GitHub or Bitbucket (see number five above), allowing it to make committed code with tasks. If your project needs more, there's also an open API that can integrate the project information with any other system.

Pivotal Tracker

Pivotal Tracker is just one of a constellation of tools from Pivotal Labs created to support agile development. The core of the project is a page that lists the tasks that are often expressed as stories. Team members can rank the complexity with points, and the tool will track how many tasks are being finished each day. The constellation includes Whiteboard for team-wide discussions, Project Monitor for displaying the status of the build, and Sprout, a configuration tool.

Telerik TeamPulse

Telerik is known for its numerous frameworks for creating apps for the mobile marketplace. They've bundled much of that experience from creating their own code into TeamPulse, a tool they use to track projects. The main screen displays a page full of tasks that need to be completed and follows the team as it progresses. The menus offer configuration options and a wide variety of reports showing how the project is evolving toward completion. It also works with Telerik's other tools for building and testing code.

VersionOne

When a large enterprise embraces agile development, they need a tool that's customized to juggle multiple teams working on multiple initiatives because eventually they'll need to work together. VersionOne is designed to organize all the groups involved in development across an enterprise by providing a stable communication platform where everyone can plan the initiatives and create persistent documentation.

The tool embraces Kanban boards for following ideas and stories through the process until they're turned into working code. The system tracks all sprints and organizes the retrospective analysis so the team can start the cycle again.

Additionally, the openAgile API makes it possible to integrate Version One with other packages.

Planbox

Planbox offers four levels of organizational power to keep multiple teams working together toward a common goal. At the top are initiatives, which are the biggest and broadest abstraction. They contain projects, which are built on items that, in turn, are filled with tasks. As the team finishes the tasks, Planbox tracks the progress on all these levels and produces reports for all stakeholders. One clever feature lets you loop in customers so they can voice their opinion before the code is set in stone. The time tracking feature lets everyone compare the time they spend on an item with the estimate of how long it was thought to take.

The tool integrates with Github (see number six above) for code storage, Zendesk for tracking customer satisfaction, UserVoice for bug tracking, and many more.

LeanKit

LeanKit aims to imitate the conference room whiteboards where most projects begin. It lets all team members post virtual notes or cards that represent all the tasks, user stories, or bugs that must be addressed. As the team finishes them, the board updates faster than any whiteboard. The software also allows multiple teams to work together in separate spaces while still coordinating their interactions.

Axosoft

Axosoft's project tool tracks the project in three different ways. The Release Planner offers a tabular view of the different tasks, bugs, and user stories. Developers drag and drop the different entries to assign them and mark them as finished. The burndown charts show graphically how quickly the team is converging on its goal. The projected ship date is displayed prominently to keep everyone on track. The planning is also done Kanban-style using the card view, where each card represents one task.

One useful feature is the customer portal that makes it possible for customers to weigh in on the development process by requesting features, giving feedback on designs, or testing new code.

Keep learning

Read more articles about: App Dev & TestingAgile