audrys kažukauskas: big up front design is dead. long live emergent design

24
Big Design Up Front is Dead. Long Live Emergent Design Audrys Kažukauskas, UAB „Net Frequency“ Team Lead Development [email protected]

Upload: agile-lietuva

Post on 04-Jul-2015

1.156 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Big Design Up Front is Dead.Long Live Emergent Design

Audrys Kažukauskas, UAB „Net Frequency“Team Lead Development

[email protected]

Page 2: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Target

Name: Waterfall

Other names: Big Design Up Front

Food: programmers

Other info: Deadly

Page 3: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

BDUF serves well in

Page 4: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

despite this huge thinking up-front, still major mistakes are made

Page 5: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

dams collapse...

Teton Dam, USA, 1976

Page 6: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

spacecrafts fall down in pieces...

Mars Climate Orbiter, NASA, 1998

Page 7: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

microchips are shipped with major bugs...

Cougar Point chip, Intel, 2011

Page 8: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

So BDUF came into software development...

Page 9: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

• very hard to think through all the issues up-front

• genericness overhead, over-engineering

• changing requirements (master killer)

Problems with BDUF in software development

Page 10: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Changes later are COSTLY and very HARD,BDUF says

Page 11: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

But... we develop software, don't we?

Page 12: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Materials are cheap. Building is cheap. Changes are easy.

software is different

Page 13: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

"programming is not about building software; programming is about designing software"

{Jack W. Reeves}

Page 14: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

"In software development, the design document is a source code listing"

"the only way we validate a software design is by building it and testing it"

{Jack W. Reeves}

Page 15: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

If

• materials are cheap, building is cheap, changes are easy

• true design is done in a programming language

• design is completed only after it is built it and tested

then why waste time on paper designs?

Page 16: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design
Page 17: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design
Page 18: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Listen to your code, allow design to emerge

Page 19: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Philosophy of Emergent Design

• coding reveals new important information

• thus, defer decisions until the last responsible moment

Page 20: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Keep cost of change low

• choose simple solutions

• keep code base small and clean

Page 21: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Enabling Emergent Design

• Test Driven Development

• Continuous Integration

• Refactoring

Page 22: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

True TDD leads to emergent design

Page 23: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

How much design up-front is enough?

Page 24: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design

Audrys Kažukauskas, UAB „Net Frequency“Team Lead Development

[email protected]

Long live Emergent Design!