Game Development Reference
When performing any kind of measurement, you need what is known as a metric ,
which is commonly defined as a quantitative measure of the degree to which a sys-
tem, component, or process possesses a given attribute. Software development
quality can be measured by a number of metrics, including maintainability, per-
formance, usability, testability, portability, reliability, and efficiency.
The International Standards Organization (ISO) has created a set of software qual-
ity standards and also describes how to collect metrics for them. The metrics dis-
cussed in this topic are a compressed overview of their work.
Tools, like any software project, require a high level of quality, especially when the
tools produce game content or enhance workflow, and the rate of failure for the
tool must be extremely low. This topic presents some measurement metrics and
concepts for development that all greatly impact the lifetime cost of a tool.
Perhaps one of the most important metrics to consider in software development,
and definitely evangelized in this topic, is maintainability, which characterizes any
successful tool. The greatest amount of development time in the game industry is
spent on maintenance, by extending or enhancing a product that already exists. A
tool should always be designed with maintainability in mind, designed so that the
code is easy to repair and extend for future products or processes.
This metric typically looks at how many times a certain tool has been reused across
multiple products or processes, how much additional time was needed to relearn
the inner workings of the code, and how much development time was spent
enhancing the tool to suits the needs of another product.
The idea of traceability has been mainly introduced by object-oriented software
engineering, and is the idea that documentation should be able to show why a par-
ticular implementation decision was made. Typically, a tool, especially one that's
medium to large scale in terms of size, will have a design document detailing how
the application will function, and may even be represented using the Unified
Modeling Language (UML). The ability to look at a functionality requirement in
a design document, known as use cases when utilizing UML, and easily understand
how to perform that task in the application itself is referred to as traceability .