International Journal of Software Engineering and Technology
Adding lean principles to agile software development: A case study report Maryam Shahzeydi
Taghi Javdani Gandomani
Dept. of Computer Engineering, Dolat Abad Branch, Islamic Azad University, Dolat Abad, Iran
[email protected]
Young Researchers and Elite Club, Boroujen Branch, Islamic Azad University, Boroujen, Iran
[email protected]
adapting to Lean principles in real environments too [5-7]. This paper presents a case study of considering Lean principles in a software company which had adopted Scrum in its software development process.
Abstract—Selection of an appropriate software methodology or software development practices has been always a critical managerial decision in software companies. Recently, a hug number of software companies are employing Agile methods as their choice of methodology. Scrum is the most popular Agile methods among the others. Besides employing a proper methodology, some of the companies intend to employ other improvement practices to gain more business values compared to their competitors. This paper presents a report of case study in which Lean thinking principles have been added to Scrum practices. The initial results showed that considerable synergy would be found between Scrum and Lean practices. However, Scrum team was not able to fulfill some of the Lean practices such as measure and practice, and Kaizen.
The rest of this paper is organized as follows: Sections 2 and 3 briefly explain Agile software development and Lean respectively. Section 4 describes the case study and its specifications. Section 5 provides initial results followed by Section 6 which concludes the paper. II.
Every software company needs to decide about choosing a proper software methodology. This decision essentially affects the quality of the products, its market position, and the future of the company [2, 8]. Different software methodologies rely on different values and principles. For several decades, disciplined or plan-driven methods were the main choice of software companies [9]. However, after creating Agile manifesto [10], Agile methods have been introduced and addressed as their main choice of the methodology.
Keywords—Agile software development; Agile methods; XP; knowledge management.
I.
AGILE SOFTWARE DEVELOPMENT
INTRODUCTION
In the competitive market, software companies are constantly looking for better practices to gain better market position compared with their competitors. Employing appropriate software methodologies, tools, technologies, and other software development underpinnings are the points which software companies and teams may focus on to take more advantages in competition with the other companies and teams [1, 2].
Agile software development provides several new values compared to the disciplined methods including early and frequently delivery, more customer satisfaction, fast return of investment, flexible development process, and so on [11]. The underpinning of Agile approach is embracing customers’ required changes and high collaboration with customers.
Software industry is increasingly using Agile methods in their software product lines. Their motivation for employing these methods is the suggested values of Agile approach comparing to the disciplined methods. While disciplined methods in software development rely on plan-driven and highly rigorous styles, Agile ones promote adaptive and flexible manners[3, 4].
Several Agile methods have been introduced among them Scrum and XP are more popular well-defined [3]. Scrum is the most popular Agile method which its main focus in on project management and team coordination. Scrum practices emphasize on team members collaboration, self-organization, leadership, and customer involvement [12]. On the contrary, XP mainly focuses on software development and its related practices [13]. Thus, most of its practices are associated with technical issues development team members faced with. Beside these methods, some other Agile methods are also used in real projects and environment based on the project and team structure. TDD, FDD, DSDM, ASD, and Crystal are the most important ones [11]. However, they are not popular as Scrum and XP are. Despite of different practices, almost all of them are following similar values addressed in Agile manifesto.
Recently, software companies are trying to employ other improvement practices beside Agile methods to achieve more advantages. For instance, combination of Agile with Kanban or Lean approaches has received more attention in software development. Such approaches try to provide better engineering processes. This is what software companies are looking for. However, these approaches are not originally designed for software companies [5]. Several reports have been published about the successful combination of Agile and Lean method. However, it seems that software teams are facing with several challenges and issues in
12
Maryam Shahzeydi et al./ IJSET Vol. 2, No.1 (2016)
Scrum was the core methodology in the company under study. Scrum follows a simple framework to handle software projects as depicted in Figure 1.
Perfection is the last Lean step. As value is specified, value streams are identified, wasted steps are removed, and flow and pull are introduced, begin the process again and continue it until a state of perfection is reached in which perfect value is created with no waste. Figure 2 illustrates the Lean steps.
Fig. 1. Scrum Framework
Fig. 2. Lean Thinking Sequential Steps
Iterative nature of Scrum framework and using appropriate artifacts such as Product Backlog, Sprint Backlog, and Sprint Burn down chart beside its well-defined practices facilitate achieving Agile values.
IV.
As a flexible, holistic product development strategy, Scrum promotes empiricism and continuous improvement [14]. It also emphasizes on achieving business values by focusing on development of the most important customer’s requirements. III.
CASE STUDY
The company under study was a software company with about 10 years of experience in software development. The company had about 40 software engineers working in different roles in software development process. At the beginning of 2015, the company started a transformation process to change its development process from waterfall model to Agile methods by focusing on Scrum framework.
LEAN APPROACH
Using a transition framework [17], they succeeded to adopt scrum well. The transition took about 6 months to succeed. However, the change process had been carried out in such a way that in 3 phases all developers adopt Scrum practices based on the time schedule and priorities defined by the company. Anyway, the company completed four software projects (including 3 medium and 1 small) using Scrum framework. Customers’ feedbacks indicated that they were happy after products delivery. Furthermore, the employees expressed their happiness for using Scrum. Thus, the evidences showed that the transition process was a successful project.
Lean initially was used as a manufacturing approach in Toyota in the 1950’s. Lean thinking is generally defined as an approach in which organization will be enabled to “specify value, line up value-creating them, and perform them more effectively” [15]. Lean comprises five distinct steps including Value, Value stream, Flow, Pull, and Perfection [16]. Value is considered as the inception point of Lean thinking, where end customer is the only one who can define it. However, this is producer who creates the Value within the product. The main aim of Lean thinking is to identify Values requested by customer for a service or a product, and then eliminate all the waste or non-value activities from organizational processes.
From early 2016, the company decided to employ Lean thinking principles together with Scrum practices, called ‘Next Transition Project’ (NTP). A committee including two Scrum Masters, one of the managers, Product Owner, one external Agile coach, and two developers was responsible to study Lean advantages and select the most appropriate Lean practices to be adopted. The next section explains the initial results of NTP.
Value Stream emphasizes on identification of all activities across the organization which jointly involved in delivering service or product. This shows end-to-end process leading to delivery of Value to the end customer.
V.
Flow stresses on eliminating waste and creating a service or product flow to the customer without any waiting or interruption. This can be done after identifying Value and Value stream in the organization.
INITIAL RESULTS
The company selected some of the famous Lean practices to add to Scrum. Lean practices are those practices aim to achieve Lean principles. The selected practices for the early adoption were ‘addressing bottlenecks’, ‘defer decision making’, ‘considering incentives’, ‘measure and manage’, ‘using pull systems’, and ‘kaizen’ [5]. These practices were those the committee selected as the top priority practices according to their criteria. However, some others are in waiting in line to be adopted in next phase.
Pull or response to customer pull focuses on creating organizational process only after customer demand. This helps customers to pull Value from the organizational process. This also means organization produce only what customer needs and when the customer wants it.
13
Maryam Shahzeydi et al./ IJSET Vol. 2, No.1 (2016)
A. Address bottlenecks Scrum teams defined several factors to indicate potential bottlenecks. The major factors come from bugs and human errors. Each user can take maximum 10 percent more time. In case of exceeding this time, that task is considered as a bottleneck which needs adequate attention. To solve an identified bottleneck, all team members are responsible to collaborate. This practice seems to be successfully adopted yet.
REFERENCES [1] G. Mikulenas, R. Butleris, and L. Nemuraite, "An approach for the metamodel of the framework for a partial agile method adaptation," Information Technology and Control, vol. 40, pp. 71-82, 2011. [2] E. Mnkandla and B. Dwolatzky, "Agile methodologies selection toolbox," in 2nd International Conference on Software Engineering Advances - ICSEA 2007, Cap Esterel, 2007. [3] VersionOne, "The 9th Annual State of Agile Survey," Annual State of Agile Survey, 2015. [4] A. Agrawal, S. Singh, and L. Maurya, "A study on the growth of Agile methods in India till 2014," in Computer Engineering and Applications (ICACEA), 2015 International Conference on Advances in, 2015, pp. 370374. [5] X. Wanga, K. Conboy, and O. Cawley, "“Leagile” software development: An experience report analysis of the application of lean approaches in agile software development," The Journal of Systems and Software, 2012. [6] P. Rodríguez, K. Mikkonen, P. Kuvaja, M. Oivo, and J. Garbajosa, "Building lean thinking in a telecom software development organization: strengths and challenges," in Proceedings of the 2013 International Conference on Software and System Process, 2013, pp. 98-107. [7] V. Antinyan, M. Staron, W. Meding, P. Osterstrom, E. Wikstrom, J. Wranker, et al., "Identifying risky areas of software code in Agile/Lean software development: An industrial experience report," in Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, 2014, pp. 154-163. [8] L. Vijayasarathy and C. Butler, "Choice of software development methodologies-do project, team and organizational characteristics matter?," 2015. [9] A. M. Magdaleno, C. M. L. Werner, and R. M. D. Araujo, "Reconciling software development models: A quasi-systematic review," Journal of Systems and Software, vol. 85, pp. 351-369, 2012. [10] K. Beck, A. Cockburn, R. Jeffries, and J. Highsmith. (2001, Feb. 2016). Agile manifesto. Available: http://www.agilemanifesto.org [11] D. Cohen, M. Lindvall, and P. Costa, "An introduction to Agile methods," Advances in computers, vol. 62, pp. 166, 2004. [12] K. S. Rubin, Essential Scrum: A Practical Guide to the Most Popular Agile Process. Michigan: Addison-Wesley Professional, 2012. [13] Chromatic, Extreme Programming Pocket Guide. Sebastopol, CA: O'Reilly Media, 2013. [14] H. Takeuchi and I. Nonaka, "The new new product development game," Harvard business review, vol. 64, pp. 137-146, 1986. [15] J. P. Womack and D. T. Jones, "Beyond Toyota: how to root out waste and pursue perfection," Harvard business review, vol. 74, pp. 140-&, 1996.
B. Defer decision making Although Agile and Scrum emphasize on on-time decision making, Lean approach promotes deferring decision making. These approaches are not necessarily opposite. Scrum team try to postpone any decision making in the last moment. This practice also seems easy to adopt and till this moment, no complaint has been reported. C. Considering incentives This practice was a strong recommendation by Agile coach who had promoted Scrum. Senior manager also, totally agreed with such a strategy. Several incentives (financial and nonfinancial) have been committed by senior manager and middle managers. Initial results showed that this practice led to increase motivation of team members. Also, they showed their happiness by more collaboration in teamwork. D. Measure and manage In this point no progress has been seen yet. It seems that the team is not aware of this practice well. Although, a few metrics and measure were candidate, none of the have been approved yet. E. Using pull systems Scrum team members are successfully using Kanban board for this purpose. They also focus on ‘Work in Process’ (WIP) and the initial result shows that team is successfully adopting this practice. However, the pace of adoption is less than the organization expected. F. Kaizen Kiazen focuses on continually improvement of the process in a company. Scrum practices emphasize on only project manager practices. Therefore, considering Kaizen in all activates such as those which are not defined in Scrum is not wise. It should be noted that at the time writing this paper, NTP was still running in the aforementioned company. VI.
CONCLUSION
Agile and Lean approach are both widely used by some of the software companies. Although it seems that there are no essential conflicts, only a few empirical evidences are available. Initial results of combination of Scrum framework and Lean thinking practices showed that most of the Lean practices can be adopted together with the Scrum practices. However, among the employed Lean practices, no successful results have been seen in defining measures and manage the related analysis. Furthermore, it seems that Kaizen concepts can also adopted partially together with Scrum practices.
14
Maryam Shahzeydi et al./ IJSET Vol. 2, No.1 (2016)
[16] M. Poppendieck and M. A. Cusumano, "Lean software development: A tutorial," Software, IEEE, vol. 29, pp. 26-32, 2012. [17] T. J. Gandomani and M. Z. Nafchi, "An empiricallydeveloped framework for Agile transition and adoption: A Grounded Theory approach," Journal of Systems and Software, vol. 107, pp. 204-219, 2015.
15