What is Agile?
Quote from Abrachan on 10/07/2024, 9:22 PMAgile is the common umbrella name used for a set of project management frameworks which rely on developing the product incrementally through a series of short iterations, not exceeding 30 days duration. Every iteration starts with a iteration planning meeting, followed by the iteration, daily standup meetings to review progress, iteration review and iteration retrospective.
When the requirements are very clear and when the technology is familiar, we can use Predictive or Waterfall models. Then there are projects where requirements are continuously evolving and technology is also very new. AI projects is a classical example. For most, technology and requirements of AI projects are new, hence it is very difficult to estimate things upfront. High level and detailed design phases of EPC projects are no exception. In these projects, waterfall models will not hold good. In such projects, agile is a better choice.
What is really Agile?
Agile is a family of iterative and incremental frameworks like Scrum, Test Driven Development (TDD), Feature Driven Development (FDD), Xtreme Programming (XP), Scaled Agile Frameworks (Safe), Kanban etc. All agile projects passes through a series of iterations or sprints. At the end of each iteration, the product is incremented a little more. Out of all the agile frameworks, Scrum is the most popular one, as it is not domain specific. Scrum can be effectively used for developing any new product like a web site, engineering phase of a construction project, Writing a book etc.
Agile is principle centered not rule based. Hence it makes it easy to understand but difficult to practise. Agile project management is well suited for projects where;
- Requirements are not very clear
- Technology is not very clear
Most of the new product development falls into this category.
Agile Manifesto Values:
- Individuals and interactions over processes and tools: This value prioritizes the importance of people and their interactions in software development over relying solely on tools and processes. It emphasizes the significance of communication and collaboration within development teams.
- Working software over comprehensive documentation: Agile emphasizes the delivery of functional software over extensive documentation. While documentation is important, the primary measure of progress is working software that meets the needs of the customer.
- Customer collaboration over contract negotiation: Agile encourages active involvement and collaboration with the customer throughout the development process. This ensures that the software being developed aligns with the customer's needs and expectations.
- Responding to change over following a plan: Agile recognizes that change is inevitable in software development. Instead of rigidly adhering to a fixed plan, Agile methodologies advocate for embracing change and adjusting plans and priorities accordingly to deliver the most value.
12 Agile principles
Agile principles and values are the foundation of Agile methodologies. Here they are:
- Customer satisfaction through early and continuous delivery of valuable software
- Welcome changing requirements, even late in development.
- Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, with a preference for shorter timescales.
- 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 face-to-face conversation.
- Working software is the primary measure of progress.
- Agile 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.
These principles and values guide Agile teams in delivering high-quality software that meets customer needs while adapting to change efficiently.
The best way to understand Agile is to master Scrum framework in detail
Scrum framework
Agile is the common umbrella name used for a set of project management frameworks which rely on developing the product incrementally through a series of short iterations, not exceeding 30 days duration. Every iteration starts with a iteration planning meeting, followed by the iteration, daily standup meetings to review progress, iteration review and iteration retrospective.
When the requirements are very clear and when the technology is familiar, we can use Predictive or Waterfall models. Then there are projects where requirements are continuously evolving and technology is also very new. AI projects is a classical example. For most, technology and requirements of AI projects are new, hence it is very difficult to estimate things upfront. High level and detailed design phases of EPC projects are no exception. In these projects, waterfall models will not hold good. In such projects, agile is a better choice.
What is really Agile?
Agile is a family of iterative and incremental frameworks like Scrum, Test Driven Development (TDD), Feature Driven Development (FDD), Xtreme Programming (XP), Scaled Agile Frameworks (Safe), Kanban etc. All agile projects passes through a series of iterations or sprints. At the end of each iteration, the product is incremented a little more. Out of all the agile frameworks, Scrum is the most popular one, as it is not domain specific. Scrum can be effectively used for developing any new product like a web site, engineering phase of a construction project, Writing a book etc.
Agile is principle centered not rule based. Hence it makes it easy to understand but difficult to practise. Agile project management is well suited for projects where;
- Requirements are not very clear
- Technology is not very clear
Most of the new product development falls into this category.
Agile Manifesto Values:
- Individuals and interactions over processes and tools: This value prioritizes the importance of people and their interactions in software development over relying solely on tools and processes. It emphasizes the significance of communication and collaboration within development teams.
- Working software over comprehensive documentation: Agile emphasizes the delivery of functional software over extensive documentation. While documentation is important, the primary measure of progress is working software that meets the needs of the customer.
- Customer collaboration over contract negotiation: Agile encourages active involvement and collaboration with the customer throughout the development process. This ensures that the software being developed aligns with the customer's needs and expectations.
- Responding to change over following a plan: Agile recognizes that change is inevitable in software development. Instead of rigidly adhering to a fixed plan, Agile methodologies advocate for embracing change and adjusting plans and priorities accordingly to deliver the most value.
12 Agile principles
Agile principles and values are the foundation of Agile methodologies. Here they are:
- Customer satisfaction through early and continuous delivery of valuable software
- Welcome changing requirements, even late in development.
- Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, with a preference for shorter timescales.
- 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 face-to-face conversation.
- Working software is the primary measure of progress.
- Agile 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.
These principles and values guide Agile teams in delivering high-quality software that meets customer needs while adapting to change efficiently.
The best way to understand Agile is to master Scrum framework in detail
Scrum framework