Aveneu Park, Starling, Australia

What the working code at the end of an

What is Agility?Agility is the software development process which creates scope to accommodate the changingrequirements and plans. Software Development is a complex process with a number of variablesimpacting the system. In recent times, these variables changed too often resulting in the failure of plandriven development, as it involved creation of a plan and documenting this plan before implementingit, which was difficult to change as it required revisiting of early phases of software life cycle , redoingthe documentation and incorporating these changes within the required time frame and cost. To copeup with the changing requirements, Agile methodologies were recently introduced in the mid-ninetiesand are now accepted worldwide. Agile gives software development flexibility and responsiveness tochanging environments and customer demands. Agile allows the software development team to revisiteach phase of the life cycle again and again. This approach of Agile development is called IterativeDevelopment, with each iteration consisting of all the phases of the life cycle. Some models which arebased on Agility, are Feature-Driven Development, DSDM, Extreme Programming, Crystal, AdaptiveSoftware Development, and Scrum.The underlying values for the Agile processes are following1:· individuals and interactions over processes and toolsTeam member involved in development and the interactions between customers and the team shouldbe given more priority instead of following a defined process and using defined tools· working software over comprehensive documentationFocus on documentation should be less and the goal should be to create a working model for thecustomer· customer collaboration over contract negotiationIt is important to give priority to the changing customer’s requirements rather than the contract whichwas negotiated before the start of development.· responding to change over following a planWith change in requirements the development team should respond to these changes rather than justfollowing the plan which was discussed and documented before.Key ideas of Agile Process• “Agile methods stress two concepts: the unforgiving honesty of working code and theeffectiveness of people working together with goodwill.” 2People work together in an agile set up to deliver maximum results. Every iteration, set of prioritisedrequirements are taken up by mutual agreement of the customer and the team and then the teamdelivers the working code at the end of an iteration on a repeated basis. The customer gives feedbackafter every iteration and changes are then incorporated. The unforgiving honestly of the deliveredcode holds a lot of importance to the customer and it is achieved by the development team and thecustomer working together with ownership and goodwill. The customer is interested in the workingcode or product rather than endless meetings, documents, contracts. Agile achieves this as it involvescustomer right from the beginning.• “Use better and fewer people? 3Agile emphasises on better and fewer people. Agile development urges team members tocommunicate more, to ask for help if they are stuck, to understand the requirements again if theyhave any confusion about it, to achieve this without any hassles agile focuses on fewer people in theteam. Team members should be skilled, goal oriented, experienced and self motivated which removesthe need of having large teams with people of different skills. The fewer the number of people in theteam the less will be communication gap as everyone can be accommodated on the development siteand lesser will the distractions caused by people who lack efficiency and who are not goal oriented.• “Agility is only possible through greater discipline on the part of everyone involved”.4It is believed that being discipline brings success. But, in recent times in software development beingdisciplined does not always mean success, though being disciplined means that each and everyprocess is followed in an organised manner which brings more focus on the work. Since therequirements change too often, being too strict and stringent might lead to failure in meeting themodified requirements of the customer. The approach to be taken should depend upon the situationthat is beforehand, sometimes it may be one, sometimes other or may be the blend of the two.Individual Competence and Team CompetenceI ndividual Competence : Individual competence means that a person is highly skilled or competent inhis field and can have great contributions to the project he is working on. Being individual competentmeans to have both the technical skills and soft or personal skills. If a person is not skilled enoughthen no process can fill in that void and the project can hit roadblocks, on the other hand personal orsoft skills refer to person’s ability to communicate with fellow team mates and to work with them.Team Competence : Team competence means that the team members should have mutual trust,respect for one another, ability to solve obscure requirements, goodwill of helping others if they arestuck in somewhere. Team competence is a key aspect in development because a good team canoften hide low individual competence. For example if a team is connected then members who aremore skilled or more experienced can help members who are not. But, if team competence is low theneven if the team has skilled members the efficiency and productivity will be low since team memberswon’t have desire to work with one another or trust each other.Example : In a team if there are people who are highly competent i.e they are highly skilled but mightnot be considered as a team player thus causing others to not rely on them and to not work with them,resulting in low team competence.Communication vs Collaboration5Communication is the process of exchanging ideas, notifying team members about the change inrequirements or about the deadline of the task. It can be in written, verbal, cellular or printed form.Scrum focuses on communication, during the daily standups, the scrum master communicates witheach team member about the progress, about the requirement change, the team member on the otherhand communicate with one another if they are stuck somewhere or have other doubts. Indevelopment, communication should not lack or there shouldn’t be any miscommunication becausepeople might assume something which is not stated thus developing something not required.Collaboration on the other hand means to actively work together to to accomplish the same projectgoal. People such as developers, customers, stakeholders become a part of customer collaborationwhere they all come together by putting their efforts together to improve the productivity an efficiencyof development. For example a project manager in DSDM unlike traditional managers is focussed oninvolving customers to the development by giving him releases of the product/prototypes and takingcontinuous feedback from him.Micromanagement in Agile 3In my opinion, Agile may be termed as micromanagement since the project cycle is accelerated andthere is frequent meeting with the manager where the manager tends to bring up missed due datesand deadlines. Agile gives importance to regular meetings and apart from discussions aboutdeadlines, the frequent interaction helps in fast removal of issues being faced by the developers.Therefore, the managers should focus more on helping the team achieve their targets over being strictabout missed due dates to stop the developers from thinking that Agile is a process ofmicromanagement.Does Agile Approach consists of all phases of traditional development process?Each iteration of agile development consists of all the phases of software development cycle i.eplanning, design, implementation, testing, but unlike traditional development which have phases thatdon’t overlap each other and are concrete, phases in agile can run in parallel to each other. Scrumconsists of sprints, in each sprint cycle the requirements are analyzed, planning is done followed byimplementation and testing, therefore consisting of each phase of plan driven model. On the otherhand In XP, testing and implementation phase go hand in hand which is achieved by creatingautomated test scripts beforehand which need to pass once a piece of code is implemented. Themain aim of Agile is to incorporate changes which occur frequently and so it revisits all the phases soaccommodate the changing requirements.REFERENCES1 Laurie Williams and Alistair Cockburn, 2003, Agile Software Development: It’s about Feedback andChange.2 Jim Highsmith and Alistair Cockburn, 2001, Agile Software Development: The Business ofInnovation3 Introducing an Agile Process to an Organization, Mike Cohn and Daris Ford 20034 Kent Beck and Barry Boehm, 2003, Agility through Discipline: A Debate5 2001 Agile Software Development: The People Factor, Jim Highsmith and Alistair Cockburn

x

Hi!
I'm Darlene!

Would you like to get a custom essay? How about receiving a customized one?

Check it out