2. Presentation Roadmap
What is an SDLC and why use one?
Selected modern SDLCs:
Waterfall Method
Agile Development Methods
Rational Unified Process (RUP)
Extreme Programming (XP)
Scrum
Capability Maturity Model Integration (CMMI)
Other SDLCs to research
Wrap up and Questions
3. Why Use an SDLC?
Project (per PMBOK): “a temporary endeavor undertaken
to create a unique product or service.”
An SDLC is used to manage the constraints of the “Golden
Triangle”
4. What is an SDLC and why use one?
(Control Scope)
5. What is an SDLC and why use one?
(Control Duration)
6. What is an SDLC and why use one?
(Control Cost)
8. Waterfall (Traditional)
The following documents serve to clarify objectives and deliverables and to align sponsors, clients, and project team's
expectations:
Project Charter
Preliminary Scope Statement / Statement of work
Business case / Feasibility Study
Scope Statement / Terms of reference
Project management plan / Project Initiation Document
Work Breakdown Structure
Change Control Plan
Risk Management Plan
Risk Breakdown Structure
Communications Plan
Governance Model
Risk Register
Issue Log
Action Item List
Resource Management Plan
Project Schedule
Project Status Report
Responsibility assignment matrix
Database of lessons learned
Stakeholder Analysis
9. Issues With Waterfall Method
The main problem with the waterfall model is the inflexible division of
a project into separate stages, so that commitments are made early on,
and it is difficult to react to changes in requirements. Iterations are
expensive.
This means that the waterfall model is likely to be unsuitable if
requirements are not well understood or are likely to change in the
course of the project.
10. Agile Development Methods
Agile software development refers to a group of software
development methodologies that promotes development iterations,
open collaboration, and process adaptability throughout the life-cycle
of the project.
It chooses to do things in small increments, with minimal planning,
rather than plan at length. This helps to minimize the overall risk, and
allows the project to adapt to changes more quickly. There is also an
emphasis on stakeholder involvement. Meaning at the end of each
iteration, the stakeholder is consulted about the product and
comments are noted.
Extreme Programming (XP) and Rational Unified Process (RUP)
are two types of agile methods (there are many others).
11. Agile Methods Rely Upon
Iterations and Releases
Some of the principles behind the Agile Manifesto are:
Customer satisfaction by rapid, continuous delivery of useful software
Working software is delivered frequently (weeks rather than months)
Working software is the principal measure of progress
Even late changes in requirements are welcomed
Close, daily cooperation between business people and developers
Face-to-face conversation is the best form of communication (Co-location)
Projects are built around motivated individuals, who should be trusted
Continuous attention to technical excellence and good design
Simplicity
Self-organizing teams
Regular adaptation to changing circumstances
Essentially, scope can’t be fixed, so let’s fix schedule (time boxing), creating
iterations and releases
14. Rational Unified Process (RUP)
The creators of RUP focused on diagnosing the characteristics of different failed software
projects; by doing so they tried to recognize the root causes of these failures. They also
looked at the existing software engineering processes and their solutions for these
symptoms.
A representative list of failure causes includes the following:
Ad hoc requirements management
Ambiguous and imprecise communication
Brittle architecture (architecture that does not work properly under "stress")
Overwhelming complexity
Undetected inconsistencies in requirements, designs, and implementations
Insufficient testing
Subjective assessment of project status
Failure to attack risks
Uncontrolled change propagation
Insufficient automation
Project failure is caused by a combination of several symptoms, though each project fails
in a unique way. The outcome of their study was a system of software best practices they
named the Rational Unified Process.
15. RUP Phases
The Rational Unified Process (RUP) is an iterative software development
process framework created by the Rational Software Corporation, a division of
IBM since 2003.
RUP is not a single concrete prescriptive process, but rather an adaptable
process framework, intended to be tailored by the development organizations
and software project teams that will select the elements of the process that are
appropriate for their needs.
The following are phases of RUP, which align to business activities intended to
drive successful delivery and deployment of projects. It also provides the
taxonomy for blue printing and producing enterprise architecture artifacts
across its different domains.
Inception - Identify the initial scope of the project, a potential architecture for
the system, and obtain initial project funding and stakeholder acceptance.
Elaboration - Prove the architecture of the system.
Construction - Build working software on a regular, incremental basis which
meets the highest-priority needs of project stakeholders.
Transition - Validate and deploy the system into the production environment
17. RUP and UML
Unified Modeling Language (UML) is an essential set of object oriented tools (artifacts) used in RUP.
Use only necessary artifacts. Not all those listed are required.
Structure diagrams emphasize what things must be in the system being modeled:
Class diagram
Component diagram
Composite structure diagram (added in UML 2.x)
Deployment diagram
Object diagram
Package diagram
Behavior diagrams emphasize what must happen in the system being modeled:
Activity diagram
State Machine diagram
Use case diagram
Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the
system being modeled:
Communication diagram
Interaction overview diagram (added in UML 2.x)
Sequence diagram
Timing diagram (added in UML 2.x)
19. XP Programming Practices
Extreme Programming has 12 practices, grouped into four areas (some key items
elaborated upon below):
Fine scale feedback
Pair programming - two programmers work together at one keyboard. One types in code while the
other reviews each line of code as it's typed in. The person typing is called the driver. The person
reviewing the code is called the observer or navigator. The two programmers switch roles
frequently.
Planning game – Integrate user stories in weekly iteration and release planning meetings
Test driven development
Whole team – The customer (end-user) is part of team and always on-hand
Continuous process
Continuous integration
Refactoring or design improvement
Small releases
Shared understanding
Coding standards
Collective code ownership - Daily builds, smoke tests, “you broke it you fix it” approach
Simple design
System metaphor
Programmer welfare
Sustainable pace - software developers should not work more than 40 hour weeks, and if there is
overtime one week, that the next week should not include more overtime. Measure velocity of
feature creation and adjust commitments in next iteration.
20. Scrum Method
Scrum (not an acronym) is a process skeleton that includes a set of practices
and predefined roles. The main roles in Scrum are the ScrumMaster who
maintains the processes and works similar to a project manager, the Product
Owner who represents the stakeholders, and the Team which includes the
developers.
During each sprint, a 15-30 day period, the team creates an increment of
potential shippable software. The set of features that go into each sprint
come from the product backlog, which is a prioritized set of high level
requirements of work to be done.
During sprint planning meetings the Product Owner informs the team of
the items in the product backlog that he wants completed. The team then
determines how much of this they can commit to complete during the next
sprint. During the sprint, no one is able to change the sprint backlog, which
means that the requirements are frozen for a sprint.
22. Scrum Roles: Pigs and Chickens
Several roles are defined in Scrum; these are divided into two groups;
pigs and chickens, based on a joke about a pig and a chicken.
A pig and a chicken are walking down a road. The chicken looks at the
pig and says, "Hey, why don't we open a restaurant?" The pig looks back
at the chicken and says, "Good idea, what do you want to call it?" The
chicken thinks about it and says, "Why don't we call it 'Ham and
Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only
be involved."
23. Scrum Roles: Pigs
Pigs
The ones committed to the project and the Scrum process; they are the ones with "their bacon on
the line.“
Product Owner
Represents the voice of the customer.
Ensures that the Scrum Team works with the right things from a business perspective.
Writes User Stories, prioritizes them, then places them in the Product Backlog.
ScrumMaster (or Facilitator)
Primary job is to remove impediments to the ability of the team to deliver the sprint goal.
Not the leader of the team (as they are self-organizing) but acts as a buffer between the team
and any distracting influences.
Ensures that the Scrum process is used as intended (the enforcer of rules).
Team
The team has the responsibility to deliver the product. A small team of 5-9 people with cross-
functional skills to do the actual work (designer, developer etc.).
24. Scrum Roles: Chickens
Chickens
Not part of the actual Scrum process, but must be taken into account.
An important aspect of an Agile approach is the practice of involving users, business and
stakeholders into part of the process. It is important for these people to be engaged and provide
feedback into the outputs for review and planning of each sprint.
Users
The software is being built for someone! If software is not used - much like 'the
tree falling in a forest' riddle - was it ever written?
Stakeholders (Customers, Vendors)
The people that will enable the project, but are only directly involved in the
process at sprint reviews.
Managers
People that will set up the environment for the product development
organization.
25. The Daily Scrum Meeting
Each day during the sprint, a project status meeting occurs. This is
called a scrum or the daily standup.
The scrum has specific guidelines:
The meeting starts precisely on time. Often there are team-decided
punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken
around your neck)
All are welcome, but only "pigs" may speak
The meeting is time boxed at 15 minutes regardless of the team's size.
All attendees should stand (it helps to keep meeting short)
The meeting should happen at the same location and time every day
During the meeting, each team member answers three questions:
What have you done since yesterday?
What are you planning to do by tomorrow?
Do you have any problems preventing you from accomplishing your goal? (It is the role of the
ScrumMaster to remember these impediments.)
26. Capability Maturity
Model Integration (CMMI)
Regardless of the SDLC used in an enterprise, the must be a way to continuously improve
processes. CMMI provides this.
The Capability Maturity Model Integration (CMMI) project is a collaborative effort to
provide models for achieving product and process improvement. The primary focus of
the project is to build tools to support improvement of processes used to develop and
sustain systems and products. The output of the CMMI project is a suite of products,
which provides an integrated approach across the enterprise for improving processes,
while reducing the redundancy, complexity and cost resulting from the use of separate
and multiple capability maturity models (CMMs).
In essence, CMMI is a framework of best practices.
http://www.sei.cmu.edu/cmmi/index.html (CMM/SEI Website)
27. Capability Maturity
Model Integration (CMMI)
The model identifies five levels of process maturity for an organization:
Level 1: Initial (chaotic, ad hoc, heroic): The starting point for use of a new process.
Level 2: Repeatable (project management, process discipline): The process is used repeatedly.
Level 3: Defined (institutionalized): The process is defined/confirmed as a standard business
process.
Level 4: Managed (quantified): Process management and measurement take place.
Level 5: Optimizing (process improvement): Process management includes deliberate process
optimization/improvement.
There are key process areas (KPAs) within each of these maturity levels that characterize
that level, and five measures for each KPA:
Goals
Commitment
Ability
Measurement
Verification
Use the KPAs to help the enterprise climb to the next maturity level.
28. Other SDLCs To Research
Prototyping
Evolutionary Prototyping
Spiral Model
Chaos Model
V-Model
ICONIX Model
…and many more
29. Wrap Up and Questions
What is an SDLC and why use one?
Selected modern SDLCs:
Waterfall Method
Agile Development Methods
Rational Unified Process (RUP)
Extreme Programming (XP)
Scrum
Capability Maturity Model Integration (CMMI)
Other SDLCs to research
30. References & Credits
“A Project Manager’s Survival Guide to Going Agile”,
Michele Sliger
Wikipedia
Rapid Development, Steve McConnell
PMBOK
Dilbert
You-Tube