Anatomy of Excellence Development

Similar documents
Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Software Engineering

Chapter 6. Software Quality Management & Estimation

Software Processes 1

3. Comparison of Above Described SDLC Models

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

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

Capability Maturity Model the most extensively used model in the software establishments

9. Project Quality Management- Introduction

Watson Internet of Things. Agile Development Why requirements matter

Achieving Application Readiness Maturity The key to accelerated service delivery and faster adoption of new application technologies

SWE 211 Software Processes

Fundamentals of Quality

Business Analysis Essentials

Project Management CTC-ITC 310 Spring 2018 Howard Rosenthal

Moving to a Service-Oriented Architecture

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

A SOA Maturity Model

Continuous Quality Assurance

Measuring and Improving Process Capabilities Best Practices

Joined-up Requirements: Business Goals to System Tests

Copyright Software Engineering Competence Center

Agile Projects 7. Agile Project Management 21

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Quantifying the Value of Investments in Micro Focus Quality Center Solutions

QUALITY MANAGEMENT FOR MOBILE COMMUNICATION SOFTWARE

Validation of NORM (Needs Oriented Framework for Producing Requirements Decision Material) Framework in Industry

Why Projects Fail and What Executives Can Do About It. The Truth About Requirements Definition and Management

0 Introduction Test strategy A Test Strategy for single high-level test B Combined testing strategy for high-level tests...

How mature is my test organization: STDM, an assessment tool

TEN TIPS FOR A SUCCESSFUL INFOR IMPLEMENTATION

ORACLE SOA GOVERNANCE SOLUTION

Software development processes: from the waterfall to the Unified Process

7. Model based software architecture

Chapter 3 Prescriptive Process Models

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

CGEIT Certification Job Practice

1 Management Responsibility 1 Management Responsibility 1.1 General 1.1 General

The Systems Development Lifecycle

Software Life Cycle. Main Topics. Introduction

Software Engineering Part 2

Chapter 4 Document Driven Approach for Agile Methodology

Software Quality Engineering Courses Offered by The Westfall Team

Achieving Balance: The New Pivotal Points of Software Development

Four DevOps Journeys to Agility & Continuity in Your Organization

Software Quality Engineering Courses Offered by The Westfall Team

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Project Execution Approach

The Product Creation Process

SOFTWARE MEASUREMENT GUIDEBOOK. Revision 1

Two Branches of Software Engineering

CHANGE MANAGEMENT AND AGILE. Executive Summary

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

An overview of The Open Group's Enterprise Architecture and Evolution of IT4IT

SOA Maturity Model - Guiding and Accelerating SOA Success. An Oracle White Paper September 2008

Orchestrated. Development Management. How to Strike the Right Balance between Speed and Control

Scaling Agile With ZolonTech. Transform your Organization today with Agile Application Development

The effect of moving from a plan-driven to an incremental software development approach with agile practices

FUJITSU Transformational Application Managed Services

Systems Engineering Concept

Succeeding in the Journey to Agile and DevOps

INSIDE THIS ISSUE. Whitepaper

The Top Thrill Dragster

Introduction to Systems Analysis and Design

arxiv: v1 [cs.se] 4 Apr 2017

Software Design COSC 4353/6353 D R. R A J S I N G H

ALFABET 9.12 WHAT S NEW IN. With Alfabet 9.12 you can: Risk mitigation planning & management ALFABET

How Business Analysis Can Improve Sales and Marketing Outcomes

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

Agile Practices in the Industrial Context

SOLUTION BRIEF CA AGILE REQUIREMENTS DESIGNER FOR CA AGILE CENTRAL. CA Agile Requirements Designer for CA Agile Central

Software development processes: from the waterfall to the Unified Process

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Software processes. Software Applications A.Y. 2018/2019

CMPT 275 Software Engineering


CHAPTER 1. Business Process Management & Information Technology

Research on software systems dependability at the OECD Halden Reactor Project

A New Divide & Conquer Software Process Model

Building High Assurance Systems with SAFe 4.0

Improving the Test Process

Software Development Life Cycle:

NDIA Systems Engineering Division. November in partnership with: Software Engineering Institute Carnegie Mellon University

WORK PLAN AND IV&V METHODOLOGY Information Technology - Independent Verification and Validation RFP No IVV-B

Software Engineering. M Umair.

Global Emerging Markets

Market System Evaluation. June 2017

Reimagining Your Legacy Systems for the Digital Age

Software Engineering

YOUR GUIDED TRANSFORMATION

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

The Business Value of Agile Transformation

Transition from conventional to Agile process model An Experience Report

Keys to a successful WAREHOUSE MANAGEMENT SYSTEM (WMS)

The software process

DORNERWORKS QUALITY SYSTEM

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

PAYIQ METHODOLOGY RELEASE INTRODUCTION TO QA & SOFTWARE TESTING GUIDE. iq Payments Oy

Five DevOps CM Practices

Best Practices for Enterprise Agile Transformation

Transcription:

Anatomy of Excellence Development Denis Duka, Lovre Hribar Ericsson Nikola Tesla Poljicka cesta 39, Split, Croatia E-mail: denis.duka@ericsson.com Abstract: The Anatomy of Excellent Development (AED) is an evaluation tool used by R&D organizations to understand their strengths and weaknesses in software system development. It offers an easy visualization model and formulates abilities in a language understood by R&D. The AED is built upon capabilities important in efficient system development. These capabilities derive from three important problems within R&D: Trouble Reports, Customer Requests and Track problems. This paper proposes abilities to deal with these issues. It also describes a way to support an organization to select the vital few capabilities to focus the improvement work on and to identify what is the suitable practice to increase a selected capability. 1. I TRODUCTIO The pressure to improve software development process is not new, but in today s competitive environment there is even greater emphasis on delivering a better service at lower cost. Service providers care about quality of their services upon which they make investments. Software vendors care about their clients needs and efficiency in achieving them, a symptom of which is little to no rework i.e. get it done right the first time. Rework needed on developed products has a broad impact on the organization: Cost of faults found later are higher, Negative loops require additional resources, Customer and sponsor satisfaction, Organization capability. Benefits of less rework during all the development and testing phases and maintenance are the following: More resources are available instead of being involved with maintenance, More resources at Function Test (FT) are available for function failures instead of being involved with faults slipped through from previous verification phases, More resources are available instead of being involved with System Test (ST) and Design Follow- Up (DFU) activities, i.e. activities between first official release and global deployment, Less temporary spill-over of competent resources due to emergencies from early development phases and design towards maintenance. All stated benefits per specific product development phases show how positive spill-over of resources is caused by reduced rework. On the other side, unwanted rework might cause negative spill-over of resources causing jeopardizing the later phases [1]. Figure 1 [2] demonstrates how the cost of faults typically rises by development stages. The implication of such a cost curve is that the identification of software fault earlier in the development cycle is the quickest way to make development more productive. COST REQUIREMENT PRESTUDY FAULTS REMOVING COST FEASIBILITY EXECUTION DEVELOPMENT PHASES Figure 1 Cost of Rework DFU MAINTENANCE Research and development of techniques for making software development easier and faster have been going on for as long as software has existed. Still, projects commonly spend at least 50 percent of their development effort on rework that could have been avoided or at least been fixed less expensively. That is, 20-80 percent depending on the maturity of the organization and the types of systems the organization develops [3]. In a larger study on productivity improvement data, most of the effort savings generated by improving software process maturity, software architectures and software risk management came from reductions in avoidable rework. A major reason for this is that faults are COST

cheaper to find and remove earlier in the development process. High amounts of avoidable rework commonly occur when having many faults left to correct in late stages of a project. In fact, research studies indicate that the cost of rework could be decreased by up to 30-50 percent by finding more faults earlier [4]. Therefore, the interest from industry to improve this area is large. Omitting early quality assurance results in significantly more faults found in testing. Such an increase commonly overshadows the benefits from omitting early quality assurance. It has also been reported that the impact of defective software is estimated to be as much as almost 1 percent of the Gross Domestic Product (GDP) of the U.S.A. [4]. Further, fewer faults in late test phases lead to improved predictability and thereby increased delivery precision since the software processes become more stable when most of the faults are removed in earlier phases. Therefore, there is a large interest in approaches that can reduce the cost of rework, e.g. make sure that more faults are found earlier. It might appear easy to reduce the amount of rework just by putting more focus on early verification activities, e.g. reviews. However, activities such as reviews and testing are good at catching different types of faults at different stages in the development cycle. Further, some system characteristics such as system capacity and backward compatibility might not be feasible to verify early through, for example, reviews or unit tests. Therefore, the objective should not just be to find and remove all faults as early as possible. Instead, the cost-effectiveness of different techniques in relation to different types of faults should be in focus [5]. The AED was established as a step towards the Operational Excellence program at Ericsson as an initiative mainly established for Quality Assurance (QA). In simple words QA represents the planned and systematic activities implemented within the quality system and demonstrated as needed to provide adequate confidence that an entity will fulfill requirements for quality [6]. Time and cost are easily visible during project, while software quality can usually be assessed late in the project and effects of decisions/actions on quality improvements are difficult to evaluate [7]. As described in the following chapter, this paper proposes AED approach as an overall strategy to drive the operational excellence within software development organization. Chapter 3 presents abilities to deal with three main problems this kind of organization is facing with: Trouble Report, Customer Request and Track problems. Several ways of AED usage are also described. AED approach is presented as well as its implementation through different R&D organizations within Ericsson in chapter 4. Analysis following the proposed approach is also given as well as some concrete activities following the analyzed data. General conclusion regarding AED usage and benefits are summarized in the last chapter. 2. AED STRATEGY Customer requires more flexibility with preserved product quality and the threat from low cost competitors are examples of factors that force us to improve our ways of working. Continuous improvements are a key factor to stay competitive. Meeting these demands means for an R&D perspective that we need the ability to: Release with little pre-warning knowing what we release. However, what is the software development situation today? Many new projects fail to reach their quality target in their first release, Adding new features tend to affect system quality negatively, Maintaining the product usually suffers from low product support. Consequently, we can state that quality is an issue during the entire product life cycle. But what should be improved and what solutions does best suite a specific organizations purposes? Without guidance these questions are hard to answer. Therefore, we must know: Our problem areas, The possible solutions available, The effect of a solution, The order to introduce the changes. The AED offers support to solve each of these points. It supports an organization to: Understand where they are today and what are their strengths and the weaknesses, Select the vital few capabilities to focus the improvement work on, Identify what is the suitable practice to increase a selected capability. The AED is overall strategy for driving the Operational Excellence and R&D Competitiveness program within Ericsson R&D. The AED benefit the advantage to other models that it is based on Ericsson own experiences within R&D. AED structures what we know today is the best way to develop software. Identified good practices are then mapped to the AED. By doing that, it gives the following desirable features: Culture bearer, Good practice identifier, Good practice spreader, Practice implementation.

3. AED SOLUTIO Typical Project management triangle consists of three main elements: Time, Quality and Scope. As can be seen from the Figure 2, priorities in development projects are changing from deliver in time to always good enough quality. It can be said that the quality level of the design base determines development speed today! Scope Deliver everything asked for Quality Always good enough quality Change Priorities! Figure 2 - Project Management Triangle Three main problems have been identified within Ericsson and they are the foundation for the identified capabilities in the AED: 3.1 The Trouble Report (TR) problem Priorities for improved performance Priorities in a typical project Time Deliver in time Examples of abilities helping to solve the track problem: the tracks we have, We build orderly and quickly, our design base, We control dependencies. From the main problem areas, the most significant capabilities needed to overcome the problems are gathered and structured in an anatomy. The AED captures many of the capabilities which we have learnt to be necessary for us to be successful with large scale system development. To meet increased R&D efficiency goals and new challenges in product realization the anatomy is frequently revised with new insights and knowledge. Behind the capabilities in the anatomy there are questions. The purpose is to better understand what the capability is about. The intention is not strictly to give answers to all question, but a base for discussions. Actually, the AED may be used in several ways [8]: Base for discussion, Visualization of needed improvements, Visualization of progress, Assessments, Identification of strengths and weaknesses, Creation of self awareness, As an instrument to tailor and focus the improvement work (see Figure 3 below): We find far too many costly faults and unwanted characteristics far too late. Examples of AED abilities helping to solve the TR problem are the following: Assess (AED) Plan We check that legacy works, We make few faults, We correct every fault directly, fast and right, We make new working versions often. 3.2 The Customer Request (CR) problem Evaluate Improve Do We suffer from an inability to respond well and fast to changes expected from our customers as well as from internal needs. Examples of abilities helping to solve the CR problem: We make new working versions often, We plan and develop in small steps, We can modify scope smoothly, We integrate changes and additions systematically. 3.3 The Track problem We have far too many system- and component- versions that we develop and maintain in parallel. Figure 3 AED Improvement Cycle 4. AED IMPLEME TATIO AED process has to be implemented in the following steps: Assessment from process descriptions or practice, Adding colors to the anatomy, Identify improvement areas, Construct improvement plan. The AED anatomy chart is presented in the Figure 4:

We can release with little pre-warning knowing what we release We check versions characteristics We have a sustainable development of LSV s We check that each version Is better than the previous We check that legacy works We make few faults We correct every fault directly, fast and right We control dependencies We integrate changes and additions systematically We build orderly and quickly the faults we make We design plain and minimal solutions the tracks we have We can modify scope smoothly We structure products and information properly our design base We explore reuse options We work in cross-functional co-operation We are a proficient development team We plan and develop in small steps We fully understand the development scope Figure 4 AED Chart Each of statements provided in this anatomy chart has to be categorized on the following way [8]: Doing well (green), Improvement potential (yellow), Improvement needed (red). In order to enforce this process set of supporting questions is prepared for each statement. Following the analysis we are able to identify our weaknesses and strengths and to focus our efforts to specific improvement areas. AED approach was implemented in 40 workshops within Ericsson R&D organization. All results have been gathered and analyzed. Here are some highlighted trends and observations: Not good enough legacy/regression test. Good tooling, methods, examples & support available. Not good enough dependency management. Almost no methods, no real tool support, some examples and experiences available. Too long build time/too little automation. Good tooling, methods, examples & support available. Lack of cross functional co-operation. Good methods, examples & support available. Figure 5 presents the ranking of statements marked as red: Can release with little pre-warning Check that each version is better than the Integrate changes and additions systematically Can modify scope smoothly Plan and develop in small steps Fully understand development scope Check versions charasteristics Check that legacy works Build orderly and quickly Structure products and information properly Know our design base Control dependencies Know the tracks we have Make few faults Know the faults we make Have a sustainable LSV development Correct every fault directly, fast and right Design plain and minimal solutions Explore reuse options Work in cross-functional co-operation Proficient development team 0 5 10 15 20 25 30 35 40 Figure 5 AED Statements

Top red five statements that have been identified through the workshops are the following: 1. We make few faults, 2. We control dependencies, 3. We check versions characteristics, 4. We fully understand the development scope, 5. We plan and develop in small steps. Obtained findings were used as an input for further activities. Under special spot light was the fact that we make a significant number of software faults seriously impacting the project performances. Taking this into account as well as the fact that in order to keep project performances development teams require fast and accurate feedback on the quality at the early stages of the design cycle [9] it was obvious that change in development approach is required. Key decision was turning to Agile way of software design. Agile development is a different way of managing software development projects. Some key principles of Agile Software Development, and how it fundamentally differs from a more traditional waterfall approach to software development, are the following [10]: Active user involvement is imperative, The team must be empowered to make decisions, Requirements evolve but the timescale is fixed, Capture requirements at a high level; lightweight & visual, Develop small, incremental releases and iterate, Focus on frequent delivery of products, Complete each feature before moving on to the next, Testing is integrated throughout the project lifecycle test early and often, A collaborative & cooperative approach between all stakeholders is essential. In addition, a detailed plan addressing future competence development was created for each individual. Concrete measures (self-tuition, further education, courses, conferences, workshops, job rotation, etc.) were discussed with each individual. 5. CO CLUSIO AED can be used by all software development organizations. However, it is intended to be used by R&D organizations and/or development projects for guidance and support in the set up and tracking of stepwise improvements towards operational excellence. It is an extreme pragmatic method for driving the improvement work. Compared to other reference models, such as ISO or CMMI, AED needs a minimum of interpretation. However, AED is not be used to compare organizations or as a benchmarking instrument. Organizations use the AED if and as they want. It is recommended to be used as a point of reference in discussions between organizations sharing experiences and learning from each other. Nevertheless, the implementation of the AED provides the opportunity to review/reinforce the under-lying processes, because it highlights process lacks and quantitative levels of process applications. It also provides the raw materials to produce a trend line of quality to see if the process has been measurably improved or not. Wide usage through Ericsson organizations helped us to determine the weak areas in our everyday work and to adapt to Agile as a new way of software development. Further plans involve constant monitoring on Agile using AED in order to make needed adjustments and also to measure changes in rework. Although the statistical prediction of rework level requires time (e.g. 2-3 years) for gathering data and elaborating them into a consistent and proven statistical model we expect that improvements might be visible in a shorter term. REFERE CES [1] ***, FTR Practice, Internal Ericsson Documentation, Sweden 2006 [2] L-O Damm, Early and Cost-Effective Software Fault Detection, Blekinge Institute of Technology, 2007, pp. 4-10. [3] L.-O. Damm, L. Lundberg, Results from introducing component-level test automation and Test-driven Development, Journal of Systems and Software, Volume 79, Issue 7, July 2006. [4] L.-O. Damm, L. Lundberg, Early and Cost-Effective Software Fault Detection, International Conference on Software Engineering, Proceedings of the 29th international conference on Software Engineering, pp. 560 570. [5] L. Hribar, S. Sapunar, A. Burilovic, First Time Right in AXE using One track and Stream Line Development, Proceedings MIPRO 2008. [6] A. U. Rehman, Quality Cost Analysis, Feditec Enterprise [7] T. P. Ryan, First Time Right Ratio, Measuring the Measurers, November 2008 [8] ***, AED Introduction, Internal Ericsson Documentation, Sweden 2009 [9] D. Duka, L. Hribar, Implementation of First Time Right Practice in Software Development Process, Proceedings MIPRO, 2010 [10] K. Waters, 10 Key Principles of Agile Development, http://www.allaboutagile.com, February 2007