Skip to content

Development Process

antonio-np edited this page Feb 2, 2015 · 7 revisions

Development Process

Features and Tasks

A feature is a capability or property of a software system that can be experienced by a user. For instance, a library function used by a developer working with that library, or a error message provided to the user of a software tool.

The development of our software is driven by a prioritized list of features that we want to implement. Features are decomposed into tasks. Tasks describe implementation work that a single developer can finish in a managable amount of time. In our case, tasks should prefereably be estimated to require 4 hours of work at most.

The development process is organized into iterative sprints of a given length of time. Sprints begin with a sprint meeting that decides the work scheduled for the next sprint. During a sprint meeting, all developers asses the current state of development, reflect on insights, difficulties, and delays they encountered during the last sprint, and use that information to plan the next sprint. In our case, a sprint takes four weeks.

The key purpose of a sprint meeting is to discuss new feature requests and to select the features to be tackled in the next sprint. Features are selected, ordered by priority, and decomposed into tasks with estimates of the necessary effort for each task. A subset of these tasks is assigned to the next sprint such that the estimated total work matches with the available development resources. Unassigned features are kept in a backlog and postponed for future sprints.

Organization of Features and Tasks in Github

Features and tasks are represented by issues with respective labels, and the connection between a feature and a tasks is indicated by a reference from task to feature. Sprints and the backlog are represented by milestones. Bugreports are a special category of tasks that can be reported without a corresponding feature.

In case a feature can be adequately implemented by a single tasks, feature and task can be represented by the same ticket.

Clone this wiki locally