Presenting a model for measuring agility in software companies based on agile principles

Number of pages: 90 File Format: word File Code: 30598
Year: 2013 University Degree: Master's degree Category: Computer Engineering
  • Part of the Content
  • Contents & Resources
  • Summary of Presenting a model for measuring agility in software companies based on agile principles

    Dissertation for Master degree in Computer Engineering (M.Sc)

    Software Orientation

    Abstract

    The use of agile methods in software development instead of traditional methods has been expanding for some time. These methods, which have been presented as a reaction to the inherent problems of traditional methods, have promised the realization of new goals and values. Unlike traditional methods, these methods try to build an agile software development process in the organization, so that both the customer and the organization are satisfied with the results. Due to their focus on people and not processes, full compliance with agile methods is not possible in the short term and requires appropriate time. Therefore, the more agility an organization can provide, the more agility values ??it can provide for itself and its customers. Considering the need for agility measurement tools, in this research, it has been tried to provide an agility measurement model that can calculate the agility level in software organizations based on globally acceptable criteria. Although the quantitative measurement of a qualitative value may not have the necessary accuracy, it can be used as a measure to improve and promote agility in the organization. In this research, instead of focusing on agile methods, agile exercises are considered as the foundation of the measurement model. In this way, the designed model is independent of development methods and can be used in all companies, even companies that have only used a part of agile methods. Keywords: agile modeling, agile organizational architecture, agile methods, agile modeling. For 60 years, software companies have been using traditional methods to produce their software products. During this period, it is a good opportunity to properly codify these development methods and provide developers with a suitable standard for software development. Since the beginning of the new century and simultaneously with the increasing development of the Internet and the web, as well as the widespread use of software packages, the traditional problems of software development methods have shown themselves more than ever. The delay in the delivery of software packages, the possibility of no change in customer requirements, and ultimately customer dissatisfaction are the things that hinder the development of software using traditional methods. The emergence of new development methods, which require new mechanisms in the development environment, was considered as a solution to the aforementioned problems. The new methods, which are called agile development methods, try to give appropriate agility to software manufacturing companies by providing new development processes.

    1-2 statement of the basic research problem in general

    Today, agile methods in software development (Agile methodologies) are being replaced by traditional software development methods (Traditional methodologies) [1]. Agile methods, which are a kind of reaction to traditional methods, follow different values ??compared to traditional methods [2].  One of the issues that software companies and organizations face frequently in the process of changing their methods from traditional to agile is measuring the amount of agility they have achieved at each point in time. The point here is that this change is not a sudden process and sometimes it takes more than a year and sometimes it is accompanied by many difficulties [3]. This shows the need for a measurement tool. Unfortunately, there is still no measurement tool that has a good agreement on it. A suitable measurement criterion should be in a way that, while having a proper scientific support, it also has simplicity and can be easily used by companies and organizations (even small organizations). Using agile principles as a standard on which there is a general agreement can be helpful in this direction [4]. Based on this, the agile values ??that have been proposed in the agile statement [2] and its addendum should be considered as a measure for organizational agility. But certainly, agile values ??and principles are not very suitable to be judged in a practical environment. Because each of the agile methods such as Scrum (Scrum) [5] or XP (XP) [6] or other methods have specific activities, roles and features that cannot be compared with other methods.  As a better suggestion, it is to use agile exercises as the primary core of the measurement tool.In fact, based on the implementation of these exercises in the organization and the amount of exercises that are being used in an institutionalized way in the organization, the agility of the organization can be estimated. This criterion is the basis of the desired measurement of this research. 1-3 Necessity of Research Many companies that are changing their software development methods from traditional methods to agile methods, need to check their progress in agile at different times. This issue can both help to investigate the potential of attainable values ??in the organization and can be useful in increasing efficiency and organizational benefits by creating a positive atmosphere resulting from the progress of the agility process in the team spirit of people. Having a tool that can show the level of agility based on a scientific research can be of great interest to these companies. Also, this tool can be a basis for determining the future processes that can be chosen to make the organization agile. In this way, in addition to the discussion of measurement, it will also be a suitable guide for the process of changing the organization's behavior.

    1-4 Innovation

    What makes this research innovative in its own way is to present an agility measurement model whose main task is to show the amount of agility that the organization has achieved so far. Also, in an additional step, it can show exercises that have not yet been institutionalized in the organization with their impact on the organization's agility.

    Such a model can be used as a guide for software companies to become more agile. Perhaps it can be used as an auxiliary tool in the process of becoming agile in software companies.

    1-5 goals

    At the end of this project, a simple tool for measuring agility will be prepared in the form of an application or website. In this website, organizations should answer the questions they are asked about agile practices. Based on these answers, the level of agility of the organization is shown.

    Organizations or companies producing software can test their growth in achieving agility goals with the help of this tool. This tool is suitable both for companies that want to use agile methods and for those who are using some aspects of agility.

    1-6 Research Hypotheses

    The following are assumed in this research:

    This research will not discuss the adaptation of agile methodologies to organizations and software projects.

    Due to the need to provide an acceptable model. In general, only the documents and documents that are of interest to software companies in the framework of agile methods are considered.

    This research is independent of the methodology. In this way, all organizations and software companies that use one or more agile software development methods in all or part of their projects will be able to take advantage of the research results. The importance of using the right research method is to the extent that it can strongly affect the research results. It is for this reason that in all research studies, in order to clarify and create a proper understanding of the research results, before starting the research operation, the method and steps of conducting the research will be clearly stated.

    Development of the structure of the measurement model

    Implementation of the tool

    6-

     

     

     

    Chapter Two: Review of the literature and research background

     

     

    2-1 Introduction

    The speed of life has increased a lot compared to the past. Computers are becoming faster and more powerful than before every day, and people are always connected to computer networks through cables, modems, mobile phones, and other electronic devices. Everything is changing and change has become an integral part of people's electronic life. In the meantime, software engineering, as a supplier of processes necessary for digital life, is required to grow rapidly and not fall behind the unbridled train of technology growth.

    Software engineering must produce processes that not only respond to changes but also welcome them.

  • Contents & References of Presenting a model for measuring agility in software companies based on agile principles

    List:

    Abstract

    Chapter One: General Research

    Introduction. 3

    Statement of the basic research problem in general. 3

    Necessity of research. 4

    Innovation. 4

    Objectives. 4

    Research hypotheses. 5

    Research method. 5

    Chapter Two: Review of the literature and research background

       2-1- Introduction. 7

        2-2- History. 7

        2-3- Agile statement. 9

        2-4- Agile software development. 12

        5-2- A set of agile methods. 13

            2-5-1 XP method. 13

            2-5-2 scrum scrum. 17

            2-5-3 Crystal family. 20

            2-5-4 Feature Driven Development (FDD). 22

            2-5-5 lean development. 24

            2-5-6 Dynamic Systems Development Method (DSDM). 25

            2-5-7 Agile modeling. 27

        6-2- Related works. 29

            2-6-1 Relative Agility. 29

    2-6-2 thoughtworks measurement tool. 30

            2-6-3 Other items. 31

    Chapter 3: Research implementation method

    3-1- Introduction. 33

        3-2- How to select evaluation criteria. 33

        3-3- Evaluation criteria. 34

        3-4- Modeling. 58

        5-3- Collecting information. 59

    Chapter Four: Data Analysis

    4-1- Introduction. 61

        4-2- Data analysis. 61

            4-2-1 Statistical population. 61

            4-2-2 Primary analysis. 62

            4-2-3 Calculation of modeling weights. 63

            4-2-4 How to use the measurement model. 63

            4-2-5 software implementation. 66

    Chapter Five: Conclusions and Suggestions

        5-1- Conclusion. 68

        5-2- Suggestions. 68

        Sources and sources. 69

            Index of English sources. 70

        Appendices and appendices. 73

    Appendix 1- Questionnaire. 74

    Appendix 2- Raw data. 78

        English abstract. 81

     

    Source:

    English reference list

     

    [1]        D. Cohen, M. Lindvall, and P. Costa, "An Introduction to Agile Methods," Advances in computers, vol. 62, pp. 1-66, 2004.

    [2] K. Beck, A. Cockburn, R. Jeffries, and J. Highsmith. (2001, July 2013). Agile manifesto. Available: http://www.agilemanifesto.org

    [3]        T. J. Gandomani, H. Zulzali, A. A. A. Ghani, A. M. Sultan, and M. Z. Nafchi, "Obstacles to moving to agile software development; at a glance," Journal of Computer Science, vol. 9, pp. 620-625, 2013.

    [4]        L. Williams, "What agile teams think of agile principles," Communications of the ACM, vol. 55, pp. 71-76, 2012.

    [5]        M. Cohn, Succeeding with Agile: Software Development Using Scrum. Boston, MA: Addison-Wesley Professional, 2009.

    [6]        Chromatic, Extreme Programming Pocket Guide. Sebastopol, CA: O'Reilly Media, 2013.

    [7]        J. A. Highsmith, Agile Software Development Ecosystems. Boston, MA: Addison-Wesley Professional, 2002.

    [8]        J. Highsmith and A. Cockburn, "Agile software development: The business of innovation," Computer, vol. 34, pp. 120-122, 2001.

    [9]        R. W.W., "Managing the development of large software systems: Concepts and techniques," in WESCON, 1970, pp. 1-9.

    [10] K. Beck and C. Andres, Extreme Programming Explained: Embrace Change, 2nd ed. Boston, MA: Addison-Wesley Professional, 2004.

    [11]      B. Boehm, "Get ready for agile methods, with care," Computer, vol. 35, pp. 64-69, 2002.

    [12]      B. W. Boehm, "Spiral model of software development and enhancement," Computer, vol. 21, pp. 61-72, 1988.

    [13]      R. L. Glass, "Agile versus traditional: Make love, not war," Cutter IT Journal vol. December, pp. 12-18, 2001.

    [14] A. Cockburn and J. Highsmith, "Agile software development: The people factor," Computer, vol. 34, pp. 131-133, 2001. [15] J. Coldewey, "Agile software development - Introduction and overview," Agile Entwicklung Web-basierter Systeme:Coldewey, "Agile software development - Introduction and overview," Agile Entwicklung Web-basierter Systeme: Eiführung und Ubersicht, vol. 44, pp. 237-248, 2002. [16] T. C. Team, "Chrysler goes to "extremes", Distributed Computing, vol. October, pp. 24-28, 1998. [17] K. Schwaber, Agile Project Management with Scrum (Microsoft Professional) 1 ed.: Microsoft Press, 2004.

    [18] K. S. Rubin, Essential Scrum: A Practical Guide to the Most Popular Agile Process. Michigan: Addison-Wesley Professional, 2012. [19] D. Tudor and I. Tudor, The DSDM Atern Student Workbook: A Guide to the Definitive Agile Framework Lancashire, UK: Galatea Training Services Ltd, 2010. [20] S. Ambler and M. Lines Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise.

    [21]     June 2013. Introduction to agile modeling (AM). Effective Practices for eXtreme Programming and the Unified Process. New York: John Wiley and Sons, 2002. [23] L. Williams, K. Rubin, and M. Cohn, "Driving Process Improvement via Comparative Agility Assessment," presented at the Proceedings of the 2010 Agile Conference, 2010. (2010, June 2013). Comparative Agility (CA). Available: http://comparativeagility.com/

    [25] S. Soundararajan and J. D. Arthur, "A structured framework for assessing the "goodness" of agile methods," in 18th IEEE International Conference and Workshops on Engineering of Computer-Based Systems, ECBS 2011, Las Vegas, NV, 2011, pp. 14-23.

    [26]      S. Soundararajan, J. D. Arthur, and O. Balci, "A methodology for assessing agile software development methods," Dallas, TX, 2012, pp. 51-54.

    [27]      A. Qumer and B. Henderson-Sellers, "An evaluation of the degree of agility in six agile methods and its applicability for method engineering," Information and Software Technology, vol. 50, pp. 280-295, 2008.

    [28] A. Sidky, J. Arthur, and S. Bohner, "A disciplined approach to adopting agile practices: the agile adoption framework," Innovations in Systems and Software Engineering, vol. 3, pp. 203-216, 2007. [29] A. Sidky, "A Structured Approach to Adopting Agile Practices: The Agile Adoption Framework," PHD Thesis, Faculty of Engineering, Virginia Polytechnic Institute and State University, Virginia, USA, 2007. [30] H. C. Esfahani, E. Yu, and M. C. Annosi, "Strategically balanced process adoption," in International Conference on Software and Systems Process (ICSSP 2011), Waikiki, Honolulu, HI, 2011, pp. 169-178. [31] A. Cockburn, Agile software development. Boston, MA: Pearson Education, Inc., 2002.

    [32] O. Nierstrasz and M. Lungu, "Agile software assessment (Invited paper)," in 20th IEEE International Conference on Program Comprehension, ICPC 2012, Passau, 2012, pp. 3-10.

    [33] D. Spinellis, "Agility drivers," IEEE Software, vol. 28, 2011.

    [34]      S. Vinodh and S. R. Devadasan, "Twenty criteria based agility assessment using fuzzy logic approach," International Journal of Advanced Manufacturing Technology, vol. 54, pp. 1219-1231, 2011.

    [35] F. Petrillo and M. Pimenta, "Is agility out there? Agile practices in game development," Sao Carlos, 2010, pp. 9-15.

    [36]      Agile-Alliance. (2011, July 2013). Guide to Agile Practices. Available: http://guide.agilealliance.org/

    [37] S. Ambler. (2009, July 2013). Agile Practices Survey Results. Available: http://www.ambysoft.com/surveys/practices2009.html

    [38]      J. Appelo. (2009, July 2013). The Big List of Agile Practices. Available: http://www.noop.nl/2009/04/the-big-list-of-agile-practices.html

    [39] A. Cockburn, Agile Software Development: The Cooperative Game 2nd ed.

Presenting a model for measuring agility in software companies based on agile principles