Project Manager
Before we dive into the Systems Development Life Cycle, it helps to understand what a project manager is and what role they play. A project manager’s role is to ensure that all stakeholders in the project are kept informed regularly about the project’s progress. The stakeholders can range from:
- Executives
- Business Head of Departments
- Technical Heads of Departments
- Financial Managers
- Project Team
As you can see from the above list, the stakeholders vary, and each stakeholder is only concerned with how the project affects their department. Therefore, a project manager needs to deliver understandable updates to all parties.
It is typical for a project manager to hold weekly meetings involving all stakeholders that give an update on the project’s progress and report on any milestones met.
The project manager’s key aspect is defining the deliverables to create corporate awareness relating to your project. Selecting the correct milestones for the project is of utmost importance as this is where all stakeholders agree to the project scope and the timeline of all deliverables.
Once the project manager’s milestones have been agreed upon and signed off by all stakeholders, the next big challenge is to incorporate these milestones into the systems development life cycle.
Systems development life cycle (SDLC)
Now that we know about the role of a typical project manager, let us see how the project manager’s role moves over to the systems development life cycle and just how important it is to plan a development project properly.
Project management in the SDLC has 4 phases, namely:
- Requirements
- Design
- Construction
- Implementation
Each of the different phases above has a role player who contributes to the successful execution of the project.
Requirements
When planning a project, it’s vital to know what the requirements are for the project. What are the ‘must-haves’ for the project, and what are ‘nice-to-haves’? These requirements are gathered by talking to the stakeholders.
Produce Functional Specifications
Once you have gathered the requirements, you will then compile a document known as a functional specification. The functional specification will contain all the necessary details for the developers to develop the system according to the customer’s requirements.
A functional specification should tell the developers what to build and code, tell those testing the solution what it’s supposed to do, and let the client/stakeholder know what they will receive.
There are a few ways of writing functional specifications, and we’ll discuss three approaches below.
System Must
This approach sets the requirements for what the system must be able to do. This approach is a fairly clean and clear way of setting out requirements, but what it gains in clarity, it can lose a bit of nuance and can become somewhat ambiguous.
For a contact form, the functional requirements might be:
- The system must allow the user to input text.
- The system must validate the email address.
Use case
A use case puts functionalities into a series of steps which allows developers to get a more rounded perspective of the requirements. Often, ‘system must’ requirements are formulated into a use case.
- A user arrives at the contact page and fills in the form. If the inputs are all valid, the data is sent to the contact inbox, and the user receives a message confirming the message has been sent.
User stories
User stories give great insight into the user’s perspective for identifying functionalities. It uses a simple construction which makes it easy to access for developers and stakeholders alike and lets them decide what is and isn’t important for the user.
A common construction of a user story is:
“As a [ type of user ], I can [ perform an action ] so that [ I can get a benefit ].”
- As a potential customer, I can send valid form data so that I can find out more about the product
Design
Once the functional specifications are set, it needs to be decided how to develop the solution for the requirements.
Developers create a Technical Specification to show all the technical requirements needed to achieve the project. It lists the layout of the architectural design, hardware, software and any special coding requirements. A technical specification should be updated regularly as all developers view it.
This document is created to show how the system will be designed and developed and becomes very useful when many systems are being integrated.
As part of their planning, the developers and system architects will discuss the impact on new and existing infrastructure and databases and use UML (Unified Modelling Language) to visualise the system’s design.
Construction
Build System Components
Once we have completed the functional and technical requirements for the system design, we can start developing. The developer will now use the functional and technical specifications to build the system based on the requirements.
System Testing
Once the developer has completed the development, the developer will do systems testing to ensure that the solution they built is working. This testing is done before the developer hands the system over to the testers, who will perform complete testing.
It is good practice for the developer to test the solution while they are developing to fix any bugs which might be found and can then be fixed right there and then. It is also good practice for the developer to test the solution with the business analyst, which will ensure that the requirements have been met.
Produce Technical Documentation
Once the developer has finalised the development and development testing, they will create or update the technical documentation. This is updated regularly as system and code changes are done. This is a very good document to have as any developer can use it as a point of reference for developing and allowing the developer to understand the system better.
Implementation
During the Implementation phase, the product is created. This means the product finally becomes tangible, and this can be an exciting milestone for the customer. This phase includes testing and installation - all while following the technical specification document.
SDLC Methodologies
The Systems Development Life Cycle(SDLC) can be categorised into different methodologies/processes. The methodologies include:
Most modern software development processes can be vaguely classified as Agile. Hence we explore Agile Methodology.
Activity
📖 READ
- The Seven Phases of the System-Development Life Cycle
- What Goes Into a Functional Specification?
- How To Write User Stories, Epics, & Personas
- SDLC Methodologies
Lesson Task
Brief
Project management and the SDLC can sometimes be an overwhelming mass of information. Use this task to better understand these two concepts by creating clear templates and answers that you can understand for yourself.
Level 1 Process
- Create a template for a project management plan according to the SDLC that is easy for you to understand.
- Create a template for a functional specification.
Level 2 Process
- Briefly describe the role of the project manager.
- Briefly describe the role of a business analyst.