Agility and Agile- its Key values and operation in Software Development 1.
Introduction The aim of this document is toprovide brief information about Agility, Agile process and its key ideaincluding- Individuals in Agile, Teams in Agile, Communication Vs Collaboration.The notion of Micromanagement and Macromanagement is also explained laconically.After that working Agile in general is briefly explained.
2. Agilityand values underlying the agile Currently,as we know in our Software engineering field, business requirements and environmentcontinues to change at an increasing pace. In many projects, major changes inthe requirements, scope, architecture and technology mostly occur within thespan of project life cycle and which are out of our control. This type ofdevelopment is empirical in behavior. So resisting changes is not an option fortoday’s industries and the question on which they should focus is how to handlethese inevitable changes throughout the project span. In our traditionalapproach for software development we focus on anticipating the completerequirement at the first and reducing the cost by change elimination. Thismeans that we are just resisting or avoiding current change which business hasproposed and so this leads to degradation of customer satisfaction and finallyto business failure. Other problems with our traditional approach includes – lessCustomer Centricity, rigidity in terms of requirement, delay in mainfunctionality, delivery as product as whole, unpredictable cost estimation.
Therefore, to sustain and grow in this competitive software industries one ofthe best solutions to these changes is to accept agility. Agility means adaptiveness tochange. As we know we cannot eliminate the changes but what we can do isdevelop a strategy or a methodology, applying which we can reduce the cost ofresponding these changes. In 1990s to 2000 there were many lightweight softwaredevelopment methodologies developed to serve this purpose, these include rapidapplication development, the unified process and dynamic systems developmentmethod (DSDM), Scrum, Crystal Clear and extreme programming (XP), andfeature-driven development. These all methods follow some guideline to meet thechanges and they all collectively comes under agile umbrella.
These all methodsresponses to the expectation – to reduce the cost of changes. These agilemethods use concepts of priority in Functionality; estimation of time, cost,risk; customer – more customer involvement, iteration – one iteration one ormore can be done functionality; open to requirement change; testing – per functionality. Below are the mainly focused key values inagile development which are basically Agile Manifesto.4- peopleand collaboration over processes and tools,- workingsoftware over comprehensive documentation,- customercollaboration over contract negotiation,- respondingto change over following a plan.Althoughitems on the right has values, items on the left are more valued by agiledevelopment. Agile software development can be defined as an approach todeliver valuable working product to customer incrementally, on priority based,and timely manner by collaborating several cross-functional teams with thecustomer.
This approach is best suited for non-safety- critical projects withfrequent change in requirements, built by relatively small and skilledco-located teams, all with customer involvement. 3. Keyideas for Agile approaches and a brief description on it “Agile methods stress two concepts: theunforgiving honesty of working code and the effectiveness of people workingtogether with goodwill.”4 In agiledevelopment working code is delivered to client at the end of each iteration, startswith the very first iteration. It is a real code. Due to this client would beable to gain value from the product from the very beginning. So, thecorrectness of working code in terms of functionality and/or performance is avery critical for developer as well as for sponsors. In fact, form this codecustomer can map the feature of the code with what they wanted and what waspromised to deliver to them.
The incorrectness of the code leads to thecustomer dissatisfaction. Effectiveuse of people leads to maneuverability, speed, and cost savings. Usingdocuments foe passing the idea between people is slower.
It can be more faster bytalking face to face. Also, a group of persons can produce a better result by collaboratingthan each could produce alone. In agile when the developing team talks toclient they try to infer the difficulties and how to overcome it, client’s needand expectation, priority of feature decided by sponsors and after that theystart developing keeping sponsors in loop to get rapid feedback. All these canbe achieved only if they all work together with goodwill. “Use better and fewer people?3 Basically,there are two types of activities in the project: essential, which affectssoftware delivery and nonessential activities. Agile process removes the nonessentialactivities from projects and gives developers more time to think and developthe feature at the hand.
So, here we are taking essential activities as area ofconcern. The productivity and competency of programmer is mainly matters whenthey are working on essential activities. If there are too many slow programmersthat it can slow the entire team and leads to late software delivery orincomplete delivery.
And if there are less number of slow programmer, thechances of ending up left behind are very high for them. Also, the total numberof people also affects the productivity – as more number of people higher thechances that their competency and efficiency won’t match. Therefore, one shouldbe very careful while selecting people for agile development and that’s whythis key feature is central to agile process. “Agility is only possiblethrough greater discipline on the part of everyone involved”.5 Agile processesdo not have explicit disciplinary constraint like traditional approach.
Thereare no managerial watch or supervision in agile development. However, agileteam has a leader, but s/he is moreover facilitator. Industries should have agroup of self-organized, self -motivated people to apply agile process.
This isimplicit in agile development. A team in agile should have nearly equalcompetency with lesser people in team, having self-discipline. Therefore, forthe success of project, team member should understand the criticality of thecompletion of the task given to them and following proper discipline in doingso. 4. Teamcompetence Vs Individual competence & Collaboration Vs Communication Aswe discussed, agile development highly focuses on individual competencies –”Use better and fewer people”3. Thisis one of the critical factor in project success. If team members have goodproductivity and competency, they can complete any task given to them followingany process.
If they are not good than no process can overcome their inefficiency.Generally,agile teams are small number of people having ability to self-organize, doing instancecollaboration within themselves as well as across the organization. The teamsas a whole should have such an expertise that they can be configure/reconfiguredas the needs arise in industries. Agile teams should have a common goal; mutualunderstanding, trust and respect.
They are able collaborate in decision makingand able to deal with ambiguity as arise. Let’stake an example of a sports team. Only if one of the team player is playing athis/her efficiency than there is a very less chances of winning a game. – Thisis team competency. To achieve a goal, to win a game, all the players must playat their best. Now if we consider an example of submarine, the captain has aspecific set of competencies same applies for navigator and same for engineworker.
All of the crew members have to understand their part and do what theydo best. – This is individual competency. The maindifference between communication and collaboration is – communication is thesending and receiving of information using documents, shared drive etc.; basically,followed in traditional approach and for this team must spare significantamount of time for extensive documentation, whereas collaboration is workingtogether on a same goal. This goal can be working deliverable or some decision orprioritization negotiation.; followed in agile processes; there is adocumentation process, but it’s not like every information should have detaileddocuments, so team member have more time in development rather than extensivedocumentation. 5. IsAgile is micromanagement? Micromanagement Vs Macromanagement1No.
Use of Agileprocesses attempt is not micromanagement, it is a macromanagement.Micromanagement is a command-control management, where developers cannot makeinstant decision to cater customer’s change request for better throughputwithout confirming with higher authority and keeping original plan in mind.This is not what agile processes follow. Agile management is macromanagement.
It understands the certainty needed to provide customer what they want atcurrent time(iteration) even if it is dysfunctional. Its leadership is based oncollaboration. The managers/leaders/master setup goals, boundaries and environmentfor each iteration and developer are also included with leaders to take decisionat any period of project span. They mainly focus on collaboration within teamas well as in organization and they trust individuals for applying their competencyin effective ways. 6. Doesdesign, testing, and planning steps exist in Agile? Why? How?Agile processes are one of theexample of iterative type of process model. At every iteration developerdeliver a deployable working code. So, what happens in each iteration? – Ineach iteration team sits with sponsor and find out the prioritized features.
– Planthe whole iteration according to doable features. – Makesome design on paper and collaborate.- Developa working code and test it.- Takefeedback from client and update changes.- Finallydeliver a deployable working code.Thenecessity of each of above steps are self-explanatory, so Yes, steps of design,testing and planning exist in Agile. These steps are involved in eachiteration. Also note that the process of development and testing areinterleaved and as we discussed earlier, all these step Bibliography:1A.
Cockburn and J. Highsmith,”Agile Software Development: The People Factor,” Computer, Nov.2001, pp.131-133.
2M. Cohn, D. Ford “Introducing an Agile Process to an Organization”. Computer36.6(2003):74-783B. Boehm, Software Engineering Economics, Prentice Hall, 1981.4 J.Highsmith and A.
Cockburn, “Agile Software Development: The Business ofInnovation,” Computer, Sept. 2001, pp. 120-122.5Beck, Kent, and Barry Boehm. “Agility through Discipline: A debate.” Computer36.6(2003):44-46