Chapter 4. Task-based development

This chapter covers

  • Approaches and different tools for implementing task-based development
  • Lightweight tools for planning and tracking tasks
  • Example toolchains, including JIRA/GreenHopper, Bamboo, Eclipse, FishEye, Mylyn, Trac, for planning and tracking tasks

Traditionally, work items (or tasks) are spread across artifact types and tools. Tasks are an abstraction level for coping with the general information overload and the challenges of parsing information from many different sources. A task is a fine-grained, measurable unit of work, extracted from a broader scope, like a use case or a feature. Leffingwell states “for more detailed tracking of the activities involved in delivering stories, teams typically decompose stories into tasks that must be accomplished by individual team members in order to complete the story.”[1]

1 Dean Leffingwell, Agile Software Requirements (Addison-Wesley, 2011), pg. 38.

With a task-based (or task-focused) approach, the task is the unit of interaction and the base of work. Task-based development is the technique of linking work items (issues, defects, tasks, and so on) to the specific set of changes (such as an atomic changeset) made to complete the work described in the work item. For example, if you’re fixing a defect that’s listed as defect 4711 in JIRA, task-based development requires that you link the exact set of changes to defect 4711 in JIRA.

4.1. Prerequisites for task-based development

4.2. Our first toolchain—JIRA, FishEye, Bamboo, and Mylyn

4.3. Trac bug tracking and project management

4.4. Summary