30
Presented By Steve Gladstone [email protected]

Overview of SDLC - Waterfall, Agile, and more

Embed Size (px)

DESCRIPTION

An overview of various Software Development Life Cycles (SDLCs) and their practical strengths and use.

Citation preview

Page 1: Overview of SDLC - Waterfall, Agile, and more

Presented By

Steve Gladstone [email protected]

Page 2: Overview of SDLC - Waterfall, Agile, and more

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

Page 3: Overview of SDLC - Waterfall, Agile, and more

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”

Page 4: Overview of SDLC - Waterfall, Agile, and more

What is an SDLC and why use one? (Control Scope)

Page 5: Overview of SDLC - Waterfall, Agile, and more

What is an SDLC and why use one? (Control Duration)

Page 6: Overview of SDLC - Waterfall, Agile, and more

What is an SDLC and why use one? (Control Cost)

Page 7: Overview of SDLC - Waterfall, Agile, and more

Waterfall

Page 8: Overview of SDLC - Waterfall, Agile, and more

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

Page 9: Overview of SDLC - Waterfall, Agile, and more

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.

Page 10: Overview of SDLC - Waterfall, Agile, and more

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).

Page 11: Overview of SDLC - Waterfall, Agile, and more

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

Page 12: Overview of SDLC - Waterfall, Agile, and more

Agile Mapped To Latest PMBOK

Page 13: Overview of SDLC - Waterfall, Agile, and more

Agile Mapped To Latest PMBOK

Page 14: Overview of SDLC - Waterfall, Agile, and more

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.

Page 15: Overview of SDLC - Waterfall, Agile, and more

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

Page 16: Overview of SDLC - Waterfall, Agile, and more

RUP: Phases, Disciplines, and Iterations

Page 17: Overview of SDLC - Waterfall, Agile, and more

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)

Page 18: Overview of SDLC - Waterfall, Agile, and more

UML Example: Sequence Diagram

Page 19: Overview of SDLC - Waterfall, Agile, and more

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.

Page 20: Overview of SDLC - Waterfall, Agile, and more

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.

Page 21: Overview of SDLC - Waterfall, Agile, and more

Going Agile With Scrum

Page 22: Overview of SDLC - Waterfall, Agile, and more

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."

Page 23: Overview of SDLC - Waterfall, Agile, and more

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.).

Page 24: Overview of SDLC - Waterfall, Agile, and more

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.

Page 25: Overview of SDLC - Waterfall, Agile, and more

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.)

Page 26: Overview of SDLC - Waterfall, Agile, and more

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)

Page 27: Overview of SDLC - Waterfall, Agile, and more

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.

Page 28: Overview of SDLC - Waterfall, Agile, and more

Other SDLCs To Research

Prototyping

Evolutionary Prototyping

Spiral Model

Chaos Model

V-Model

ICONIX Model

…and many more

Page 29: Overview of SDLC - Waterfall, Agile, and more

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

Page 30: Overview of SDLC - Waterfall, Agile, and more

References & Credits

“A Project Manager’s Survival Guide to Going Agile”, Michele Sliger

Wikipedia

Rapid Development, Steve McConnell

PMBOK

Dilbert

You-Tube