Framework for Software Development

Investigate Phase

  • Problem description: Gather requirements from stakeholders through interviews, surveys, focus groups etc. Understand the problem to be solved, user needs, and project goals. Document detailed functional and non-functional requirements.
  • Define requirements: Document detailed functional (what it needs to do) and non-functional requirements (how it needs to perform). Prioritise requirements.
  • Development schedule: Develop initial timeline estimates and a development roadmap. Conduct risk analysis and plan risk mitigation strategies.

Design Phase

  • Design data structures: Design database schema, data models, API specifications etc. Focus on flexibility, scalability and ease of maintenance.
  • Design and test algorithms: Design core algorithms and logic. Analyse time and space complexity. Use trace tables and desk checking to test algorithms.

Develop Phase

  • Develop and debug code: Code implementation guided by coding standards and design documentation. Fix bugs (errors) in the code.
  • Unit testing: Automate repeatable tests. Conduct code reviews. Refactor and optimise as needed.
  • Use of live data: Test system with live data to ensure there are no bugs with regard to input and processing of data.

Evaluate Phase

  • User acceptance testing: User acceptance testing with stakeholder sign-off.
  • Developer retrospective: The team will review the project to analyse what worked well and what could be improved in the development process in order to make recommendations for enhancing workflow, collaboration, and product quality on future projects.