Company A manufactures point-of-sale solutions, security systems and petrol pumps, for sale in New Zealand and overseas. It employs around 250 people. We focussed on the security systems division, which employs around 45 people, including 26 software developers. These developers are structured into several project groups, with each group typically comprising a manager, four to five
software engineers and one to three software testers. Company A is ISO 9001 certified, so follow a documented software lifecycle, which is generally a waterfall model, but with prototypes done during the design stage if necessary. Lotus Notes is used to track requirements, design documents, test plans and results, and processes.
A typical project begins with a Terms of Reference statement which is used to evaluate feasibility and guide the production of the Functional Requirements document. This is generally based on a standard template, and often contains use cases, as well as interface and performance requirements. A major requirements review meeting is held after the functional requirements are complete. Next, work proceeds into the design and implementation phases, where design reviews, and some code reviews, are done internally by the project group. In parallel with design and coding, the testers produce test sets directly from the functional requirements document, and the design documents as
they become available. They use Cause and Effect techniques to generate formal test plans for the product. These test plans are mostly used to perform system testing, but some modules are tested individually. This is followed by alpha and beta testing and load testing. They use some tools to help in applying tests, but this is not fully automated. They plan to start using automated regression
testing tools in the future.
Replaced/Superseded by document(s)
We report on the software development techniques used in the New Zealand software industry, paying particular attention to requirements gathering. We surveyed a selection of software
companies with a general questionnaire and then conducted in-depth interviews with four companies. Our results show a wide variety in the kinds of companies undertaking software development, employing a wide range of software development techniques. Although our data are not sufficiently detailed to draw statistically significant conclusions, it appears that larger software
development groups typically have more well-defined software development processes, spend proportionally more time on requirements gathering, and follow more rigorous testing regimes.