Booklet: Development and Acquisition
Section:
Development Procedures
Subsection:
 

 

 

 

 

 

Action Summary additional information.

Development projects involve the creation of software applications or integrated application systems. Software development projects are completed in-house, through outsourcing, or by a combined approach. Organizations typically manage development projects using systematic methodologies that divide large, complex tasks into smaller, more easily managed segments or phases.

Traditionally, many organizations used the systems development life cycle method to assist in developing software for use in mainframe operating environments. The SDLC provided a satisfactory method to manage the projects because the functional and security requirements of the software were limited. Functional requirements were primarily limited to transaction processing and output reporting. Security requirements were limited because of the closed environment in which mainframes operated. Typically, few individuals had access to the mainframes. Therefore, physical restrictions over mainframe terminals and logical controls over program and data libraries provided most of a system’s security.

Client/server systems provide significantly more users increased access to systems and data. Therefore, the need to develop software with greater functionality and stronger internal controls contributed to the development of alternative, risk-focused software development techniques.

Alternative development techniques (such as spiral, iterative, and modified SDLC methodologies) involve the completion of project activities in repetitive (iterative) cycles. The techniques reduce project risks by ensuring the requirements of each participant (end users, auditors, security administrators, designers, developers, system technicians, etc.) are thoroughly considered during each project phase. Involving all parties during each project phase reduces the risk that organizations will not identify problems until late in a project’s life cycle. The newer methodologies often employ prototyping or modeling techniques during initial project phases. Prototyping enhances user’s ability to visualize how systems will look and work after the systems are installed.

DEVELOPMENT STANDARDS

Organizations should establish development standards that, at a minimum, address project management, system control, and quality assurance issues. Project management standards should address issues such as project management methodologies, risk management procedures, and project approval authorities. System control standards should address items such as an application’s functional, security, and automated control features. Quality assurance standards should address issues such as the validation of project assumptions, adherence to project standards, and testing of a product’s performance.

Development standards should include procedures for managing changes during the development process. "Scope creep" is a common problem associated with software development projects. It occurs when developers receive requests to add or modify a program’s features while the program is being developed. Although the addition or modification of functional, security, or control features may be appropriate, uncontrolled changes disrupt the development process. Establishing change approval procedures and cut-off dates (after which requested changes are deferred to subsequent versions) assist organizations manage change during the development process.

Development standards should also include procedures for managing internally developed spreadsheets and database reports. Financial institutions often rely on the spreadsheets and reports to make important budgeting and asset/liability decisions, but fail to implement adequate testing, documentation, and change-control procedures. Management’s reliance on the spreadsheets and reports should dictate the formality of their development procedures, change controls, and backup techniques.