Agile Development Methodology
Agile Development Methodology, What is Agile?, Agile Development Life Cycle,Scrum methodology, and advantages & disadvantages of Agile Methodology.
What is the Agile Model?
Meaning of Agile is ‘moving quickly’. This software development methodology isbased on iterative and incremental model of software development.There were certain principles on which the agile model was to be based. Themost important of the principles is customer satisfaction by giving rapid andcontinuous delivery of small and useful software. The delivery of the softwarehappens at regular intervals as opposed to after a number of months, which isthe case with the waterfall model.There is a lot of scope for cooperation between the business people and thedevelopers, as the requirements keep coming from the business people atregular intervals. There is a lot of emphasis laid on technical excellence andgood design of the software. The software development team has to adaptregularly to the changing circumstances.Agile modeling is a methodology, which makes use of practice for modeling anddocumentation of software based systems. Traditional modeling methods insoftware development projects have given way to these practices which areapplied in a more flexible manner
Types of Agile Methodologies
o Scrum o Extreme Programming (XP) o Agile Unified Process (AUP) o Dynamic Systems Development Method (DSDM) o Essential Unified Process (EssUP) o Exia Process (ExP) o Feature Driven Development (FDD) o Open Unified Process (OpenUP) o Crystal Clear o Velocity trackingScrum MethodologyThere are different methodologies, which are a part of the agile model. Themost famous one is scrum methodology. Like all the other agile computerprogramming, scrum is also an iterative and incremental methodology. Thismethodology is different than the other methodologies because, the idea ofempirical process control was introduced in this process. As a matter of fact,scrum was introduced for software project management. However, it waseventually also used for software maintenance.The best part of the scrum methodology is that it makes use of real worldprogress of a project, which is used for planning and scheduling releases. Theentire computer software project is divided into small parts known as sprints.The duration of sprint can range from one week to three weeks. At the end ofthe duration of the sprint, the team members along with the stakeholders meet.This meeting helps in assessing the progress of the project and chalk out thefurther plan of action. This assessment helps in taking stalk of the currentstate of affairs and rework the line of work and complete the project on timeand not just speculate or predict the further outcome.Extreme programming (XP)It is a software development methodology which is intended to improve softwarequality and responsiveness to changing customer requirements. As a type ofagile software development, it advocates frequent “releases” in shortdevelopment cycles, which is intended to improve productivity and introducecheckpoints where new customer requirements can be adopted.Other elements of extreme programming include: programming in pairs or doingextensive code review, unit testing of all code, avoiding programming offeatures until they are actually needed, a flat management structure,simplicity and clarity in code, expecting changes in the customer’srequirements as time passes and the problem is better understood, and frequentcommunication with the customer and among programmers. The methodology takesits name from the idea that the beneficial elements of traditional softwareengineering practices are taken to “extreme” levels, on the theory that if alittle is good, more is better.Critics have noted several potential drawbacks, including problems withunstable requirements, no documented compromises of user conflicts, and a lackof an overall design specification or document.
Agile Model in Software Testing
Agile model is not only used in software development, but also for softwaretesting. Agile model testing is carried out from the perspective of the enduser. There is no emphasis, which is laid on the rigid testing procedures, butthe focus is rather on conducting the tests iteratively on the newly developedsoftware component, as well as regression tests are carried out on the entiresoftware to check if any new bugs were introduced into the software. In theagile testing model, the focus shifts from ‘testers as quality watchdog’ to‘the entire team quality watchdog’.As the name of the testing methodology suggests, the testers have to adaptthemselves to rapid development cycles and make the required changes to thetest suite. In this software testing type, the aim is to test from theperspective of the customer as early as possible in the development process.Because the testers are involved early on in the entire process of softwaredevelopment, they give the necessary information, feedback and suggestions tothe development team, rather than after the development has come to the finalstages.Agile model has given the software development process an effective andpractice based methodology. Therefore, the principle ‘maximize stakeholdervalue’ can actually be put into practice, leaving the customer satisfied andhappy.
Advantages of Agile Model
The most important of the advantages of agile model is the ability to respondto the changing requirements of the project. This ensures that the efforts ofthe development team are not wasted, which is often the case with the othermethodologies. The changes are integrated immediately, which saves troublelater. There is no guesswork between the development team and the customer, asthere is face to face communication and continuous inputs from the client. Thedocuments are to the point, which no leaves no space for ambiguity. Theculmination of this is that a high quality software is delivered to the clientin the shortest period of time and leaves the customer satisfied.
Disadvantages of Agile Model
If the projects are smaller projects, then using the agile model is certainlyprofitable, but if it is a large project, then it becomes difficult to judgethe efforts and the time required for the project in the software developmentlife cycle. Since the requirements are ever changing, there is hardly anyemphasis, which is laid on designing and documentation. Therefore, chances ofthe project going off the track easily are much more. The added problem is ifthe customer representative is not sure, then the project going off trackincrease manifold. Only senior developers are in a better position to take thedecisions necessary for the agile type of development, which leaves hardly anyplace for newbie programmers, until it is combined with the seniors resources.* * *Manual Testing, Selenium, Java, Python, and SQL Videos and Documents.Follow me on social media:Basic Principles and Benefits of the Agile Development Life CycleBefore we dive into the Agile Development Life Cycle, it is important tounderstand that Agile is an approach to software development. This approachwas developed to mitigate the risks associated with the traditional Waterfallmodel.The basic premise that requirements are clear at beginning of a project ischallenged in the agile approach. In reality, project requirements areunearthed, can change and may evolve over a project life Cycle. For vaguerequirements, the Agile approach to software development trumps thetraditional Waterfall model, but in what ways?
Principles behind the Agile Manifesto
The Agile approach is based on principles that have been extracted from theAgile Manifesto. For the complete list of principles, refer to Principlesbehind the Agile Manifesto. Briefly these principles are as follows: 1. Customer satisfaction by rapid delivery of useful software 2. Welcome changing requirements, even late in development 3. Working software is delivered frequently (weeks rather than months) 4. Close, daily cooperation between business people and developers 5. Projects are built around motivated individuals, who should be trusted 6. Face-to-face conversation is the best form of communication (co-location) 7. Working software is the principal measure of progress 8. Sustainable development, able to maintain a constant pace 9. Continuous attention to technical excellence and good design 10. Simplicityâthe art of maximizing the amount of work not doneâis essential 11. Self-organizing teams 12. Regular adaptation to changing circumstancesIt is the principles behind the Agile Manifesto that influence the life Cycleof Agile Development. For example, Principle 3 means that the life Cycle needsto deliver in an iterative manner. Similarly, Principle 7 means that thedevelopment should be incremental. Principles 2, 6, and 12 mean that therewould be more meetings and proactive risk mitigation.Now, letâs see how these principles are implemented in a typical AgileDevelopment Life Cycle. I say âtypicalâ because there are several Agilemethodologies, such as SCRUM and XP (Extreme Programming).
A Typical Agile Development Life Cycle
In a typical Agile Development Life Cycle, the smallest item of work is calleda story. Multiple stories may make a feature. Therefore, stories can be viewedas scope. Stories are delivered in a defined timeframe, which is known as anIteration. Refer to the Agile Development Project Planning Considerations -Length of an Agile Iteration article for the key considerations fordetermining the iteration length.Several Iterations make a Release. A project may have several releases. It iseasier to understand with a visual. The following image shows the iterationswithin a release.Each release starts with a team meeting in which stories from the backlog areassigned to iterations. This is known as a Release Kickoff. Similarly, thereis an Iteration Kickoff. During an Iteration, there are daily stand-upmeetings in which the team gives status and unidentified risks are unearthed.After an Iteration is complete, the team holds an Iteration Retrospective. Inthis meeting, the team reflects on the Iteration and takes the lessons learnedto the next Iteration. Similarly, there is a Release Retrospective.
Where Did Agile Come From?
If you’re running a lean startup. or managing your business according to theLean Six Sigma methodology, then you’ll probably have heard of the termagile.’ An agile business is a company that responds quickly and effectivelyto both opportunity and risk in either the internal or external businessenvironment. Many lean experts have mentioned that Agile is likely a betterterm than “lean”, since it often makes people think about a diet or initiativeto reduce staff.>Agile specifically refers to an improved way to develop and release software,using lean principles. The idea is to make the work visual, minimize the work-in-process (WIP), make problems visible, interact frequently with yourcustomer, create empowered teams, and keep the batch sizes (tasks to complete)as small as possible. Even if you don’t use software, hopefully you can seehow the principles could be used in any process or industry.So, where did the term and the idea of agile’ come from? Here is a briefhistory of Agile’s main principles and how they came to be.
The Agile Manifesto
The idea of agile business all began back in 2001. In the Wasatch mountains ofUtah, seventeen people got together to ski, relax, share ideas and of course,sample some tasty food. Amongst them were Agile pioneers Alistair Cockburn andKen Schwaber. The participants were a group of software developers andprogrammers who all agreed that a change was needed. Furthermore, they broughttheir own well-defined methods to the table, including Extreme Programming(XP), SCRUM and Crystal. The meeting culminated in the Agile SoftwareDevelopment Manifesto’, in response to the need for an alternative to theheavyweight, documentation-driven software development processes of the time.Signed by all the participants, the Manifesto for Agile Software Developmentwas a symbolic result. The group of independent thinkers named themselves TheAgile Alliance.’ Although certain individuals were sometimes competitors toone another, they all agreed on one thing they felt privileged to work with agroup of people who shared similar values and opinions.At the core, the first Agile methodologists held values based on trust andrespect for each other, promoting models of organization that are based onpeople, and improving collaboration to build the type of organizationalcommunities where they would like to work. Today, almost two decades later atthe time of this post, Agile values have changed very little.
Principles Behind Agile
The Agile methodology follows a series of principles that are based first andforemost on satisfying customers and welcoming changing requirements. Agileprocesses are designed with the main goal of providing early, continuousdelivery of beneficial software.Agile principles demand that projects are built around driven individuals;give them the support, environment and trust that they need to successfullyget the job done. Agile is undoubtedly people-orientated: People are moreimportant than any process’.According to Agile principles, the leading facilitators of project success arethe individuals working on it. Additionally, Agile suggests that the mostefficient, effective method of transmitting information to or within adevelopment team is with a face-to-face conversation.Reflection is also a crucial part of the Agile way; development teams areencouraged to reflect on their past results, in order to determine methods ofbecoming more effective and productive. Regular change must be embraced tofacilitate constant improvement within the team.Agile promotes iterative and incremental processes. Software is developed in asuccession of iterations, from the planning to the delivery stages. In eachiteration, the various parts of the system are developed, tested, and thenimproved if needed, based completely on the feedback of the customer, not theideas of the development team. During testing and improvement, a new part willbe developed. The idea behind this is to improve the functionality with eachrelease, allowing the system to grow. More frequent and smaller releases allowprogress to be made, instead of waiting for one big change to be implemented,which might take months to complete.
Agile methods may be quite recent, but they are certainly not new. They havebeen around for much longer than the Manifesto for Agile Software Developmenthas. However, it was not until the 17-strong team in Utah put their ideas downon paper that the Agile ideas were implemented within teams worldwide tochange software development for the better.Want to learn more? Read Joe Woods guest post, “An Outsiders View of AgileSoftware Development” >>>”