Embedded Systems Architecture
上QQ阅读APP看书,第一时间看更新

Tracking activities

Keeping track of the activities and the tasks can be simplified by using ITSs. Some tools can be directly linked to the revision control system, so tasks can be linked to specific commits in the repository and vice versa. This is, in general, a good idea, as it is possible to have a good overview of what has been changed to accomplish a specific task.

At first, tasking out the specifications into short activities facilitates the approach to development. Ideally, tasks are as small as possible, and may be grouped by category. Later on, priorities can be set based on intermediate goals, and taking into account the availability of the final hardware. Tasks created should be grouped together into intermediate milestones, which some tools refer to as blueprints, so that the overall progress towards an intermediate deliverable can be measured on the basis of the progress made on the single tasks.

ITS can of course be used to track actual issues in the project. A bug report should be extensive enough for other developers to understand the symptoms and reproduce the behavior that proves that there is a defect in the code. Ideally, final users and early adopters should be able to add new issues to the tracking system, so the tracking system itself can be used to track all the communication with the development team. Community-based open source projects should provide a publicly accessible ITS interface to the users.

Bug-fixing activities in general get a higher priority than development tasks, except in a few cases, for instance, when the bug is the effect of a temporary approximation done by an intermediate prototype, which is expected to be fixed on the next iteration. When a bug affects a behavior of the system, which was proven to work beforehand, it must be marked as regression. This is important because regressions can usually be handled in a different way than normal bugs, as it is possible to track them down to a single commit using revision control tools.

Repository control platforms exist nowadays to provide several tools, including source code history browsing, and the issue-tracking features described earlier. GitLab is a free and open source implementation of such repository control platforms, which can be installed to run as a self-hosted solution. Community projects are often hosted on social coding platforms, such as GitHub, which aim to facilitate contributions to open source and free software projects.