Agile Practices in the Industrial Context

Size: px
Start display at page:

Download "Agile Practices in the Industrial Context"

Transcription

1 Agile Practices in the Industrial Context Faiz UL Muram Malardalan University Sweden Aftab Baig Malardalan University Sweden Abstract: From last decades of 20 th century software development business becomes very popular. Customer satisfaction is very important in software development business. Customers require cheap software containing more functionality, must have higher quality and should be delivered quickly. Agile processes are more suitable for fulfilling demands of customers as compare to traditional approaches. Agile practices are more suitable for small scale to medium scale projects in terms of increasing productivity, quality improvement and time-tomarket as compare to traditional approaches. Some industries are still using traditional approaches. Moreover, some organizations are using agile practices with combination of Stage- Gate development model. Introducing agile practices in industries would not only affect development team members, but also have impacts on departments, management and other development teams. This research paper is written for finding problems and their possible solutions for introducing agile practices in industries. Keywords: Agile Practices, Challenges for Agile Development, Introducing agile in industries. 1. Introduction Agile Practices: Nowadays agile practices are getting huge popularity. Agile practices are based on a set of principles written by seventeen professionals and are now in use of multiple companies around world. Agile practices are based on agile manifesto written in The Agile Manifesto states valuing individuals, and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan [7]. Agile processes are similar group of processes including Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Dynamic System Development Methods (DSDM), Agile Unified Process (AUP) and Crystal Development [11]. Industries are facing many problems and challenges while moving from traditional development processes towards agile practices. Changes in organizational structure, culture and physical settings are required for moving towards agile practices. Top level management is more afraid while introducing agile practices in organizations due to people conflicts, development process conflicts and business process conflicts [4]. The main objective of this research paper is to identifying major organizational challenges, risk factors and their possible solutions for moving towards agile practices from traditional heavy-weight development processes. Another goal of this research paper is to provide guidelines for introducing agile practices in industries. This paper is structured as follows: section two differentiates between agile development and traditional development methods; in section three, detailed information regarding industrial challenges for agile practices are presented; in section four, techniques for resolving agile challenges are presented; in section five, guidelines for introducing agile practices in industrial environment is presented; conclusions are presented in section six; future work is given

2 in section seven; finally, references are listed in section eight. 2. Difference Between Agile Methods and Traditional Approaches: In agile practices early delivery of software and continuous integration are big factors for customer satisfaction. However, in traditional development approaches deliveries are provided after completion of software which sometimes leads towards dissatisfaction of customers. Agile practices support collective code ownership, pair programming in development [8]. In Scrum daily meetings are organized for getting day to day work information which usually takes only 15 to 20 minutes. In Scrum meetings, multiple questions are asked to the developers [4] like: Ericsson Microwave System are using agile practices with Stage-Gate model [2] [10]. 3. Challenges for Agile Development in Industries: Top level management is more afraid while implementing agile processes in organizations due to people conflicts, development process conflicts and business process conflicts [4]. Upper management still prefers traditional approaches by ignoring agile practices which are more helpful towards achieving desired objectives. Possible challenges for moving toward agile practices are listed in figure 1 and are further discussed in upcoming subsections. What did you do last day? Which problem you faced to do this? What is the task you will do today? Due to daily project meetings manager realized the progress of the project. Meeting should be done between various development teams which make the integration of the project easier and will increase possibility to delivery of project on time. Changes in requirement are quite obvious. Agile practices support changes in requirements at later stages and have less impact on overall project [2]. But, in traditional approaches changes in requirements after starting of development are quite difficult to handle. Agile team makes faster business value as compare to traditional teams. Due to increase of communication with customer in agile practices make customer more satisfied and happy as compare to traditional approaches. Some industries are using agile practices by combining with traditional approaches and found it very helpful. For example, some organizations including ABB Automation, Vodafone, and Figure 1: Challenges for implementation of agile practices.

3 3.1 People Conflicts: Identifying right peoples in development processes is critical issue. Before adopting agile practices proper guidance is required in terms of small cycles, goals, flexibility and ownership. Moreover, Changes in management attitude and behavior are required for shifting from sequential approach towards agile practices. Agile practices require multitasking characteristics from people which is quite difficult to achieve due to specific roles assigned by managers [4]. It is further identified that sometimes people face problems due to logistical issues for moving towards agile practices. For example, agile workspace, stations for extreme programming, status charts tools for supporting regression testing and continuous integration. Change management is about quickly adopting new features in existing culture. Change management is difficult to adopt in organizations due to several business and security factors, sometimes people do not want to adopt new changes due to jealous behavior and fear of losing power. 3.2 Development Process Conflicts: Industries are using traditional standard processes and are facing problems while moving towards agile practices. For example, two different development teams following agile and sequential approaches develop different artifacts while working on a same project which might be quite difficult to integrate [4]. Moreover, Long life cycles of sequential approaches and much shorter cycles in agile practices require adjustments. Entire life cycle of agile practices is much similar as maintenance phase of traditional approaches due to usage of shorter iterations. It is noticed that multiple problems arise while applying agile practices in legacy systems in terms of maintenance or new development. Another issue is requirements in agile practices which are more focused towards implementation of functionality instead of non-functional attributes like security and reliability [4]. 3.3 Business Process Conflicts: Level of ambiguity and uncertainty is quite high in big agile projects as compare to evolutionary or iterative approaches. Implementation of agile practices in industries requires changes in humanresource department policies and procedures including fixed positions, timekeeping, individual rewards etc [4] [9]. Industries are following traditional progress management, milestones and contracts policies that are unable to support agile practices. Another problem occurs for industries due to following standards like International Organization of Standardization (ISO), Capability Maturity Model Integration (CMMI) and other rating standards. Industries feel that agile practices might affect their rating standards in terms of several factors including less documentation [4]. 4. How to Resolve Organizational Challenges: Industries are expected to follow some practices in order to resolve their conflicts for moving towards agile development. 4.1 Peoples Conflict: Industries should resolve people conflicts by following these suggestions. First of all, it is important that industries should evaluate and adopt better ways of communication between team members for successful implementation of agile practices. Secondly, all stakeholders should learn and must share their knowledge and experiences between customers, practitioners, managers and team members. Moreover, industries should resolve their issues and conflicts via customer and management collaboration. In traditional approaches all phases of development are equally important. But, in agile practices initially requirements are prioritized later roles are

4 assigned to people and time-boxing is performed. Industries should also reward people showing best performance. 4.2 Development Process Conflict: Industries should resolve development process conflicts by following these suggestions. It is important that industries do some serious preparations in terms of mismatching, requirements and expectations before adopting agile practices. Another suggestion is to build up highly essential processes. Moreover, industries must be aware in advance with those responsibilities and functionalities that are going to be implemented via using agile practices. Industrial project architecture should be supportable by both agile and traditional teams [4]. Industries would select those agile practices which better suits their existing processes and organizational priorities. Industries also determine risk factors involved in implementation of agile practices. 4.3 Business Process Conflict: Industries should resolve business conflicts according to these suggestions. First of all, it is suggested that industries run pilot projects for determining feasibility and affects on traditional processes. Throughput accounting should be used instead of cost accounting development. Moreover, industries develop some architectural and management operations for plan driven development and hybrid agile approaches. Another suggestion is to identify contracting operations and modify them to support agile practices. Industries should also identify compatible and incompatible assumptions between traditional approaches and agile practices and also eliminate clashes. Moreover, industries should conduct empirical studies for determining predictable and unpredictable classes [4]. Conduct research and establish guidelines for modifying legacy systems and make them agility supportable is also recommended for industries. 5. Introducing Agile Development In Industries: An empirical study is conducted at Austria in 2008 based on data collected from 400 software companies. Data shows that how many people have the knowledge of agile methodologies and its practices. Only 42 companies are agreed to participate in survey. 68% people support agile practices and 32% did not support agile practices. Only 29.5% people want to know about agile practices. The popularity of extreme programming (XP) and Scrum are respectively 46% and 32.8% [3]. When Canadian organization introduced agile software development in their company, they examine that first week was difficult for developers. After one week developers found XP is easy way for the software development. After introducing agile development practices in organizations teams becomes more responsible which might result in increased confidence of individuals. After receiving positive feedback from customer development team becomes more confident. Agile practices increases team collaboration and every individual trust on other team members [2]. Survey results presented above shows interest of people for introducing agile practices in organizations. Several approaches for successfully introducing agile practices in industries are presented below: 5.1 The Need for Top Talent: Barry Boehm's principle "use better and fewer people" [6] is very important in terms of implementation of agile practices. In agile practices team members are more focused towards implementation instead of nonessential activities like documentation. Agile practices require experienced and efficient people for development

5 and implementation because slow and inefficient people might decrease the performance of entire agile team. 5.2 Transitioning from Heavy-Weight Processes: Some developers recommend heavy weight plandriven processes. Transition from heavy weight processes towards agile processes makes changes easier for development teams [5]. Some teams are not interested in daily overview of Gantt charts (charts which shows schedule of projects) and meetings. In particular cases, sprint types are recommended for prototyping, implementation, stabilization, analysis and design of scrum projects. Sprint types are helpful for clear indication of expected goals. Results of sprint types are known as artifacts. Teams normally did not follow sprint types after getting more familiar with agile practices. 5.3 Micromanagement: Large numbers of developers consider agile processes as micromanage due to interaction between developers and managers. In extreme programming and scrum developers are more frequently attached with managers for shorter time frames. But, in plan driven approach managers and developers communicate after long time periods. So, project manager is able to go for a vacation from one to two weeks without any communication with developers. It is further identified that developers considering managers as micromanagement frequently missed deadlines [5]. In particular situations project manager should resolve conflicts and handle arising problems. 5.4 Customer: In industries, agile software development increases team and customer collaboration. So, it becomes difficult to satisfy the customer. In Scrum process customers have daily meetings with team member which reduces most of the misunderstandings about the project. Different organizations have different culture. Sometimes customer satisfaction becomes challenge for organization. In agile practices, customer is more focused on test plan and end releases. Sometimes customer feels burden due to more involvement in entire project although many advisors and team members are supporting him. Management is more afraid on how to make product commitments with customers. But, if management indentifies past communication with customer then problems can be sort out in better ways by promising better efficiency [5]. 5.5 Developer: In industries agile practices also create impact on the behavior of developers. A survey was conducted to determine level of satisfaction of developers who used XP in their projects. It was found that 95% of employees are happy with their job because they are using XP for their projects and wants to continue their jobs. They think that by using agile their productivity has increased. Sometimes developers are working 40 hours per week while using pair programming which requires extra effort [2]. Developers using Scrum thought that it reduces their overtime and they recommend others to use it for their future projects. 5.6 Over Zealous Teams: Assume in software industry one team is very passionate for using extreme programming and start working after gathering user stories, pair programming activities and iterations planning. However, team also changes their building and moved into another which is better suitable for extreme programming. Particular team performs all of the activities very quickly and remaining organization is uninformed about them which lead towards serious problems. However, another team is not really good in agile practices which results in decrease of performance and productivity.

6 Objectives of agile practices include increase in productivity and performance which are not achieved if team members are new in agile development or teams starts learning some other processes or tools. In later stages it is identified that overzealous team begins work so quickly and is now far behind from other team [5]. 5.7 Resistance: In plan-driven approach developers use non code items and unified modeling language (UML) for creating artifacts. But, in agile practices particular items are used for support coding. It is examined in various scrum projects that programmers involved in producing non code artifacts are more interested in code support activities. However, it is further identified that interest of programmers is measured for project in terms of attended meetings [5]. 5.8 Distributed Development: Distributed software development is becoming more and more popular due to shorter time to market, continuous and parallel development at various parts of the world. Agile software development is facing various challenges in distributed software development environment. However, these challenges are resolved by establishing multiple communication channels, using common workspace, continuous integration and handling multiple time zones at once. 5.9 Testers: In agile practices coding and testing running side by side. Testing take little bit more time in agile as compare to traditional approaches. In plandriven approach, testing is done at the end of the project and it takes approximately two to three weeks. In many organizations Unit test cases are made by developers rather than tester. Agile practices vary from organization to organization. Some organizations use Scrum approach but some use XP methodology. In small scale organizations testing is done by developers. However, in medium size organization testing tasks are clearly defined but may or may not have testing team. Mostly large scales organizations have their own testing unit or team. Most of large scale organizations strictly followed all rules of ISO 9001 standard but small scale organization does not follow completely. Small scale organizations are facing many problems in implementation of testing techniques because they have not proper plan and execution team [1] Upper Management: In agile processes upper management deals with four major concerns: Completion of project. Measuring progress. Impact on other teams. Delivery to customer. In agile practices managers mostly deal with Gantt charts and expect delivery from agile teams with in time frame Tracking: In plan driven approach managers track progress based on provided documents. For example, three steps are required for tracking progress. Initially manager verifies test plan based on presence. Secondly, manager verifies the document. Finally, manager study test plan document. Agile practices are more suitable for tracking progress [5]. In most cases two or more status reports are created for representation of project functional data for agile supported organizations. Functional report contains information for one to four week cycle of agile project. For example, functional report for scrum project is based on key dates; burn down chart, current status of project, key risks, matrices for defects and passed tests. Top management decides about satisfaction or dissatisfaction status of report.

7 5.12 Project Completion: Upper management is responsible for establishing proper budget and timeframe for projects. In most cases upper management decides about completion or further continuity of project. Upper management becomes unhappy if customer requires further iterations from agile teams after final delivery of project Impact on Other Groups: Upper management of some projects believes that agile practices are really helpful for development groups but they oppositely affect other development teams. For example, development group is interested in following Scrum but upper management is more focused towards implementation via using sequential approach. Moreover, chief executive officer (CEO) has no problems for both agile and sequential approaches. Assume after all upper management becomes agree for using Scrum [5]. In particular case, Scrum team easily prioritizes tasks and identifies monthly sprints from a list of 2,000 pages and quickly started working on project. But, on the other hand team following sequential approach is far behind and still working on requirements Combining Agile with Stage-Gate Model: ABB Automation and Ericsson Microwave are using agile process in their Stage-Gate model especially XP. When these companies introduced agile process they faced a lot of problems. ABB and Ericsson first prioritized tasks and tried to complete them on time. They gathered their requirements in traditional way afterwards team divides the requirement in twice. First requirements are for traditional process later these requirements are prioritized according to user stories. Companies have decided that they use agile practices after considering pilot project. Agile practices give power tools to stage-gate model for day to day work control [9] [10]. 6. Conclusion: Agile processes are more suitable for increasing productivity and quality as compare to traditional approaches. We examined that organizations are facing many serious challenges for moving towards agile practices in terms of development conflict, people conflict and business process conflict. However, these challenges are resolved without any serious concerns. Examining communication ways between team members is very important for successful implementation of agile practices. We have further identified that some serious preparations are required in terms of mismatching, requirements and expectations before adopting agile practices. However, pilot projects are helpful for determining feasibility and affects on traditional processes. We recommend that before adopting agile practices, industries should do some research and select that agile methodology which better fits in their organizational culture and requires minimum changes. Introducing agile in organizations requires talented peoples and transitioning from heavy weight processes. Moreover, dealing with customer, developers, micromanagement, upper management resistance, distributed teams, overzealous teams, project tracking, project completion and impact on other projects are more important factors to consider in agile practices and requires attention for successful implementation in organizations. 7. Future work: Agile methodologies cannot be applied on large mission critical or safety critical systems. So there is a need to improve agile processes to meet the requirement of such systems. There is a need to test the applicability and enhancements to the

8 complex systems. How can we incorporate the activities of system design phases in agile methodologies so that we can utilized the efficiency of agile processes without compromising important design artifacts like detail system design as design artifacts are important for the evaluation of software intensive systems. [10] Daniel Karlstrom and Per Runeson, Combining Agile methods with Stage-Gate Project Management, 2005 IEEE. [11] A.Ahmed, S. Ahmad, Dr. N.Ehsan, E.Mirza, S.Z.Sarwar, Agile Software Development: Impact on Productivity and Quality, 2010 IEEE. 8. References: [1] Vesa Kettunen, Jussi Kasurinen, Ossi Taipale, and Kari Smolander, "A Study on Agility and Testing Processes in Software Organizations", Copyright 2010 ACM. [2] T. Dyb, T. Dingsyr," Empirical Studies of Agile Software Development: A Systematic Review", Information and Software Technology (2008), doi: /j.infsof [3] Christian Schindler,"Agile Software Development Methods and Practices in Austrian IT-Industry: Results of an Empirical Study", IEEE [4] Barry Boehm, Richard Turner, "Management Challenges to Implementing Agile Processes in Traditional Development Organizations", IEEE [5] Mike Cohn, Doris Ford," Introducing an Agile Process to an Organization", IEEE [6] B. Boehm, Software Engineering Economics, Prentice Hall, [7] Subhas C Misra, Uma Kumar, Vinod Kumar, Gerald Grant, " The Organizational Changes Required and the Challenges Involved in Adopting Agile Methodologies in Traditional Software Development Organizations", IEEE [8] Lindstrom, L. & Jeffries, R. Extreme programming and agile software development methodologies. Information Systems Management. 21(13), [9] Aniket Mahanti, Challenges in Enterprise Adoption of Agile Methods-A Survey Journal of Computing and Iformation Technology CIT14, 2006.