• info@helpingtesters.com
  • helpingtesters

Understanding Agile Methodology – HelpingTesters

September 5, 2017
Agile Methodology, Agile Methodology tutorial, Agile testing

Software development using Agile Methodology is nowadays the most widely used practice in most of the IT organizations are following same. In simple dictionary meaning, Agile means to be able to move quickly and easily. Let’s try to understand something about Agile Methodology step by step. 

In today’s article for Agile Methodology, we would be covering below topics

What is Agile

    • An approach used for Software Development
    • Agile is basically a set of values and principles that focus on customer satisfaction by continuously delivering values via shippable working software

Agile Umbrella

  • Agile in itself is a framework that provides values and principles which are shared by various Software Development methodologies.
  • These methodologies have their own characteristics and way of execution, however, Agile principles and values act as a base for all. Hence, an organization has to decide which one of these is the most suitable for them.
  • Let’s see what are these methodologies

Agile Methodology Manifesto

While working towards better ways of developing software, Agile Manifesto provides the following values. However, it doesn’t mean that values given on the right should be completely neglected completely. They are also required at their minimal level and are also important.

  • Individuals and interactions over processes and tools

Allow your people to work freely and contribute uniquely towards the product. It will provide better results rather than sticking to process and tools adoption. Ensure that right processes and appropriate tools are in place which would help the team to work better.

  • Working software over comprehensive documentation

Agile Methodology believes in delivering working software rather than providing only documentation. Working software gives client and agile team confidence, removes unpredictability.

  • Customer collaboration over contract negotiation

High degree of customer involvement at all stages is required rather than limiting themselves up to few high-level activities only

  • Responding to change over following a plan

Team should welcome the changes, be flexible enough to respond and deliver them rather than sticking to what has been agreed earlier

Agile Methodology Principles

Along with the above, there are 12 Agile Methodology principles based on Agile Manifesto which each Agile team member should know. These principles are:

  • The highest priority is to satisfy the customer through an early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is the face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile Methodology processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity–the art of maximizing the amount of work not done–is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Traditional Waterfall vs. Agile (Scrum)

More and more companies are now adopting Agile (scrum) and moving away from the traditional software development method i.e. waterfall. Why? Of course, we will see in detail what is Scrum and how it works later, let’s try to understand the differences between these two software development models.

Traditional Waterfall Agile
Requirement Analysis, Design, Coding, Testing, are treated as separate phases and executed only once in entire SDLC These are executed in every iteration until product is 100% developed
Ideally, can’t start next phase until the current one is completed/signed off Can work on multiple items simultaneously. No sign off is required.
Working software is delivered only at the end Working software is delivered at the end of every iteration which is incremental
More suitable in an environment in which scope is fixed and doesn’t change going forward, at least during SDLC. More suitable in case of changing requirements or uncertain scope
To meet deadlines, later phases of SDLC i.e. testing, etc. have a pressure to deliver in short time All phases have sufficient time to work on the product
Difficult to win Client’s confidence in the beginning Since working product is shipped at short and regular intervals, it is easier to win client’s confidence at an early stage.
Expects lengthy documentation Only minimal documentation is needed
During the testing phase, if a defect is found that needs the change in requirement, cost of fixing such defect is too high Cost of fixing such defects is much lower compared to traditional SDLC.
No/rare scope of accepting changes during the SDLC Changes are welcome at any stage.
Customer may not get deeply involved in each and every activities Continuous customer involvement is required
Plans are prepared in the beginning of SDLC and teams are expected to move as per plan till end Separate planning is done for each iteration 

 

Why Agile Methodology?

  • Places strong focus on customer

Agile provides an opportunity to work more closely with your customer and understand their mindset in a better way

  • Helps in mitigating the risks

Since Agile believes in delivering the working product in short time span, the risk of delivering wrong product or risk of not being able to deliver the product at all is reduced to a great extent.

  • Agile offers a value-driven approach rather than plan-driven approach

Delivery of working product is the ultimate measurement of success which client sees the value into. Plans are no doubt there but to facilitate software development.

  • Facilitates waste elimination within organizational processes

 

Why should an organization move to Agile

There are various reasons behind moving an organization to agile. However, the reasons which are in the center are these two:

  • Gain Certainty

As agile focuses on delivering working products frequently, assurance about the product delivery gets stronger with increased number of delivery

  • Delivers Customer Value

The customer is at the center and delivering what customer wants is a priority.

  • Improvement in Quality of the product

Agile Methodology expects customer collaboration at each stage to get immediate feedback and/or suggestions so that they can be prioritized and implemented accordingly which in turn leads to quality improvement by delivering right product.

  • Increase in productivity

If the team is motivated as Agile Principle says, they will work with ownership feeling and come up with more and more ideas and enthusiasm

  • High probability of early Return on Investment

Agile Methodology delivers working software rather than only presentation/documentation. It gives client an opportunity to market the product and get more and more business from early stage.

  • Cost reduction

Because of continuous and immediate customer feedback, cost of fixing defects, cost of implementing change in requirement is much lesser as compared to traditional waterfall.

Agile Drawbacks

Along with many benefits, agile comes with some drawbacks also. Let’s see them:

  • Requires high level of discipline

In Agile, everything is time-bound and planned accordingly. You can’t keep on missing / skipping things.

  • Continuous involvement of stakeholders is needed

At every stage/event, continuous involvement of stakeholders is needed viz. providing feedback, getting approvals, planning, etc.

  • Expects working trained people

Every stakeholder including development team should know how Agile works, what is their roles & responsibilities, expectations, importance, so on and so forth. If someone doesn’t know this, he won’t understand what’s going on.

  • Management may not understand it too well

As management has a little role to plan in daily activities of Agile Methodology, it may give them a feeling of losing control over their people.

  • No lengthy documentation

Agile Methodology entertains keeping the documentation up to the required level only. Lengthy and comprehensive documentation is preferred in the waterfall.

About the author

Vaibhav Singhal author

Vaibhav is in software testing since a decade. Worked with different testing techniques along with exploratory testing. Performed different regression, performance, api etc testing with tools and libraries like selenium, jmeter, loadrunner, protractor, rest assured, Katalon Appium and others.

Leave a Reply

Your email address will not be published.