SDLC
SDLC
SDLC
Phase 2:
Phase 1: Phase 3:
Systems
Planning Phase Systems Design
Analysis and
Requirements
Phase 4:
Phase 5: Development
Integration and
Testing
Phase 6:
Implementation
Phase 7:
Operations and
Maintenance
Phase 1: Planning
This is the first phase in the systems development process. It
identifies whether or not there is the need for a new system to
achieve a business’ strategic objectives.
This is a preliminary plan (or a feasibility study) for a
company’s business initiative to acquire the resources to
build on an infrastructure to modify or improve a service. The
company might be trying to meet or exceed expectations for
their employees, customers, and other stakeholders too.
The purpose of this step is to find out the scope of the
problem and determine solutions. Resources, costs, time,
benefits, and other items should be considered at this stage.
Phase 2: Systems Analysis and
Requirements
The second phase is where businesses will work on the source of their problem
or the need for a change. In the event of a problem, possible solutions are
submitted and analyzed to identify the best fit for the ultimate goal(s) of the
project. This is where teams consider the functional requirements of the project
or solution. It is also where system analysis takes place - or analyzing the needs
of the end users to ensure the new system can meet their expectations. Systems
analysis is vital in determining what a business’ needs are, as well as how they
can be met, who will be responsible for individual pieces of the project, and what
sort of timeline should be expected.
There are several tools businesses can use that are specific to the second
phase. They include:
CASE (Computer Aided Systems/Software Engineering)
Requirements gathering
Structured analysis
Phase 3: Systems Design
The third phase describes, in detail, the necessary
specifications, features and operations that will satisfy the
functional requirements of the proposed system which will be
in place. This is the step for end users to discuss and
determine their specific business information needs for the
proposed system. It is during this phase that the essential
components (hardware and/or software) structure
(networking capabilities), processing and procedures for the
system to accomplish its objectives are considered.
Phase 4: Development
The fourth phase is when the real work begins; in particular,
when a programmer, network engineer and/or database
developer are brought on to do the major work on the
project. This work includes using a flowchart to ensure that
the process of the system is properly organized. The
development phase marks the end of the initial section of the
process. Additionally, this phase signifies the start of
production. The development stage is also characterized by
instillation and change. Focusing on training can be a huge
benefit during this phase.
Phase 5: Integration and Testing
The fifth phase involves systems integration and system
testing (of programs and procedures) - normally carried out
by a Quality Assurance (QA) professional - to determine if
the proposed design meets the initial set of business goals.
Testing may be repeated, specifically to check for errors,
bugs and interoperability. This testing will be performed until
the end user finds it acceptable. Another part of this phase is
verification and validation, both of which will help ensure the
program’s successful completion.
Phase 6: Implementation
The sixth phase is when the majority of the code for the
program is written. Additionally, this phase involves the actual
installation of the newly-developed system. This step puts
the project into production by moving the data and
components from the old system and placing them in the
new system via a direct cutover. While this can be a risky
(and complicated) move, the cutover typically happens
during off-peak hours, thus minimizing the risk. Both system
analysts and end-users should now see the realization of the
project that has implemented changes.
Phase 7: Operations and
Maintenance
The seventh and final phase involves maintenance and
regular required updates. This step is when end users can
fine-tune the system, if they wish, to boost performance, add
new capabilities or meet additional user requirements.
Importance of SDLC
If a business determines a change is needed during any
phase of the SDLC, the company might have to proceed
through all the above life cycle phases again. The life cycle
approach of any project is a time-consuming process. Even
though some steps are more difficult than others, none are to
be overlooked. An oversight could prevent the entire system
from functioning as planned.
SYSTEM
DEVELOPMENT
METHODS
Structured Analysis Object-Oriented Analysis Agile/Adaptive Methods
Data flow diagrams, process Various object-oriented diagrams Tools that enhance communication
descriptions and business depict system actors, methods, and such as collaborative software,
Modeling Tools process modeling. messages. brainstorming, and whiteboards.
Traditional Method, which has Integrates easily with object- Very flexible and efficient in dealing
been very popular over time. oriented programming languages. with change. Stresses team
Relies heavily on written Code is modular and reusable, interaction and reflects a set of
documentation. Frequent phase which can reduce cost and community-based values. Frequent
iteration can provide flexibility development time. Easy to deliverables constantly validate the
Pros comparable with other methods. maintain and expand as new project and reduce risk.
Well-suited to project objects can be cloned using
management tools and inherited properties.
techniques.
Changes can be costly, Somewhat newer method might be Team members need high level of
especially in later phases. less familiar to development team technical and communication skills.
Requirements are defined early members. Interaction of objects Lack of structure and documentation
and can change during and classes can be complex in can introduce risk factors. Overall
development. Users might not larger systems. project might be subject to scope
Cons
be able to describe their needs change as user requirements change.
until they can see examples of
features and functions.
Roles and
Responsibilities of a
Software/System
Developer Team
PROJECT SPONSOR
The Project Sponsor is the person or group that provides direction and
resources, including financial resources for the software project. The
Project Sponsor works with the project management team, aiding with
wider project matters such as scope clarification, progress, monitoring,
and influencing others in order to benefit the software project.
The Project Sponsor leads the project through the software supplier
selection process until it is formally authorised. For issues that are
beyond the control of the Product Owner, the Project Sponsor serves
as an escalation path. The Project Sponsor may also be involved in
other important issues such as authorizing changes in scope, phase-
end reviews, and go/no-go decisions when the stakes of the project
are particularly high.
SUBJECT MATTER EXPERTS
(SME)
Subject Matter Experts are the accountants, finance
controllers, salespeople, production managers and so on
who roll up their sleeves each day. They know their roles
inside and out and are rarely technical. However, their lack of
technical knowledge is their strength, as they are not bogged
down in technicalities and instead are purely focused on
business outcomes.
PRODUCT OWNER
Product Owner is a software development role for a person
who represents the business or end-users and is responsible
for working with the user group to determine what features
will be in the product release.
The Product Owner is also responsible for the prioritised
backlog and maximising the return on investment (ROI) of
the software project. Part of this role’s responsibility includes
documenting user stories or requirements for the software
project. They act as the main point of contact for all decisions
concerning the project and as such, need to be empowered
to perform their responsibilities without the need to seek too
much prior authorisation from the Project Sponsors.
The Product Owner is responsible
for:
Ensuring that the software product vision statement is adhered to
Making the final decision on all scope related decisions
Maintaining and updating the product backlog on a continuous basis
by
refining new requirements
removing requirements that fall out of scope
adding new requirements identified as being required to achieve the
software product vision statement
reviewing and setting the priorities assigned to the product backlog and
heading up all project planning meetings
Resolving any disputes either with the software development team
or internally
PROJECT MANAGER (PM)
The Project Manager (PM) is responsible for knowing the “who, what,
where, when and why” of the software project. This means knowing the
stakeholders of the project and being able to effectively communicate with
each of them. The Project Manager is also responsible for creating and
managing the project budget and schedule as well as processes including
scope management, issues management and risk management.
Some of the Project Manager duties can include:
Developing a software project plan
Manage deliverables according to the software project plan
Recruiting software project staff
Leading and managing the software project team
Determining the methodology used on the project
Establishing a project schedule and determine each phase
Assigning tasks to project team members
Providing regular updates to senior management
TECHNICAL LEAD
This person translates the business requirements into a technical
solution. Because of this responsibility, it is beneficial to have the
Technical Lead involved in the planning phase to hear the business
requirements from the customer’s point of view and ask questions.
The Technical Lead is the development team leader and works with
the developers to provide technical details and estimates for the
proposed solution. This information is used by the Project Manager
to create the Statement of Work and the Work Breakdown
Structure documents for the software project. It is critical that the
Technical Lead can effectively communicate the status of the
software project to the Project Manager so that issues or variances
can be effectively addressed as soon as possible. The Technical
Lead is also responsible for establishing and enforcing standards
and practices with the software development team.
SOFTWARE DEVELOPERS
The Software Developers (front-end and back-end) are
responsible for using the technical requirements from the
Technical Lead to create cost and timeline estimates. The
Software Developers are also responsible for building the
deliverables and communicating the status of the software
project to the Technical Lead or Project Manager. It is critical
that the other team members effectively communicate the
technical requirements to the Software Developers to reduce
project risk and provide the software project with the greatest
chance of success.
SOFTWARE TESTERS