Software Development Efficiency A Case Study In A Mobil . - DiVA Portal

Transcription

Software Development EfficiencyA Case Study in a Mobil PaymentCompanyNoman Kakakhel & Shah HassanDepartment of Industrial Engineering and ManagementProject Management and Operational DevelopmentDegree project: MasterSupervisor: Sven Antvik

AcknowledgementsWe would like to thank all the employees in Easypark who took time from their busyschedules to contribute to our thesis with a welcoming and appreciating attitude.Further, we would also like to extend our sincerest gratitude to Sven Antvik for his patienceand motivation to help us finalize this report. Moreover, we would also like to thank thefaculty in our Master program and administration especially Torbjörn Eriksson.

AbstractDue to Internet, the IT industry have seen rapid changes and to compete in the digitalwork, the organizations need more vigilance than ever before to respond to marketchanges and customer needs. Some organizations have opted to go agile to be moreefficient in their software development but still deploying agile methodology andreaping its fruits further needs more research and empirical evidence.This research is a case study to evaluate the deployment of agile methodology inEasypark and explore its efficiency focusing on their structure and organization. Certaincriterions are chosen to evaluate software development efficiency against that and toanalyse what the deployment in the organization has led to.The method chosen for this study is a case study, where the empirical data is gatheredthrough semi structured, and qualitative interviews from five senior employees inEasypark. The responses were analysed and reviewed under the light of theoreticalbackground to elaborate the research question.The results of this case study revealed that efficiency in general have greatly beenimproved after adopting agile methods in Easypark and the core contributor is thepermanent teams for different projects. There have been quite a few complications todeploy agile and that must be taken into consideration when other organizations plan toadopt agile methodologies.KeywordAgile, Software Development Efficiency, Agile Software Development.

Table of Content2.1.1Background . 11.2Problem Statement . 31.3Research Question . 41.4Study Purpose . 51.5Limitation . 5Methodology . 62.1 Search of literature . 62.2 Why EasyPark . 62.3 Research Strategies . 72.3.1 Surveys . 72.3.2 Experiments . 72.3.3 Action Research . 82.3.4 Case Study . 82.3.5 Why Case Study. 82.3.6 Alternative Method . 92.4 Data Collection . 92.4.1 Documentation .102.4.2 Questionnaire .102.4.4 Interviews .102.4.4 Why Interviews .112.4.5 Alternative Method .122.5 Why Qualitative Data.122.6 Limitations .132.7 Delimitations: .132.8 Validity and Reliability .132.9 Ethical Consideration .143.Literature Review . 153.1 Efficiency as a concept in software development .153.1.1 Learning Progression .163.1.2 Employee’s Satisfaction .163.1.3 Customer Satisfaction .173.1.4 Time-to-market .173.1.5 Communication and Collaboration .173.2 Waterfall Method.183.3 Agile Method .193.3.1 Agile Manifesto .193.3.2 An overview of Agile Development .20

3.3.3 Agile Methodology Scrum .223.3.4 How scrum looks like in Easypark: .244 Case Study . 264.1 Learning Progression .264.2 Employees Satisfaction .274.3 Customer Satisfaction.294.4 Time to Market .304.5 Communication and collaboration.304.6 Summary .31 Learning Progression .315. Analysis . 335.1 Learning Progression .335.2 Employees Satisfaction .335.3 Customer Satisfaction.355.4 Time to Market .365.5 Communication and Collaboration .365.6 Discussion .376. Conclusion. 396.1 Conclusion .396.2 Theoretical and Empirical contribution .406.3 Future Research .41Reference . 42Respondents: .45Appendix . 65Appendix 1: Interview Questions .65List of FiguresFigure. 1 . 10

1. IntroductionIn this chapter we will be discussing agile software development and the purpose of our studyhighlighting research question and problem discussion to clarify to our readers what exactlywe are aiming to achieve and how this will help us understand agile software development.1.1BackgroundIn today’s business world a number of companies are facing new scenarios due to change indemands and global setups. This makes it vital for companies to be flexible and have theability to adapt to market changes to be a relevant player. The situation in IT industry is morecomplex than others as the changes are rapid and innovative and therefore, it is vital toimplement an appropriate software development method for projects (Klarke, et al., 2012). Todeliver project on time and meet the customer needs, many IT organizations opted to use agilemethods for developing software (Mishra, et al., 2012). This allows them to adjust to marketchanges and respond to the customer request in good time. The agile methods can simplydescribe a process of “flexibility and responsiveness to changes” (Papadopoulos, 2015).Traditionally software development was mostly executed through a method known aswaterfall. As the name indicates, the process had a concrete beginning and end and therequirements from customers were needed to be clear to proceed with development(Kisielnicki, et al, 2016). This kind of setup needed a cohesive and stable work environment,which generally doesn’t exist in the real-world work places. The drawback of this processwas that the products delivered to the market would usually be out dated and it is difficult toadopt changes in the middle of an ongoing project. However, there are some advantages ofusing traditional methods i.e. it emphasis on scope of a project in terms of budget andschedules, it can be useful where projects need to be well managed and results are ratherpredictable, in projects where a structured way of control is required (Kisielnicki, et al,2016). To tackle this scenario, the IT industry started to develop a working method that areagile and have the flexibility to adjust to customer requirements while developing the productas well as have the capacity to deliver the product in a much fast pace to the market1

(Donmez, 2016). Agile methods got very popular with emergence of internet as the marketconditions changed to a huge extend as the companies were in huge competition to produceefficient and reliable software with the least possible time to market on scarce resources(Stankovic, et al. 2013).What is agile software development and development efficiency?Agile software development is defined as “An iterative and incremental (evolutionary)approach to software development which is performed in a highly collaborative manner byself-organizing teams within an effective governance framework with "just enough" ceremonythat produces high quality solutions in a cost effective and timely manner which meets thechanging needs of its stakeholder” (Beck et al. 2001). Moreover, “efficiency meansaccomplishing objectives quickly and with minimal resource usage” (Fabian et al., 2015)which in general means efforts put up by business and results obtained by business.Agile methods were first introduced in the 1990s but the industry was skeptical of its use tillrecently when they started to use it commercially (Korkala, 2014). Even though, manyorganizations have started to use agile but the process have been highly challenging. In themobile payment industry Easypark has been one of the first few who have started to use agilemethods recently.There are different processes in agile development but “scrum” is the most popular softwaredevelopment process to introduce agility in your product development. Easypark is usingScrum as well to have agile software development. The core concept is that there arepermanent teams of employees instead of projects. The software development is done in“sprints” which are short iterations and they are expected to deliver the “user stories” whichare the requested functionalities.Requirements gathering and elaboration process is done by the Product owner, who describeuser story to request the development of a particular functionality. The Product owner whileelaborating make sure that the main stakeholders which is a customer gets the product thatsuits his needs. Further, each team also has a scrum master who ensures the product delivery2

in time. The developed product needs to meet the requirements of the stakeholder otherwise itwill be rejected in “acceptance testing” (Kniberg, 2007).1.2Problem StatementIt’s very subjective if agile methodology will actually help the organizations softwaredevelopment process or otherwise. Many organizations have started to use agile processes,which have helped them achieve competency and efficiency as well as they have managed toreduce cost. Many other organizations kept a skeptical approach to agile and believed that thiswould make processes more complex and less advantageous (Behel, et al., 2015). Many ofagile critics believe that the process is hard to implement practically and the cost benefitanalysis will always be negative. Further, the business needs changes so rapidly that not manyorganizations can respond to markets, which results in huge financial loss (Klarke, 2012).Implementation of agile methodology is the toughest part when it comes to softwaredevelopment processes. The organizational culture plays a huge role in its interpretation anddeployment. The process adoption will be viewed as a big organizational change and theresearch suggest that it’s the most challenging situation in terms of performance (Gandomani,et al, 2015). Further, with well-established organizations, there are already concrete processesand standards where people are used to it working in the same for decades and the change willbe seen negatively. It is vital that the new process implementation compliment the oldstandards as this can result in misunderstandings and would ultimately affect the efficiency ofemployees. Moreover, it’s relatively much easier to implement agile methodology in a flatorganization structure. Achieving the same in big corporations will be comparatively reallyhard due to its centralized hierarchical setup (Daneva, et al. 2013).Some studies have suggested that those who have worked with agile methods have a positiveopinion about the process while those who haven’t generally hold bias towards the processchange. This attitude bias may lead to less efficient work environment where employeeswon’t feel the energy to utilize their full potential resulting in loss for the organization(Gandomani, et al, 2015).Agile methodology comparatively doesn’t have sufficient documentation which can lead to achallenging situation when it comes to defining requirements for a certain functionality3

especially in some organizations who have interdependencies in their products (Claudia, et al,2013). It’s a lot cheaper to communicate when you already have standard processes in placed.In bigger IT organizations, it is not easy to adjust to changing business requirements as the ITapplications are developed through interdependent events which are not flexible for bigchanges. This situation can be tackled with Scrum methodology. It is vital for efficientsoftware development to have good communication and collaboration but there are noparticular standards for it rather Scrum lacks good documentation and this can result in loss ofknowledge, experience and organized history. A successful implementation not only needagile methods but also need good documentation and history.There is still quite some research needed to see the effectiveness of agile methodology and theuse in organizations is more of a trend. Quite a few organizations are still skeptical withbenefits of agile in the long term and as the software development is a very practical process.Prioritizing requirements regularly is a key component in agile software development method,but still it is not very clear how this process is performed (Al-Taani, 2013). There is need offurther empirical evidence to ensure that it will deliver the promised benefits not just in theshort term but long term as well. This study is an effort to help close the gap in literature.1.3Research QuestionThis study seeks to address the following question:How can the agile software process improve development efficiency?The research question is very important to understand scrum and how creativity andproductivity is achieved through agile processes. The research will somewhat help businessesto understand the core of agile and the motivation and reasons behind going agile for softwaredevelopment.4

1.4Study PurposeThe purpose of our research study is to have a deep understanding of agile approach throughinvestigating software development process by literature study and a case study at EasyParkto examine if implementation of the agile approach has enhanced software developmentefficiency.1.5LimitationThere are number of software development methods i.e. waterfall, prototyping, iterative andspiral development approaches used by the organizations for software development but thisstudy is focused only on agile software development methodology.The scope of this study is limited to software development process at Easypark. Due to thetime constrains and resources availability, the problem domain of this research will focus onlyagile software development processes, other organizational development processes will not beinvestigated in this study.5

2. MethodologyIn the methodology chapter, we will be focusing on the methodology we choose for thisresearch “How can the agile software process improve development efficiency?” and thejustification of it for the purpose of study. Moreover, we will elaborate which researchstrategy is selected, how the data collection will be handled and then how data is analyzed toproceed to the next section.2.1 Search of literatureSearch of literature is a key component while conducting a research study. To have a goodunderstanding of a research topic, it is essential to know about related work done previouslyas well as current work on a particular topic. Therefore, search of literature can be consideredas foundation for a research study and it can improve the current research or generates newresearch (Haraldstad, A.B, 2015). In this study we have used different sources for literaturesearch, i.e. book, journals, Science Direct, AMC library, IEEE explorer, and Google scholar.The key words used for literature search are software development efficiency, agiledevelopment method, and software development processes. Then, picked most relevantliteratures, which were authorized publications, recently published, containing in-depth andrequired information about the topic. Moreover, searched for most relevant articles within theproblem domain i.e. regarding agile software development processes and factors affecting itsefficiency.2.2 Why EasyParkThe case study is performed at Easypark, which is a registered organization and developmobile payment solution for parking payments as well as electrical vehicle charging solutionand residential permits for parking. The solution is highly technical and it needs to be updatedand tailored according to the user needs as well be integrated with latest research andsolutions in market related to parking payments, parking guidance and location services.Easypark is a perfect size organization to evaluate how agile have improved their softwaredevelopment as it’s highly technical as well as have direct impact on customers which can6

immediately report if something has gone good or bad. We will have to investigate theempirical evidence that agile can improve software development process.Easypark is using scrum as a method for agile software development and there are 8 teams,which are working in scrum. The teams are a mix of both software developers and businessproduct owners. The organization culture is very strong and the solution is complex whichmakes it difficult to introduce new ways of working.2.3 Research StrategiesThe most commonly used research strategies in conducting a research study are experiments,survey, action research and case studies (Dawnson, 2009).2.3.1 SurveysSurvey is used for acquiring significant and deeper information about a problem in a researchstudy (Dawnson, 2009). This method helps to produce information, which might be hidden ornot clearly available in written form. Data/information can be obtained through expert groupsmight include people (individuals, target group, expert in a specific field or depending on theobjectives of a survey), could be organizations or it could be some systems. According toCottrell (2014), “Questionnaires and surveys are popular methods for gathering evidence forprojects”. Data is collected through conducting questionnaires, which contains questionsregarding a specific subject and circulated among people and then feedback is analyzed forproblem solution. Survey is useful in collecting data in large amount through asking differenttypes of questions on a subject, and previous research can be replicated easily with the help ofadditional participant or expert group to compare the results.2.3.2 ExperimentsAs the name suggested, examining a specific research problem by doing some experimentaltests is called experimental research (Dawnson, 2009). The data collected from the tests isthen analyzed to investigate the problem. It is a common method used for research studies invarious fields of science, mainly practiced in social sciences but can also be adopted in anydiscipline associated to the subject. Experiments are useful in a research where quantitative7

methods are used; measuring situations, samples are selected, testing hypothesis andcalculation are required (Cottrell, 2014).2.3.3 Action ResearchAction research method can be used to bring some changes in an existent situation. This couldbe introducing of a new information system, which modify a specific scenario or creation of amethod for solving a research problem (Dawnson, 2009). Conducting action research, weshould keep strong focus on the research i.e. not to be much infatuated to complete a taskwithout concentrating on the actual research problem.The goal of this research is to investigate, if agile methodologies has improved the softwaredevelopment efficiency, which means it does not modify any real environment rather it seeksto figure out if performance of software development process has been improved. Therefore,action research cannot be considered a suitable approach in this research.2.3.4 Case StudyTo answer our research question, we have chosen the case study methodology as an approach.This methodology is more suitable to get a clear understanding to know the organization andhow the processes work. According to Cottrell (2014) “A case study is an in-depth study of anentity or phenomenon”. This method can be used to produce valuable qualitative data, whichis important for making critical analysis and proper solution of a case.The case study method is special as it has the ability to put in focus the toughest and complexproblems in the organization and can give more concrete answer to the questions raised(Cottrell, 2014). Moreover, according to Orlikowski (1991), a case study is more appropriatefor research design especially when the focus is on information systems as the interpretationgenerated is much more valid in comparison to the same done with other research methods.2.3.5 Why Case StudyThe aim of this study is to find if implementing agile methods has improved softwaredevelopment efficiency, and to answer this problem case study strategy is used. It provides indepth investigation of a case, and therefore by using case study we have obtained deep8

knowledge about the most important factors in software development process i.e.communication and collaboration, time-to-market, learning progression, customer’s andemployee’s satisfaction. Case study is a suitable approach that helps to examine this particularcase i.e. to study agile software development processes at EasyPark and then come up withreasonable solution. Further, through case studies qualitative data can be acquired, which isuseful to analyse these factors critically and answer the research question. As stated byCottrell (2014) case study has the capability to emphasize on some complicated issues of anorganization and aims to find proper solution. So, this method has been chosen to focus on theresearch problem by analysing the identified factors and seek answer if software developmentefficiency has been improved at EasyPark.2.3.6 Alternative MethodSurvey can be used an alternative strategy in this study. However, according to Cottrell(2014) there might be some difficulties while conducting surveys i.e. response form theparticipant can take long time, feedback from significant amount of participant is required, itcan be complicated to find participant having relevant expertise and questions can bemisinterpreted. Therefore, survey is not considered a suitable strategy in this study. Due tothe time constrains and study scope; it is not possible to find large number of people havingexpertise in the relevant fields and get responses within the required time. Therefore, survey isnot considered an appropriate method to answer the research problem and hence not selectedfor this study.2.4 Data CollectionIn conducting a research study, the main factor is to adopt a proper data collectionmethodology. Different methods can be used for data collection; some of the mostly usedmethods are interviews, observation studies, documents studies (i.e. books and articles etc.)and questionnaires (Dawnson, 2009). Data used in this study is gathered through differentsources, i.e. book, journals, AMC library, IEEE explorer, Science Direct, and Google scholarwithin the problem domain.9

2.4.1 DocumentationDocumentation study is based on observations where existed data is investigated in a research(Denscobme, 2010). Documentation may include books, websites, reports, journals, systemlogs, user manuals as well as recording materials etc. By adopting only documentationmethod is not sufficient to collect all the data we need in this study. Therefore, documentationmethod is used in combination with interviews in order to answer the research question.Literature review is used to have a in depth understanding of agile software developmentprocesses and interviews with the relevant people who works in agile software developmentteams would help in analyzing how agile development method improved team workingefficiency.2.4.2 QuestionnaireQuestionnaire is a useful and commonly used method for collecting data in a research study(Cottrell, 2014). This technique is used by writing relevant questions regarding a particularproblem and circulated among number of individuals in order to acquire data required foranalyzing a problem. In questionnaire, different kind of questions can

There are different processes in agile development but "scrum" is the most popular software development process to introduce agility in your product development. Easypark is using Scrum as well to have agile software development. The core concept is that there are permanent teams of employees instead of projects. The software development is .