Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software architecture in an agile environment


Published on

These are the slides used for the webinar "Agile Architecture", speaker: Raffaeel Garofalo. Available here:

Published in: Technology, Business
  • Be the first to comment

Software architecture in an agile environment

  1. 1. Agile ArchitectureSoftware Architecture for AgileSpeaker: Raffaele Garofalo (raffaeu)
  2. 2. AgendaIntroduction Software Architect Agile Architecture• Software architecture • The role • Workflow• Agile development • Collocation with Agile • Team structure• Agile + Architecture • Sample
  3. 3. Introduction What is What is Agile How they can Software Development live together?Architecture
  4. 4. Introduction What is SoftwareArchitecture
  5. 5. Software ArchitectureSoftware Architecture is aterminology introduced someyears ago in the softwaredevelopment community, whichidentifies a specific science or artof designing and delivery value.
  6. 6. “The art or science of designing and delivering valuable technology strategies” Select Engineering frameworks design and products Bridges the Business gap between Models business and What technology does it deliver?
  7. 7. Introduction What is Agile Development
  8. 8. Agile Development Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross- functional teams.
  9. 9. Agile is not only TDD. Agile … Agile Kanban Modeling SCRUM C.I. XP TDD
  11. 11. Introduction How they can live together?
  12. 12. Agile Architecture Software AgileAgile Architecture Architecture (MDD) (AMDD)
  13. 13. The Software Architect role The SoftwareThe Software Architect in Agile Golden Rules Architect environment
  14. 14. The Software Architect roleThe Software Architect
  15. 15. Software Architect Create architectural designs from a vision It looks at current and future design requirements Takes technical decisions such Platform and Frameworks based on his experience
  16. 16. The Software Architect role The Software Architect in Agile environment
  17. 17. Software Architect and Agile Provide information about frameworks and platforms Provide architectural knowledge during the modeling phase Interact with the business to communicate the changes and the features with the team Contribute to development and delivering
  18. 18. The Software Architect role Golden Rules
  19. 19. Golden rules of Agile Architect A Software Architect doesn’t have anything special, it is part of the team In Agile, every member of the team is an active part and so should be the Architect, an active part of a team Avoid Avory tower built during the design time without involving the developers in the design process. When everything is pre- designed and pre-decided, the frustration grows … A strict Software Architect will fit better in a big team/project because there will be more space for his ego than in a small team where every member should be able to do everything
  20. 20. Agile Architecture The Team Sample AgileWorkflow structure architecture
  21. 21. Agile ArchitectureWorkflow
  22. 22. Process Workflow Application overviewIdentify Architecture OBJECTIVES Key scenarios Key Hot Spots Candidate Solution
  23. 23. Process WorkflowIter: 0 Iter: nEnvision Modeling BrainstormEstimates TDD
  24. 24. Agile Architecture The Team structure
  25. 25. Team structure
  26. 26. Agile Architecture Sample Agile architecture
  27. 27. Sample process Let’s have a look at Visual Studio 2011 and a sample project created using SCRUM and Agile Architectures with the help of Typemock
  28. 28. Authentication Use case
  29. 29. Authentication components
  30. 30. Authentication User Interface
  31. 31. Q/A? Contacts • Blog: • Twitter: @raffaeu
  32. 32. Appendix A
  33. 33. Appendix B Security Scalability AvailabilityInteroperability Testability Usability