Friday, October 25, 2013

Is Agile a Methodology or a Set of Guidelines?

Agile is about being rigorous, the very opposite of rigid. 

Wikipedia states: Agile is a software development methodology or system development methodology in software engineering, it is a framework that is used to structure, plan, and control the process of developing an information system. 

Agile is both a methodology and a set of guidelines. Agile SOFTWARE DEVELOPMENT refers to a group of software development methodologies, like SCUM, XP, DSDM, FDD, Crystal etc., each one of these methodologies follows standard processes and practices. The values and principles of Agile development should be embodied within a specific Agile methodology, since those are the key tenets of Agile development. The values and principles reflect the spirit of Agile, and the implementation is the methodology

The Agile Manifesto is an instrument to succinctly state the mission of Agile development. ‘12 principles of Agile’ described in Agile Manifesto can be used to assess the real agility of the methodology that you choose. One may also pick certain practices like scrum meetings, Domain Analysis, Backlog list, Continuous Integration, Just In time, Just do it etc. and develop their own set of processes that meets the requirements of Agility. Many organizations have implemented Agile by combining SCRUM and XP development methodologies, as SCRUM focuses on Management and XP on the engineering.

Some methodologies require practitioners to strictly adhere to the methodology, whereas agile methodologies tend to be more flexible. Humans are naturally creative, innovative beings and many of us bristle at the idea of applying methodology created elsewhere to our own needs and environment. But it's not like you have to start from scratch--you could use methodologies developed elsewhere as a base and adjust as a tailored methodology based on local knowledge and needs. Being agile is the capabilities to adapt to the changes.

Agile is a culture!. Because to really work effectively, in most cases you are talking about a Team, that is trying to adhere to those common values and principles, and ways of behaving and doing that embrace them. It is important to recognize that moving to Agile may require a significant culture change that affects the entire business. It certainly is NOT just a "development thing”

In order for any methodology to be truly agile, it must be adaptive. That is, there should be regular reflection and updates to the methodology to eliminate what does not work and try things that might. So the methodology is always evolving in a way so as to best deliver value to the customer while producing maintainable and extensible software.

So even if Agile were a methodology, any self-respecting methodology has features that prevent it from becoming a rigid and inappropriate bureaucracy: 

• It will be specifically tailored to the type of work that is really being done.
• It will be abstract enough to permit considerable leeway for professional judgment.
• It will be fully scalable (no, not just big, medium and small).
• It will include user-friendly mechanisms for granting exceptions and waivers.
• It will include wide-ranging but rigorous (the very opposite of rigid) ranges of options.
• It will be implemented through training and tools, techniques and templates that make explicit the team’s authority to vary, depart from or just plain ignore the ‘rules’. 

Agile is a both a methodology and a set of guidelines, so in order to be successful, it needs to become a way of life- all the way through the business - and that is typically the toughest part of implementing agile successfully.





2 comments:

It is the responsibility of the Scrum Master to ensure that the Product Owner does not change requirements or acceptance criteria during the Sprint review and reject a done backlog item because it does not meet the changed requirements. If the requirements have changed, a Product Backlog item needs to be created to address the changed requirements in a future Sprint.

Thanks for providing these kinds of data. Check out this related piece of a post I wrote about, Agile Methodology is a Growing Trend in Software Development

Post a Comment