What Are You Doing?

[article]
Summary:
Your issue-tracking and version-management systems are powerful tools that you can use to help you manage change and improve team and individual productivity. This article provides some simple advice on how to use your tracking system to be more productive without introducing excessive overhead.

At the center of any project management approach—agile, or otherwise—is the plan: the list of tasks that your team is working on during an iteration. In addition to providing the team a focus, the plan also can help developers identify the goal of a coding episode [1], prioritize their work, and inform design and implementation decisions.

As a team, it is useful to be able identify how well an iteration tracked to the plan, both for retrospection and future planning. Being able to answer questions like "How much coding did we need to do to implement a feature?" and "Did we do much work beyond what we planned?" is useful in a retrospective to improve your process. Having an easy way to identify what work went into implementing a feature helps future planning by make it easier to estimate similar features.

Once the team is coding, version-management systems are at the center of a development team's collaboration process. You can use the version-management system in collaboration with your task-tracking process to help both developers and teams focus on high-value tasks by associating each commit to the version-control system with the work items for an iteration. If done correctly, this can help you work more productively. If done incorrectly, it can slow teams down and even distract from goals.

The Plan

A prerequisite to having a tracking and planning process is to have a plan. A plan need not be heavyweight, and the planning process need not take an undue amount of time. Some developers—and even managers—consider planning a roadblock to actually "getting things done." But planning is an essential part of getting the right things done. Planning is simply identifying possible work, prioritizing it, and committing to the group of items to work during a development iteration.

The list of items for an iteration (the backlog) gives the team a focus. While having a plan does not preclude changes, it makes it clearer when there are changes, and enables all of the stakeholders to understand what to expect. The plan, then, is a list of backlog items that identify items of interest to stakeholders.

The plan provides a framework for the development team’s day—from deciding what to work on, to deciding what is worth discussing in the team's daily scrum (if you use Scrum). A useful way to help team members focus on the goal of delivering items off the backlog is to have a rule that, when committing code, you need to associate the commit as being part of an item off of the backlog.

Pages

About the author

Steve Berczuk's picture Steve Berczuk

Steve Berczuk is a Principal Engineer and Scrum Master at Fitbit. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, he is a recognized expert in software configuration management and agile software development. Steve is passionate about helping teams work effectively to produce quality software. He has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT, and is a certified, practicing ScrumMaster. Contact Steve at steve@berczuk.com or visit berczuk.com and follow his blog at blog.berczuk.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Sep 22
Sep 24
Oct 12
Nov 09