Saripalli, Phani Shashank, Darse, David Hem Paul
Context: In the last decade, Agile software development methods were proposed as a response to plan-driven methods. The main aim for this paradigm shift was to cope up with constant changes. Core values that are central to agile methods are described in Agile Manifesto. Agile practices define how agile methods are implemented in practice. Objectives: This study aims to investigate what practices were considered and adopted as part of agile philosophy, and identify evidence on the use of agile practices in reference to what defines agile. Methods: We conducted a systematic literature review. The review includes 186 primary studies published between 2000 and 2010. Quality assessment based on rigor and relevance as identified in the selected papers has been conducted. Non-empirical papers were classified based on themes they addressed. Empirical papers were analyzed based on two factors: 1. if they described the use of agile practices for a software project/product in general, 2. if they described the use of agile practices for a specific purpose/activity Application type, team size and experience of subjects in the primary studies were extracted. The alignment between practices reported in the studies with the core agile values is analyzed. Results: A total of 119 studies were conducted in industry and 67 in academia. Nearly half the papers published by researchers are non-empirical and present analysis of agile practices in various topics. Over half of the empirical papers were focused on evaluation/assessment of a specific aspect of agile. ‘Pair programming’ received most attention in this direction. Among the empirical studies that described agile practices for academic projects, ‘Pair programming’ and ‘Test driven development’ were the most considered practices. Among the 119 studies conducted in industry, 93 studies described the use of agile practices for the overall project/product development while the remaining studies described experiences of single practices like Pair Programming or the modification/adoption of agile for non-software aspects in software projects. Practices adopted have been ranked based on team size, practitioners’ experience and application type. A method for agile assessment based on core agile values is developed and exemplified. Conclusions: Practices that are considered agile vary with context although ‘Pair programming’, ‘Continuous integration’, ‘Refactoring and Testing continuous throughout the project are the most common practices used. ‘Test driven development’ was not highly adopted by practitioners. But it was not clear if test cases were written before code construction in projects where continuous testing was performed. However, this was completely opposite in academic projects. Practices ‘On-site frequently modified. In many of the studies inspected, practices adopted were not aligned with agile values. Although practices related to technical aspects of software development are in place, agile practices that focus aspects like ‘working together’ and ‘motivated individuals’ are often not used in practice. Moreover, many of the studies were not reported to an extent that it was possible to draw any inferences on the usability/applicability, benefits and limitations of the agile practices. To this end, a major implication is to improve the quality of the studies and a need for a common framework to report the results of agile practices’ adoption.
The impact of agile principles and practices on large-scale software development projects : A multiple-case study of two software development projects at Ericsson / Effekten av agila principer och praxis i storskaliga mjukvaruutvecklingsprojektLagerberg, Lina, Skude, Tor January 2013 (has links)
Agile software development methods are often advertised as a contrast to the traditional, plan-driven approach to software development. The reported and argued benefits on software quality, coordination, productivity and other areas are numerous. The base of empirical evidence to the claimed effects is however thin, and more empirical studies on the effects of agile software development methods in different contexts are needed, especially in large-scale, industrial settings. The purpose of the thesis was to study the impact of using agile principles and practices in large-scale software development projects at Ericsson and it was carried out as a multiple-case study of two projects. One of the projects had implemented a limited number of agile software development practices and was largely plan-driven, while the other project had fully adapted its organization and product design for agile software development. Propositions of possible effects of the use of agile principles and practices in the two projects were generated by a literature review. Empirical data was then collected from online surveys of project members, internal documents, personal contact with key project members and a collection of metrics, to study the presence of the proposed effects. The study was focused on eight different areas: internal software documentation, knowledge sharing, project visibility, pressure and stress, productivity, software quality and project success rate. Agile principles and practices were found to: Lead to a more balanced use of internal software documentation, when supported by sound documentation policies. Contribute to knowledge sharing. Increase project members’ visibility of the status of other teams and the entire project. Increase coordination effectiveness and reducing the need for other types of coordination mechanisms. Increase productivity. Possibly increase software quality. Additionally, the study showed that internal software documentation is important also in agile software development projects, and cannot fully be replaced with face-to-face communication. Further, it was clear that it’s possible to make a partial implementation of agile principles and practices, and still receive a positive impact. Finally, the study showed that it’s feasible to implement agile principles and practices in large-scale software development. It therefore contributes to understanding the effects of agile software development in different contexts.
No description available.
Liu, Di, Zhai, Zhichao
Context. With the popularity of Agile methods, many studies about Agile software development has been done by researchers. Among the phases in Agile software projects, planning is critical because it provides an overview of the project and a guiding of future work. In addition, success factors are also mandatory to the success of Agile software development. The current literature focus on the success factors during the whole lifecycle rather than planning phase, and they don’t make an in-depth analysis on the factors. In this thesis, we perform an empirical study to deeply study the critical success factors at agile planning phase. Objectives. The main aim of our research is to identify the critical success factors at Agile planning phase and challenges associated with each factor. We list four objectives to support our main aim. First is to investigate the factors that are mandatory to the success of Agile software development at planning phase. Second is to investigate the challenges associated with each factor. Third is to find out the ways to address these challenges. The last is to identify the consequence of not ensuring these factors. Methods. We employed two research methods: systematic mapping and survey. Systematic mapping is used to identify the critical success factors of entire lifecycle in current literature. To find critical success factors at agile planning phase and make in-depth analysis, we conducted a survey based on an online questionnaire. The online questionnaire was consisted of open-ended questions and was sent to respondents who have experience on Agile development. Results. Through systematic mapping, we identified 13 papers and 47 critical success factors for Agile software development. We also made a frequency analysis for these factors and they will be the effective evidence to support the results of survey. Through the survey, we identified 13 critical success factors at agile planning and made an in-depth analysis for these 13 factors. These 13 factors are divided into two categories: people factor (individual-level, team-level) and process factor. Through the contrastive analysis of mapping results and survey results, we found that 7 factors of survey results are same or similar with some factors shown in mapping. The other 6 factors of survey are first shown. Conclusions. The factors proposed in this thesis are proved that they are important to the success of the project at planning phase. Failure to consider these critical success factors may lead to inefficient planning and even result in the failure ofthe whole project. The challenges and corresponding solutions can help organizations well manage these critical success factors. In conclusion, these detailed descriptions of critical success factors can be used as a guideline to help people increase the chance of successfully developing software with high quality and low cost in practice.
Integrating User Experience (UX)Development with Agile SoftwareDevelopment Practices. : A Multiple Case Study Involving Organizations DevelopingInteractive Healthcare Technology (IHT) ApplicationsNadikattu, Srikar Reddy January 2016 (has links)
Context. User Experience has become key to product development in recent years, as manyorganizations have realized its role in maintaining high user acceptance ratings. User ExperienceDevelopment and Agile Software Development are two highly iterative processes and user-centricprocesses. While both methods stack up well theoretically, there are many challenges encountered whenthey are integrated together in real-world development scenarios. Similar to Agile development, UserExperience Development, has many phases: performing user research, gathering UCD (User-CenteredDesign) requirements, iterating design activities, and performing usability evaluation through user tests.Executing both processes in parallel and mapping their corresponding phases is a major issue andapplying these principles in development environment is even more challenging. This integration bearseven more significance in the field of healthcare technology, where user-centered requirements ofpatients and medical practitioners need to handled systematically, as there are a wide range ofspecifications that cater to unique individuals. Hence, a case study was conducted in two majororganizations involved in the development of Interactive Healthcare Technology (IHT) applications. Objectives. Through a case study, the author attempts to investigate the factors that influence theintegration between UX development and Agile methodologies. These factors include the contemporarytools, processes and methods (TPMs) that are being used integration and the challenges that persistwhen it is applied in industry. The study aims to analyze the Agile-UX development approaches of twodistinct organizations, involved in the same domain, to get an understanding of the mentioned factors. Methods. The multiple case study was conducted through interviews, surveys and direct observation.The qualitative data analysis of the surveys was done through thematic analysis. Quantitative dataanalysis was performed on the data gathered from the surveys. A literature review was conducted priorto the case study to gain knowledge on this issue, which also partially answers the research questions.The case study design was kept consistent across both organizations. Results. Through the results of the case study and a literature review, current UX development practicesin the industry have been identified. The challenges encountered at both case organizations have been studied. These results are further validated and contrasted with the results of the literature review.Following, a retrospection of the methods employed at the case environments, a set of recommendationsfor better integration was generated. A detailed comparative analysis of Agile-UX integration at twoorganizations has been documented. At the end a generic framework has been proposed based on theanalysis of results acquired. Conclusions. Numerous conclusions were drawn from the results and data analysis. Several challengeswere identified through the study, in addition to those suggested by relevant literature. Some of thesewere uniquely prevalent in the field of IHT development. It was found that dynamically changing usercenteredrequirements and late integration of usability and UX development with Agile practices werethe most profound challenges. Adoption of UCD techniques such as Design Studio played a positiverole in easing integration. Usability evaluation and user research are also major factors in the integrationprocess. Lack of time to iterate design and issues in scheduling and performing usability testing had abig impact. Involving users in the design and development process from an early stage is essential toensure high usability and good user experience of the product. The framework designed to counter thesechallenges, takes into account, all these aspects to provide a meticulous Agile-UX integrationframework. Some key conclusion drawn from this framework, are that the application of the “One SprintAhead” approach diminishes many challenges, while performing usability testing in parallel withsystem testing can support integration.
A startup is a fledgling business designed to deliver a new product or service under conditions of extreme uncertainty. In the 21st century, startups have been growing significantly both in developed and developing countries. Since2014, startups are currently a new booming phenomenon in Indonesia. Nowadays, there are 1,716 registered startups that have been rapidly growing in Indonesia which also places the country in 4th place worldwide after theUnited States, India, and the United Kingdom. Startups in Indonesia were forecasted to grow significantly due to a strong macroeconomic outlook and favorable demographics. This research is a qualitative study to provide an academic literature for Indonesian startups, especially for agile software development. Regarding the high failure rate for startups, the purpose of this study is to explore the perceived success factors of Indonesian agile development startups. It also covers the adoption of implementing agile project management. This study was conducted through interviews from 20 participants within various IT-related startups in Indonesia. The implementation of agile methodologies has been broadly found in software development projects in Indonesian startups with Scrum as the common agile practice. Most of them have been using agile methods for less than a year. Contrarily, a minority of the participants refused to use agile methodologies and chose a traditional way, such as the waterfall method. It has been investigated that there are six perceived critical success factors that were found in implementing agile methodologies, as follows: project definition process, management commitment, project schedule, team environment, team capability, and delivery strategy. In addition, there is a positive correlation between those critical success factors with previous studies and startup characteristics.
AUTOMATION OF A CLOUD HOSTED APPLICATION : Performance, Automated Testing, Cloud Computing / AUTOMATION OF A CLOUD HOSTED APPLICATION : Performance, Automated Testing, Cloud ComputingCHAVALI, SRIKAVYA January 2016 (has links)
Context: Software testing is the process of assessing quality of a software product to determine whether it matches with the existing requirements of the customer or not. Software testing is one of the “Verification and Validation,” or V&V, software practices. The two basic techniques of software testing are Black-box testing and White box testing. Black-box testing focuses solely on the outputs generated in response to the inputs supplied neglecting the internal components of the software. Whereas, White-box testing focuses on the internal mechanism of the software of any application. To explore the feasibility of black-box and white-box testing under a given set of conditions, a proper test automation framework needs to be deployed. Automation is deployed in order to reduce the manual effort and to perform testing continuously, thereby increasing the quality of the product. Objectives: In this research, cloud hosted application is automated using TestComplete tool. The objective of this thesis is to verify the functionality of Cloud application known as Test data library or Test Report Analyzer through automation and to measure the impact of the automation on release cycles of the organization. Methods: Here automation is implemented using scrum methodology which is an agile development software process. Using scrum methodology, the product with working software can be delivered to the customers incrementally and empirically with updating functionalities in it. Test data library or Test Report Analyzer functionality of Cloud application is verified deploying testing device thereby the test cases can be analyzed thereby analyzing the pass or failed test cases. Results: Automation of test report analyzer functionality of cloud hosted application is made using TestComplete and impact of automation on release cycles is reduced. Using automation, nearly 24% of change in release cycles can be observed thereby reducing the manual effort and increasing the quality of delivery. Conclusion: Automation of a cloud hosted application provides no manual effort thereby utilization of time can be made effectively and application can be tested continuously increasing the efficiency and the quality of an application. / AUTOMATION OF A CLOUD HOSTED APPLICATION
Användning av prototyper som verktyg för kravhantering i agil mjukvaruutveckling : - En fallstudie / Prototyping as a Technique for Requiements Engineering in Agile Software Development : - A Case StudyAbrahamsson, Linn, Melin Wenström, Peter January 2018 (has links)
Kravhantering vid agil mjukvaruutveckling är en utmaning som allt fler företag ställs inför.Prototyper, modeller som liknar tilltänkta slutprodukter, kan användas för att inhämtaviktig information om det som ska utvecklas. För att beskriva hur lik en prototyp är dentilltänkta slutprodukten används begreppet verklighetsfaktor. Studiens syfte är dels attöka kunskapen kring prototypanvändning i agil mjukvaruutveckling, dels att undersökavilken effekt en prototyps verklighetsfaktor har då prototyper används i diskussioner inomkravhantering. En fallstudie görs på företaget Exsitec där personal intervjuas angående prototypanvändning i mjukvaruprojekt. Två prototyper utvecklas sedan med låg respekti-ve hög verklighetsfaktor och används som diskussionsunderlag i intervjuer. Studien visar att användning av prototyper i mjukvaruprojekt kan bidra till ökat förtroende hos kun-der, förbättrad kommunikation med kunder och kan förenkla att uppnå konsensus mellan olika intressenter. Vidare kan de, beroende av hur de används, bidra till helhetsbilden avprodukten och fungera som dokumentation. Studien påvisar även några, om än subtila, skillnader i den information som samlas in med hjälp av prototyper med låg respekti-ve hög verklighetsfaktor. Hög verklighetsfaktor tycks medföra att fler krav samlas in, men göra respondenter mindre benägna att vilja komma med förslag på mer omfattandeförändringar. / Requirements Engineering (RE) in Agile Software Development (ASD) is a challenge thatmany face and several techniques exist when doing so. One such technique is prototyping, when a model of a product is used to gather important information in software develop-ment. To describe how much a prototype resembles the product the notion of fidelity is used. The aim of this study is to contribute to research regarding prototyping in ASD,and to examine the effect of a prototype’s fidelity when using prototypes in discussionsduring RE. A case study is performed at the company Exsitec where staff are interviewedregarding prototyping in software development. Thereafter, two prototypes of low andhigh fidelity are developed and used in interviews as a basis for discussion. Based on thisstudy, the use of prototypes in software projects can help customers trust the process,improve communication with customers, and facilitate when trying to reach consensusamong different stakeholders. Furthermore, depending on how they are used, prototypescan contribute to understanding the big picture of the requirements and can also serve asdocumentation. The study also shows some, albeit subtle, differences in the informationcollected using prototypes with low and high fidelity. The use of a high fidelity prototypeseems to generate more requirements, but makes interviewees less likely to come up withlarger, more comprehensive requirement changes.
01 December 2014
For many years, most IT departments used the same software development methodology called waterfall. This methodology outlines distinct phases for project completion; each phase needing to be completed prior to the start of the next. The primary accounting standard for allocating costs for software development is written in the language of waterfall. Costs are either capitalized or expensed depending on the type of activity that was performed. IT departments have been moving toward a new group of software development methodologies called agile. These methodologies do not follow the phases of waterfall. This makes the current accounting standard for software development difficult to interpret and determine the appropriate transaction. This further hinders IT organizations attempts to better quantify business value of software projects. To examine this issue, a new construct called accounting clarity is introduced in this research. Accounting clarity is an agreement between IT and accounting regarding the treatment of software development costs. This study shows that it is essential for both IT and accounting to work together to determine a solution. The accounting clarity construct is developed from the “ilities” of software quality models and the Capability Maturity Model (CMM) Level 3 key process area (KPA) of intergroup coordination. Intergroup coordination provides the concepts for accounting clarity as the two groups must coordinate to determine the appropriate accounting treatment. The “ilities” are characteristics that should be followed and measured throughout a software development project to ensure long term maintainability of software. This study proposes that accounting clarity should be one of the "ilities" in the software quality model. A portion of the study of accounting clarity examines the relationship between accounting clarity and project control, proposing a positive relationship between the two variables. Then the study examines factors that help to increase accounting clarity. These factors were derived from teamwork and coordination literature. To test the hypothesized relationships, a survey methodology was used. Individuals working on agile software development projects were participants in the survey. This study contributes to both the IT and accounting literature. The research provides a framework to examine other contexts in which the current accounting standards are unclear. As changes happen more frequently in business, this is more likely to occur on a frequent basis. The study has practical implication for software development as it highlights the importance of understanding the accounting implications prior to the project and continuously throughout the lifespan of the software. Adding accounting clarity to the “ilities” of software quality helps software development teams include this in project plans with any software development methodology.
Pringle-Wood, Wayne Austen
Thesis (MPhil)--Stellenbosch University, 2014. / ENGLISH ABSTRACT: Organisations are faced with ever increasing complexity. While there are many responses to complexity just as there are many definitions of complexity this thesis highlights the use of agile software development as a useful method. The case of agile software development is influenced by its people first approach and minimal process implementation to implement constraints in which phenomena of complexity can be understood. Chapter 1 introduces why complexity is relevant in the organisation today and the issues associated with complexity. A basic introduction to agile software development and why it is a response to complexity is tabled. Chapter 2 investigates the concepts of complexity. To highlight the difference between linear and non-linear systems and reductionistic thinking the ideas that not all things are complex is explored. Key concepts of complex systems are described to come to a better understanding of what entails a complex system. Information theory and dynamic systems are discussed including system attributes such as attractors and bifurcations. Finally the theory of complex adaptive systems is presented and a classification of all complexity theories is tabled. Chapter 3 is centred on agile software development, presenting practices and processes as a understanding of how agile software development is applicable to complexity. Three agile methods are identified. Chapter 4 presents the ideas of modelling and limits to understanding. Models of complex systems are useful but are limited, due to the properties of complex systems. The concept of mental models leads to models of organisations and how leaders need to help with transformation of these models towards models that are more aligned to agile type thinking. Chapter 5 looks at the core concepts, and practices of agile applied to complexity and why these are relevant in responding to complexity. Towards the end of chapter the role of narrative is explored in the terms of problem definition and solutioning in complex systems. Chapter 6 concludes the thesis with insights where agile software development is an appropriate response to complexity and the conditions in which it is not. / AFRIKAANSE OPSOMMING: Organisasies staar toenemende kompleksiteit in die gesig en alhoewel daar verskeie maniere bestaan om kompleksiteit teen te werk, asook verskeie definisies van wat kompleksiteit is, focus die tesis op aanpasbare ("agile") sagteware ontwikkeling as n bruikbare metode. Met eienskappe soos “mense/verbruiker/gebruiker – eerste” benadering asook minimale proses implementering, verskaf aanpasbare sagteware ontwikkeling die raamwerk waar binne die konsep kompleksiteit verstaan kan word. Hoofstuk 1 bespreek die kwessies rondom kompleksiteit en die relevansie daarvan in organisasies vandag. Verder word aanpasbare sagteware ontwikkeling kortliks bespreek en hoe dit gebruik kan word om kompleksiteit te verstaan, word getoon. Hoofstuk 2 ondersoek die verskillende konsepte random kompleksiteit. Daar word gekyk na linêre en nie-linêre stelsels asook die oortuiging dat nie alle dinge kompleks is nie word geondersoek. Sleutel kenmerke van komplekse stelsels word beskryf om sodoende ‘n better begrip te kry van wat ‘n komplekse stelsel behels. Informasie teorie en dinamiese stelsels word bespreek, insluitend kenmerke soos “attraktors” en “bifurkasies”. Laastens, word die teorie rondom komplekse aanpasbare stelsels bespreek en ‘n klassifikasie van alle komplekse teorieë word uiteengesit. Hoofstuk 3 fokus op “agile software development” en hoe sulke praktyke en prosesse toepaslik is op kompleksiteit. Daaropvolgend word drie aanpasbare metodes ge-identifiseer en individueel bespreek. Hoofstuk 4 verduidelik die idees rondom modellering en grense van begrip. Modelle van komplekse stelsels kan nuttig wees, maar weens die eienskappe van komplekse stelsels, is die nuttigheid beperk. Die konsep van mentale modelle lei tot modelle van organisasies en hoe leiers hierdie modelle moet transformer na modelle wat meer in-lyn is met agile denkwyses. Hoofstuk 5 kyk na die kern konsepte en praktyke waar “agile” toegepas word tot kompleksiteit en waarom dit relevant is om kompleksiteit teen te werk. In die tweede helfde van die hoofstuk word die rol van narratief ondersoek in terme van probleem-identifisering en die soek na oplossings in komplekse sisteme. Hoofstuk 6 sluit af met insigte tot aanpasbare sagteware ontwikkelingsmetodes as toepaslike oplossing tot kompleksiteit asook die toestande waaronder dit geld.
Page generated in 0.1542 seconds