Agile Development and Software Architecture: Understanding Scale and Risk



Similar documents
Moving Target Reference Implementation

A Systematic Method for Big Data Technology Selection

SOA for Healthcare: Promises and Pitfalls

Applying Software Quality Models to Software Security

Contracting Officer s Representative (COR) Interactive SharePoint Wiki

Course Title: Managing the Agile Product Development Life Cycle

Exploring the Interactions Between Network Data Analysis and Security Information/Event Management

10 Keys to Successful Scrum Adoption

Agile Systems Engineering: What is it and What Have We Learned?

Buyer Beware: How To Be a Better Consumer of Security Maturity Models

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

Introduction to Enterprise Agile Frameworks

2012 CyberSecurity Watch Survey

Building Resilient Systems: The Secure Software Development Lifecycle

Electricity Subsector Cybersecurity Capability Maturity Model (ES-C2M2) (Case Study) James Stevens Senior Member, Technical Staff - CERT Division

Architectural Implications of Cloud Computing

Trends and New Directions in Software Architecture

An Agile Project Management Model

2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology

Assurance Cases for Design Analysis of Complex System of Systems Software

5 Levels of Agile Planning: From Enterprise Product Vision to Team Stand-up

Software Security Engineering: A Guide for Project Managers

Copyright 2014 Carnegie Mellon University The Cyber Resilience Review is based on the Cyber Resilience Evaluation Method and the CERT Resilience

Roles: Scrum Master & Project Manager

Data Management Maturity (DMM) Model Update

Extending AADL for Security Design Assurance of the Internet of Things

Course Title: Planning and Managing Agile Projects

Software Assurance Competency Model

Guidelines for Developing a Product Line Production Plan

Applying Lean on Agile Scrum Development Methodology

Penetration Testing Tools

Risk Management Framework

Supply-Chain Risk Management Framework

Introduction to Agile Scrum

Jukka Mannila KEY PERFORFORMANCE INDICATORS IN AGILE SOFTWARE DEVELOPMENT

How To Use Elasticsearch

Hybrid-Agile Software Development

Mastering the Iteration: An Agile White Paper

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

The Yin and Yang of Enterprise Project Portfolio Management and Agile Software Development: Combining Creativity and Governance

Software Engineering

Agile Requirements Engineering + LESSONS LEARNED

Agile and Secure: Can We Be Both?

The Structure of a Software Development Team

SECC Agile Foundation Certificate Examination Handbook

On Software Architecture, Agile Development, Value and Cost

From Agile by Design. Full book available for purchase here.

Laboratório de Desenvolvimento de Software

Mature Agile with a twist of CMMI

SWX: The Software Extension to the PMBOK Guide for Project Management

Agile Contracts: Building Trust. Ewan Milne

MANAGED AGILE DEVELOPMENT MAKING AGILE WORK FOR YOUR BUSINESS. Chuck Cobb May 20, 2013

Basic Trends of Modern Software Development

Use service virtualization to remove testing bottlenecks

How To Ensure Security In A System

Manage projects effectively

Agile Software Development

Agile Scaling Model: Be as Agile as You Need to Be

Crossing the DevOps Chasm

Testing in the Enterprise using SCRUM Stretching Scrum to Accommodate Legacy & Large- Scale Testing Activity

The Agile Manifesto is based on 12 principles:

Key Benefits of Microsoft Visual Studio Team System

Service Measurement Index Framework Version 2.1

Hamid Faridani March 2011

SCALING AGILE. minutes

EXIN Agile Scrum Foundation

In today s acquisition environment,

WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF

Common Testing Problems: Pitfalls to Prevent and Mitigate

Managing Technical Debt in Software-Reliant Systems

Five best practices for deploying a successful service-oriented architecture

Cyber Intelligence Workforce

When User Experience Met Agile: A Case Study

Scrum in a Large Project Theory and Practice

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

ORACLE FUSION PROJECT MANAGEMENT CLOUD SERVICE

Getting Started with Service- Oriented Architecture (SOA) Terminology

VoIP in Flow A Beginning

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

GAO SOFTWARE DEVELOPMENT. Effective Practices and Federal Challenges in Applying Agile Methods

HP Application Lifecycle Management

Agile Metrics. It s Not All That Complicated

Essential Metrics for Agile Project Management

Bridging the Gap Between Acceptance Criteria and Definition of Done

An Application of an Iterative Approach to DoD Software Migration Planning

Transcription:

Agile Development and Software Architecture: Understanding Scale and Risk Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Robert L. Nord SSTC, April 2012 In collaboration with Felix Bachmann, Ipek Ozkaya, Rob Wojcik, Bill Wood

The challenge -1 Tradeoffs and their dependencies must be supported by both Agile software development and architecture practices. 2

The challenge -2 First, more capabilities underestimated re-architecting costs Then, more infrastructure need to monitor to gain insight into life-cycle efficiency First, more infrastructure Brown, N., Nord, R., and Ozkaya, I. Enabling Agility Through Architecture. Crosstalk 23, 6 (Nov./Dec. 2010): 12 17. Then, more capabilities neglected cost of delay to market 3

Increased visibility into delivery Focus on Priority Velocity 12 10 Focus on Integrated Value 8 6 4 2 0 12 10 8 1 2 3 4 5 6 7 Focus on Cost Velocity Use metrics to monitor & select development tasks 12 10 8 6 4 2 0 Velocity 1 2 3 4 5 6 7 6 4 2 0 1 2 3 4 5 6 7 4

Agenda Symptoms of failure Concepts of scale Root-cause analysis Architectural tactics that can help Typical problems and their resolution 5

Symptoms of failure Teams spend almost all of their time fixing defects, and new capability development is continuously slipping. Integration of products built by different teams reveals that incompatibilities cause many failure conditions and lead to significant out-of-cycle rework. Progress toward meeting milestones is unsatisfactory because unexpected rework causes cost overruns and project completion delays. 6

Today s Challenge Dealing with Large Organizational Changes Yesterday s Agile: Teams got better at building software Velocity Reliability Code quality Improvement Cohesion Today s Agile Moving the rest of the business Timelines have changed Collaboration is critical Priorities are larger than the development team Value needs clearer definition Grant, T. Navigate the Future of Agile and Lean. Forrester, January 10, 2012. 7

A closer look at scale: Scope Is the project in a new domain or technology? Does the project have new requirements such as standards compliance, system testing, and integration lab environments? Is there a need to align systems engineering and software development activities? 8

A closer look at scale: Team Are there multiple teams that need to interact, both internal and external to the organization? What are the dependencies between the work products of system and software engineers? Does the end-to-end delivery of features require resources from multiple teams? 9

A closer look at scale: Time Does the work require different schedule constraints for releases? How long is the work product expected to be in service? How important are sustainability and evolution? 10

Polling question How would you describe your development context? 1. We follow one Agile methodology as closely as we can 2. We use a mix of Agile methodologies 3. We mix Agile and non-agile techniques a. Waterfall and agile hybrid b. Architecture and agile principles 4. We do not apply any Agile method 11

Root-cause analysis Business Response to Change Quality Attributes Customer Collaboration Culture Team Support Architecture Productivity Measures Understand symptoms by investigating Agile software development and software architecture principles and practices in the context of the product and the project. 12

Root-cause analysis Response to change Dynamic environment and changing requirements Necessary technology and processes Impact of uncertainty Business Culture Response to Change Team Support Culture Skills and knowledge and clear responsibilities. Clear communication among teams High-level management support Quality Attributes Architecture Customer Collaboration Productivity Measures 13

Root-cause analysis Quality attributes Quality attribute requirements tied to business goals Quality attribute analysis Measurement environment Business Culture Response to Change Team Support Architecture Evidence that the architecture satisfies quality attribute requirements Architectural issues (e.g., technical debt) Timeline of critical decisions Quality Attributes Architecture Customer Collaboration Productivity Measures 14

Architectural tactics to consider Align feature and system decomposition. Create an architectural runway. Use matrix teams and architecture. 15

Support for Development Teams Over Time Desired state that enables agile teams to quickly deliver releases that stakeholders value. State of agile team support Desired State Current State Preparation Preservation Time 16

Align feature and system decomposition Tension between high-priority features (vertical decomposition) versus common reusable services (horizontal decomposition) 17

Align feature and system decomposition Dependencies between stories and architectural elements enables staged implementation of infrastructure in support of achieving stakeholder value. Dependencies among elements Low-dependency architectures are a critical enabler for scaling up Agile development. 1 Dependencies among stories High-value stories may require implementation of lower value stories as precursors. 2 Decouple teams and architecture to ensure parallel progress as the number of teams increases. 1. Poppendieck, M., and Poppendieck, T. Leading Lean Software Development. Addison-Wesley Professional, 2009. 2. Denne, M., and Cleland-Huang, J. Software by Numbers. Prentice Hall, 2003. 18

Create an architectural runway The architectural runway provides the degree of architectural stability to support the next n iterations of development. In a Scrum project environment, the architectural runway may be established during Sprint 0. Sprint 0 might have a longer duration than the rest of the sprints. The bigger the system, the longer the runway. Principles of Agile Architecture 1 1. Leffingwell, D. Agile Software Requirements, Addison-Wesley, 2011 19

Use matrix teams and architecture In its simplest instantiation, a Scrum development environment consists of: a single co-located, cross-functional team with skills, authority, and knowledge to specify requirements and architect, design, code, and test the system. As systems grow in size and complexity, the single-team model may no longer meet development demands. Strategies to scale up the overall agile development organization include: replication of team structure and responsibilities hybrids of vertical and horizontal team organization. 20

Use matrix teams and architecture Feature development in parallel Feature 1 Feature 1 Feature 1 21

Root-cause analysis: Typical problem 1 Symptom Scrum teams spend almost all of their time fixing defects, and new feature development is continuously slipping. Root-cause Inability to manage scope and time at scale Initial focus was general rather than product specific. Time pressure to deliver became the top priority. The team delivered an immature product. A plethora of variation parameters interact detrimentally. There are three different cycles: Customer release (annually, many variants) IV&V Testing (quarterly, 4 variants) Developmental (monthly, 1 variant) 22

Solution Stabilize the architecture. Add guidelines over time. Reduce the number of variant parameterizations. Make everyone play from the same sheet music. Postpone adding new features. Replan the release cycles and time boxes. Revisit the testing strategy and team assignments against variants. 23

Root-cause analysis: Typical problem 2 Symptom Integration of products built by different Scrum teams reveals that incompatibility defects cause many failure conditions and lead to significant out-of-cycle rework. Root-cause Inability to manage teams at scale Cross-team coordination is poor, even though there are many coordination points and much time spent. Different teams have different interpretations of interfaces. The product owner on each team does not see the big picture. A mismatch exists between the architecture and development. 24

Solution Stabilize to remove failures. Postpone adding new features. Identify and collapse common services across teams. Use an architectural runway. infrastructure allows incorporation of anticipated requirements without excessive refactoring. as important as requirements epics that drive the company s vision forward. Scrum Team A Temporary sprint team Scrum Team B Presentation Layer Domain Layer Data Access Layer Teams are assigned to different features, a temporary team prepares layers and frameworks for future teams. Feature API API Framework Common Services Framework Feature Common Services Framework Feature Common Services 25

Final thoughts No one tactic alone can take any project to success. Systematic root-cause analysis is essential for understanding risks arising in large-scale software development. There are different aspects of scale to be managed with different approaches, such as scope, team, and time. Embracing the principles of Agile software development and software architecture provide improved visibility of project status and better tactics for risk management. 26

References Ambler, S. The Agile Scaling Model (ASM): Adapting Agile Methods for Complex Environments. IBM developerworks, 2009. https://www.ibm.com/developerworks/mydeveloperworks/blogs/ambler/entry/agil e_scaling_model?lang=en Brown, N., Nord, R., and Ozkaya, I. Enabling Agility Through Architecture. Crosstalk 23, 6 (Nov./Dec. 2010): 12 17. Denne, M., and Cleland-Huang, J. Software by Numbers, Prentice Hall, 2003. Kruchten, P. What Color Is Your Backlog? Agile Vancouver talk, 2009. http://files.me.com/philippe.kruchten/vuldw4 Larman, C., and Voddle, B. Scaling Lean & Agile Development. Addison- Wesley, 2009. Leffingwell, D. Scaling Software Agility. Addison-Wesley, 2007. http://scalingsoftwareagility.wordpress.com/2008/09/09/enterprise-agility-the-bigpicture-10-the-system-team Poppendieck, M., and Poppendieck, T. Leading Lean Software Development. Addison-Wesley Professional, 2009. 27

Upcoming Bachmann, F., Nord, R., Ozkaya, I. Architectural Tactics to Support Rapid and Agile Stability, CrossTalk: The Journal of Defense Software Engineering, May/June 2012. IEEE Software Special Issue on Technical Debt, Nov/Dec 2012. Guest Editors: Philippe Kruchten, Robert Nord, and Ipek Ozkaya 28

Contact Information Robert L Nord Research, Technology, and System Solutions Program Architecture Practices Initiative Email: rn@sei.cmu.edu Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA 15213-2612 USA 29

Copyright 2012 Carnegie Mellon University. This material is based upon work supported by the Department of Defense under Contract No. FA8721-05-C- 0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN AS-IS BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution except as restricted below. Internal use:* Permission to reproduce this material and to prepare derivative works from this material for internal use is granted, provided the copyright and No Warranty statements are included with all reproductions and derivative works. External use:* This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other external and/or commercial use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. *These restrictions do not apply to U.S. government entities. 30