Evaluation of agility in software development company



Similar documents
Agile Scrum Workshop

Would you like to have a process that unlocks ability to learn and produce faster?

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

Scrum includes a social agreement to be empirical as a Team. What do you think an empirical agreement is?

Issues in Internet Design and Development

The traditional project management uses conventional methods in software project management process.

FREE ONLINE EDITION. (non-printable free online version) Brought to you courtesy of Sprint-IT &

The Agile PMO. Contents. Kevin Thompson, Ph.D., PMP, CSP Agile Practice Lead cprime, Inc E. Third Avenue, Suite 205 Foster City, CA 94404

AGILE - QUICK GUIDE AGILE - PRIMER

LEAN AGILE POCKET GUIDE

D25-2. Agile and Scrum Introduction

Course Title: Managing the Agile Product Development Life Cycle

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Overview of Scrum. Scrum Flow for one Sprint SCRUMstudy.com. All Rights Reserved. Daily Standup. Release Planning Schedule. Create.

Measuring ROI of Agile Transformation

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

AGILE & SCRUM. Revised 9/29/2015

ScrumMaster Certification Workshop: Preparatory Reading

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Capstone Agile Model (CAM)

The Basics of Scrum An introduction to the framework

Agile Project Forecasting Techniques. "Who Says You Can't Plan Agile Projects?" Matt Davis, PMP, MCITP October 21, 2013

Agile project portfolio manageme nt

Managing Agile Projects in TestTrack GUIDE

A Glossary of Scrum / Agile Terms

There are 3 main activities during each Scrum sprint: A planning meeting where: the Product Owner prioritizes user stories in the product backlog

Introduction to Agile

Manage projects effectively

Scrum vs. Kanban vs. Scrumban

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

When is Agile the Best Project Management Method? Lana Tylka

Sometimes: 16 % Often: 13 % Always: 7 %

Call for Tender for Application Development and Maintenance Services

Roles: Scrum Master & Project Manager

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Scrum In 10 Slides. Inspect & Adapt

Agile in Financial Services A Framework in Focus

Preparation Guide. EXIN Agile Scrum Foundation

EXIN Agile Scrum Foundation

Getting Agile with Scrum

Practical Agile Requirements Engineering

Agile Information Management Development

Agile Projects 7. Agile Project Management 21

An Agile Project Management Model

CSPO Learning Objectives Preamble. Scrum Basics

Higher National Unit specification. General information. Software Development: Analysis and Design (SCQF level 7) Unit code: HA4C 34.

EXIN Agile Scrum Foundation. Sample Exam

Sprint with Scrum and get the work done. Kiran Honavalli, Manager Deloitte Consulting LLP March 2011

Agile Software Development

Adapting Agile Software Development to Regulated Industry. Paul Buckley Section 706 Section Event June 16, 2015

Agile with XP and Scrum

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

Learning Agile - User Stories and Iteration

Scrum methodology report

EPL603 Topics in Software Engineering

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Course Title: Planning and Managing Agile Projects

Agile Scrum Foundation Training

Vision created by the team. Initial Business Case created. Cross functional resource meeting held. Agile alignment meeting

Agile Team Roles Product Owner & ScrumMaster. Brian Adkins Rick Smith

Global Business Services, GBS. Scrum and Kanban. Processer & IT nord seminar 5v3. Gitte Klitgaard Hansen, IBM

Scrum and Kanban 101

Agile Based Software Development Model : Benefits & Challenges

Agile Project Management A Primer. Brian Stewart AVU ACEP Nairobi 17 th 2013

Statistics New Zealand is Agile Continued Implementation of AGILE Process at Statistics NZ

Scrum Methodology in Product Testing : A Practical Approach

The Team... 1 The Backlog... 2 The Release... 4 The Sprint... 5 Quick Summary Stakeholders. Business Owner. Product Owner.

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

The Agile Manifesto is based on 12 principles:

Agile Development. Redefining Management in Project Management. Neil Stolovitsky

The style is: a statement or question followed by four options. In each case only one option is correct.

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

Taking the first step to agile digital services

Building Software in an Agile Manner

Answered: PMs Most Common Agile Questions

The Truth About Agile Software Development with Scrum, The Facts You Should Know

Integrating Scrum with the Process Framework at Yahoo! Europe

Scrum Method Implementation in a Software Development Project Management

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Agile Metrics. It s Not All That Complicated

Managing a Project Using an Agile Approach and the PMBOK Guide

References: Hi, License: Feel free to share these questions with anyone, but please do not modify them or remove this message. Enjoy the questions!

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

WE ARE FOCUSED ON HELPING OUR CLIENTS WORK SMARTER AND MORE EFFICIENTLY SO THAT TOGETHER, WE CAN EMPOWER PEOPLE TO DELIVER GREAT RESULTS.

Agile Software Development Methodologies and Its Quality Assurance

Agile Scrum and PMBOK Compatible or Contrary?

An Introduction to Agile Performance Management

Measurement repository for Scrum-based software development process

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Certified Scrum Product Owner

IMQS TECHNOLOGY AGILE METHODOLOGY

Impact of Agile Methodology on Software Development

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

Transcription:

Evaluation of agility in software development company Gusts Linkevics Riga Technical University, Riga, Latvia, gusts@parks.lv Abstract Organization s and team s experience in agile methodology can be more successful if software development company is well prepared for agile software development. The problem is that the organization or team does t kw or is misled about how well prepared they are for the agile software development. This research focuses on creating metrics and classification of agility for software development companies and teams, so they can identify at which level of agility organization or team is. Organization and its domains can be on different agility level and it must be evaluated. Results of the research are metrics, classification and evaluation models for organization and its domains. The result of this research can be used to create expert system for organizations agility level determination and improvement. Keywords: Agile, Organization agility, Agility classification.. Introduction Agile software development has become more and more popular during last decade and offers opportunity to deal with software development using other approaches rather than traditional development methodologies like waterfall. The typical problem is that organizations are thinking that they are agile and do t change old processes, but in reality the organization is partly agile and agile adoption is t finished to the state where it can give more benefit to organization. The agility level of an organization and its domains should be evaluated regularly to make necessary changes in organization structure or processes. The purpose of this paper is to introduce organization agility model [3], conceptual agility level evaluation system and its domains. Results will be used later by expert system for determining agility level of organization. This paper consists of 0 sections. The first section is introduction and describes the problem and the goals of the paper. Second section introduces organization agility model (OAM). Third section describes conceptual model of the agility level evaluation systems. The fourth section describes organization domain of OAM. The fifth section focuses on productivity domain of OAM. The sixth section describes purpose of quality domain. The seventh and the eight sections describe process [4] and value domains of OAM. The purpose of the ninth section is to introduce possible classification algorithms [5] for agility level evaluation system. The section 0 concludes the paper and gives brief outline of the future work. 2. Agility model To evaluate software Developments Company s (SDC) agility level, decomposition of organizations agility is required. It is proposed what SDC agility consists of five core domains (Figure ). Five domains of SDC agility are Organization, Process, Productivity, Quality and Value. Organization domain is responsible for overall continuous improvement of the organization and contains all business functions. Process domain is responsible for the effective use of Scrum and its artefacts. Productivity

domain is responsible for building increments of the product with focus on the team. Quality domain is responsible for the quality of items delivered in productivity domain. Value domain is responsible for increasing value of product releases. Figure. Organization agility domains. Decomposition of organizations agility in domains gives opportunity to evaluate and classify each domain by agility evaluation system the concept of which is described in the next section. 3. Agility level evaluation system In order to evaluate organizations agility some conceptual system is required. The proposed system is expert system, which can evaluate inputs from team members of different domains. Figure 2 represents the conceptual model of proposed evaluation system, where E E n are members of the team who are using input module of expert system to enter information about particular period, for example, sprint or month. Received data is separated into five domains Organization, Process, Productivity, Quality and Value. Figure 2. Conceptual model of agility evaluation system.

Information about each domain is classified by one or more algorithms A A n to determine agility level of the domains. Separation of inputs into domain specific information is required in order to get more specific output information about domains that requires more effort to become more agile. Output module outputs information about domain agility D to D5 where D is particular domain and overall information about organization s agility. In further versions of conceptual model, there is possibility to enhance output module with functionality, which in details shows the most problematic areas of the domain. 4. Organization domain Responsibility of the Organization domain is to ensure the continuous improvement of the organization in the changing environment (Figure 3). Figure 3. Organization domain components. Organization domain consists of nine core components, but can be extended if required for particular organization: Process change management is responsible for detecting when change is required, evaluate the impact and effort for the change and implement the process change. Responsible person for this component is required to initiate the change process. Information about processes and changes should be available to members of the organization. Practice change management is responsible for implementing new agile practices and evaluation of implementation results. Each new practice can increase or decrease agility level of SDC and therefore must be evaluated and analysed in order to get more benefits. Communication plays important role in agile software development both internal with different departments and external with stakeholders. All communication issues should be addressed and evaluated. Kwledge management process is responsible for managing data about processes, practices. Both good and bad experience should be stored in order t to repeat wrong decisions.

Learning component works closely with kwledge component and is responsible for acquiring new kwledge. Project type part is responsible for evaluation of different project types. Reason to use this component is, that different types of projects could exist, but t compulsory are handled differently. For example, small projects do t need sophisticated documentation where large enterprise projects should have some more documentation. Size of organization should also be addressed, as large enterprises may need to use different set of agile practices. Experience plays important role in agile methodology usage and it tends to have bigger success in companies where this methodology is practiced for longer period. Evaluation component in this context is responsible for continuous evaluation of organizations domain and its components. 5. Productivity domain Responsibility of the Productivity domain is to build the product. The centre of the Productivity domain is development team. In the current model, there are nine components for evaluation (Figure 4): Figure 4. Productivity domain. Environment component is responsible for evaluation of the environment where development team is working. Communication must be proper at all levels of the company and development team is t an exception. Good communication skills within the team must be evaluated. For example, there could be situations that some team members cant communicate properly and if such problems are t addressed on time, then collaboration between members of the team is unproductive. Collaboration component is responsible for high quality teamwork and after evaluation can indicate at what level the collaboration of the team members are. Size of team must also be addressed as environment and practices for different team sizes can differ; Team type component addresses evaluation of team structure. There can be development teams that are located in one place, at one location, distributed or mixed. Most agile challenges are for distributed or mixed teams, as they tend to have more problems with faceto-face communication and collaboration. For this reason, agility level of such teams is lower, but with proper effort it can be improved.

Experience of the development team plays important role in productivity domain, as similarly to organizations experience, more experienced team can handle agile methodology more smoothly or at least see the problem with processes earlier. Learning component is responsible for evaluation of learning processes in the development team. More it learns and trains more agile it can become. Kwledge sharing as the name states is sharing of kwledge between development team members and development teams. Evaluation of this component can indicate the presence or absence of the sharing and lead to implementation of kwledge sharing practices. Kwledge storage or kwledge management is responsible for evaluation of storage processes in productivity team. It works similarly as in organization domain, only difference is in the context, in this case it is the context of the development team. Practices component is responsible for evaluation of practices used by the development team. As it turns out practices, which are working for one team in the organization could t work as good as for ather team in the same organization. P P n in the domain module are indicating different practices which are used, were used or will be tried out by the development team. Productivity domain is of high importance and should be evaluated more frequently than organization domain. Next but t least is quality domain, described in next section. 6. Quality domain Purpose of the Quality domain is to ensure the quality of products built in productivity domain (Figure 5). Quality domain consists of six core components: Figure 5. Quality domain. Tooling members of the Quality domain use different tools to ensure higher quality of the product. Standard s component is responsible for evaluation of standards used by the Quality domain members. This may include Testing standards, Quality standards and more. Convention is a way to agree about some working contracts and ways how certain situations should be handled. Guidelines members of Quality domain (Architects, Database architects, Infrastructure developers etc.) should use and implement guidelines as it can help to ensure quality.

Guidelines similarly to practices should be evaluated in order to choose correct ones for the job. Practices set of practices should be utilized by the Quality domain or Productivity domain members, because agile method such as Scrum does t ensure the success. New practices should be tried out and n-effective removed from the set. If set of practices used will be big eugh for particular team, in particular organization working on particular product, then results could be contrary as expected. Roles Architects, Database Architects, Infrastructure developers, User interface designers and Framework developers, drive Quality domain. Some team members could employ more than one role, especially in small teams. Lack of some role could decrease kwledge level of this domain and its possibility to react or to ensure quality. Besides Quality, Productivity and Organization domains there are also Process and Value domains. 7. Process domain Responsibility of the Process domain is to ensure the effective use of Scrum and its artefacts [4] (Figure 6). Scrum method is set of events and artefacts described in this section. Process domain can be separated into three core components: Figure 6. Process domain. Time Boxes - purpose of this component is to evaluate the events of the Scrum [4] [6]: Grooming is meeting where User Stories (US) are evaluated for the first time and discussed in more details. Good practice is to evaluate US beforehand sprint planning. Release planning is used to create Release plan and this practice is coming from Extreme Programming (XP) [7].

Sprint planning is used to take US into particular Sprint and create tasks for them. Sprint is actual time when features and US are prepared and built. Sprint length varies depending on the team, project and organization. Daily scrum is short meeting every day to ensure that everything is on track and there are specific impediments. This event helps team to stay on track what other people on the team are doing. Sprint review is meeting to show and present built features in action for Stakeholders and other interested persons. Sprint retrospective is event where team shares their opinion about how the sprint went, what was good and bad about it. This is also time to decide what changes are required for the next sprint. Artefacts are items required by Scrum and they are used in events of Scrum to track progress and keep US in order. Usually four artefacts are used, but some teams might use more [6]: Product backlog is used to hold complete list of US that are required for particular product. List items and they priority can change depending on business needs. Release burndown is chart where Team, Product Owner and ScrumMaster can track progress of completed and t completed US in context of the product. Sprint backlog is list used during the sprint and it holds US required for particular Sprint. Sprint burndown is chart where Team, Product Owner and ScrumMaster can track progress of completed and t completed US in context of current sprint. Roles are way to split responsibility in agile software development. Three roles exist in Scrum [6]: Product Owner is person who owns the product on behalf of company. This person is responsible the success of the product and has to be empowered eugh to make necessary decisions. By evaluating this role, for example, it is possible to determine is this person empowered eugh to make decision. ScrumMaster is facilitator for the product team in Productivity domain. ScrumMaster helps development team to be successful and protects the development team from interference. Team is cross-functional team including developers, testers etc. and delivers product in Productivity domain. By evaluating Process domain, it is possible to determine week points of Scrum event execution and improve how processes are applied. 8. Value domain Value domain is responsible for increasing value of product releases and consists of components (Figure 7): five core

Figure 7. Value domain. Release management is the process of managing software releases from development stage to software release. [] Product management is the process of product governance from inception to delivery in order to bring value to the business. [2] Portfolio management is responsible for managing SDC portfolio. Portfolio includes information about planned or ongoing initiatives, projects and services. Portfolio management enables evaluation of previous and current development efforts. Project Management Organization (PMO) responsibility in agile is to align the selection and execution of projects and programs with the organizations business goals. Product Owner functions are to have vision of what needs to be build and to convey that vision to development team. Good Product Owner is the key of starting agile software development project and keep product backlog in good shape. Evaluation of Product Owner functions may increase quality of backlog items and delivered product that may lead to higher value for the business. As during evaluation of Value domain, it is possible to determine value of delivered products and services it has to be taken into account then evaluating organizations agility level. Organization might be agile, but if return of the investment (ROI) is small, for example, then there is something wrong and it is signal what some changes are required in this or other domains. 9. Classification algorithms Separation of organization agility into domains allows us to evaluate different parts of organization for agility. Purpose of all the domains is to create appropriate surveys for members of organization. Classification algorithms to determine the agility level of each domain and organization later use collected data. In section tree of this paper conceptual model of agility evaluation system is described and part of this model is classification algorithm or algorithms. It is eugh to use one, but in some situations, more than one can be used. It is proposed to use FOIL or similar algorithm that uses first-order rules. [5] FOIL uses first-order rules and one of the ways to describe the rules is the form IF THEN. Horn syntax can be also used (Figure 8).

Figure 8. Horn clause. Horn type of syntax can be rewritten by substituting Head with Agility level or Class and Body with Condition as a result we will have form seen in Figure 9. Figure 9. Classification clause. For FOIL algorithm to work correctly with supplied data gathered from surveys, we need to create learning data set to teach algorithm under what conditions there is particular agility level. Test learning data set is shown in Table. Table. FOIL Learning data set. Scrum impl. Retro impl. Grooming impl. Communication level Agility level Rule used rmal rmal rmal rmal rmal rmal rmal rmal rmal rmal rmal rmal t agile agile t agile agile t agile agile t agile agile t agile agile t agile agile t agile agile t agile t agile t agile t agile t agile agile t agile agile t agile t agile 6 8,9 5 8 7 9 5,7,4 4 3 9 5 2 For example, if agility level will have 3 levels, then AL= t agile, AL2= agile, AL3=agile. Sample data set has following amount of items in particular agility level: AL = t agile = 5 AL2 = agile =5 AL3 = agile = 4 After using FOIL algorithm set of rules for each agility level will be generated. Rules for this sample agility evaluation are represented in Table 2.

Agility Level AL = t agile Table 2. Rules generated by FOIL algorithm. Rules AL CommunicationLevel(X, ) [] AL ScrumImplemented(X,) CommunicationLevel (X,rmal) GroomingImplemented(X, ) RetrospectiveImplemented(X, ) [2] AL ScrumImplemented (X, ) CommunicationLevel (X,rmal) GroomingImplemented (X,) RetrospectiveImplemented (X, )[3] AL ScrumImplemented (X, ) GroomingImplemented (X,) RetrospectiveImplemented (X,)[4] AL2 = agile AL2 CommunicationLevel (X, rmal) GroomingImplemented (X, ) RetrospectiveImplemented (X, )[5] AL2 CommunicationLevel (X, rmal) GroomingImplemented (X,) RetrospectiveImplemented (X, ) ScrumImplemented (X, )[6] AL2 GroomingImplemented (X, ) CommunicationLevel (X, rmal) ScrumImplemented (X, )[7] AL3 = agile AL3 CommunicationLevel (X, rmal) GroomingImplemented (X, ) ScrumImplemented (X, )[8] AL3 CommunicationLevel (X, rmal) GroomingImplemented (X, ) RetrospectiveImplemented (X, ) [9] For rule test purposes it is needed to run those rules against our training data set to confirm that rules are created correctly. Result after running the rules is shown in Table 2, in the last column and it indicates the rule used to make classification. In this particular case, all rules have worked correctly. Now these rules can be used on data that was gathered from surveys. This section shows just example how to create evaluation rules, in reality set of rules needed will be much bigger and lot of effort is needed to complete the rule set. It has to be taken into account what for creation of learning data set agile experts should be invited to make this learning set as precise as possible. 0. Conclusion Adopting agile approach has never been simple task and in the process of adopting agile approach, various questions arise. This research is the first step to create an expert system which can help evaluate organization agility to allow them adopt agile approach more smoothly and to assist during transition phase. First step in evaluating the agility level of the organization is to understand what exactly we are evaluating. As organization is complex system and cant be evaluated easily, then it is necessary to separate different organization domains. Proposed model has five domains and each domain can be evaluated separately. The domains are Organization, Productivity, Process, Value and Quality. After creation of the agility model of the organization, each domain can be separated in smaller components to simplify the evaluation process. Organization domain consists of nine core components, Process change management, Practice change management, Communication, Project type, Experience, Size, Learning, Evaluation and Kwledge

storage. Main responsibility of Organization domain is to evaluate overall organization parameters and processes. Productivity domain consists of 0 core components and is responsible for building the product. Components are, Kwledge storing, Kwledge sharing, Learning, Experience, Team type, Size, Collaboration, Communication, Environment and Practices used by the development team. None of the core components should be omitted, but if required new subcomponents may be added to the domain. The team should always use set of practices, but team should keep in mind, that if set of practices is too big it may decrease efficiency of practice usage. Product may be build, but the question remains, is the product of a required quality. To ensure that product is built in appropriate quality the Quality domain is created. Quality domain consists from six core components, Tooling, Standards, Conventions, Guidelines, Practices and Roles (Architects, Database architects, Infrastructure developers, Framework developers and User interface designers). Scrum is one of the methods used by organizations to do agile software development and its processes and artefacts are used by Process domain. Core components of process domain are Release planning, Sprint Planning, Grooming, Sprint, Daily Scrum, Sprint review and Sprint retrospective events. Value domain is responsible for evaluation of product releases and is domain of high importance. Evaluation of this domain can give real feedback to business about investments and values gained from past releases. All described domains are giving possibility to create evaluation surveys for each domain. One of the challenging areas in creating survey for each domain is to create the surveys as small as possible because evaluation needs to be done on regular bases. Date gathered from those surveys will be used by expert system, which will classify different domains of the organization. Conceptual model of agility level evaluation expert system is described in third section of this paper. System will gather data from surveys and by help of classification algorithms will classify the domains of the organization. Classification will be done by employing first-order rules based algorithm such as FOIL, but similar algorithms can be used separately or in conjunction. Results of this research will be used to build actual agility level evaluation system and to prepare surveys for members of the organization. References [] J. Humble, D. Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Addision-Wesley Professional, 200. [2] R. Pichler, Agile Product Management with Scrum: Creating Products that Customers Love, Addision- Wesley Professional, 200. [3] TheAgility Guide, Using Scrum to Transform Your Enterprise, http://www.agility-path.com/agility- Path-Framework/Agility-Guide, Last accessed 0 January 204 [4] Kenneth S. Rubin, Essential Scrum: A Practical Guide to Most Popular Agile Process, Addision-Wesley Professional, 202. [5] S. Parshutin, G. Kuleshova, A. Barisov, Application of the first order rules to reconstructing link damages in logistics net, 2005. [6] J. Beaver, The Agile Team Handbook, CreateSpace Independent Publishing Platform, 203. [7] K. Beck, C. Andres, Extreme Programming Explained: Embrace Change, 2 nd Edition, Addision-Wesley Professional, 2004.

Authors Principal Author: Gusts Linkevics holds a Engineer degree in Computer Sciences from the Riga Technical University and a Master degree in Business Administration from Riga Technical University. At present he is a Senior Developer at If Insurance.