Software Quality Assurance - the context
Some comments on Quality Assurance in a Physics Context
Standard Quality Assurance methods are designed for INDUSTRIAL use, and as such may appear to be too rigid for many physicists. Our aim is to use those ideas and methods which have been successfully used in industry, and which can be applied to a large physics collaboration, avoiding methods which will squander essential resources of independence, versatility and commitment.
Our vision is that, although some of the QA suggestions will be onerous, and seem to be of limited value in the short term (which is the main concern of people developing private or prototype code), that clear cut procedures, based on the a number of well defined steps, and monitored by a reviews will have important long term benefits Furthermore, the use of various software tools should be made available to support such procedures.
Industry | Physics | |
---|---|---|
Size of a team : Larger teams cannot rely on informal communication. | At least 5 |
typically between 1 and 3 |
Who are the USERS? : In industry
it is essential to ensure that the developers have understood the
requirements of the users. In contrast, physicists often know their
subject matter well, and do not see the need to formally describe
requirements |
The users are paying clients |
Developers are also users. |
Motivation of the developers : Developers
in industry NEED a formal structure to understand what is expected
of them, and when it must be ready. |
Developers are part of a large formal structure,
and are less personally engaged in the success of the software. |
Developers are highly motivated by the results
of the software. |
Testing Procedures : Formal and
complete tests can only be designed if formal requirements have been
defined. |
Formal testing procedures are defined to ensure
that the clients requirements have been met. The client NEEDS to see
the results of these tests. |
Physicists use intuition and checks of program
output, which are known as "Physics Validation" |
Management : Where there is no
hierarchical management, no one can formally check that goals have
been achieved. |
Managers need to determine that members of the
team are performing adequately |
Physicists take individual responsibility for
their work, and may not see the overall success of the collaboration
as their primary goal. |
Procedures for use by large physics collaboration for s/w quality assurance
It is clear that it is neither possible nor desirable to convert our current social structure from the one where we work either as individuals or in very small teams where each the individual has sole responsibility for all aspects of software development to one where we work in a large, rigidly organized teams slavishly following some How-To book of rules.
Peer Reviews
|
|
Documentation improves maintainability
|
|
Testing procedures |
|