ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Agile Methodology - A Brief Overview

Updated on June 18, 2013
Agile Methodology
Agile Methodology

Understanding Agile Methodology

What is Agile?

Agile methodology is an approach to the project management which help to respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints. This methodology was developed to deal with situation where the waterfall model fails. The biggest drawback of waterfall model is that it assumes that every requirement of the project can be identified before any design or coding occurs. This may always be applicable for the development of an automobile on an assembly line, in which each piece is added in sequential phases. However it may or may not be applicable for software development. For example, for a BAU (Business as Usual) projects where the software is already in use for a long time, waterfall model is the best method to implement any changes requests because amount of uncertainly is very less compared to developing a new product. However for developing brand new software, waterfall model is not an ideal choice as the amount of uncertainty in terms of requirement and user quality expectation. It might be the case that end product is not exactly what user has expected due to mismatch of requirement understanding between user and developer. It might also be the case that a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants.

Agile development methodology provides the opportunity to assess the direction of a project throughout the development lifecycle. It does it through an iterative cycle to build and test followed by an assessment by the user/business until they are satisfied with the product. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield; agile methodology could be described as iterative and incremental.

Agile methods should not be confused with the Spiral method in any case. Spiral method force you to plan for all the iteration in the beginning whereas Agile gives you the flexibility to plan only which you surely know and leaves the rest of planning for next iteration. In Spiral methodology since you have planned for all the iteration in the beginning, the number of iterations are fixed. But in Agile, you can have as many iterations required to produce the final product as the planning is dynamic.

Main Stages in Agile project:

  • Define initial requirement: Business will come up with a high level requirements to the project. It is not necessary to have all the requirement finalised and clear in this stage but business have a good idea about the facilities or product they want. For example business want a resource management product but may not be clear whether they want a desktop application or web based one.
  • Prepare high level use cases: Based on the initial business requirement, project business analyst will have further discussion with client to have a deeper understanding to come up with high level use cases. These use cases will be discussed with the clients to finalise the requirement at a higher level.
  • Prepare High Level Plan: Once the high level business cases are approved and finalised, Project Manager will prepare a high level plan. Normally the initial plan has a short planning horizon and mainly covers the plan till the first prototype completes.
  • Begin Iteration: This phase is where all the teams involved in the project start their planning and designing phase. For example, development team may produce Mid Level Platform Design and Test team may produce Master Test Plan.
  • Build and Unit Test: Development test build and unit test the prototype in this stage. If it is not the first iteration then they do the enhancement to the prototype of the last iteration as per the refines use case.
  • System Test: Testing team perform the testing of the prototype as per their test cases and test plan prepared in previous stages. If it is not the first prototype, the test team refines their test case and test plan according to the refined use cases and perform testing. Regression testing may also be required to prove that functionality tested in earlier iterations are still working properly.
  • User Evaluation: Once the prototype passes the system test, representatives from the client evaluate the prototype against the requirements and the use cases. They also access if they want more functionality to be added to the product as the initial requirement gathering stage may not have collected the entire user requirements or were not clear at that time.
  • Are more changes required?: This is not a stage but a decision point in the project life cycle where client decides whether they need more changes to the products or not based on the evaluation done in the last stage. Prototype may go into one more iteration if client want more changes to the product. If they are happy with the product and are ready to accept this as a final product, then the product may go the final round of system test.
  • Refine Requirement /Use case: If client decides to make propose changes after the User Evaluation stage, requirements and in turn user cases need to be refined as per the change request. Development and testing team will use these changes use cases to refine their design and test plan.
  • Final System Test: Once the customer approves the prototype as the final product, a final system integration test might be required to check the integration of the product with client environment and other application. User also might want to do a final assessment of the product with all the other application integrated to it.
  • Product Release: Once final test is done, product is ready to be released and deployed at the client location. Training and demo might be required for the wider user group along with the user manuals.

Advantage and Disadvantage of Agile Methodology:


  • No Detail requirement needed: You don’t need to have the entire requirements finalised to start the development work. Build and Test can start as soon as initial high level requirements are available.
  • Early benefit to the user/business: Following Agile methodology gives an early view to the user about how the final product might look and behave. This helps them into finalising the user requirements. It might also happen that the prototype delivers some of the requirements which use may want to use and evaluate till the final product is delivered with all the functionalities.
  • Face to face communication: Agile method give more emphasis on having the face to face communication between the user/customer and project team to make sure there is no room left for any kind of confusion in understanding requirement and inputs.
  • Less time to market: Using Agile method, final product is delivered to the customer in least possible time.
  • Less cost to customer: It saves cost for both customer and supplier as resources are used for less time.
  • High Quality: Since customer is involved in all the stages of software development, means the quality of final quality if high resulting in highly satisfied customer.


  • Smaller Planning Horizon: Since Agile projects have smaller planning horizon meaning that project is started with out detailed planning, there is always a chance that initial project effort and cost estimation may not be correct. This might result in multiple changes to estimation in subsequent estimation.
  • Lesser design and documentation: Since build and test starts early, there is always a chance that proper designing and documentation may take a back seat.
  • Need clear customer vision: As customer input is required in all iterations, it is very necessary that customer should have clear vision of end product. Project can easily lose its direction if client have only vague idea of the product they want.
  • Necessity of experienced and senior resources: Since Agile method is more about less planning and more decision making, it is absolutely necessary to have experienced and senior resources in the team or experienced resources mentoring new resources.

I hope the above tutorial have helped you to understand the basic overview of Agile methodology. In case of any doubt, you can contact me at or if you want to give any suggestions/comments, please use the comment box below.


    0 of 8192 characters used
    Post Comment
    • profile image


      6 years ago

      really very nice..

    • profile image


      7 years ago

      Easy to learn

    • profile image


      7 years ago


    • profile image

      Srikanth gandrakota 

      7 years ago

      Good article

    • profile image


      7 years ago

      Good Article.......

    • profile image


      7 years ago

      Good One..

    • profile image

      Mani Sharma Medikundum 

      7 years ago

      its easy to understand.

    • profile image


      7 years ago

      It is Good article to understand the Agile overview.

    • profile image


      7 years ago

      useful indeed :). Thanks.

    • profile image


      7 years ago

      very useful..


    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at:

    Show Details
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the or domains, for performance and efficiency reasons. (Privacy Policy)
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
    ClickscoThis is a data management platform studying reader behavior (Privacy Policy)