Using a very simple text-file based repository placed under configuration management, YakTrack maintains issues in a simple, easily-comprehended format which requires little effort to begin using. It addresses the problems contemplated in the introduction:
It is easy to install. A single command, yaktrack create-repository, is all that is necessary to set up an issue-tracking repository with default options. If the default options are acceptable, the very next command could be yaktrack submit, to begin submitting reports. If templates need to be changed, they can be modified with a text editor.
It can be used for small projects. The default (immediate) mode of YakTrack requires read-write access to a local set of files; it does not require a web server, dedicated user account, or other system requirements. As such it is usable by individuals or very small teams who may need nothing more than the immediate mode. As further requirements raise their heads, addition of a user account for an email gateway or a website for web access can be added, but they are not required.
It is very flexible. Issue templates may be edited or added to allow tracking of different issue types such as use cases or functional requirements. Local modifications to the YakTrack commands can add new commands or override the functionality of old ones. Since the application is represented as a composite of individual command objects, these command objects are easily scriptable through Python.
It is part of the development repository. Locating the issue repository in the development repository allows us to use the same configuration management and scripting tools that the regular development does. CM provides safety and synchronicity as well as network transport from remote sites; scripting allows the normal development process to include issue-tracking as well, such as creating reports with a make target.
In addition, the flexible nature of YakTrack means we can extend it very easily in response to user feedback. While the core of YakTrack is simple, it can be readily extended in many ways, providing a simple, understandable, and extendible solution to the problem of tracking development issues.