Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Agile Design
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Rick Liu
March 25, 2016
Technology
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Agile Design
Requirements change and softwares rot.
We can write code more resilient to changes.
Rick Liu
March 25, 2016
More Decks by Rick Liu
See All by Rick Liu
Functional Programming Concepts
rickliu
0
230
You Don't Need a JavaScript Framework
rickliu
0
130
Safe Navigation in Ruby 2.3
rickliu
0
71
Active Job in Rails 4.2
rickliu
0
63
Other Decks in Technology
See All in Technology
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
130
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
250
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
370
【FinOps】データドリブンな意思決定を目指して
z63d
3
590
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
160
NDIAS CTF 2026 問題解説会資料
bata_24
0
170
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
460
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
0
120
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
600
Baseline対応のDOMの型定義を作った
uhyo
2
640
水を運ぶ人としてのリーダーシップ
izumii19
4
1.2k
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
140
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
510
Designing for Performance
lara
611
70k
Leo the Paperboy
mayatellez
7
1.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
WCS-LA-2024
lcolladotor
0
670
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
580
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
250
Technical Leadership for Architectural Decision Making
baasie
3
430
WENDY [Excerpt]
tessaabrams
11
38k
Designing for humans not robots
tammielis
254
26k
Transcript
Agile Design
Softwares rot • Difficult to change • Fragile • Dependencies
• Needless Complexity • Needless Repetition • Difficult to understand
The COPY Program
Requirements Write a program that copies characters from the keyboard
to the printer.
The initial design Copy Read Keyboard Write Printer char char
Version 1 of Copy program 1 def copy 2 while
c = Keyboard.read do 3 Printer.write(c) 4 end 5 end
Change requirements The Copy program should also be able to
read from paper tape reader.
First modification of Copy program 1 pt_flag = false 2
3 def copy 4 while c = (pt_flag ? PaperTape.read : Keyboard.read) do 5 Printer.write(c) 6 end 7 end
Give ‘em an inch The customers would sometimes like the
Copy program to output to the paper tape punch.
Second modification of Copy program 1 pt_flag = false 2
punch_flag = false 3 4 def copy 5 while c = (pt_flag ? PaperTape.read : Keyboard.read) do 6 punch_flag ? Punch.write(c) : Printer.write(c) 7 end 8 end
Responding to change 1 class KeyboardReader 2 def read 3
Keyboard.read 4 end 5 end 6 7 8 def copy(reader=DefaultReader) 9 while c = reader.read do 10 Printer.write(c) 11 end 12 end
Agile Design A process, not an event Continuous improvement Principles,
patterns, practices Keeping the design clean
Books • Agile Software Development, Principles, Patterns, and Practices, by
Robert C. Martin • Working Effectively with Legacy Code, by Michael Feathers