Hani Haham Owner & CEO of Wizard-Projects
What is Agile Methodology?
This is a question I get a lot. Agile methodology is another approach to project management that is utilized mostly in the High Tech industry where requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). So what is Agile Methodology? Or should I say what are they? In fact it can come in many flavors such as Lean, Crystal, SCRUM, Kanban, and many more.
A bit of history
During the 1990s, a number of lightweight software development methods evolved in reaction to the prevailing heavyweight methods that critics described as overly regulated, planned, and micro-managed.
In 2001, seventeen software developers met at a resort in Snowbird, Utah to discuss the lightweight developments methods and together published the Manifesto for Agile Software Development.
In 2005, another group of developers wrote an addendum of project management principles called the PM Declaration of Interdependence to guide software project management according to agile software development methods.
Other literature on the subject were written in 2009 and 2011, respectively name Software Craftsmanship Manifesto and Agile Glossary, as amelioration to PM Declaration of Interdependence.
Agile software development values
Individuals and Interactions over processes and tools
Working Software over comprehensive documentation
Customer Collaboration over contract negotiation
Responding to Change over following a plan
Agile software development 12 principles
Customer satisfaction by early and continuous delivery of valuable software.
Welcome changing requirements, even late in development.
Deliver working software frequently (weeks rather than months)
Close, daily cooperation between business people and developers
Projects are built around motivated individuals, who should be trusted
Face-to-face conversation is the best form of communication (co-location)
Working software is the primary measure of progress
Sustainable development, able to maintain a constant pace
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—is essential
Best architectures, requirements, and designs emerge from self-organizing teams
Regularly, the team reflects on how to become more effective, and adjusts accordingly
The Benefits of Agile Methodology
Transparency - The customer is involved at every step of the process and give feedback to the team. Those feedbacks are important and leads to changes.
Rapid changes - The communicated feedback allows rapid and flexible response to change allowing the stakeholders satisfaction.
Predictable delivery and costs control - It uses short incremental and iterative work sequences. Each work sequence includes adaptive planning, design, development, unit testing and acceptance testing. Those work sequences are called sprints and their duration is around 2 weeks.
Prioritization - It let the customer prioritize each feature accordingly to duration and cost.
Quality - The projects are broken down into manageable units that are easy to develop, test, and maintain.
Business focus - The client is deeply involved in the process and give a better understanding not only on what the product should do but also why it should do what he does.
This methodology is very beneficial because it helps analyzing and improving the product throughout its development. Companies that use this methodology are prone to build a better product within controlled costs.
That's All Folks for today!