audrys kažukauskas: big up front design is dead. long live emergent design
TRANSCRIPT
![Page 1: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/1.jpg)
Big Design Up Front is Dead.Long Live Emergent Design
Audrys Kažukauskas, UAB „Net Frequency“Team Lead Development
![Page 2: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/3.jpg)
BDUF serves well in
![Page 4: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/5.jpg)
dams collapse...
Teton Dam, USA, 1976
![Page 6: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/8.jpg)
So BDUF came into software development...
![Page 9: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/9.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/10.jpg)
Changes later are COSTLY and very HARD,BDUF says
![Page 11: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/11.jpg)
But... we develop software, don't we?
![Page 12: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/13.jpg)
"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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/14.jpg)
"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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/16.jpg)
![Page 17: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/17.jpg)
![Page 18: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/18.jpg)
Listen to your code, allow design to emerge
![Page 19: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/21.jpg)
Enabling Emergent Design
• Test Driven Development
• Continuous Integration
• Refactoring
![Page 22: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/22.jpg)
True TDD leads to emergent design
![Page 23: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/23.jpg)
How much design up-front is enough?
![Page 24: Audrys Kažukauskas: Big Up Front Design is dead. Long live Emergent Design](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596d8f61a28abb0098b482b/html5/thumbnails/24.jpg)
Audrys Kažukauskas, UAB „Net Frequency“Team Lead Development
Long live Emergent Design!