Author: Mr Melaku Girma STSM Period: 2018-04-23 – 2018-04-30
Hosting institution: Ss Cyril and Methodius University. Skopje, North Macedonia
From ITC: Yes
Aim and Motivation:
We are pursuing a research on Scaling Up Agile for Large Software Development Projects. The research will try to explore and is envisaged to achieve the following specific objectives.
1. To identify the specific problems that Agile companies face when trying to implement an agile process, in particular, related to the implementation of large projects.
2. To identify the software development practices, which are useful for the success of large-scale software development projects.
3. To identify software development practices, which should be incorporated into the agile development method thereby scale it up for large-scale software development projects.
The Short Term Scientific Mission (STSM) is necessary to achieve the following activities from the host institution’s country, Portugal.
A. To gather relevant data
B. Closely work with gurus in the field
C. To understand Software Practices in COST territories
D. To study and design an improved Software Development method that will enable to deliver software on budget and time, this will, in turn, improve the software development practices of Sheldon Project.
Contribution to Scientific Objectives of the Action:
The Standish Report (2014) exhibits that only 9% of projects in large companies were successful. 61.5% of all large company projects were challenged and 29.5% were impaired and subsequently cancelled. The report further identified that the failure of the projects is mainly associated with, Lack of User Input, Incomplete Requirements & Specifications, Changing Requirements & Specifications, Lack of User Involvement and others more.
Similarly, in another study of 1,027 IT projects in the United Kingdom, Thomas (2001) reported that strict adherence to Traditional Software Development Methods (such as Waterfall, RUP, and Spiral practices) was the single largest contributing factor for failure.
Hence, to address some of the traditional methods’ shortcomings, Agile methods have been proposed (Highsmith& Cockburn, 2001).
Seventeen practitioners were sympathetic to finding an alternative to the detailed plan-driven development approach convened in February 2001 (Highsmith, 2002; Sidky, 2007). The outcome of this meeting, “The Manifesto for Agile Software Development” (Beck et al., 2001), declares: “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
The creation of this manifesto brought to light many different Agile development processes and methods and helped many others emerge. A short list of the well-known agile methods includes Extreme Programming (XP), Scrum, the Dynamic Systems Development Method (DSDM), Agile Modeling (AM), Adaptive Software Development (ASD), Lean Development (LD), Crystal Methods and Features‐Driven Development (FDD).
Agile methods focus on establishing close collaboration between customers and developers, and delivering software within time and budget constraints. Since they rely on frequent informal face-to-face communication rather than providing lengthy documentation, the process is repetitive, adaptive, and minimally defined (Aguanno, 2005). The key features of Agile methods are continuous requirements gathering; frequent face-to-face communication; pair programming; refactoring; continuous integration; early expert customer feedback; and minimal documentation (Bose, 2008, cited in (Jalali and Wohlin,2012)). The most widely used methodologies based on the Agile principles are Extreme Programming (XP) and Scrum (Somerville, 2011).
Despite the potential benefits of the Agile methods, as (Cho, 2010) described, many organizations are reluctant to throw their traditional methods away and jump into Agile methods. Their reluctance is the result of several issues, including (1) the Agile methods significantly reduce the amount of documentation and rely heavily on tacit knowledge, (2) these methods have not been sufficiently tested for mission/safety-critical projects, (3) believe that these methods are not adequate for highly stable projects, (4) a concern that Agile methods can be successful only with talented individuals who favour many degrees of freedom, and (5) that Agile methods are not appropriate for large-scale projects. On top of these, many published papers describing positive benefits is that most agile methods have been primarily applied to small-scale and relatively simple projects.
Somerville (2011) further explains because of their focus on small, tightly integrated teams, there are problems in scaling them to large systems. However, because of the need for security, safety, and dependability analysis in critical systems, agile methods require significant modification before they can be routinely used for critical systems engineering. It is not clear whether Agile methods can provide end users with the desired quality, in a timely manner, on large-scale and mission-critical projects (Cho, 2010).
The foregoing discussion clearly shows the need for research study on the application of Agile methods in large-scale software projects to leverage on the benefits they promise to offer. This research, therefore, attempts study and design agile framework that embraces the software practices useful for the success of large-scale software projects.
Our research will contribute to Scientific Objectives of the Action through the following ways.
- Providing a suitable software development methodology that warrants success (on budget and time) in the development of smart habitat software solutions for the elderly.
- Promoting iterative software requirement engineering to ascertain acceptable smart habitat software solutions for the elderly.
- Fostering collaboration among software engineers, aged people, and other groups as necessary in their engagement to create Smart Habitat for the Elderly.
We are employing a mixed research methodology. Systematic Literature review techniques, multiple Case Study and Grounded Theory (GT) research methodologies are used to create a framework of Large-Scale Agile Software Development Method.
GT was initially developed by Glaser and Strauss, is a research method concerned with the generation of theory (Glaser & Strauss, 1967), which is ‘grounded’ in data that has been systematically collected and analyzed (Strauss & Corbin, 1994). It is defined as “a general methodology of analysis linked with data collection that uses a systematically applied set of methods to generate an inductive theory about a substantive area” (Glaser, 1992; cited in Hoda et al., 2013). GT is “an approach to theory development that involves deriving constructs and laws directly from the immediate data that the researcher has collected rather than drawing on an existing theory”(Gall et al., 2003; cited in Cho, 2010). Due to the usefulness in developing context-based, process-oriented descriptions and explanations of the phenomenon, grounded theory approaches are becoming common in Information Systems (IS) research (Cho, 2010). It has become a powerful tool for IS scholars interested in theory development, allowing researchers to conduct pioneering research with both flexibility and rigour (Birks et. al, 2013).
The GT analysis began with the identification of concepts within the data. GT is an analytical process for discovering theory through the analysis of data (Glaser and Strauss, 1999). The new theories arise from the data being analyzed and are thus grounded in that data (Bass, 2014).
Grounded Theory Applications in Information Systems and Software Engineering Research
There are many research works that employed Grounded Theory in Information Systems and Software Engineering. Recently, it has increasingly been used in software engineering research domain (Hoda et al., 2013). For example, Orlikowski’s (1993) paper is considered one of the best examples of Grounded Theory application in the information systems research domain. Orlikowski used a Grounded Theory research approach to develop a theoretical framework for conceptualizing the organizational issues around the adoption and use of CASE (Computer Aided Software Engineering) tools.
Bass (2014) used Grounded Theory to study and understand how product owner teams scale agile methods to large distributed enterprises. Hoda et al., (2013) employed Grounded Theory on the research topic “self-organizing roles on agile software development teams”. Cho (2010) employed the Grounded Theory to research the possibility of creating a hybrid model of scrum agile and RUP (Rational Unified Process).
S.N. Activities Time frame
1. Consulting relevant Literature and work on methodology (Grounded Methodology) October 25 to
November 24, 2018
2. Field Data Collection from Large-Scale Software Development Companies
(Interview, Observation, Focused Group Discussion, Secondary Data Analysis) November 1 to
November 15 ,2018
3. Preliminary Analysis November 5 to
November 24, 2018
. Aguanno, K. J. (2005). Managing Agile Projects, Multi‐Media Publications Inc.
. Bass, J. M. (2014). How product owner teams scale agile methods to large distributed enterprises. Empirical Software Engineering, 1-33.
. Beck, K. , Martin, R. C., Cockburn, A., Fowler M., &Highsmith, J. (2001). Manifesto for Agile Software Development, www.agilemanifesto.org, Utah.
. Birks, D. F., Fernandez, W., Levina, N., &Nasirin, S. (2013). Grounded theory method in information systems research: its nature, diversity and opportunities. European Journal of Information Systems, 22(1), 1-8.
. Cho J. Juyun, 2010. AN EXPLORATORY STUDY ON ISSUES AND CHALLENGES OF AGILE SOFTWARE DEVELOPMENT WITH SCRUM, Logan, Utah, UTAH STATE UNIVERSITY
. Glaser BG, Strauss AL (1999) Discovery of grounded theory: strategies for qualitative research. Aldine Transaction, Piscataway.
. Glaser, B. G., & Strauss, A. L. (1967). The discovery of grounded theory: strategies for qualitative theory. New Brunswick: Aldine Transaction.
. Highsmith, J. (2002). Agile Software Development Ecosystems, Pearson Education, Indianapolis.
. Highsmith, J., & Cockburn, A. (2001, September). Agile software development: The business innovation. IEEE Computer, 34(9), 120-122.
. Hoda, R., Noble, J., & Marshall, S. (2013). Self-organizing roles on agile software development teams. Software Engineering, IEEE Transactions on,39(3), 422-444.
. Jalali, S., &Wohlin, C. (2012). Global software engineering and agile practices: a systematic review. Journal of software: Evolution and Process, 24(6), 643-659.
. Orlikowski, W. J. (1993). CASE tools as organizational change: Investigating incremental and radical changes in systems development. MIS quarterly, 309-340.
. Sidky, A. (2007). A structured approach to adopting agile practices: The agile adoption framework (Doctoral dissertation, Virginia Polytechnic Institute and State University).
. Somerville, I. (2011). Software Engineering (9thed.). Addison-Wesley, Boston.
. Standish Group International. (2001). Chaos Report, Retrieved September 20, 2018, from https://www.projectsmart.co.uk/white-papers/chaos-report.pdf
. Strauss, A., & Corbin, J. (1994). Grounded theory methodology. An overview in Denzin’s & Y. Lincoln (EDs) Handbook of Qualitative Research.
. Thomas, M. (2001). It projects sink or swim. British Computer Society Review.