What are we looking at?
What path does a system take from idea to maintenance, and must we always go through every stage?
What is SDLC?
Every system, software or organisational, needs a clear and logical path to take shape and grow: needs are identified, solutions are designed, implementation is done, and finally stability and maintenance are ensured. In the literature of systems analysis we call this path the System Development Life Cycle (SDLC).
SDLC is a structured model for developing and maintaining a system that divides a project into a few defined stages. This division makes a project more manageable, makes analysis and design more orderly, and lowers the chance of failure.
The five stages
1. Planning. The organisation’s problem or need is identified, the project scope and required resources are set, and time, cost and risks are estimated. The question for this stage: should we build this system at all?
2. Analysis. Users’ and stakeholders’ needs are collected, current processes are understood, and what the system must do is documented. The systems analyst’s role is key here, because they must both understand the users’ language and be able to model their needs.
3. Design. The overall structure, technical components, database, user interface and architecture are defined, and technical documents are prepared for the development team. At this stage the system is built on paper.
4. Implementation. Coding, buying equipment or carrying out processes (depending on the type of system), initial installation and set-up, and user training. Plans and ideas turn into reality here.
5. Testing and maintenance. The system is tested in real conditions, faults are fixed, and maintenance, updating and upgrading continue over time. A successful system isn’t only well designed, it is well maintained.
In a real project
Project managers, analysts, developers and designers can all use SDLC to manage the project path better, keep communication between teams structured, and prevent rework, extra cost and failure. In an ERP project, for example, if the requirements aren’t specified properly in the analysis stage, the design will be inefficient and in the end users won’t accept the system.
Must we always go through all stages?
The short answer: it depends.
In large and complex projects going through every stage is necessary, and doing any one of them badly can bring the whole project down. But in agile, start-up or small projects, the stages may be compressed, iterative or merged, with the emphasis on fast feedback and a minimum viable product. I think a systems analyst should know the structure of SDLC and also show flexibility in an agile setting: keep the logic of SDLC and adapt its form to the situation.