+ All Categories
Home > Education > Swe 03 (st 2013) agile software engineering

Swe 03 (st 2013) agile software engineering

Date post: 30-Oct-2014
Category:
Upload: sarahflieger
View: 145 times
Download: 1 times
Share this document with a friend
Description:
agile software engineering
Popular Tags:
15

Click here to load reader

Transcript
Page 1: Swe 03 (st 2013)   agile software engineering

1

W. Weitershagen page 03-1

Software EngineeringFFMFH

Dr. Werner Weitershagen

Software Engineeringsummer term 2013

- Agile Software Engineering -

W. Weitershagen page 03-2

Software EngineeringFFMFH

Agile way of thinking (1)

Agile way of thinking

• ... sees a project within its individual environment that is

changing permanently: requirements and conditions

can be changing.

• ... wants very flexible projects. These projects should

adapt easily to economical and technical conditions that

could be changing every day. Contracts are usually

blocking adaptions that are necessary to be done.

Result: The customer gets a system he has ordered

initially, but gets not a final system he really needs.

Page 2: Swe 03 (st 2013)   agile software engineering

2

W. Weitershagen page 03-3

Software EngineeringFFMFH

Agile way of thinking (2)

Manifesto for agile software development

„We are uncovering better ways of developing software by

doing it and helping others do it.

Through this work we have come to value:

individuals and interactions over processes and tools

working software over comprehensive documentation

customer collaboration over contract negotiation

responding to change over following a plan

That is, while there is value in the items on the right,

we value the items on the left more.“

Que

lle: h

ttp://w

ww

.ag

ilem

an

ife

sto

.org

W. Weitershagen page 03-4

Software EngineeringFFMFH

Agile way of thinking (3)

Agile way of thinking

• ... criticises, that contract negotiation have negative

effects on projects: contracts constrain at all. But why?

� Conditions can be converting and changing. A high

effort has to be payed to succeed changes and to

modify a contract.

� Cantracts are often used as „legal weapons“

between contractor and customer. That means:

confrontation instead of cooperation.

• ... wants to achieve a good relationship between

contractor and customer with a common awareness of

„play to win“ instead of „play not to loose“

within a „win-win-situation“.

Page 3: Swe 03 (st 2013)   agile software engineering

3

W. Weitershagen page 03-5

Software EngineeringFFMFH

Agile way of thinking (4)

Usage of contracts

• Contracts should be used when both sides accept the

circumstance that there are aspects that can not

achieved by contract.

Both sides should know:

� A contract is not the only solid platform of a project.

� A contract can help to avoid misunderstandings

concerning tasks and conditions.

� A contract can not force a project to its successful end.

W. Weitershagen page 03-6

Software EngineeringFFMFH

Agile way of thinking (5)

Usage

• common target

• adaption of priority and project objectives

• transparency of riscs, that both sides should know and

accept each other

• search for practicable solution

• ability for making decisions permanently

• ability for taking riscs permanently

Page 4: Swe 03 (st 2013)   agile software engineering

4

W. Weitershagen page 03-7

Software EngineeringFFMFH

Agile way of thinking (6)

Critics:

� „Can agile projects run in contract-free space?“– „Are agile projects just a fiction?“

�Both sides also have some more interests that do notcoincide with the project‘s interests:so there can be interest conflicts / target conflictsExample: The contractor wants to reuse the system or parts of the system he developes within other projects. But the customer wants to keep the know-how and theright by himself. Possible solution: joint venture.

W. Weitershagen page 03-8

Software EngineeringFFMFH

Agile methods

Extreme Programming (XP)

• ... is a development method / engineering method,

• ... is customer-oriented,

• ... is test-driven,

• ... is evolutionary.

Scrum

• ... is a project management method,

• ... is iterative,

• ... is incremental,

• ... is very team-oriented.

Page 5: Swe 03 (st 2013)   agile software engineering

5

W. Weitershagen page 03-9

Software EngineeringFFMFH

Extreme Programming (XP) (1)

... describes an agile iterative method of softwareengineering with a lightweight methodology and lessdocumentation.

... is based on values like communication, simplicity, feedback, learning and quality.

... needs strict principles and strict disciplin.

... is made for small teams.

... achieves long-life software.

... allows reaction to cloudy and changing requirements.

... has no strict requirements catalogue. Customer canchange – modify or extend – his requirements and conditions.

W. Weitershagen page 03-10

Software EngineeringFFMFH

Extreme Programming (XP) (2)

The developing process runs in short cycles – usually

within one or two weeks:

requirements analysis �design � implementation � test

XP-projects are extremely customer-driven.

Page 6: Swe 03 (st 2013)   agile software engineering

6

W. Weitershagen page 03-11

Software EngineeringFFMFH

Extreme Programming (XP) – Principles (1)

User Stories:

Requirements are not defined by use cases (as RUP does),

but within user stories – a description of graphical user

interfaces (GUI), functionality and testing scenarios.

On-site Customer:

A competent and high experienced representative of the

customer supports the developer permanently.

W. Weitershagen page 03-12

Software EngineeringFFMFH

Extreme Programming (XP) – Principles (2)

Pair Programming:

Usually two programmers are building the same source

code together.

Advantages / Disadvantages:

☺ More errors can be detected and corrected immediately

during coding process.

☺ Know-how is being shared between programmers.

☺ Programmers can be used universally.

☺ The company is making itself less dependent on

experts.

☺ The progress is not disturbed by personal drop outs.

�Programming causes double cost.

Page 7: Swe 03 (st 2013)   agile software engineering

7

W. Weitershagen page 03-13

Software EngineeringFFMFH

Extreme Programming (XP) – Principles (3)

Testing:

Each mudule needs its individual unit test that should be

run automatically.

Simple Design:

No unnecessary features should be implemented.

Small Releases:

Many iterations should be done with executable results that

can be evaluated by the customer.

Refactoring:

Existing parts and structures should be changed without

changing basic functionality. Source code should be

restructured as soon as possible (if required).

W. Weitershagen page 03-14

Software EngineeringFFMFH

Extreme Programming (XP) – Principles (4)

Continuous Integration:

Source code should be integrated and consolidated

permanently. Problems of missing or wrong compatibility

can be detected and corrected very early.

Collective Ownership:

Source code belongs to the whole team and not to a single

programmer. Every programmer – every team member – is

responsible for the source code.

Teams should rotate!

Coding Standards:

Coding standards – notation standards, style guides etc. –

are necessary rules.

Page 8: Swe 03 (st 2013)   agile software engineering

8

W. Weitershagen page 03-15

Software EngineeringFFMFH

Extreme Programming (XP)

Links:

• http://www.extremeprogramming.org

• http://www.xprogramming.com

W. Weitershagen page 03-16

Software EngineeringFFMFH

Scrum

... can not translated directly. Scrumdescribes a situation within American rugbymatch.

... tries to transfer the sportsmanship (Sportgeist) towardsa software developing team.

... is a lightweight management method.

... defines a sequence of 30 day iterations called sprintswith nearly constant increments.

... is made for small self-organized teams.

... cares a human component.

Page 9: Swe 03 (st 2013)   agile software engineering

9

W. Weitershagen page 03-17

Software EngineeringFFMFH

Scrum

Qu

elle

: S

ch

weitze

r, R

. (2

00

3),

S.

6

new functionality

(daily)

(1 month)

W. Weitershagen page 03-18

Software EngineeringFFMFH

Scrum – Sprints

Sprint

• ... is a 30-day-iteration.

• ... is defined within a Sprint Planing Meeting by all team members.

• ... is based upon contents and priorities described bySprint Backlogs.

• ... is evaluated by management and customer within a final Sprint Review Meeting.

• ... is permanently controled and adjusted within Daily Scrum Meetinggs – 15 minutes each day.

• ... achieves a runable product version.

Page 10: Swe 03 (st 2013)   agile software engineering

10

W. Weitershagen page 03-19

Software EngineeringFFMFH

Scrum – Team

Scrum Team

• ... contains ca. 7 persons.

• ... is totally self-organized and acts autonomic.

• ... is committed to achieve the Sprint Goal.

• ... is directed by the Scrum Master.

• ... is not separated into different roles.

• ... defines the sprint goal and all tasks within the initial

Sprint Planning Meeting (about 4 - 16 hours each

task)

W. Weitershagen page 03-20

Software EngineeringFFMFH

Scrum – Master (1)

Scrum Master

• ... is central person. He is responsible for the wholeteam. He is the representative of the whole team.

• ... is responsible for the enforcement of scrum rules.

• ... is tracking the progress within daily scrummeetings.

• ... is making decisions immediately within dailyscrum meetings.

• ... is supporting the team to define sprint goal and sprint backlog.

• ... is solving each kind of problem mentioned byteam members.

Page 11: Swe 03 (st 2013)   agile software engineering

11

W. Weitershagen page 03-21

Software EngineeringFFMFH

Scrum – Master (2)

Scrum Master

• ... acts as an „interface“: He keeps external influences

away from the team.

• ... is an „interface“ between management and team.

• ... supports the management building up the scrum

team.

W. Weitershagen page 03-22

Software EngineeringFFMFH

Scrum – Backlogs (1)

Backlog

• ... is a priority-ordered list of features, functionality,

extensions, error corrections that should be integrated

continuously.

• ... should be an every-time open book to all team

members. There they have the chance to add

requirements.

• ... is used in diffrent types: Product Backlogs, Core

Backlogs, Sprint Backlogs, Product Line Backlogs.

Page 12: Swe 03 (st 2013)   agile software engineering

12

W. Weitershagen page 03-23

Software EngineeringFFMFH

Scrum – Backlogs (2)

Product Backlog

• ... keeps all requirements and product specific tasks.

• ... is in the customers responsibility.

Core Backlog

• ... describes the requirements concerning the core or

architecture.

W. Weitershagen page 03-24

Software EngineeringFFMFH

Scrum – Meetings (1)

Sprint Planning Meeting

• ... is the initial meeting of each sprint.

• ... defines the Sprint Goal.

• ... defines the volume of the next sprint.

• ... defines all tasks to be done within the sprint (4 - 16

hours each sprint).

• ... modifies the Sprint Backlog if required.

Page 13: Swe 03 (st 2013)   agile software engineering

13

W. Weitershagen page 03-25

Software EngineeringFFMFH

Scrum – Meetings (2)

Daily Scrum Meeting

• ... lasts 15 - 20 minutes. – No discussions wanted!

• ... is directed by the Scrum Master.

• ... improves the communication within the team.

• ... represents all other kind of meetings.

• ... is asking each programmer:

What have you done and finished after the last meeting?

What are you going to do and finish until the followingmeeting?

Is anything disturbing your work?

• ... puts themes concerning details into specialmeetings if required.

W. Weitershagen page 03-26

Software EngineeringFFMFH

Scrum – Meetings (3)

Sprint Review Meeting

• ... is the end of sprint.

• ... is the presentation of the product result (= build)

by the whole team.

• ... evaluates the sprint execution (problems etc.).l

• ... is the important platform for decisions made by

management and customer concerning release, next

steps, stop, cancel etc.

• ... is for adaption the Product Backlogs.

• ... can be combined with the following Sprint Planning

Meeting.

Page 14: Swe 03 (st 2013)   agile software engineering

14

W. Weitershagen page 03-27

Software EngineeringFFMFH

Scrum

Qu

elle

: S

ch

weitze

r, R

. (2

00

3),

S.

6

new functionality

(daily)

(1 month)

W. Weitershagen page 03-28

Software EngineeringFFMFH

Scrum

What else?

• If there is more than one scrum team, there should be

a kind of central coordination (Scrum of Scrum).

• Scrum and Extreme Programming (XP) are no rivals,

they can be combined:

Que

lle:

Sch

we

itze

r, R

. (2

00

3),

S. 1

3

Page 15: Swe 03 (st 2013)   agile software engineering

15

W. Weitershagen page 03-29

Software EngineeringFFMFH

Scrum

Links:

• http://www.mountaingoatsoftware.com/scrum/scrumtea

m

• Home Of Scrum: http://www.controlchaos.com


Recommended