Introduction To Agile Methodology

   Agile means how to move quickly and easily & how do I get better after regular intervals



           

What Is Agile?


Agile methodology is an alternative to traditional project management, typically used in software development. It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to a waterfall or traditional sequential development.

Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Agile project management is an iterative approach to planning and guiding project processes. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.

An agile project is completed in small sections called iterations. Each iteration is reviewed and critiqued by the project team, which may include representatives of the client business as well as employees. Insights gained from the critique of an iteration are used to determine what the next step should be in the project. Each project iteration is typically scheduled to be completed within two weeks.

The main benefit of agile project management is its ability to respond to issues as they arise throughout the course of the project. Making a necessary change to a project at the right time can save resources and, ultimately, help deliver a successful project on time and within budget.

Because agile management relies on the ability to make decisions quickly, it is not suitable for organizations that tend to deliberate over issues for a prolonged period or for those that take decisions to a committee.

Where Did Agile Come from?


In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems,” which criticized sequential development. He asserted that software should not be developed like an automobile on an assembly line, in which each piece is added in sequential phases. In such sequential phases, every phase of the project must be completed before the next phase can begin. Dr. Royce recommended against the phase-based approach in which developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. Royce specifically objected to this approach due to the lack of communication between the specialized groups that complete each phase of work.

It’s easy to see how the “waterfall” methodology is far from optimized compared to agile methodology. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software?





Many software developers have learned the answer to that question the hard way: At the end of a project, 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. Couldn’t it have been possible to ensure the end product would still be relevant before it was actually finished?


Why Agile?


Agile development methodology provides opportunities to assess the direction of a project throughout the development life cycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment.

By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the life cycle.

When a team stops and re-evaluates the direction of a project every two weeks, there is always time to steer it in another direction. The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can develop software at the same time they are gathering requirements, the phenomenon known as “analysis paralysis” is less likely to impede a team from making progress.

In addition, because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. Agile development methodology helps companies build the right product. Instead of committing to market a piece of software that has not even been written yet, agile empowers teams to continuously replan their release to optimize its value throughout development, allowing them to be as competitive as possible in the marketplace. Development using an agile methodology preserves a product’s critical market relevance and ensures a team’s work does not wind up on a shelf, never released.





The Agile Manifesto – 2001



Individuals and interactions: in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.
Working software: working software is more useful and welcome than just presenting documents to clients in meetings.
Customer collaboration: requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
Responding to change: agile development is focused on quick responses to change and continuous development

        Agile principles


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
11. Self-organizing teams
12. Regular adaptation to changing circumstance


Agile Triangle





Adaptive Agile development focuses onto business requirements with necessary frequent changes during the evolution of the product. Agile methods break the product into small incremental builds. These builds are provided in iterations.



The new way of Working


In traditional approach, requirements are fixed but time and resources are variable. Time to develop solution is projected. Resources vary to reduce cycle time.
In Agile, time and resources are fixed but requirements are variable. Requirements specified at high level & prioritized. Time is the major constraint impacting delivery of urgent business needs. Resources fixed and managed to deliver at estimated cost. 




   Principles of Agile Metrics

1.     Affirms and reinforces Lean and Agile principles
2.     Measures outcome, not output
3.     Follows trends, not numbers
4.     Don't produce metrics that no one wants
5.     Don't introduce metrics that require significant work to produce.
6.     Provides feedback on a frequent and regular basis
7.     Be honest about how management uses metrics. Don't use metrics to compare teams or individuals
8.     Take team maturity into account when selecting metrics
9.     Use metrics as a basis for discussion, not as a final decision point

Agile – Metrics




I hope this blog is useful for you and you can get lots of basic knowledge of 
Agile methodology for both personal and professional activities. I will be also happy to receive any comments; I am always glad to read them.  

If you’re looking for more topics the please write in comment section so that I could help you with some more blogs for your interested topics. Please do not forget to check my new blogs for digital transformation processes.

Don’t forget to subscribe to our monthly newsletter, we will keep sharing useful tips for Agile and Agile Software Development! 








Comments

Popular posts from this blog

What is KANBAN?

What is Scrum?