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
3

02/09/08

Basic Engineering Steps
► ► ► ► ► ► ► ► ► ►

Eliciting functional goals Requirements analysis Design Coding Unit testing System testing Regression analysis Integration Integration testing Maintenance
4

02/09/08

Waterfall Method
Requirements Design Coding Testing Integration Evaluation Maintenance
02/09/08 5

Waterfall Results
Requirements Design Coding Testing Integration Evaluation Maintenance
02/09/08

Reqs & Use cases Architecture System Verified System Integrated System Feedback Plan
6

Waterfall Resources
Business/Users Architect Programmers Testers Integrators Users IT Staff
02/09/08

Requirements Design Coding Testing Integration Evaluation Maintenance
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
11

02/09/08

What are we doing?
Manufacturing
► It

Development
► It

is possible to have complete specs that you can build to.

is rare that you know what you are 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. We can identify, define, and schedule all activities. Change is the exception, not the rule.

Up front estimation is problematic. Activities emerge from the process of development. Change is the rule. At all levels.

02/09/08

13

Why so unpredictable?
► Clients

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

don’t quite know what they

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 faceto-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 Development

02/09/08

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: ►XP:

Self directed teams.

Collaboration + quick and early coding
►EVO: ►UP
02/09/08

Short iterations over phases.

(RUP): Very short development cycles.

30

Features that define them
►The ►The ►The ►The ►The
02/09/08

practice. cycles. ceremony. work products. roles.
31

But they all come down to

People over process

02/09/08

32