You are on page 1of 32

Software Engineering

02/09/08 Basic Engineering Methods 1


Why do we care?
► 60% of Software Projects overrun their
schedule and initial resource requirements.
► 40% of all Projects fail to meet their initial
objectives and requirements.
► 70% of people will work on a failed project in
two years.

02/09/08 2
Basic Engineering Steps
► Eliciting functional goals
► Requirements analysis
► Design
► Coding
► Unit testing
► System testing
► Regression analysis
► Integration
► Integration testing
► Maintenance

02/09/08 3
Basic Engineering Steps
► Eliciting functional goals
► Requirements analysis
► Design
► Coding
► Unit testing
► System testing
► Regression analysis
► Integration
► Integration testing
► Maintenance

02/09/08 4
Waterfall Method
Requirements

Design

Coding

Testing

Integration

Evaluation

Maintenance
02/09/08 5
Waterfall Results
Requirements Reqs & Use cases

Design Architecture

Coding System

Testing Verified System

Integration Integrated System

Evaluation Feedback

Maintenance Plan
02/09/08 6
Waterfall Resources
Business/Users Requirements

Architect Design

Programmers Coding

Testers Testing

Integrators Integration

Users Evaluation

IT Staff Maintenance
02/09/08 7
The Problem

Communication flows in one direction…


down towards product

Ford story
02/09/08 8
Advantages
► You always know what you are doing
► Forces discipline
► Each step is clear and can be signed
off on
► Project timeline can be managed on a
macro level
► Looks like good business

02/09/08 9
Disadvantages
► Limited communication
► No user feedback
► Resistant to change
► Project can not be managed on a
micro scale
► Limited predictability
► Has nothing to do with good business

02/09/08 10
Basic Engineering Processes
► Eliciting functional goals
► Requirements analysis
► Design
► Coding
► Unit testing
► System testing
► Regression analysis
► Integration
► Integration testing
► Maintenance

02/09/08 11
What are we doing?
Manufacturing Development

► It is possible to have ► It is rare that you


complete specs that know what you are
you can build to. building before you
have to start building
it.

A factory floor versus a new house

02/09/08 12
What are we doing?
Manufacturing Development

► We can estimate costs ► Up front estimation is


up front. problematic.
► We can identify, define, ► Activities emerge from
and schedule all the process of
activities. development.
► Change is the ► Change is the rule. At
exception, not the rule. all levels.

02/09/08 13
Why so unpredictable?
► Clients don’t quite know what they
want.
► They can not express the things they
do know.
► Details are not yet revealed.
► Details are overwhelming.
► Clients change their minds.
► Clients find their minds.
► External forces change requirements.
02/09/08 14
Change
► All of these factors lead to the need to
embrace change.

Embracing change is at the heart of


agile methods.

02/09/08 15
Change
► All of these factors lead to the need to
embrace change.

Embracing change is at the heart of


agile methods.

Iterative and Incremental Development


are how agile methods work.
02/09/08 16
The Agile Manifesto

Individuals and interactions over processes and tools.

Working software over comprehensive


documentation.

Customer collaboration over contract negotiation.

Responding to change over following a plan.

02/09/08 17
The Agile Principles
1: Our highest priority is to satisfy the
customer through early and continuous
delivery of valuable software.

What does a customer want?

02/09/08 18
The Agile Principles
2: Welcome changing requirements,
even late in development. Agile
processes must harness change for the
customer's competitive advantage.

What is the difference between allowing


and embracing change?

02/09/08 19
The Agile Principles
3: Deliver working software frequently,
from a couple of weeks to a couple of
months, with a preference for the
shorter timescale.

What is the difference between


delivering
and releasing code?
02/09/08 20
The Agile Principles
4: Business people and developers work
together daily throughout the project.

How does this change business?


How does this change the developers?

The legacy of timesharing


02/09/08 21
The Agile Principles
5: Build projects around motivated
individuals, give them the environment
and support they need and trust them to
get the job done.

What is the role of the manager?

Analogy to producers
02/09/08 22
The Agile Principles
6: The most efficient and effective
method of conveying information with
and within a development team is face-
to-face conversation.

Understanding trumps documents.

02/09/08 23
The Agile Principles
7: Working software is the primary
measure of progress.

If a project is going to fail, find out early.


Specs can’t fail. Documentation can’t
fail. Architectures can’t fail.

02/09/08 24
The Agile Principles
8: Agile processes promote sustainable
development. Everyone should be able
to maintain a constant pace indefinitely.

Long hours don't actually lead to greater


productivity. They lead to greater error,
wasted time and bad decisions.

The legacy of timesharing


02/09/08 25
The Agile Principles
9: Continuous attention to technical
excellence and good design enhances
agility.

Nimble doesn’t equal sloppy.


Agile doesn’t equal lax.

~Rapid Application
02/09/08 Development 26
The Agile Principles
10: Simplicity—the art of maximizing the
amount of work not done—is essential.

If you focus on the task… then that’s


all you have to do.
If you focus on the solution…

Crossen’s Law
02/09/08 27
The Agile Principles
11: The best architectures,
requirements and designs emerge from
self-organizing teams.

Form follows failure.

Ford project “task manager”


02/09/08 28
The Agile Principles
12: At regular intervals, the team
reflects on how to become more
effective, then tunes and adjusts its
behavior accordingly.

Remember, people over process.

02/09/08 29
Agile Methods
►Scrum: Self directed teams.

►XP: Collaboration + quick and early


coding

►EVO: Short iterations over phases.

►UP (RUP): Very short development


cycles.
02/09/08 30
Features that define them
►The practice.

►The cycles.

►The ceremony.

►The work products.

►The roles.
02/09/08 31
But they all come down to

People over process

02/09/08 32

You might also like