Project Management

According to Wikipedia

“Software project management is the art and science of planning and leading software projects.”

Though we are trying to keep the management overhead to a minimum, we like to be able to

  • monitor activity across the various code repositories,
  • share documentation across our team of developers,
  • keep track of issues – such as bugs, requested features, tasks, missing documentation, and so forth.

In the background we therefore use Redmine, a free and open source, web-based project management and bug-tracking tool. It includes a calendar and Gantt charts to aid visual representation of projects and their deadlines. It handles multiple projects. Redmine provides integrated project management features, issue tracking, and multiple version control options.

Activity Monitoring

Though most of our everyday software development is done on pandora, we are maintaining quite a few tools and libraries that have been created over time. With all the code, web pages and documentation under version control, keeping up with activities in various places can be challenging. To simplify things we are using Redmine’s capability to monitor multiple repositories and aggregate commit messages: as all changes to the software ultimately need to go through the repositories, tapping into this stream of changes provides a sense of the ongoing development activities.

Redmine Screenshot Repository overview
Management of tasks, time allocation and human resources. Overview of commits to the code repository.

Issue Tracking

In computing, the term issue is a unit of work to accomplish an improvement in a system. An issue could be a bug, a requested feature, task, missing documentation, and so forth – for a project such as ours, summing up all of this can be quite a lot to keep a developer busy all day long. So how to keep track then of the multitude of issues that need to be addressed? We are using Redmine’s issue tracking capabilities in order to file and track issues; this not only enables us to maintain a list of all the open issues that need to be worked on, but also provides us with extra information (such as due dates, who is assigned to the task, etc.). Also, if we are running up to a specific milestone (e.g. a new release version) progress towards completion can be monitored.