SDLC

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

SOFTWARE

DEVELOPMENT LIFE
CYCLE (SDLC)
METHODOLOGIES
Sit Dolor Amet
What are SDLC Methodologies

◦SDLC Methodologies are processes and practices


used by software development teams in order to
successfully navigate the Software Development
Life Cycle (SDLC).
Waterfall Method
• the software development process
goes through all the SDLC phases with
no overlapping and consists of a
single development cycle.

• any phase in the development


process can begin only if the previous
one is complete.
The Prototyping Model
• The Prototype method revolves
around the creation of a low fidelity
prototype for the purposes of
collecting early feedback from
prospective users.

• From there, prototypes are evolved


into final software requirements.
Iterative Model
• only the major requirements are
known from the beginning. Based on
these, the development team creates a
quick and cheap first version of the
software.
• additional requirements are identified,
additional iterations of the software
are designed and built.
• Each iteration goes through all the
phases of the SDLC and these cycles
are repeated until completion.
• It was common for the team to work
on several SDLC phases at the same
time.
Spiral Model
• evaluates the specific risk profile of the
project before recommending an
approach that blends aspects of the
other popular methodologies of the
day, including Iterative and Waterfall.
As such, it rejects a one size fits all
approach to process model adoption.
V-shape Model
• The V-Shape model is named after its
two key concepts: Validation and
Verification.
Agile
• Agile methodology breaks a project
down into multiple cycles, each
passing through some or all of the
SDLC phases.
Agile Roles
• Product Owner - The Product Owner, also known as the “voice of the customer”, defines the
product vision based on all insights, feedback, and ideas gathered. He or she is the owner of the
product requirements and works closely with the development team to communicate the vision
by documenting it in short narratives called User Stories. User Stories typically include a name,
description, reference to any external documents, and an explanation of how to test the
implementation. Product Owners often maintain a backlog of User Stories if there are too many
to be executed concurrently.
• Scrum Master - Similar to a project manager, this role is all about making sure the team is
following Agile principles, values, and processes.
• Team Member - All members of the development team have different skills and collaborate
together to build functional software. Teams can include QA engineers, business analysts,
designers, database engineers, and more depending on the project scope.
Advantages of Agile Methodology
• Deliver software well-tailored to an ever-growing understanding of customer
demands
• Software is deployed more quickly and improved more regularly
• Better code hygiene including style, readability, and structuring
• Flexible and adaptable process enables pivots or changes mid-project
• Doesn’t require a complete list of requirements upfront
• Makes room to act on organizational learning as the project progresses
• Transparency and continuous communication with involved stakeholders
Other methodologies fall under the Agile
umbrella include:
• Feature Driven Development (FDD) – a lightweight and incremental model that focuses on features
as the name suggests. It features a series of iterations and inspections. This framework demands a
high level of design expertise and planning.
• Lean software development – it is an integration of the agile methodology and lean manufacturing
principles and practices. Aim at optimizing time and reducing waste, cost and effort.
• Scrum – focuses on the management aspects of software development in intricate knowledge work,
research and advanced technologies with an emphasis on teamwork, iteration and accountability.
• Crystal Methods – It is one of the most lightweight agile methodologies. It focuses on team member
talent skills, interactions and communication—this model groups projects in terms of system
criticality, team size and priorities.
• Rapid Application Development (RAD)/ Rapid-application building (RAB)- focuses on timely
delivery in a fast-paced environment with the use of prototyping and iterative development.
Other methodologies fall under the Agile
umbrella include: (continued)
• Adaptive Software Development (ASD) – It is an outgrowth of the RAD that provides
continuous adaptation to change in project requirement or market needs.
• Dynamic Systems Development Method (DSDM)- it is an iterative and incremental Agile
approach based on RAD, but with governance and strict guidelines. It is applicable in four
principal phases.
• Extreme Programming (XP) – Focuses on software quality and responsiveness with
emphasis on the changing needs of the client. It features a high-level collaboration with
minimal documentation.
• Kanban– a framework that utilizes a lean manufacturing scheduling system to develop
software in a long development cycle. The aim is to manage and improve flow systems in
mobile app development5
Scrum
• Scrum is a very popular Agile
framework characterized by
continuous collaboration, frequent
deliveries, and special development
cycles called ‘Sprints’. Scrum revolves
around the following checkpoints:
Kanban
• Kanban got its start in lean
manufacturing, where Toyota applied
the same “just in time” principles that
supermarkets use to manage
inventory stock levels based on
customer demand. Kanban, meaning
signboard in Japanese, uses cards to
track and support the production
system by visually showing the steps
within the process and how long each
step is taking using cards.
Extreme Programming
Extreme Programming (XP) is an Agile
framework focused on project flexibility
and writing high quality, well-tested code.
The official Extreme Programming
website states that XP improves a
software project in 5 key ways:
•Communication
•Simplicity
•Feedback
•Respect
•Courage
Extreme Programming is best known for
the following:
• Pair programming is a technique where two programmers share the same workstation and
create software together. One acts as the driver and the other one as the navigator, then they
switch roles. When paired, code review can take place instantly, and defects are more likely to be
identified and corrected immediately. Pair programming encourages mentorship, knowledge
sharing, and learning. And while it may take more time to produce new code when two
developers work on the same task, the resulting code is higher quality with less defects.
• Unit and functional testing are emphasized in XP. Tests are to be comprehensive and
automated, reducing technical debt and ensuring code can confidently be validated and re-used.
• Continuous communication between programmers and stakeholders to gather and act upon
their input, feedback, and change requests. XP requires an “extended development team” that
may include business managers, customers, and other key stakeholders.
Lean
• the goal of Lean is to
increase the speed and
decrease the cost of product
development.

• With Lean, the highest risks


are wasted time and effort.
Lean discourages
multitasking and encourages
team members to focus on
what’s important in the
present moment.
Lean focuses on the following “just in
time” principles::
• Eliminating waste in cost, scope, and scheduling
• Amplifying learning
• Taking decisions as late as possible
• Fast delivery
• Empowering the team
• Building integrity
• Optimizing the entire project
DevOps
• DevOps, just like Lean, can
work alongside Agile to
create an infrastructure that
eliminates the barriers
slowing development and
delivery of the final software
product.
• DevOps brings deployment
and operation of the
software fully into the Agile
development process in the
same way Agile brought
testing and business analysis
into software development.

You might also like