Software development cycle checklist

by Irfan Baluch

Irfan Baluch of our Technology & Media team gives a simple overview of the software development process and highlights some key legal and commercial issues that should be included in a properly drafted Software Development Agreement

There are numerous models showing how the software development cycle works and they usually differ according to the Project Management approach which is to be used for that development.

This illustration gives a simple overview of the software development process and highlights some key legal and commercial issues that should be included in a properly drafted Software Development Agreement, which if overlooked, can have very serious consequences both legally and commercially if they are not dealt with properly from the outset of the relationship with the developer.

1. Business Need

2. Perform Requirements Analysis

Evaluate:
1. Existing infrastructure
2. Interfacing with other systems
3. Mission critical / real time systems
4. End-user requirements
5. Desired functionality
6. Performance criteria
7. Regulatory / audit criteria
8. Consider proposed revenue model if appropriate

3. Define Functional Specification

1. Development language and tools
2. Interfacing with other applications
3. Future proofing
4. Performance
5. Scalability
6. Security
7. Functional operation
8. Maintainability
9. User interface
(Beware of scope creep)

4. Design and Development Phase

1. System / program architecture
2. Well documented code
3. Version control
4. Quality assurance
5. Error reporting
6. User interface

5. Developer Testing

1. Functionality
2. Destructive testing
3. Review output and reporting

6. User / Acceptance Testing

1. Has the functional specification been achieved?
2. Benchmark the performance
3. What happens when you Go Live?

7. Implementation and Deployment

1. Training
2. Transition
3. Data migration
4. User documentation
5. Configuration documentation

8. Maintenance

1. Refining the software
2. Support and maintenance agreements
3. Service levels
4. Identify future development to meet evolving business needs

9. General Points to Consider

1. Ownership of software
2. Escrow / access to source code
3. “Open source” issues
4. Pricing, payment on milestones
5. Project plan
6. Jurisdiction
7. Third party content
8. Data protection issues
9. Change control / scope creep
10. Limitation of liability
11. Original work / © / IPR infringement