Software development notes
A six-stage software development process is used, combining agile and waterfall
approaches:
1. Investigate
2. Plan
3. Design
4. Create
5. Evaluate
6. Document
The model is simplified and may require looping back to earlier stages. Stages may have
different names, and the detail varies depending on the project.
Investigate : This stage involves identifying and analysing the problem the software is meant
to solve. All findings should be documented.
Client and User
● The client commissions the project.
● The user is the person who uses the software.
● The client may also be a user.
Understanding the Problem, Key points to investigate:
● Who the users are and how many user groups exist.
● The needs of each group.
● The working environment of users.
● The client’s expectations..
● Constraints such as time, budget, and staff.
Information can be gathered by:
● Interviews
● Questionnaires
● Collecting existing documentation
● Work-shadowing users
Questions should be structured consistently, but designers should be flexible and willing to
amend plans, showing the iterative nature of development.
Feasibility Study : A feasibility study is produced at the end of the Investigate stage. It
decides whether a practical solution exists and includes:
● Solution options with pros and cons
● Resource and time estimates
● Impact on business processes and staffing
● Training needs
● Benefits and drawbacks
● Maintenance requirements
● A final recommendation on whether to proceed
Specification of Requirements : This document details exactly what the system is expected
to do from the perspective of both the user and the client. It outlines user requirements,
client requirements, and hardware/software needs.
User and Client Requirements
● User Requirements: Set out what users need and expect from the system, often
recorded by the user group.
● Client Requirements: Focus on business viewpoints, treating the system as an
investment.
● Measurable Benefits: Can include increased sales, cost savings, improved
competitiveness, better customer service, or staff retention.
Hardware and Software Requirements
An initial assessment is made to select the most suitable resources based on:
● Hardware Selection: Criteria include compatibility with current networks, availability of
maintenance/warranties, cost, storage capacity, reliability, and computing power.
● Software Selection: Designers determine if a configurable existing package (like
accounting software) can be used or if bespoke (specially written) software is
required.
● Bespoke Factors: When choosing a programming language, consider the current IT
environment, available skills, and if mobile/web apps are needed.
Plan : A software development plan ensures all stakeholders understand the project timeline
and responsibilities.
Key Components of the Plan
● Timescale and Dependencies: Shows the timeline for each task. Dependencies
occur when one task cannot start until another is finished (e.g., testing depends on
initial coding).
● Resources: Estimations of the time required for each task and the identification of
non-staff resources like hardware and software.
● Staffing: Addresses the number of staff needed, required skills,
recruitment/contractor needs, management, and frequency of progress reviews.
Project Management and control
● Project management software is commonly used to create project plans.
● These tools make plans easy to update and adjust.
● The project plan acts as a control tool for the project manager.
● It helps ensure the project stays on track.
● Project plans are flexible, not fixed.
● Unforeseen problems may require changes to the plan.