©2012 Improving Enterprises, Inc. Architecture in an Agile World Don linkedin.com/in/donmcgreal.

Slides:



Advertisements
Similar presentations
Iteration Planning.
Advertisements

Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
©2011 Improving Enterprises, Inc. Breaking down the Epic User Story.
ITEC 370 Lecture 24 Lifecycles. Review Questions? –Grades for Requirements/Design Doc F give prototype demonstration –Testing plan for your software Maintenance.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Michael Hall Three Beacons Managing Technical Debt Using Agile.
<<replace with Customer Logo>>
C O N F I D E N T I A L 4-May-15 1 Attendee Management - Being Agile Attendee Management.
Release Planning – Test Role and Responsibilities Emergence Tech Training / emergencetechtraining.com.
1 Agile Estimation V. Lee Henson CST. 2 Founded in Salt Lake City, UT Personally Trained, Coached, and or Mentored at 41 of the Fortune 100 Companies.
Walter Bodwell Planigle. An Introduction – Walter Bodwell 18 years in software First did agile at a startup in 1999 Went back to waterfall (after acquisition)
NAUG NAUG Knowledge Evening – th February 2007.
DESIGNING FOR MOBILE NIKHIL J DESHPANDE. Nikhil Deshpande Digital Strategy Director, GeorgiaGov
Confidential Lessons Learned in Agile Development Jim Smith PDX, Inc.
Agile development By Sam Chamberlain. First a bit of history..
GAI Proprietary Information
Presentation copyright © AccuRev, Inc. May be used with permission only. Contact for permission. Scrum &
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
APPLICATION DEVELOPMENT BY SYED ADNAN ALI.
Agile Metrics, Value, and Software
PopMedNet Software Development Life Cycle Chayim Herzig-Marx Harvard Pilgrim Health Care Institute Daniel Dee Lincoln Peak Partners.
Is Agile Any Better? Damon Poole 2009 Scrum and Kanban Like Chocolate and Peanut Butter Damon Poole – CTO, AccuRev.
> Blueprint Kickoff >. Introductions Customer Vision & Success Criteria Apigee Accelerator Overview Blueprint Schedule Roles & Responsibilities Communications.
Lean Startup and the Enterprise Applying Lessons from Entrepreneurs to Large Organizations Brian Bozzuto.
Gaining Support for a Sustainable Agile Transformation Dennis Stevens, VP Enterprise Engagements LeadingAgile November 12, 2013.
Adopting Agile for Enterprise Software Joe Bedell, Software Engineer Jason Breen, Software Engineer Peter Melko, Scrum Master June 15 th, 2015.
Elephants in the Agile Room. Reflections on 10 Years of Agility Todd Little Sr. Development Manager Landmark Graphics.
Responsive Web Design Nikhil J Deshpande Webinar – May 14, 2014 Sponsored by.
Analysis in Agile: It’s More Than Just User Stories Kent Webinar Series 2015.
Scrum’s Product Owner Role Jeff Patton Agile Product Design
Data Virtualization & Information As A Service (IaaS) By Anil Allewar Senior Solutions Architect - Synerzip 1.
Current Trends in Systems Develpment
Todd Little Sr. Development Manager Landmark Graphics Context Driven Agile Leadership One Size Doesn’t Fit All.
Slicing Pie EUREKA!. Win a signed copy: SlicingPie.com/synerzip
Valtivity Panning for User Story Gold.
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
Lifecycle of a User Story Webinar Series © Three Beacons LLC, 2015 Lifecycle of a User Story Mike Hall Three Beacons
Release and Iteration Planning September 13, 2008.
4/23/ :45 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
©2011 Improving Enterprises, Inc. Epics and Agile Planning.
Webinar Series 2015 ©Pollyanna Pixton Team Ownership: How do we help it happen? Presented by Pollyanna Pixton.
Webinar Series Sins of Scrum and other Agile Anti-Patterns Todd Little VP Product Development September Webinar.
Using Agile Approach with Fixed Budget Projects April 15, 2009.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
© 2015 Webinar Series 2015 what is the role of an architect in an agile organization? 1 The Agile Architect / November 2015.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
1 Copyright © 2015, Drilling Info, Inc. All right reserved. All brand names and trademarks are the properties of their respective companies. Webinar Series.
MSF 4.0 for Agile Software Development Ron Tolido Capgemini.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Introduction to Agile. Introduction Who is this guy?
CPSC 872 John D. McGregor Session 31 This is it..
#msdevcon Community Track IMPLEMENTATION OF SCRUM Bernardin Katić Insa Investment Software AG.
Managing Agile Software Development Teams Using Scrum AKA: Wrangling Developers for Fun and Profit!
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
The Scrum Framework Presented by Somnath Ghosh Scrum Practitioner 24 hours weeks.
TK2023 Object-Oriented Software Engineering
Process 4 Hours.
Scrum.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Agile Scrum Management
Impact of Agile Methodology on Software Architecture
Approaches to Systems Development
One Size Doesn’t Fit All
Real World Scrum with TFS & VSTS / Azure DevOps
Software Development In Agile
Executive Project Kickoff
Software Development In Agile
Presentation transcript:

©2012 Improving Enterprises, Inc. Architecture in an Agile World Don linkedin.com/in/donmcgreal

©2012 Improving Enterprises, Inc.

©2012 Improving Enterprises, Inc.

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

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

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

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

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

©2012 Improving Enterprises, Inc. … or this? ???

©2012 Improving Enterprises, Inc. 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. Empirical vs Defined Processes DefinedEmpirical 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 PlanDo PDPDPDPD

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

©2012 Improving Enterprises, Inc. BigDUF or LittleDUF? MondayTuesdayWednesdayThursdayFriday Sprint 1 Sprint 2 Sprint Planning LDUF PB Grooming PB Creation PB Sizing Release Planning PB Grooming Retrospective Sprint Review Retrospective Sprint Review

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

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

©2012 Improving Enterprises, Inc. Sprint Capacity over Time

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

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

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

©2012 Improving Enterprises, Inc. 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. Yuck. *From Scrum.org’s Professional Scrum Master certification course

©2012 Improving Enterprises, Inc. Stabilization: Plan vs. Reality Plan 9 Sprints, 3 RCs and then release. 800-person development organization. RC PPPDDD PPPDDD PPPDDD Release Actual 5+ month stabilization was required to release. Mostly due to performance defects. RC PPPDDD PPPDDD PPPDDD Release Stabilization *From Scrum.org’s Professional Scrum Master certification course

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

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

©2012 Improving Enterprises, Inc. Paying off Debt Feature Name ScheduledActiveBlockedClosed Feature 1 Task1.4Task1.2Task1.3Task1.1 Feature 2Task2.3Task2.1 Task2.2 Feature 3Task3.3Task3.1 Task3.2 Task3.4

©2012 Improving Enterprises, Inc. Paying off Debt Feature Name ScheduledActiveBlockedClosed Feature 1 Task1.4Task1.2Task1.3Task1.1 Design Task Feature 2Task2.3 Upgrade Task Task2.1 Task2.2 ENGINEERING & MAINTENANCE Eng. Task 1 Bug Eng. Task 2Upgrade Task

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

©2012 Improving Enterprises, Inc. What is a Pattern?

©2012 Improving Enterprises, Inc. Design Pattern Structure Pattern Name: A descriptive and unique name that helps in identifying and referring to the pattern. Intent: A description of the goal behind the pattern and the reason for using it. Motivation (Forces): A scenario consisting of a problem and a context in which this pattern can be used. Structure: A graphical representation of the pattern, such as Class diagrams and Interaction diagrams. Consequences: A description of the results, side effects, and trade offs caused by using the pattern. Implementation: A description of an implementation of the pattern; the solution part of the pattern. Sample Code: An illustration of how the pattern can be used in a programming language Known Uses: Examples of real usages of the pattern. Related Patterns: Other patterns that have some relationship with the pattern. Pattern Name: A descriptive and unique name that helps in identifying and referring to the pattern. Intent: A description of the goal behind the pattern and the reason for using it. Motivation (Forces): A scenario consisting of a problem and a context in which this pattern can be used. Structure: A graphical representation of the pattern, such as Class diagrams and Interaction diagrams. Consequences: A description of the results, side effects, and trade offs caused by using the pattern. Implementation: A description of an implementation of the pattern; the solution part of the pattern. Sample Code: An illustration of how the pattern can be used in a programming language Known Uses: Examples of real usages of the pattern. Related Patterns: Other patterns that have some relationship with the pattern.

©2012 Improving Enterprises, Inc. Core Aspects of Good Design ✓ GoodDesign ✓ L✓ Low Coupling ✓ H✓ High Cohesion

©2012 Improving Enterprises, Inc. Coupling vs. Cohesion

©2012 Improving Enterprises, Inc. Core Aspects of Bad Design. X BadDesign Duplication Ambiguity. Complexity

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

©2012 Improving Enterprises, Inc. How do we get there? ✓ GoodDesign ➔ X BadDesign

©2012 Improving Enterprises, Inc. Refactoring ✓ GoodDesign ➔ X BadDesign Refactoring to / towards / away from DesignPatternsBadSmells

©2012 Improving Enterprises, Inc. Refactoring ✓ GoodDesign ➔ X BadDesign Refactoring to / towards / away from DesignPatternsBadSmells Encapsulate Field Extract Method Generalize Type Pull Up Push Down Rename Method...

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

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

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

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

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

©2012 Improving Enterprises, Inc. 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. Architect Roles Enterprise Architect (policies & standards) Infrastructure Architect (systems & network design) Solution Architect (advisory & governance) Application Architect (on teams)

©2012 Improving Enterprises, Inc. Where to Plug In? MondayTuesdayWednesdayThursdayFriday Sprint 1 Sprint 2 Sprint Planning LDUF PB Grooming PB Creation PB Sizing Release Planning PB Grooming Retrospective Sprint Review Retrospective Sprint Review

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

©2012 Improving Enterprises, Inc. Logic in Wrong Layer Think about what would need to change in other layers if one was swapped out or modified. Business Presentation Persistence Controller Façade Integration SharedShared

©2012 Improving Enterprises, Inc. 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. 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. 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. 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. 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. 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. So, to sum up…

©2012 Improving Enterprises, Inc. 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. Questions? Don linkedin.com/in/donmcgreal

©2012 Improving Enterprises, Inc. Thank You! Don linkedin.com/in/donmcgreal

©2012 Improving Enterprises, Inc. Questions? Hemant Elhence

©2012 Improving Enterprises, Inc. Confidential Synerzip in a Nut-shell 1. Software product development partner for small/mid- sized 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. Our Clients

©2012 Improving Enterprises, Inc Call Us for a Free Consultation! Hemant Elhence Thanks!