4

Agile Tools

This chapter discusses the types of tools that are used on agile projects. These tools enhance a team’s performance and improve communication and collaboration. Simple tools rather than those that are complex are better suited for agile projects. It is a well-known fact that tools which take a considerable amount of time to master are often considered to be confusing and complex. The agile framework is based on simplicity and tools that have a negligible amount of complexity are more desirable. Our discussion begins with agile project management tools at a very high level. The author does not endorse or recommend any particular type of tool and is merely providing information as to how to select the best agile project management tool based on organizational requirements.

AGILE PROJECT MANAGEMENT TOOLS

Agile project management tools or agile product management tools are used to manage the agile project from the beginning to the end by assisting with the creation of the product’s vision to the actual delivery of the product. It is important to note that many of these tools are geared toward the Scrum framework rather than generic agile principles. This may be attributable to the current popularity of Scrum and, as of 2014, it being the most commonly used agile method. The majority of the agile project management tools are web enabled. This is as expected because web-enabled technology encourages team collaboration. Agile project management tools are designed for the creation and maintenance of the prioritized product backlog, for iteration and team velocity tracking, and for creating user stories. These are just a few of the tools’ most common features and most, if not all, have the capability to address all components of the Scrum framework.

The agile project management tool market is expanding remarkably well, however, this has not made the tool selection process simple enough for many companies who want to embrace the agile framework. In order to identify the appropriate tools, it is recommended that the following analysis and review techniques be conducted in order to select the best tools based on the needs of the organization.

Tools Review and Analysis Process

First, it is recommended that information on only a few tools be carefully studied, analyzed, and evaluated for suitability and budgetary constraints. During the author’s analysis of agile project management tools on the Internet, it was very quickly discovered that the information provided was not detailed enough, lacked objectivity, and was based only on the perceived popularity of the selected tools. Basically, there was no identified rational basis for the selection of the agile tools other than what appeared good enough for selection.*

Second, the needs of the project or organization must be established. In order to accomplish this step, it is necessary to study the firm’s products, agile processes, and any related documentation. It is basically a sound idea to compile a list of attributes that the team desires to have in an agile tool. Although highly subjective, user-friendliness is an important feature and should be taken into serious consideration based on the perceptions of the team. Be advised that this process may not be a simple task because the agile team’s roles may add complexity into the needs analysis process.

Third, the process must include an examination of the agile project management tools available in the marketplace. During this step, the company must select several tools for the review process. The selection process should be based on a number of factors such as:

  1. Interest levels of the company

  2. Popularity of the tool

  3. Level of support for agile methods at the company

  4. Integration of the selected tool with the company’s existing systems

  5. Licensing requirements

  6. Platform under which the tools will perform

  7. The company’s agile management processes

The recommended number of tools for evaluation should not be greater than three or four, however, some companies may choose to evaluate many more based on direction from senior management.

Fourth, the selection of tools for review must be carefully evaluated prior to purchasing. Evaluation factors are those identified attributes from Step two. In addition, the attributes should be ranked based on their level of importance to the agile team or organization. An example of agile project management tool attributes and weighted scores are shown in Table 4.1. It is important to note that the attributes in the author’s list are subjective. The actual attributes that are chosen in this step should reflect the needs of the organization.

Fifth, it is recommended that a survey be conducted with questions that can provide insight into what the actual agile teams specifically need with regard to a tool. A survey can reveal what the company believes is relevant to their agile processes and fill in any gaps in information from the previous steps. Several possible survey questions are identified in Table 4.2.

TABLE 4.1
Possible Agile Project Management Tool Attributes and Ranks

Attribute

Score (1–5)

Rank (1–5)

Weighted Score (Score × Rank)

User friendliness

5

5

25

Backlog

4

3

12

Iterations

2

5

10

User stories

1

1

1

Remote capability

5

3

15

Status tracking

4

5

20

Search capability

1

3

3

Burndown charts

1

4

4

Task tracking

5

5

25

Estimates

5

2

10

Vision

5

1

5

Planning capability

5

2

10

Graphs

5

4

20

TABLE 4.2
Survey Questions for the Agile Project Management Tool Selection Process

Number

Question

1

How do you work with the current agile project management system?

2

What do you like in the existing system? Are you pleased with this system?

3

What improvements do you need in the new system?

4

What do you want to change in the new system?

5

Is there anything that is making your job difficult in the present system?

6

What are your must haves?

TABLE 4.3
Analysis of Agile Project Management Tool Results

Attribute

Tool 1

Tool 2

Tool 3

Tool 4

Tool 5

Tool 6

User friendliness

10

25

5

12

6

5

Backlog

6

4

5

6

10

10

Iteration

8

9

8

9

9

9

Management

10

6

6

8

8

8

User stories

9

9

9

9

9

9

Remote

9

9

9

9

9

9

Status tracking

8

8

8

8

9

9

Search capability

9

20

8

5

5

5

Charts

9

9

10

8

8

8

Burndown/burnup

5

5

5

5

5

5

Task tracking

6

6

6

4

4

4

Estimates

3

8

9

10

8

8

Vision

5

8

8

9

9

9

Planning

5

25

9

9

9

9

Graphs

6

8

9

5

8

8

Total Rating

98

159

114

116

116

115

Average Rating

6.5

10.6

7.6

7.7

7.7

7.7

The final step is to analyze the results. This would be based on the attributes of the tools and their relevance of importance (rank). Table 4.3 shows an example of how the analysis of the attributes might be presented. Again, the tool should be selected based on how well it fits the needs of the organization. This would be based on the scoring of attributes that have been deemed to be important. The higher the average rating, the more relevant are the tools’ attributes in meeting the needs of the organization.

Keep in mind that after conducting the analysis and review process described here, it is quite probable that a company may not find a tool that is desired. This would mean that the company would merely have to pick a tool that is best suited in comparison to others and move forward or decide upon other options such as using traditional project management tools to manage the agile project such as MS Project or MS Excel. Agile tools include JIRA, Rally, and Version One. Table 4.4 shows which types of project management tasks are used with agile and which ones are used for traditional project management.

TABLE 4.4
Agile versus Traditional Project Management Tools Utilization

Traditional PM Software Tool Activity

Agile PM Software Tool Activity

Schedule activities

Product backlog maintenance

Manage activity dependencies

Create release and iteration plans

Address potential risks

Burndown/Burnup Charts

Schedule tasks

Task boards

Critical path(s)

Agile Automated Tools

Automated tools are used in agile environments for the purposes of conducting test-driven development (TDD) or acceptance test-driven development (ATDD).* Recall from Chapter 3 that TDD is an Extreme Programming (XP) practice where the developers write tests before developing the code. TDD is designed to shorten the process in order to obtain early feedback. Tests are written as unit tests using automated tools such as NUnit or JUnit before the actual code is written. On the first run of the tests, failure will occur because the code does not exist as of yet. The code writing process begins and continues until the tests pass. In the event that additional functionality needs to be added to a particular portion of the code, this process is repeated. Shortly thereafter, the code is refactored for efficiency and development is complete for that particular component of functionality.

Why are tests run prior to the development of the code? With traditional software project management, just the opposite occurs. The code is written and then testing is done. There are several reasons for writing tests prior to code development:

• The agile framework specifies that test-driven development puts more emphasis on understanding how the functionality will work for the end user. This way of thinking about the outcome prior to implementation has been shown to lead to much better designs and greater product success from the end client’s perspective.

• Testing is less costly early in the process as opposed to later. This leads to lower overall costs for the project.

• Writing tests first is a good practice that has been shown to lead to better overall test coverage.

With ATDD, the focus is on user stories. These types of tests are designed to support acceptance by the customer or end users. These tests are functional in nature and are designed to demonstrate that specific product features work as intended. If the customer is satisfied, then the component that is tied to the user story is labeled as “done” and it is considered to be formally accepted.

Build Automation Tools

Build tools are used on many types of projects and the agile framework is no exception. These tools are used for automating the process that compiles computer source code into machine language binary code. Build automation is being discussed because it is the focal point of continuous integration of the code on agile projects. Continuous integration is a software development practice. The development team regularly integrates new and modified code into a repository for the product. Build automation tools use a built-in scripting language to compile computer source code, create release notes, and deploy code to test, staging, and development environments. Developers are typically the users of these types of tools because they handle the code and related activities. These tools are designed to eliminate build errors and lessen the time it takes to get a software build out to a particular environment.

In addition to the automated testing tool types identified in the preceding paragraphs, graphical user interface (GUI) testing may occur on the agile project for regression testing, just as with traditional project management software development. These tests can be run back to back to demonstrate an overall system test to ensure that changes to parts of the code did not inadvertently “break” other product features.

Cameras

Why would we need a camera on an agile project? Well, why not? The author has seen a camera used on non-agile projects to take pictures of whiteboards. As a matter of fact, this is the same reason that we would use cameras on the agile project: to capture important whiteboard information. After capture, this information can be sent to others, posted to the team’s collaboration site, or developed into a formal documentation source.

Collaboration Tools

Collaboration tools are used on agile projects to allow the team to share information. What does a collaboration tool do? It provides the means for a team or stakeholders to collaborate. This is very important on the agile project because the team needs to have a multitude of discussions with regard to the delivery of the product. In addition, agile project team members engage in “games” that are designed to achieve a shared understanding of complicated or unclear project issues so that a team consensus can be obtained.

It was previously mentioned that the agile team size is typically six to ten members. There are many exceptions to this team size. On occasion, agile projects cannot support colocation and this results in distributed teams with their own set of challenges. Face-to-face interactions are recommended for the agile team, however, collaborative technology enables other types of communication to work just as well. In the case where some of the agile team is not in the same physical location, there are other options such as:

• Instant messenger (IM)

• Interactive whiteboards

• Web-enabled meetings

• Conference calls

There are additional options for collaboration as well, regardless of which type of tool is selected. The idea is to provide consistent feedback and to keep all stakeholders engaged.

Task Boards

The task board is a commonly used tool on agile projects.* It is often the focus point for the daily standup meeting and it serves as a central source of information that is applicable to the entire team. The task board is simple to use and does not prohibit the display of any type of information that is relevant to the team’s progress.

CHAPTER SUMMARY

It is not uncommon to hear that many companies experience difficulty in selecting the appropriate tools to use in their agile environments. User friendliness appears to be one of the leading factors when searching for the most appropriate tool. It is not clear whether companies are satisfied or dissatisfied with their agile tool choices. It is clear, however, that many companies have embraced the agile framework and many others have plans to do the same.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset