SlideShare a Scribd company logo
Simple Design
                 and
Development Strategy
            for agile teams



                  Duong Trong Tan
                   tandt@fpt.edu.vn
Objectives
• Issues of Planned   • Design for
  Design                Communication
• What is Simple      • Design for
  Design?               Collaboration
• Simplicity          • Refactoring
• Design for Code     • Simple Design in
                        practice


                                           2
Design is the key,
    Planned Design is not …
• Takeuchi & Nonaka: overlapping is better than sequential



                        Not efficient:
                        • Time consuming
                        • No backward
                        • No “better idea” on the go




               But how to do this kind of overlapping development?


                                                                     3
What is   Simple Design?
• Design grows as
  implementation
  – Complete design NOT
    required. Just enough, GO!
• Part of programming




                                 Evolve
  processes
• Program evolves the
  design changes
• Not “code and fix” tactics

                                          4
Simplicity
                Rationale behind Simple Design
• "Do the Simplest Thing that Could
  Possibly Work“
• "You Aren't Going to Need It“
• Invest in patterns
• Simple system
  1.   Runs all the Tests
  2.   Reveals all the intention
  3.   No duplication
  4.   Fewest number of classes or
       methods

                                             5
Design for
               Communication
• Draw design stuffs for discussion within your
  team
  – Just enough for clarifying solutions
• Only use diagrams that you can keep up to
  date without noticeable pain
• Keep diagrams visible
  – Post to wall or board
  – Encourage people to edit
• Pay attention to whether people are using
  them, if not throw them away.

                                                    6
Design for        Construction
• “Working software is the primary
  measure of progress”
• Your design will be realized into a working
  item, so:
  – Design should be code-able in team
     • separation, interfacing, collaboration between
       components
  – Design should be testable
  – “Architect must code!”
                                                        7
Refactoring
• For simpler design

• For maintenanceupgrade
  later

• MustHave task in your
  DoneDefinition checklist
                                Learn more: http://www.refactoring.com/
• Invest in patterns and best
  practices
                                            Image: http://www.testically.org
                                                                          8
Development Flow
                          $                                                                                                               $
Collaboration:


                           PO   DevTeam                                                                                                 PO


                                 UI Mocking    Design Draft          Code the
                                                                                                               Refactoring
Steps:   Requirement             •Customer     •Design              skeleton to       Coding in
                                                                                                                   and
                                                                                                                              Build the
           Analysis               discussion    Discussion            test the          team                                 increment
                                                                                                               Refinement
                                                                       design



                                                                                        Interface IDo{
                                                                                        //TODO …
                                                  A                  Interface IDo{     }
                                                                     //TODO …           Class A{
                                                              IDo    }                   method1(){
             As a super user,
                                                                     Class A{            //Mr. A codes here
Artifacts:
               I want to …
                                                                     //TODO …            }
                                                                     }
                                                   B                                    }
                                                                     Class B:IDo{       Class B:IDo{
                                                                     //TODO …            method1(){
                                                                     }                   //Mrs. B codes here
                                                                                         }
                                                                                        }
 Note: 1. TDD|BDD|AMDD can be used or not                                               Class C{
 2. Images are for illustration only                                                    }                                           9
How about Architecture?
• PO works with DevTeam to specify
  – Technologies used
  – Frameworks used
  – Initial Architecture
• Before Sprint 1
  – @User Story Writing workshop
  – @ Initial Requirement Envisioning and Initial
    Architecture Envisioning

                                                    10
Evolution of Models
Product                   Items burnt
Backlog

                                                 Items burnt
                           updated story




                                V1               V2           V1
com.myapp.Models                           IDo                     IDo
                           C1                            C1
        com.myapp.Views
                                M1               M2           M1
 com.myapp.Controllers

Initial Architecture        Model1                    Model 2

 Sprint 0                 Sprint 1                    Sprint 2

                                                                         11
“Continuous” Architecting
                                              Sprint #1: without layering
Presentation Tier   Application Layer   Business Layer   Data Access Layer   Data Tier




                                                                                    12
“Continuous” Architecting
                                        Sprint #2: refactoring to layers
Presentation Tier   Application Layer   Business Layer   Data Access Layer   Data Tier




                                                                                    13
“Continuous” Architecting
                                   Sprint #3: architecting “on the go”
Presentation Tier   Application Layer   Business Layer   Data Access Layer   Data Tier




                                                                                    14
Summary
• A good design is simple
• Keep It Simple, Stupid!
• Using incremental design for agile
  development
• Design evolves during development
  process
• Using refactoring to maintain simplicity
• There should be a vision for architecture
                                              15
References
• Agile Alliance, Agile Manifesto
  http://agilemanifesto.org
• H. Takeuchi & I. Nonaka, The new new
  Product development game, Harvard
  Business Review, 1986.
• M. Fowler, Is Design Dead?
 http://martinfowler.com/articles/designDead.html

• http://www.refactoring.com/

                                                    16

More Related Content

What's hot

Ultimate agilisttokyo
Ultimate agilisttokyoUltimate agilisttokyo
Ultimate agilisttokyo
Tsuyoshi Ushio
 
Agile india2012 po role_can you hear me now
Agile india2012  po role_can you hear me nowAgile india2012  po role_can you hear me now
Agile india2012 po role_can you hear me now
belkisvasquez
 
Beyond the Scrum - I
Beyond the Scrum - IBeyond the Scrum - I
Beyond the Scrum - IAdam Monago
 
Agile cambridge 27th September 2012
Agile cambridge 27th September 2012Agile cambridge 27th September 2012
Agile cambridge 27th September 2012
Carl Bruiners
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshopdrewz lin
 
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
강 민우
 
From Scrum To Kanban
From Scrum To KanbanFrom Scrum To Kanban
From Scrum To Kanban
Joakim Sundén
 
Rawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big pictureRawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big picture
Magneta AI
 
Case Study on Business Communication Training - by projectingIT
Case Study on Business Communication Training - by projectingITCase Study on Business Communication Training - by projectingIT
Case Study on Business Communication Training - by projectingIT
projectingIT
 
PMI-ACP Exam Study Flashcards sample
PMI-ACP Exam Study Flashcards samplePMI-ACP Exam Study Flashcards sample
PMI-ACP Exam Study Flashcards sample
Joseph Flahiff
 
Why software projects_need_heroes
Why software projects_need_heroesWhy software projects_need_heroes
Why software projects_need_heroes
Sundar Scorp
 
Showing the unseen @Scan-Agile 2012
Showing the unseen @Scan-Agile 2012Showing the unseen @Scan-Agile 2012
Showing the unseen @Scan-Agile 2012
Marko Taipale
 
Scrum managing through complexity
Scrum managing through complexityScrum managing through complexity
Scrum managing through complexity
Pierre E. NEIS
 
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
David Leip
 
How to be an agile programmer.
How to be an agile programmer.How to be an agile programmer.
How to be an agile programmer.
Tsuyoshi Ushio
 
The Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software DevelopmentThe Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software Development
allan kelly
 

What's hot (20)

Ultimate agilisttokyo
Ultimate agilisttokyoUltimate agilisttokyo
Ultimate agilisttokyo
 
Agile india2012 po role_can you hear me now
Agile india2012  po role_can you hear me nowAgile india2012  po role_can you hear me now
Agile india2012 po role_can you hear me now
 
Agile intro module 1
Agile intro   module 1Agile intro   module 1
Agile intro module 1
 
Beyond the Scrum - I
Beyond the Scrum - IBeyond the Scrum - I
Beyond the Scrum - I
 
Agile cambridge 27th September 2012
Agile cambridge 27th September 2012Agile cambridge 27th September 2012
Agile cambridge 27th September 2012
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshop
 
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices
 
From Scrum To Kanban
From Scrum To KanbanFrom Scrum To Kanban
From Scrum To Kanban
 
Rawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big pictureRawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big picture
 
Case Study on Business Communication Training - by projectingIT
Case Study on Business Communication Training - by projectingITCase Study on Business Communication Training - by projectingIT
Case Study on Business Communication Training - by projectingIT
 
PMI-ACP Exam Study Flashcards sample
PMI-ACP Exam Study Flashcards samplePMI-ACP Exam Study Flashcards sample
PMI-ACP Exam Study Flashcards sample
 
Why software projects_need_heroes
Why software projects_need_heroesWhy software projects_need_heroes
Why software projects_need_heroes
 
Showing the unseen @Scan-Agile 2012
Showing the unseen @Scan-Agile 2012Showing the unseen @Scan-Agile 2012
Showing the unseen @Scan-Agile 2012
 
Scrum managing through complexity
Scrum managing through complexityScrum managing through complexity
Scrum managing through complexity
 
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
 
How to be an agile programmer.
How to be an agile programmer.How to be an agile programmer.
How to be an agile programmer.
 
Agile.usability
Agile.usabilityAgile.usability
Agile.usability
 
Value stream mapping
Value stream mapping  Value stream mapping
Value stream mapping
 
The Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software DevelopmentThe Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software Development
 
What to expect while scrumming om band
What to expect while scrumming  om bandWhat to expect while scrumming  om band
What to expect while scrumming om band
 

Similar to Simple design

TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
Nacho Cougil
 
IBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdfIBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdf
ssusere9d9791
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
Nacho Cougil
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
Nacho Cougil
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
Nacho Cougil
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
ssusercaf6c1
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Nacho Cougil
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
SSW
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
Alexander Makarov
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
Xebia India
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
Clean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalkClean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalk
Halyna Halkina
 
プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタ
Tsuyoshi Ushio
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
bcoder
 
Friday final test
Friday final testFriday final test
Friday final test
bcoder
 
Dojo and Zend Framework
Dojo and Zend  FrameworkDojo and Zend  Framework
Dojo and Zend Framework
Kuldeep Singh
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutz
jazzman1980
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
Brett Child
 

Similar to Simple design (20)

TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
 
IBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdfIBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdf
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
 
ASE01.ppt
ASE01.pptASE01.ppt
ASE01.ppt
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
Clean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalkClean Architecture in Android. UPTech TechTalk
Clean Architecture in Android. UPTech TechTalk
 
プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタ
 
Mosp spring 2011
Mosp spring 2011Mosp spring 2011
Mosp spring 2011
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Dojo and Zend Framework
Dojo and Zend  FrameworkDojo and Zend  Framework
Dojo and Zend Framework
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutz
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 

More from DUONG Trong Tan

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile Coach
DUONG Trong Tan
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trình
DUONG Trong Tan
 
Luyện cách hỏi
Luyện cách hỏi Luyện cách hỏi
Luyện cách hỏi
DUONG Trong Tan
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning Organization
DUONG Trong Tan
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)
DUONG Trong Tan
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering education
DUONG Trong Tan
 
Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To Learn
DUONG Trong Tan
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
DUONG Trong Tan
 
Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?
DUONG Trong Tan
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)
DUONG Trong Tan
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dục
DUONG Trong Tan
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏi
DUONG Trong Tan
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)
DUONG Trong Tan
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agility
DUONG Trong Tan
 
Agile mindset
Agile mindsetAgile mindset
Agile mindset
DUONG Trong Tan
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile team
DUONG Trong Tan
 
Đường vào agile - 2013
Đường vào agile - 2013Đường vào agile - 2013
Đường vào agile - 2013
DUONG Trong Tan
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
DUONG Trong Tan
 
ScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - NhanScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - Nhan
DUONG Trong Tan
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
DUONG Trong Tan
 

More from DUONG Trong Tan (20)

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile Coach
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trình
 
Luyện cách hỏi
Luyện cách hỏi Luyện cách hỏi
Luyện cách hỏi
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning Organization
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering education
 
Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To Learn
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
 
Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?Agile có thể giúp chúng ta những gì?
Agile có thể giúp chúng ta những gì?
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dục
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏi
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agility
 
Agile mindset
Agile mindsetAgile mindset
Agile mindset
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile team
 
Đường vào agile - 2013
Đường vào agile - 2013Đường vào agile - 2013
Đường vào agile - 2013
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
 
ScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - NhanScrumDay Vietnam 2012 - Agile adoption - Nhan
ScrumDay Vietnam 2012 - Agile adoption - Nhan
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
 

Recently uploaded

A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 

Recently uploaded (20)

A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 

Simple design

  • 1. Simple Design and Development Strategy for agile teams Duong Trong Tan tandt@fpt.edu.vn
  • 2. Objectives • Issues of Planned • Design for Design Communication • What is Simple • Design for Design? Collaboration • Simplicity • Refactoring • Design for Code • Simple Design in practice 2
  • 3. Design is the key, Planned Design is not … • Takeuchi & Nonaka: overlapping is better than sequential Not efficient: • Time consuming • No backward • No “better idea” on the go But how to do this kind of overlapping development? 3
  • 4. What is Simple Design? • Design grows as implementation – Complete design NOT required. Just enough, GO! • Part of programming Evolve processes • Program evolves the design changes • Not “code and fix” tactics 4
  • 5. Simplicity Rationale behind Simple Design • "Do the Simplest Thing that Could Possibly Work“ • "You Aren't Going to Need It“ • Invest in patterns • Simple system 1. Runs all the Tests 2. Reveals all the intention 3. No duplication 4. Fewest number of classes or methods 5
  • 6. Design for Communication • Draw design stuffs for discussion within your team – Just enough for clarifying solutions • Only use diagrams that you can keep up to date without noticeable pain • Keep diagrams visible – Post to wall or board – Encourage people to edit • Pay attention to whether people are using them, if not throw them away. 6
  • 7. Design for Construction • “Working software is the primary measure of progress” • Your design will be realized into a working item, so: – Design should be code-able in team • separation, interfacing, collaboration between components – Design should be testable – “Architect must code!” 7
  • 8. Refactoring • For simpler design • For maintenanceupgrade later • MustHave task in your DoneDefinition checklist Learn more: http://www.refactoring.com/ • Invest in patterns and best practices Image: http://www.testically.org 8
  • 9. Development Flow $ $ Collaboration: PO DevTeam PO UI Mocking Design Draft Code the Refactoring Steps: Requirement •Customer •Design skeleton to Coding in and Build the Analysis discussion Discussion test the team increment Refinement design Interface IDo{ //TODO … A Interface IDo{ } //TODO … Class A{ IDo } method1(){ As a super user, Class A{ //Mr. A codes here Artifacts: I want to … //TODO … } } B } Class B:IDo{ Class B:IDo{ //TODO … method1(){ } //Mrs. B codes here } } Note: 1. TDD|BDD|AMDD can be used or not Class C{ 2. Images are for illustration only } 9
  • 10. How about Architecture? • PO works with DevTeam to specify – Technologies used – Frameworks used – Initial Architecture • Before Sprint 1 – @User Story Writing workshop – @ Initial Requirement Envisioning and Initial Architecture Envisioning 10
  • 11. Evolution of Models Product Items burnt Backlog Items burnt updated story V1 V2 V1 com.myapp.Models IDo IDo C1 C1 com.myapp.Views M1 M2 M1 com.myapp.Controllers Initial Architecture Model1 Model 2 Sprint 0 Sprint 1 Sprint 2 11
  • 12. “Continuous” Architecting Sprint #1: without layering Presentation Tier Application Layer Business Layer Data Access Layer Data Tier 12
  • 13. “Continuous” Architecting Sprint #2: refactoring to layers Presentation Tier Application Layer Business Layer Data Access Layer Data Tier 13
  • 14. “Continuous” Architecting Sprint #3: architecting “on the go” Presentation Tier Application Layer Business Layer Data Access Layer Data Tier 14
  • 15. Summary • A good design is simple • Keep It Simple, Stupid! • Using incremental design for agile development • Design evolves during development process • Using refactoring to maintain simplicity • There should be a vision for architecture 15
  • 16. References • Agile Alliance, Agile Manifesto http://agilemanifesto.org • H. Takeuchi & I. Nonaka, The new new Product development game, Harvard Business Review, 1986. • M. Fowler, Is Design Dead? http://martinfowler.com/articles/designDead.html • http://www.refactoring.com/ 16