Agile Software Architecture how much is enough?

Similar documents
Agile Software Architecture how much is enough?

Agile Architecture how much is enough?

Aligning Architecture work with Agile Teams

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Architecting JIRA for the Enterprise. JIRA is a powerful product, both flexible and highly configurable. Miles Faulkner

Agile Projects 7. Agile Project Management 21

Architecture Planning Adding value to projects with Enterprise Architecture. Whitepaper. September By John Mayall

Introduction to Agile/Extreme Programming

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

More than Mobile Forms Halliburton s Implementation of an End to End Solution

Extreme Programming, an agile software development process

Software Engineering. M Umair.

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Software Processes 1

The CRM Pocket Book. What works & what doesn t & CX

Improving Employee Performance: How Technology Can Help

Software Engineering Lecture 5 Agile Software Development

Julian Ashworth Software Product Services Ltd.

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Copyright WorldAPP. All rights reserved US: +1(781) UK: +44(0) US TOLL FREE: +1(888) AU: +1(800)

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Agile Extremely Scaled

Secrets of Successful Modernization

Improving. the Interview Experience

Introduction to Agile Change Management

Marketing Strategy. Marketing Strategy

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

TickITplus Implementation Note

TEAMS THAT PLAN TOGETHER, PLAN BETTER BIG ROOM PLANNING IN THE ENTERPRISE

Agile versus? Architecture

Package and Bespoke Software Selection Process. Whitepaper

Impact of Agile on Change Management

Agenda. About Me. Goals. Collaborate, Build, Test, Deploy: Essential SCM Practices for Teams. Background. SCM Patterns Questions

A Business Agility e-book. Getting out of Excel Hell Power BI: a guide

Project Execution Approach

You should divide projects into phases

Architectural Practices and Challenges in Using Agile Software Development Approaches

4 Steps To Scaling Agile Across The Enterprise. The Guide To Agile At Scale

Improving Employee Performance How Technology Can Help

Jeff Scott, Senior Analyst 'Business Architecture' at FORRESTER

Putting our behaviours into practice

Agile leadership for change initiatives

Metalogix Replicator for SharePoint

Chapter 3 Agile Software Development. Part 1b

LEADER. Develop remarkable leaders who deliver amazing results

13. Team evolutionary developement

Advice on Conducting Agile Project Kickoff. Meetings

Agile delivery. Delight your organisation & increase job satisfaction

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

BETTER TOGETHER: BUILDING MORE EFFECTIVE CROSS-FUNCTIONAL TEAMS

Agile Engineering. for Managers. Introducing agile engineering principles for non-coders

SMART AUTOMATION: ALLOWING THE MODERN ENTERPRISE TO SURVIVE AND THRIVE

The Past, Present and Future of Software Architecture

Software Engineering Chap.3 - Agile Software Development

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Succeeding in the Journey to Agile and DevOps

GUIDEBOOK ADAPTIVE INSIGHTS

Topics to be covered. Commercial Levers Available to the PM to Manage Agile project delivery

Project Management. From web projects through to major change projects

Owning An Agile Project: PO Training Day 2

Introducing Enterprise Scrum for Business Agility: Scale Scrum from Single Teams to Whole Organizations

CERA s Programme Management Office

How to Engage Employees. A Guide for Employees, Supervisors, Managers, & Executives

Moving to the cloud: A guide to cloud business management technology

Agility and Architecture: Why and How They can Coexist?

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

Delivering Value Why Else Are You Doing The Project?

WHITE PAPER. Standardization in HP ALM Environments. Tuomas Leppilampi & Shir Goldberg.

The Benefits of Software Architecting

Developing a Business Case

THINKSAP THINK THINK. THE FUTURE OF SAP BW. by Andrew Rankin

Architecture. By Glib Kutepov Fraunhofer IESE

SETTING UP A PROJECT FOR SUCCESS

Leading Practices for Planning and Implementing a SharePoint Environment

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

Today s businesses are complex organizations that must be agile across highly competitive global Agile Software Framework (DevOps):

Designing a Structured Interview Process

TenStep Project Management Process Summary

Achieving Balance: The New Pivotal Points of Software Development

Exam Questions OG0-091

Unlocking Growth. A spark business guide

Chapter 4 Document Driven Approach for Agile Methodology

True Stories of Customer Service ROI: The real-world benefits of Zendesk

CA Project & Portfolio Management

Key Attributes and Responsibilities of a Test Manager

Information Dashboards:

Chapter 14 Current trends in system development

The future of outbound is Precision Dialling How to optimise your outbound contact activities

Why We Need Architects (and Architecture) on Agile Projects

Communicate and Collaborate with Visual Studio Team System 2008

Code Review: OutSystems Platform

WORKING WITH TEST DOCUMENTATION

Software Processes. With a focus on Agile/Scrum CPSC310 Software Engineering

Who will disrupt the disrupters?

Developing a Business Case

Project Management CTC-ITC 310 Fall 2018 Howard Rosenthal

Why Agile Business Suite Should Be Your Development Environment

A Business Oriented Architecture. Combining BPM and SOA for Competitive Advantage

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Transcription:

Agile Software Architecture how much is enough? Eoin Woods www.eoinwoods.info 1

About Me Software architect at BlackRock the world s largest asset manager (having acquired BGI) head of the Application Architecture group responsible for Apex, a new PM system Software architect for ~10 years Author of Software Systems Architecture book with Nick Rozanski IASA and BCS Fellow, IET member, CEng 2

3

Software Development Clans Enterprise Architects organisation wide technical decisions standards, policies, application landscapes Application Architects system wide technical decisions system design, patterns, cross-cutting concerns Development Teams all local design decisions with a system oh, and all the real work! 4

Defining Software Architecture A common definition The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements the externally visible qualities of those elements, and the relationships among them Len Bass, Paul Clements and Rick Kazman (SEI) Software Architecture in Practice, 2nd Edition 5

Defining Software Architecture An alternative definition The set of design decisions which, if made wrongly, causes your project to be cancelled Eoin Woods www.sei.cmu.edu/architecture/definitions.html 6

Essence of Software Architecture It is a design activity designing something (a system, a process, ) is key It requires focus on stakeholders & their concerns you serve a wide constituency you often need to clarify poorly defined problems your work allows identification of risks and opportunities It addresses system-wide concerns e.g. qualities rather than detailed functions It involves balancing competing concerns no right answer / least worst option It includes providing leadership 7

8

Case Study: Why mix architecture and agile? A small company needed to create a new generation of its product very quickly (to market in 9 months) The architecture needed 5 new servers from scratch The product must support Internet scale loads The previous product had a bad reputation for reliability, supportability, scalability and performance this had to be sorted out this time around Server engineers were 400 miles away from the rest of the engineering team (and the server architect) and they d just been acquired from another company! 9

Case Study: The Key Risks Identified Tight timescales meaning people just want to do it. No time for a lot of BUFD and risk mitigation No time to build libraries to force commonality Focus on some requirements (e.g. performance) could lead to others being forgotten (e.g. reliability) Delivery focus might lead to unsupportable product Geographical split made communication difficult People were new to the company 10

Case Study: Could Agile Help? The team was relatively small (~10 developers) The team had domain knowledge already all previously worked on similar systems prior to acquisition Range of experience all at least 18 months A product manager was in place product development s answer to the on site customer Senior management didn t mandate process But where did architecture fit? major refactoring after 1.0 wasn t an option needed to get system qualities right first time needed to move quickly as a coordinated unit 11

12

The Agile Manifesto Values More Value Working software Customer collaboration Individuals & interactions Responding to change Less Value Comprehensive documentation Contract negotiation Processes & tools Following a plan 13

Common Agile Practices Release frequently Iterative delivery Customer is available Simplest thing possible Specify via stories Integrate changes often Collective ownership Customer prioritises Collaborative design Small teams Test driven Refactor when needed Automate routine tasks Shared workspace 14

Architects and agile teams share many priorities Focus on the consumers of the systems Efficient delivery of valuable software Simplification and reduction of cost Quality & reliability of delivered software Supporting efficient change Effectiveness of communication 15

Reasons for Architecture and Agile Disagreement Big Up Front Design particularly when architects produce large documents Document centric vs. delivery centric Decision making vs. delivery responsibility Different views on processes and controls Differing time horizons for return on investment Architectural vs. customer (user) priorities more customers than just the end users Agile deliveries in larger change programmes 16

Aside: A Common Problem EA define strategic policies and standards...... which application architects find restrictive and so largely ignore as they create application architectures...... which are largely ignored by development teams who are under pressure to get this release of their system delivered on time 17

Aside: The Reason Scope & Breadth Enterprise Architects Development Teams Applica8on Architects Time Horizon 20091202 (c) Eoin Woods 2009 18

19

The Twelve Architect s Practices Allow for Change Deliver work incrementally Define clear design principles Capture design decisions & rationale Define components clearly Delivery over Documents Create good enough models & documents Define solutions for cross-cutting concerns Deliver working examples and prototypes People over Processes Have customers for all deliverables Share information simply Collaboration over Contracts Work in the teams Focus on architectural concerns Address real stakeholder concerns 20091202 (c) Eoin Woods 2009 20

Practices: Allow for Change Deliver work incrementally visible progress, early feedback, delivers something useful allow others to be involved in decisions Define clear design principles small set easily understood & accepted choose your battles (high value decisions) Capture decisions and rationale help people to understand why not just what and how helps a self-organising team to make good decisions Define components clearly allow confident use and extension responsibilities, interfaces, interactions 21

Practices: People over Processes and Tools Have customers for every deliverable make sure every deliverable has a purpose create each deliverable to be used by its customers Share information using simple tools Wiki, SharePoint, CMS based web sites, ensure easy access, comment and update avoid situations where a desktop client is needed 22

Practices: Collaboration over Contracts Work in the teams don t drop documents and walk away, talk to people develop things jointly development teams contain a lot of knowledge & experience Focus on architectural concerns avoid other people s areas of responsibility address quality properties and cross-cutting concerns these cross-cutting areas are often neglected otherwise Address real stakeholder concerns which stakeholder cares about each piece of your work? prioritise work 23

Aside: How to Work With Teams Solve their problems have proven solutions for integration, security, DR, immediate value to development teams Jointly develop your architectural principles ensure they are understood and agreed Collaborate rather than police review to share & improve, not to govern teams own their own work and should have pride in it Stay out of internal decisions unless invited or you need to avert catastrophe collaboration will mean that you have input anyway when invited, you know you ve succeeded 24

Practices: Value Delivery over Documents Create good enough models and documents but make sure they are good enough! Define solutions for cross-cutting concerns security / DR / HA / scalability / rarely solved well by the individual teams typically need to work across systems Deliver working examples and prototypes if not raw code, something else that works may be useful directly or for research purposes conventional code or a service or a spreadsheet or 25

Aside: Good Enough Modelling What is good enough? consider currency, precision, detail, completeness Experience suggests focus at the component/interface/connection level prefer models & databases to pictures be precise, even when abstract ensure models can be updated easily model with a purpose (audience and use) Areas to consider functional structure, deployment, information 26

27

Case Study Recap: A New Server Family Small firm needing to get product to market quickly second generation product crucial to its future Included a family of Internet scale servers a lot of implicit quality requirements good reliability, supportability, scalability and performance Geographically isolated development team distant from the core development team relying on mix of communication (travel, email, phone) Competent team, desperate to deliver something just what development managers are worried about 28

Case Study: A New Server Family Commissioning Service Cryptographic Services Authorisation Services Clients Internet System Servers System Databases 20091202 (c) Eoin Woods 2009 29

Case Study: Key Risks Tight timescales result in just to do it approach danger of fragmented approach => unsupportable product. No time for a lot of BUFD and risk mitigation couldn t build a framework to force commonality time for small prototypes rather than real PoCs Focusing on some requirements could cause others to be neglected e.g. performance vs. scalability or operational control Delivery focus could result in maintenance & operational difficulties Geographical split made communication difficult new to the company so no prior relationships to fall back on 30

Case Study: Applying the Practices (1) Define components clearly prevented overlap or confusion within the architecture helped to prevent scope creep Define clear design principles & Capture design decisions and rationale made sure the key decisions were agreed up front only bothered with principles that really mattered Good enough models and documents allowed a sharp focus on what was actually needed 31

Case Study: Applying the Practices (2) Define solutions for cross-cutting concerns made sure that security and HA in particular were standard saved a lot of redundant design time across the servers Deliver working examples and prototypes a demonstration server was created with the lead developer beyond this a production server was delivered! Have customers for all deliverables no time for anything that wasn t valuable deliverables that didn t get used / read / reviewed / modified were formally abandoned 32

Case Study: Applying the Practices (3) Work in the teams the server architect was embedded in the server team weekly travel between the sites, daily conference calls working on the production code as well as architecture tremendous help in building mutual respect and relationships very valuable feedback into the architectural design Address Real Stakeholder Concerns little time to delivery anything beyond the essentials every feature & quality was challenged for value the critical requirements dictated the delivery timeboxes 33

Case Study: Architecture Deliverables A server product line architecture 4+1 views to define the essential commonality with rationale defined standard technology defined cross cutting mechanisms and conventions defined a standard design pattern for the servers Development standards essentially the development view of the architecture defined i18n, logging, request handling, technology to use, test approach, exception handling, product configuration, Anything not here or in the architecture was up for grabs The implementation of one of the servers architect suffered his own decisions resulted in rapid refinement of the product line architecture! 34

Case Study: Functional View 35

Case Study: Deployment and Development Views 36

Case Study: Practices We Missed Deliver work incrementally the server software was developed incrementally the architect was largely done up front timescales meant backtracking was a problem some mitigation using the demonstration server Share information simply some use of Wikis, but mostly documents and word of mouth could have greatly improved this with easier timescales Focus on architectural concerns architect got bogged down in implementation detail sometimes lost focus on architectural concerns 37

Case Study: The Results Ultimately successful because product was delivered first version ready for beta testing within 9 months deployed at major mobile manufacturer test labs in this time judged to have met all of its significant requirements The architecture was definitely used the server developers all used it high degree of commonality achieved (without much reuse) parts of it were refined right through the development cycle Server team became much more integrated challenge of problem forced communication architecture provided context for decisions and discussions something to rally around when dealing with other teams architect working in the (c) team Eoin Woods had 2009 a lot of beneficial results 20091202 38

39

How do you know if you have enough? Start with the smallest amount possible Look for the risks that the project is facing particularly around long term concerns and quality properties Where can architectural design specifically help? avoid the problems where the team will help itself Apply architecture practices in a sympathetic way it s often as much about presentation as substance align with how the team is working If you can t find any more benefit which can be sold to the team and the customer, then you have enough 40

Signs that sufficient architecture is present Everyone can explain the overall system structure Engineers understand their modules responsibilities, interfaces, interactions impact of the module on the larger whole A credible argument can be made that you can provide all of the important qualities performance, scalability, security, administration,... There is general agreement on standards and norms common look to code, same tools in general use, reuse of patterns and software, documentation testing approach,... People know how things works and how we do things 41

Summary There is no need for agile vs. architecture conflicts both schools of thought want to achieve the same thing a little less zeal and a little more reflection on both sides The onus is generally on the architect to fit in though the team need to make it possible The problem is often presentation not substance this isn t about new practices, more tailoring proven ones There are practices that can address each part of the agile manifesto An architect should plug the gaps the development team is facing, not try to control everything 42

Questions and Comments? Eoin Woods www.eoinwoods.info contact@eoinwoods.info