Agile architecture & programming<br />Agile Mëtteg – 20 May 2010<br />
OBJECTIVES<br />Understand the implications of agile development on architecture, design and coding practices<br />Explain...
AGILE PARTNER SERVICES<br />Custom Software Development & Maintenance<br />Our core business to answer customer needs<br /...
WHO’S WHO<br />Who are we ?<br />Whatisourrole in ourorganization ?<br />What are our expectations fromthisseminar ?<br />...
AGENDA<br />Agenda<br />Can Enterprise Architecture be Agile ?<br />Misbelieves about architecture and agility<br />Why Up...
ARCHITECTURE ? WHICH ONE ?<br />Architecture: very contextual activity<br />Enterprisearchitecture<br />Software architect...
Can Enterprise Architecture be Agile ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />7<br />
CAN EA BE AGILE ?<br />Enterprise architecture:<br />Vision, principles, standards, roadmap<br />Enterprise architecture f...
CAN EA BE AGILE ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />9<br />Example: Zachman framework<br />
CAN EA BE AGILE ?<br />Example: Zachman framework<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />10<br />EA ...
Misbelieves about SOFTWARE architecture and agility<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />11<br />
MISBELIEVES ON ARCHITECTURE<br />You have to know precisely what to build before you can start building it.<br />Building ...
MISBELIEVES ON AGILITY<br />No architecture<br />Code and fix nightmare<br />Cowboy coding<br />Onlyworks forsmallprojects...
Why up front design doesn’talwayswork ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />14<br />
Traditional / Waterfallapproach<br />Design isdoneup front<br />BigDesign Up Front = BDUF<br />WHEN DO YOU DESIGN ?<br />2...
IS THAT THE RIGHT APPROACH ?<br />“In preparing for battle I have always found that plans are useless, but planningis indi...
WHAT DO AGILISTS SAY ?<br />“Design is there to enable you to keep changing the software easily in the long term.” <br />[...
WHAT DO AGILISTS SAY ?<br />“eXtreme Programming recognizes the importance of design decisions, but it strongly resists up...
BDUF NOT ALWAYS WORKING ?<br />You cannot foresee the future<br />Requirements change<br />Architecture documents are not ...
BDUF NOT ALWAYS WORKING ?<br />The « Architect » in hisIvoryTower<br />Architects far from teams<br />Developers kept out ...
BDUF NOT ALWAYS WORKING ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />21<br />Everheard about over design...
OVER DESIGN CONSEQUENCES<br />Lack of <br />Flexibility<br />Adaptability<br />Extensibility<br />20 May 2010<br />Agile M...
Emerging architectures and evolutionary design<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />23<br />
Waterfallapproach<br />Design isdoneup front<br />WHEN DO YOU DESIGN ?<br />20 May 2010<br />Agile Mëtteg - Agile architec...
Agile approach<br />Design ispart of the developmentprocess<br />WHEN DO YOU DESIGN ?<br />20 May 2010<br />Agile Mëtteg -...
20 May 2010<br />Agile Mëtteg - Agile architecture<br />26<br />How would you eat this cake ?<br />LAYERED CAKE<br />
ARCHITECTURE<br />LAYERED CAKE<br />Iteration n<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />27<br />Itera...
ABOUT EMERGENCE<br />Tobias Mayer<br />Emergence results from an empirical approach. It implies that all solutions to all ...
ABOUT EMERGENCE<br />Tobias Mayer<br />Emergence results from an empirical approach. It implies that all solutions to all ...
HOW DOES IT START ?<br />It all startedwith a vision<br />Initial architecture envisionning<br />20 May 2010<br />Agile Më...
AGILE MODELING<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />31<br />JIT modeling / design<br />Coding prac...
DESIGN DURING DEVELOPMENT<br />eXtremeProgramming<br />Iteration 0<br />"The first iteration must be a functioning skeleto...
DESIGN DURING DEVELOPMENT<br />Domain Driven Design (Eric Evans)<br />Just in time modeling<br />Ubiquitouslanguage (cf Sy...
VALUES OF AGILE ARCHITECTURE <br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />34<br />
Coding practices<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />35<br />
PRACTICES<br />Test DrivenDevelopment<br />BehaviorDrivenDevelopment<br />Refactoring<br />Continuousintegration<br />20 M...
TEST DRIVEN DEVELOPMENT (TDD)<br />Makeit breakwrite the test first<br />Makeitpasswrite the simplestimplementation<br />M...
TDD EXAMPLE<br />FizzBuzz Kata<br />Multiple of 3  Fizz<br />Multiple of 7  Buzz<br />Multiple of 3 and 7  FizzBuzz<br ...
BEHAVIOR DRIVEN DEVELOPMENT<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />39<br />User stories<br />
BDD : EXECUTABLE SPECIFICATIONS<br />Scenario : Accountis in credit<br />20 May 2010<br />Agile Mëtteg - Agile architectur...
REFACTORING<br />Refactoring <br />Change “How” not “What”<br />Pay your technical debt<br />Use of patterns<br />Refactor...
CONTINUOUS INTEGRATION<br />Your product builds at any time<br />Run the tests often<br />Ease deployment<br />20 May 2010...
So is design dead ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />43<br />
SO IS DESIGN DEAD ?<br />“Not by any means, but the nature of design has changed.” [Martin Fowler]<br />Keep code as clean...
EMPHASIZED COMMUNICATION<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />45<br />
AGILE ARCHITECTURE MANIFESTO ?<br />Business focus<br />Emergence<br />Simplicity<br />Extensibility<br />20 May 2010<br /...
QUESTIONS<br />47<br />Agile Mëtteg - Agile architecture<br />20 May 2010<br />
NEXT TRAININGS & CERTIFICATIONS<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />48<br />Complete calendar on:...
RESOURCES<br />Agile Partner: www.agilepartner.net<br />Agile Interest Group Luxembourg:www.aiglu.org<br />Agile Alliance:...
CONTACTS<br />Thank You<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />50<br />
Upcoming SlideShare
Loading in...5
×

Agile Mëtteg series - Session 3

2,486

Published on

Agile architecture & programming
20 May 2010

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,486
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • SCH
  • SCH
  • CPO &amp; PAG
  • CPO
  • CPO
  • PAG
  • PAG
  • PAG
  • PAG
  • CPO
  • CPO
  • CPO
  • PAG
  • PAG
  • PAG
  • PAG
  • PAG
  • CPO
  • CPO - Parler du « rôle » de cet architecte 
  • CPO
  • CPO
  • PAG
  • PAG
  • PAG
  • CPO
  • CPO
  • CPO
  • CPO
  • PAG
  • PAG
  • PAG
  • PAG
  • CPO
  • CPO
  • CPO
  • CPO
  • CPO
  • CPO
  • CPO
  • PAG
  • PAG – Enchainement « Is Design Dead ? »
  • PAG
  • PAG
  • PAG
  • CPO
  • CPO
  • Agile Mëtteg series - Session 3

    1. 1. Agile architecture & programming<br />Agile Mëtteg – 20 May 2010<br />
    2. 2. OBJECTIVES<br />Understand the implications of agile development on architecture, design and coding practices<br />Explain some misbelieves about software architecture and agility<br />20 May 2010<br />2<br />Agile Mëtteg – Agile architecture<br />
    3. 3. AGILE PARTNER SERVICES<br />Custom Software Development & Maintenance<br />Our core business to answer customer needs<br />IS services<br />Thanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…)<br />IS Solutions<br />Take benefit from commercial or Open Source platform to answer as quick as possible to specific needs<br />IS users services<br />We can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…)<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />3<br />IS users Services<br />1<br />4<br />Software Development & SoftwareMaintenance<br />2<br />ISSolutions<br />IS Services<br />Agility<br />Agility<br />3<br />1<br />2<br />3<br />4<br />Agility<br />
    4. 4. WHO’S WHO<br />Who are we ?<br />Whatisourrole in ourorganization ?<br />What are our expectations fromthisseminar ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />4<br />
    5. 5. AGENDA<br />Agenda<br />Can Enterprise Architecture be Agile ?<br />Misbelieves about architecture and agility<br />Why Up Front Design doesn’t always work ?<br />Emerging architectures and evolutionary design<br />Coding practices<br />So is Design dead ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />5<br />
    6. 6. ARCHITECTURE ? WHICH ONE ?<br />Architecture: very contextual activity<br />Enterprisearchitecture<br />Software architecture<br />Technical architecture<br />Etc.<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />6<br />
    7. 7. Can Enterprise Architecture be Agile ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />7<br />
    8. 8. CAN EA BE AGILE ?<br />Enterprise architecture:<br />Vision, principles, standards, roadmap<br />Enterprise architecture frameworks:<br />TOGAF 9, Zachman framework, …<br />Define extensively structure and models<br />Use them as guides, not as rules<br />Beware of over-documentation<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />8<br />
    9. 9. CAN EA BE AGILE ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />9<br />Example: Zachman framework<br />
    10. 10. CAN EA BE AGILE ?<br />Example: Zachman framework<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />10<br />EA Armory ;)<br />Choose one or two weapon(s)<br />Use Agile modeling (JIT Modeling)<br />Helps to structure<br />Leave no stone unturned<br />DO NOT TRY AND IMPLEMENT EVERYTHING!!!!<br />
    11. 11. Misbelieves about SOFTWARE architecture and agility<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />11<br />
    12. 12. MISBELIEVES ON ARCHITECTURE<br />You have to know precisely what to build before you can start building it.<br />Building software is like construction building<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />12<br />
    13. 13. MISBELIEVES ON AGILITY<br />No architecture<br />Code and fix nightmare<br />Cowboy coding<br />Onlyworks forsmallprojects<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />13<br />
    14. 14. Why up front design doesn’talwayswork ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />14<br />
    15. 15. Traditional / Waterfallapproach<br />Design isdoneup front<br />BigDesign Up Front = BDUF<br />WHEN DO YOU DESIGN ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />15<br />
    16. 16. IS THAT THE RIGHT APPROACH ?<br />“In preparing for battle I have always found that plans are useless, but planningis indispensable.” <br />[D.Eisenhower]<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />16<br />
    17. 17. WHAT DO AGILISTS SAY ?<br />“Design is there to enable you to keep changing the software easily in the long term.” <br />[Kent Beck]<br />Source : http://thedailywtf.com/Articles/The_Customer-Friendly_System.aspx<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />17<br />
    18. 18. WHAT DO AGILISTS SAY ?<br />“eXtreme Programming recognizes the importance of design decisions, but it strongly resists upfront design. Instead, it puts and admirable effort into communication and improving the projects ability to changecourse rapidly” <br />[Eric Evans, DDD]<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />18<br />
    19. 19. BDUF NOT ALWAYS WORKING ?<br />You cannot foresee the future<br />Requirements change<br />Architecture documents are not carved in stone<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />19<br />
    20. 20. BDUF NOT ALWAYS WORKING ?<br />The « Architect » in hisIvoryTower<br />Architects far from teams<br />Developers kept out of architecture definition<br />Frustrated teams ignore / bypass the model<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />20<br />
    21. 21. BDUF NOT ALWAYS WORKING ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />21<br />Everheard about over design ?<br />
    22. 22. OVER DESIGN CONSEQUENCES<br />Lack of <br />Flexibility<br />Adaptability<br />Extensibility<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />22<br />Effect on<br />Cost<br />ROI<br />Time to market<br />
    23. 23. Emerging architectures and evolutionary design<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />23<br />
    24. 24. Waterfallapproach<br />Design isdoneup front<br />WHEN DO YOU DESIGN ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />24<br />
    25. 25. Agile approach<br />Design ispart of the developmentprocess<br />WHEN DO YOU DESIGN ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />25<br />Iteration 1<br />Iteration 2<br />Iteration n<br />No specificorder<br />
    26. 26. 20 May 2010<br />Agile Mëtteg - Agile architecture<br />26<br />How would you eat this cake ?<br />LAYERED CAKE<br />
    27. 27. ARCHITECTURE<br />LAYERED CAKE<br />Iteration n<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />27<br />Iteration 3<br />Iteration 2<br />Iteration 1<br />
    28. 28. ABOUT EMERGENCE<br />Tobias Mayer<br />Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work. <br />They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design.<br />When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface. <br />Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution.<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />28<br />
    29. 29. ABOUT EMERGENCE<br />Tobias Mayer<br />Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work. <br />They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design.<br />When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface. <br />Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution.<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />29<br />
    30. 30. HOW DOES IT START ?<br />It all startedwith a vision<br />Initial architecture envisionning<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />30<br />
    31. 31. AGILE MODELING<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />31<br />JIT modeling / design<br />Coding practices<br />Envisioning<br />Source : http://www.agilemodeling.com/essays/initialArchitectureModeling.htm<br />
    32. 32. DESIGN DURING DEVELOPMENT<br />eXtremeProgramming<br />Iteration 0<br />"The first iteration must be a functioning skeleton of the system as a whole.“ [Kent Beck]<br />System metaphor<br />Followingiterations<br />Spike solution<br />Proof of concept<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />32<br />
    33. 33. DESIGN DURING DEVELOPMENT<br />Domain Driven Design (Eric Evans)<br />Just in time modeling<br />Ubiquitouslanguage (cf System Metaphor)<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />33<br />
    34. 34. VALUES OF AGILE ARCHITECTURE <br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />34<br />
    35. 35. Coding practices<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />35<br />
    36. 36. PRACTICES<br />Test DrivenDevelopment<br />BehaviorDrivenDevelopment<br />Refactoring<br />Continuousintegration<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />36<br />
    37. 37. TEST DRIVEN DEVELOPMENT (TDD)<br />Makeit breakwrite the test first<br />Makeitpasswrite the simplestimplementation<br />Makeit right refactorwithoutchanging the behavior<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />37<br />
    38. 38. TDD EXAMPLE<br />FizzBuzz Kata<br />Multiple of 3  Fizz<br />Multiple of 7  Buzz<br />Multiple of 3 and 7  FizzBuzz<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />38<br />Source : http://www.viddler.com/explore/Lostechies/videos/1/<br />
    39. 39. BEHAVIOR DRIVEN DEVELOPMENT<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />39<br />User stories<br />
    40. 40. BDD : EXECUTABLE SPECIFICATIONS<br />Scenario : Accountis in credit<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />40<br />
    41. 41. REFACTORING<br />Refactoring <br />Change “How” not “What”<br />Pay your technical debt<br />Use of patterns<br />Refactor towards patterns only when needed<br />Leverage ubiquitous language<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />41<br />
    42. 42. CONTINUOUS INTEGRATION<br />Your product builds at any time<br />Run the tests often<br />Ease deployment<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />42<br />
    43. 43. So is design dead ?<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />43<br />
    44. 44. SO IS DESIGN DEAD ?<br />“Not by any means, but the nature of design has changed.” [Martin Fowler]<br />Keep code as clean and simple as possible.<br />Refactorto confidently make improvements.<br />Use design patterns when needed.<br />Communicate the design using code, diagrams and above all conversation.<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />44<br />
    45. 45. EMPHASIZED COMMUNICATION<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />45<br />
    46. 46. AGILE ARCHITECTURE MANIFESTO ?<br />Business focus<br />Emergence<br />Simplicity<br />Extensibility<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />46<br />Technical perfection<br />Up front design<br />Excessive design<br />Omnipotence<br />
    47. 47. QUESTIONS<br />47<br />Agile Mëtteg - Agile architecture<br />20 May 2010<br />
    48. 48. NEXT TRAININGS & CERTIFICATIONS<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />48<br />Complete calendar on: http://www.agilepartner.net/training/training_calendar.html<br />
    49. 49. RESOURCES<br />Agile Partner: www.agilepartner.net<br />Agile Interest Group Luxembourg:www.aiglu.org<br />Agile Alliance: www.agilealliance.org<br />Scrum alliance: www.scrumalliance.org<br />Scrum.org<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />49<br />
    50. 50. CONTACTS<br />Thank You<br />20 May 2010<br />Agile Mëtteg - Agile architecture<br />50<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×