Architecture in an Agile World Don Mc Greal

  • Slides: 56
Download presentation
Architecture in an Agile World Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin.

Architecture in an Agile World Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin. com/in/donmcgreal © 2012 Improving Enterprises, Inc. www. synerzip. com

© 2012 Improving Enterprises, Inc. www. synerzip. com

© 2012 Improving Enterprises, Inc. www. synerzip. com

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns ©

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns © 2012 Improving Enterprises, Inc. www. synerzip. com

What is Software Architecture? © 2012 Improving Enterprises, Inc. 5 www. synerzip. com

What is Software Architecture? © 2012 Improving Enterprises, Inc. 5 www. synerzip. com

Business Goals What business goals could affect our Architectural decisions? © 2012 Improving Enterprises,

Business Goals What business goals could affect our Architectural decisions? © 2012 Improving Enterprises, Inc. 6 www. synerzip. com

Non-Functional Requirements Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility .

Non-Functional Requirements Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility . . . Supportability © 2012 Improving Enterprises, Inc. 7 www. synerzip. com

Does it compare to building this? House © 2012 Improving Enterprises, Inc. www. synerzip.

Does it compare to building this? House © 2012 Improving Enterprises, Inc. www. synerzip. com

… or this? ? ? ? © 2012 Improving Enterprises, Inc. www. synerzip. com

… or this? ? ? ? © 2012 Improving Enterprises, Inc. www. synerzip. com

Level of Complexity Simple Everything is known Complicated More is known than unknown Complex

Level of Complexity Simple Everything is known Complicated More is known than unknown Complex More is unknown than known Chaotic Very little is know Source: Ralph Stacey, University of Hertfordshire © 2012 Improving Enterprises, Inc. www. synerzip. com

Empirical vs Defined Processes Defined Empirical Predict the Future Initial information and assumptions are

Empirical vs Defined Processes Defined Empirical Predict the Future Initial information and assumptions are valid throughout the planning horizon. Adapt to the Future Frequent inspection/adaptation rather than predictive planning Examples: assembly line, construction, accounting, orchestra Examples: sales, marketing, creative writing, band Plan © 2012 Improving Enterprises, Inc. Do P D P D www. synerzip. com

Scrum Burn down • Business Case • Financing • Scope & Approach • Contracts

Scrum Burn down • Business Case • Financing • Scope & Approach • Contracts • Initial Release Plan • Assemble Team Daily Scrum < 15 minutes Sprint Product Owner establishes vision and prioritizes Product Backlog 1 to 4 weeks Sprint Review 1/2 day Sprint Planning 1 day • Acceptance Defined • Team commits • Tasks created Team (BA, QA, Dev, etc. ) creates and estimates Sprint Backlog (tasks) © 2012 Improving Enterprises, Inc. Sprint Retrospective 1/2 day Releasable Increment velocity Burn up www. synerzip. com

Big. DUF or Little. DUF? Monday Tuesday PB Creation PB Sizing Release Planning Sprint

Big. DUF or Little. DUF? Monday Tuesday PB Creation PB Sizing Release Planning Sprint 1 Wednesday Thursday Friday LDUF Sprint Planning PB Grooming Sprint Review Retrospective Sprint 2 © 2012 Improving Enterprises, Inc. www. synerzip. com

Non-Functional Requirements Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility .

Non-Functional Requirements Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility . . . Supportability © 2012 Improving Enterprises, Inc. 14 www. synerzip. com

Non-Functional Requirements Captured as: Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural

Non-Functional Requirements Captured as: Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility . . . • • • Acceptance Criteria Definition of Done Stories Supportability © 2012 Improving Enterprises, Inc. 15 www. synerzip. com

Sprint Capacity over Time © 2012 Improving Enterprises, Inc. www. synerzip. com

Sprint Capacity over Time © 2012 Improving Enterprises, Inc. www. synerzip. com

… but one is different Usability Security Scalability Performance Portability Cost Maintainability Legal Availability

… but one is different Usability Security Scalability Performance Portability Cost Maintainability Legal Availability Cultural Accessibility . . . Supportability © 2012 Improving Enterprises, Inc. www. synerzip. com

Most Important Architecture Goal? Maintainability © 2012 Improving Enterprises, Inc. www. synerzip. com

Most Important Architecture Goal? Maintainability © 2012 Improving Enterprises, Inc. www. synerzip. com

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns ©

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns © 2012 Improving Enterprises, Inc. www. synerzip. com

Technical Debt in an Unhealthy Team Time available for new feature development Time struggling

Technical Debt in an Unhealthy Team Time available for new feature development Time struggling with complexity and debt *From Scrum. org’s Professional Scrum Master certification course © 2012 Improving Enterprises, Inc. www. synerzip. com

Yuck. *From Scrum. org’s Professional Scrum Master certification course © 2012 Improving Enterprises, Inc.

Yuck. *From Scrum. org’s Professional Scrum Master certification course © 2012 Improving Enterprises, Inc. www. synerzip. com

How do you get out of debt? 1. Stop creating debt 2. Make a

How do you get out of debt? 1. Stop creating debt 2. Make a small payment each Sprint 3. Repeat from 2 *From Scrum. org’s Professional Scrum Master certification course © 2012 Improving Enterprises, Inc. www. synerzip. com

Daily Scrum < 15 minutes Definition of Done Sprint? Versioned In UAT Integrated others?

Daily Scrum < 15 minutes Definition of Done Sprint? Versioned In UAT Integrated others? Done Feature? Acceptance Tested On Test Server Performance Tested Product Owner others? establishes vision and prioritizes Product Backlog Sprint Planning 1 day • Acceptance Defined • Team commits • Tasks created Sprint 1 to 4 weeks Done Task? Done Release? Unit Tested Code Reviewed Checked-in others? Compliance Labeled Training others? Team (BA, QA, Dev, etc. ) creates and estimates Sprint Backlog (tasks) © 2012 Improving Enterprises, Inc. Sprint Review 1/2 day Sprint Retrospective 1/2 day Releasable Increment www. synerzip. com

Paying off Debt Feature Name Scheduled Active Task 1. 4 Task 1. 2 Feature

Paying off Debt Feature Name Scheduled Active Task 1. 4 Task 1. 2 Feature 2 Task 2. 3 Task 2. 1 Task 2. 2 Feature 3 Task 3. 1 Task 3. 2 Task 3. 4 Blocked Task 1. 3 Closed Task 1. 1 Feature 1 © 2012 Improving Enterprises, Inc. www. synerzip. com

Paying off Debt Feature Name Scheduled Task 1. 4 Active Task 1. 2 Blocked

Paying off Debt Feature Name Scheduled Task 1. 4 Active Task 1. 2 Blocked Task 1. 3 Feature 1 Feature 2 Closed Task 1. 1 Design Task 2. 3 Task 2. 1 Upgrade Task 2. 2 ENGINEERING Eng. Task 1 & Bug MAINTENANCE © 2012 Improving Enterprises, Inc. Eng. Task 2 Upgrade Task www. synerzip. com

Design Patterns != Good Design © 2012 Improving Enterprises, Inc. www. synerzip. com

Design Patterns != Good Design © 2012 Improving Enterprises, Inc. www. synerzip. com

Core Aspects of Good Design ✓ ✓ Low Coupling Good Design ✓ High Cohesion

Core Aspects of Good Design ✓ ✓ Low Coupling Good Design ✓ High Cohesion © 2012 Improving Enterprises, Inc. www. synerzip. com

Coupling vs. Cohesion © 2012 Improving Enterprises, Inc. www. synerzip. com

Coupling vs. Cohesion © 2012 Improving Enterprises, Inc. www. synerzip. com

Core Aspects of Bad Design X Bad Design © 2012 Improving Enterprises, Inc. •

Core Aspects of Bad Design X Bad Design © 2012 Improving Enterprises, Inc. • Duplication. • Ambiguity. • Complexity www. synerzip. com

Bad Smells The Bloaters Long Method, Large Class, Data Clumps The OO Abusers Type

Bad Smells The Bloaters Long Method, Large Class, Data Clumps The OO Abusers Type Attribute, State Attribute, Indecent Exposure The Dispensables Lazy Class, Dead Code, Data Class The Couplers Feature Envy, Message Chains, Middleman The Change Preventers Divergent Change, Shotgun Surgery, Non-localized Logic © 2012 Improving Enterprises, Inc. www. synerzip. com

How do we get there? ✓ X Bad Design © 2012 Improving Enterprises, Inc.

How do we get there? ✓ X Bad Design © 2012 Improving Enterprises, Inc. ➔ Good Design www. synerzip. com

Refactoring X Bad Design ➔ Bad Smells Refactoring © 2012 Improving Enterprises, Inc. to

Refactoring X Bad Design ➔ Bad Smells Refactoring © 2012 Improving Enterprises, Inc. to / towards / away from ✓ Good Design Patterns www. synerzip. com

Refactoring X Bad Design ➔ Bad Smells Refactoring to / towards / away from

Refactoring X Bad Design ➔ Bad Smells Refactoring to / towards / away from ✓ Good Design Patterns Encapsulate Field Extract Method Generalize Type Pull Up Push Down Rename Method. . . © 2012 Improving Enterprises, Inc. www. synerzip. com

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns ©

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns © 2012 Improving Enterprises, Inc. www. synerzip. com

Vertical Teams TEAM 1 TEAM 2 TEAM 3 TEAM 4 Presentation Business DB Persistence

Vertical Teams TEAM 1 TEAM 2 TEAM 3 TEAM 4 Presentation Business DB Persistence © 2012 Improving Enterprises, Inc. www. synerzip. com

Vertical Features TEAM 1 TEAM 2 TEAM 3 TEAM 4 Presentation Features Business Features

Vertical Features TEAM 1 TEAM 2 TEAM 3 TEAM 4 Presentation Features Business Features DB Persistence © 2012 Improving Enterprises, Inc. www. synerzip. com

Ideal Team Composition VP QA Manager Product Manager Architecture Manager DBA Manager QA Dev

Ideal Team Composition VP QA Manager Product Manager Architecture Manager DBA Manager QA Dev Architect DBA QA Dev Architect Team A Team B Dev © 2012 Improving Enterprises, Inc. www. synerzip. com

Realistic Team Composition VP QA Manager Product Manager Architecture Manager DBA Manager QA Dev

Realistic Team Composition VP QA Manager Product Manager Architecture Manager DBA Manager QA Dev Architect DBA QA Dev Architect What now? Team A Team B Dev © 2012 Improving Enterprises, Inc. www. synerzip. com

Specialists 1. IDEAL: Specialists are dedicated to a team and participate throughout the sprint.

Specialists 1. IDEAL: Specialists are dedicated to a team and participate throughout the sprint. 2. REALISTIC: Specialists service multiple teams and participate as needed. 3. WORST CASE: Specialists do not participate in a sprint, but someone on the team takes responsibility for working with them. © 2012 Improving Enterprises, Inc. www. synerzip. com

Architect Roles Enterprise Architect (policies & standards) Infrastructure Architect (systems & network design) Solution

Architect Roles Enterprise Architect (policies & standards) Infrastructure Architect (systems & network design) Solution Architect (advisory & governance) Application Architect (on teams) © 2012 Improving Enterprises, Inc. www. synerzip. com

Where to Plug In? Monday Tuesday PB Creation PB Sizing Release Planning Sprint 1

Where to Plug In? Monday Tuesday PB Creation PB Sizing Release Planning Sprint 1 Wednesday Thursday Friday LDUF Sprint Planning PB Grooming Sprint Review Retrospective Sprint 2 © 2012 Improving Enterprises, Inc. www. synerzip. com

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns ©

Agenda Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns © 2012 Improving Enterprises, Inc. www. synerzip. com

Logic in Wrong Layer Think about what would need to change in other layers

Logic in Wrong Layer Think about what would need to change in other layers if one was swapped out or modified. Presentation Controller Façade Business Integration S h a r e d Persistence © 2012 Improving Enterprises, Inc. www. synerzip. com

No Architectural Vision A single architecture vision should be well defined and communicated across

No Architectural Vision A single architecture vision should be well defined and communicated across the team and organization. The vision should map to business goals and objectives. All decisions should be made with this vision in mind. © 2012 Improving Enterprises, Inc. www. synerzip. com

Swiss Army Knife Do not try to anticipate every possible use of the system

Swiss Army Knife Do not try to anticipate every possible use of the system and over-design the interfaces - this will lead to needless complexity. Do the simplest thing that works, within the Architectural Vision. © 2012 Improving Enterprises, Inc. www. synerzip. com

Threading Do your homework! ✓ Typically not necessary ✓ Adds massive complexity ✓ Hard

Threading Do your homework! ✓ Typically not necessary ✓ Adds massive complexity ✓ Hard to maintain, test, and debug ✓ Rely on the application frameworks threads © 2012 Improving Enterprises, Inc. www. synerzip. com

Caching Do your homework! ✓ Do you even need a cache? ✓ Can you

Caching Do your homework! ✓ Do you even need a cache? ✓ Can you keep everything in memory? ✓ Rely on persistence framework’s caching © 2012 Improving Enterprises, Inc. www. synerzip. com

Ivory Tower Architect It is very hard to truly know the best solutions for

Ivory Tower Architect It is very hard to truly know the best solutions for design problems if you are not working (coding) on the project. It takes many iterations of a solution before it finally works - so you can’t suggest a solution then leave. © 2012 Improving Enterprises, Inc. www. synerzip. com

Custom Frameworks May seem like a good idea at first. But. . . Who

Custom Frameworks May seem like a good idea at first. But. . . Who will maintain it? Who will upgrade it when it’s depended upon libraries are upgraded? Java version? How long will your new hires need to learn it? Who will teach them? Look for an off-the-shelf solution first. You can hire/train people on it easier. It will be upgraded for you. © 2012 Improving Enterprises, Inc. www. synerzip. com

So, to sum up… © 2012 Improving Enterprises, Inc. www. synerzip. com

So, to sum up… © 2012 Improving Enterprises, Inc. www. synerzip. com

Emergent Architecture Agile architects build plans and foundations that embrace change Today’s technologies and

Emergent Architecture Agile architects build plans and foundations that embrace change Today’s technologies and enterprise frameworks give us this flexibility We just need to take advantage of them. © 2012 Improving Enterprises, Inc. www. synerzip. com

Questions? Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin. com/in/donmcgreal © 2012 Improving

Questions? Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin. com/in/donmcgreal © 2012 Improving Enterprises, Inc. www. synerzip. com

Thank You! Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin. com/in/donmcgreal © 2012

Thank You! Don Mc. Greal don. mcgreal@Improving. Enterprises. com @donmcgreal linkedin. com/in/donmcgreal © 2012 Improving Enterprises, Inc. www. synerzip. com

Questions? www. synerzip. com Hemant Elhence hemant@synerzip. com 469. 322. 0349 © 2012 Improving

Questions? www. synerzip. com Hemant Elhence hemant@synerzip. com 469. 322. 0349 © 2012 Improving Enterprises, Inc. www. synerzip. com

Synerzip in a Nut-shell 1. Software product development partner for small/midsized technology companies Exclusive

Synerzip in a Nut-shell 1. Software product development partner for small/midsized technology companies Exclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phase By definition, all Synerzip work is the IP of its respective clients Deep experience in full SDLC – design, dev, QA/testing, deployment 2. Dedicated team of high caliber software professionals for each client Seamlessly extends client’s local team, offering full transparency Stable teams with very low turn-over NOT just “staff augmentation”, but provide full mgmt support 3. Actually reduces risk of development/delivery Experienced team - uses appropriate level of engineering discipline Practices Agile development – responsive, yet disciplined 4. Reduces cost – dual-shore team, 50% cost advantage 5. Offers long term flexibility – allows (facilitates) taking offshore team captive – aka “BOT” option © 2012 Improving Enterprises, Inc. Confidential www. synerzip. com

Our Clients © 2012 Improving Enterprises, Inc. www. synerzip. com

Our Clients © 2012 Improving Enterprises, Inc. www. synerzip. com

Thanks! Call Us for a Free Consultation! www. synerzip. com Hemant Elhence hemant@synerzip. com

Thanks! Call Us for a Free Consultation! www. synerzip. com Hemant Elhence hemant@synerzip. com 469. 322. 0349 © 2012 Improving Enterprises, Inc. www. synerzip. com 60