Overview of Agile Methodology

Introducing Agile in Practice, Landscape of Agile and Planned Methods

Table of Contents

  • Agile Methodology Overview

        • Agile Methodology Definition

        • What is Agile Project Management ?

        • Agile Manifesto

            • Core Values of Agile Manifesto

            • Principles of Agile Manifesto

        • Deliverables

  • Agile Umbrella

        • Key Agile Methodologies

            • Scrum

            • Extreme Programming (XP)

            • Adaptive Software Development (ASD)

            • Dynamic System Development Method (DSDM)

            • Feature Driven Development (FDD)

            • Kanban

            • Crystal Method

  • Benefits of Agile

  • Hurdles in Adopting Agile Framework

  • Real-life Examples of Agile Project Management

  • Summary

AGILE METHODOLOGY OVERVIEW

Agile methodology definition:

Agile methodology is a project management method largely used in software development, in which requirements and solutions are generated by self-organized cross-functional teams and their customers.

Agile approaches are a set of concepts that stress adaptability and flexibility in software development. We focus on helping teams to deliver in actionable steps because Agile aspires to respond more swiftly to changing business needs.

Agile software development is a set of approaches centred on the idea of iterative development, which entails the evolution of requirements and solutions through cooperation amongst cross-functional self-organizing teams. Agile development's ultimate goal is to empower teams to offer more value faster, with improved quality, efficiency, and predictability, as well as a better ability to adjust to change.

The Agile Manifesto was born because of the flaws and constraints of traditional software development paradigms like the Waterfall model. Software is something that can be continuously updated which makes the software industry a highly competitive market. Thus it implies that developers of software need to persistently improve, update and innovate their products to remain on top of the game—and sequential approach of the Waterfall method just wasn’t cutting it.

We can define agile methodology as a strategy for building software products that is aligned with the Agile Manifesto's key values and principles. Agile approaches are motivated by the desire to offer the best product possible, with incremental and increased delivery frequency of tiny chunks of functionality delivered by small cross-functional self-organizing teams, allowing for frequent customer input.

And during this process, Agile focuses on addressing the challenges which are generally faced by the traditional approaches like “waterfall model” which delivers large products in long periods of time, during which customer requirements might frequently change, which might cause delivery of a wrong product framed from different requirement analysis.

What is Agile project management?

Agile project management has the quality of adaptiveness which makes it an efficient method used for delivery of complex projects. It emphasizes on quality attributes which includes collaboration within the team and stakeholders, flexibility and transparency in activities among the team, continuous improvement and providing high quality results. It aims to be a transparent and measurable approach that uses six main deliverables to track and monitor the progress and develop the software.

What is the Agile Manifesto?

The Agile Manifesto is a statement of key ideals and concepts that the software development process is based on. The Agile Manifesto for software development was created in 2001 and is a declaration of four important rules and twelve concepts that serve as a guide for people who work on agile software. It was created by a group of 17 professionals, convened by Kent Beck, who had previously employed agile approaches such as XP, DSDM, SCRUM, FDD, and others.

Core values of Agile Manifesto

There are four core values of Agile Manifesto:

  • Individuals and interactions over processes and tools – The first value prioritizes collaboration and communication. We must recognize that software development is a human activity in which the quality of human interaction is critical. Tools are vital in software development, but regardless of the tools used by the team, outstanding software requires a lot of teamwork.

  • Working software over comprehensive documentation - Documentation has its place and may be a valuable resource or reference for both users and coworkers. However, rather than detailed documentation, the major purpose of software development is to create software that provides economic benefits.

  • Customer collaboration over contract negotiation – Customers and development teams must collaborate closely and communicate regularly. Teams will gain a better understanding of what all stakeholders desire by listening to and receiving feedback.

  • Responding to change over following a plan – Changes are an inevitable part of software development, and your software process should reflect this reality. A project strategy must be adaptable enough to adjust as circumstances dictate.

Principles of Agile

According to the Agile Alliance, the 12 Agile principles are as follows:

  1. Satisfy the customer by delivering valuable software on time and on a regular basis.

  2. Changes in regulations are welcomed.

  3. Deliver functional software on a regular basis.

  4. Throughout the project, collaborate on a daily basis.

  5. Build projects around motivated people who can be relied on to get the job done.

  6. When possible, have a face-to-face dialogue.

  7. Working software is a vital indicator of the ongoing progress.

  8. Maintain a consistent speed for as long as possible.

  9. Consistently focus on technical excellence and attractive design.

  10. Simplicity is crucial—the art of minimising the amount of effort that isn't done.

  11. Self-organizing Cross-functional teams produce the finest architectures, requirements, and designs.

  12. Consider how you can improve your effectiveness, then tune and adjust at regular intervals.

The deliverables and Artifacts:

  1. Product vision statement: A overview of the product's goals is called a product vision statement.

  2. Product roadmap: The product roadmap is a high-level view of the requirements needed to accomplish the product vision.

  3. Product backlog: This is the whole list of everything you'll need for your project, organised by priority.

  4. Release plan: A release plan is a schedule for releasing a working product.

  5. Sprint backlog: The user stories (requirements), goals, and tasks associated with the current sprint are called the sprint backlog.

  6. Increment: The working product feature that is shown to stakeholders at the end of the sprint and may be provided to the customer.

Within Agile project management, there are several frameworks that can be utilised to develop and deliver a product or service. Each framework emphasises a distinct technique and focuses on a certain result. Depending on the desired objective, an Agile strategy is selected and implemented. They all have their own traits and language, yet they all follow the same concepts and procedures.


Two of the most popular ones that support the Agile development framework life cycle are Scrum and Kanban.

AGILE UMBRELLA

Original Image Source : "www.digite.com/agile/agile-methodology/"

Key Agile Methodologies

Agile is an umbrella term for a variety of approaches and activities. Let's have a look at some of the most popular methods:

  • Scrum

  • Extreme Programming (XP)

  • Adaptive Software Development (ASD)

  • Dynamic System Development Method (DSDM)

  • Feature Driven Development (FDD)

  • Kanban

  • Crystal Method

SCRUM

What is Scrum?

Scrum is a framework for facilitating teamwork. Scrum will encourage teams to learn through their past experiences, self-organize while working on a particular problem, and reflect on their victory and losses to continuously improve, much like a rugby team.

While the scrum I'm mentioning is most frequently used by software development teams, the principles and lessons it teaches can be applied to any type of teamwork. One of the reasons scrum is so popular is because of this. Scrum is a set of gathering, tools, and role that work with each other to help teams structure and manage their work. It is mostly referred to as an agile project management framework.


Advantages of Scrum

  • Scrum can help groups complete project deliverables fast and with efficiency.

  • Scrum ensures that time and money are spent wisely.

  • Large projects are broken down into smaller, more manageable sprints.

  • New features are coded and tested, during the sprint review.

  • It's ideal for quick-paced development projects.

  • Scrum meetings provide the team with clear sense of vision.

  • Because Scrum is agile, it incorporates feedback from customers and stakeholders.

  • Short sprints make it much easier to make changes based on feedback.

  • During daily scrum meetings, each team member's individual effort is visible.



Disadvantages of Scrum

  • Due to the lack of a definite end-date, Scrum frequently leads to scope creep.

  • If people aren't committed or cooperative, there's a good chance the project will fail.

  • It's hard to implement the Scrum framework in large groups.

  • Only experienced team members can make the framework work.

  • Team members can become irritated by daily meetings.

  • If a team member leaves in the middle of a project, it could have a significant negative impact.

  • Quality is difficult to achieve unless the team goes through a rigorous testing process.

EXTREME PROGRAMMING

Extreme Programming

In response to problem domains with changing requirements, Extreme Programming (XP) was created. Your customers might have a hazy idea of what the system is supposed to do.

It's possible that you have a system whose functionality is set to change every few months. In many software environments, the only common factor is dynamically changing requirements. XP will win out among other methodologies at this point.

Definition:

Extreme Programming (XP) is an agile software development approach that attempts to improve software quality while simultaneously improving the development team's quality of life. In terms of proper engineering methods for software development, XP is the most detailed of the agile frameworks.


Basic principles of Extreme programming:

Developers use User Stories frequently in the XP technique, which is built on regular iteration. Customer user stories are brief, informal assertions about the functionality they require. A User Story is a standard description by the user of a feature of the necessary system. It doesn't go into detail on finer topics, such as the numerous scenarios that could occur. The project team proposes metaphors based on user stories. Metaphors are shared ideas about how a system could work. The development team may opt to construct a Spike for specific features. A Spike is a very simple software that is used to determine whether a given solution is applicable. In some aspects, it resembles a prototype.

Original Image Source : "Extreme Programming (Image Source)"

The following are some of the basic tasks that are followed during software development using the XP model:


  1. Coding: The coding concept used in the XP model differs slightly from traditional coding. Drawing diagrams (modelling) that will be converted into code, scripting a web-based system, and selecting among several alternative solutions are all part of the coding activity.

  2. Testing: The XP model places a high value on testing and considers it to be the most important factor in developing error-free software.

  3. Listening: If devs are to create high-quality software, they must carefully listen to their customers. Sometimes software developers don't have a thorough understanding of the system they're working on. As a result, programmers should have a thorough understanding of the system's functionality, as well as the ability to listen to customers.

  4. Designing: A system's implementation becomes excessively complex and difficult to comprehend without adequate design, making upkeep costly. Good design results in the reduction of complex dependencies within a system. As a result, the importance of employing proper design effectively is emphasised. One of the most important aspects of the XP model is gathering feedback to better understand the specific demands of customers. When there is constant touch with the consumer, the development is more effective.

  5. Simplicity: The XP model's core premise is to develop a simple system that works efficiently now rather than attempting to build something which will take time and may never be used. It concentrates on a few key features that are urgently required rather than wasting time and effort speculating on future requirements.

Applications of Extreme Programming (XP):

The following are some examples of projects that can be developed utilising the XP model:

  • Projects for small groups: Face-to-face meetings are easy to schedule in the XP model, which is ideal for short projects with small teams.

  • Projects incorporating new technology or research are subject to constantly changing requirements as well as technical difficulties. As a result, these projects are completed using the XP model.

ADAPTIVE SOFTWARE DEVELOPMENT (ASD)

What is Adaptive Software Development (ASD)?

Adaptive Software Development (ASD) is a direct descendant of Rapid Application Development, an earlier agile framework (RAD). Its goal is to assist teams in swiftly and successfully adapting to changing requirements or market needs by allowing them to evolve their products with minimal planning and continual learning. Teams are encouraged to grow in three stages by the ASD method: speculation, collaboration, and learning.


The following are some of ASD’s strengths :

  • End-user-centric, which can lead to more intuitive and better products.

  • Allows for on-time, if not ahead of schedule, delivery.

  • Encourages developers and clients to be more open with each other.

The following are some of ASD's flaws:

  • Extensive user participation is required, which can be difficult to achieve.

  • Testing is incorporated into each stage, which can increase project costs.

  • Rapid iteration and continuous feedback are important, but they can lead to scope creep.

DYNAMIC SYSTEM DEVELOPMENT METHOD (DSDM)

The DSDM Philosophy

According to the DSDM philosophy, each project must be connected with clearly defined strategic goals and must focus on early delivery of tangible business benefits.

This may be accomplished if all stakeholders:

  1. Understand and support the company's vision and objectives.

  2. Are given the authority to make judgments in their area of competence.

  3. Collaborate to produce a business solution that is suitable for purpose.

  4. Collaborate to meet agreed-upon deadlines in accordance with corporate goals.

  5. Accept that change is unavoidable as one's understanding of the answer expands over time.

The DSDM Principles

The eight DSDM principles bring the agile ideals to life by directing the team in the attitude and mindset that must be adopted in order to deliver consistently while being adaptable.

Principle 1 - Concentrate on the Business Need.

Principle 2 – Meet deadlines.

Principle 3 - Work together.

Principle 4 - Never Sacrifice Quality.

Principle 5 – Incrementally build from solid foundations.

Principle 6 – Develop Iteratively.

Principle 7 - Constantly and clearly communicate.

Principle 8 – Demonstrate Control.

FEATURE DRIVEN DEVELOPMENT (FDD)

Feature-Driven Development

Feature-Driven Development (FDD) is an Agile software development process that is customer-centric, iterative, and incremental, with the objective of providing real software solutions often and effectively. Agile FDD emphasises status reporting at all levels, which aids in tracking progress and results.

FDD enables teams to update the project on a frequent basis and immediately detect issues. Furthermore, clients can receive information and significant outcomes at any moment. FDD is a popular strategy among development teams since it aids in the reduction of two well-known morale-killers in the development sector.


Advantages of Feature driven development

  1. Feature-Driven Development assists in moving larger-scale projects forward and achieving repeated success.

  2. The basic five steps assist in completing tasks in the shortest amount of time and in the simplest way possible.

  3. This paradigm is based on industry standards for software development, allowing for easy development and industry-recognized best practises.

  4. Feature-driven development allows for precise progress tracking and reporting.

  5. FDD also supports many teams working concurrently.


Disadvantages of FDD Methodology

  1. It is not a great approach for smaller projects, hence it is not suitable for a single software engineer.

  2. Because there is a high reliance on the primary developer, the individual should be fully prepared to function as coordinator, lead designer, and mentor.

  3. Because there is no written documentation offered to clients in this process, they are unable to obtain a proof for their own programme.

  4. Individual code ownership is encouraged rather than shared team ownership.

  5. The methodology does not describe iteration as well as other agile techniques.

KANBAN

What is Kanban?

The name "Kanban" was coined by combining the terms "visual card," "signboard," or "billboard," and "signalling system" to describe a process that restricts Work In Progress (WIP). Kanban has been utilised in Lean Manufacturing for more than a half-century.


Kanban's key principle comprises-

  • Workflow Visualization

      1. Divide the entire work into discrete portions or states, which can be represented on a wall by labelled columns.

      2. Each item should be written on a card and placed in a column to represent where it is in the workflow.

  • WIP should be limited.

      1. Limit the amount of things that can be in progress at each process segment/state. As a result, Work in Progress (WIP) is limited at each workflow step.

  • Calculate the Lead Time

      1. The typical length of time it takes to finish one item is referred to as lead time, also known as cycle time. Determine the Lead Time and optimise the process to make it as quick and predictable as feasible.

      2. The Kanban idea is a direct implementation of a Lean Pull Scheduling System. Only when an object earns a slot in the following segment / state can it proceed.


This Kanban concept is an exact replica of a Lean Pull Scheduling System. Only when an object earns a slot in the following segment / state, it can proceed.

Advantages of Kanban

1. Reduce product obsolescence by optimising inventory:

  • Because component components are not delivered until they are required, there is less need for storage space. If a product or component design is improved, it should be included as quickly as feasible into the final product (As Soon As Possible). There are no outdated items or components on hand.

  • This is consistent with the Kaizen continuous improvement system. Product designs may be continually improved in tiny increments, and those improvements are promptly included into the product, reducing waste from obsolete components or parts.

2. It cuts down on waste and scrap:

  • Kanban guarantees that items and components are produced only when they are needed. This avoids overproduction. Because raw materials are not provided until they are needed, waste and storage expenses are reduced.

3. Allows for greater production flexibility:

  • If there is a sudden decline in demand for a product, Kanban guarantees that we are not left with extra inventory. This enables us to adapt swiftly to changing demand.

  • Kanban also enables us to be more versatile in how we utilise our manufacturing lines. The supply chain does not link manufacturing sites together. They may swiftly switch to different items as the demand for various products changes. Yes, the types of machinery and equipment employed, as well as staff abilities, continue to create limits, but the supply of raw materials and components is no longer a bottleneck.

4. Improves Output:

  • If there is an issue with manufacturing, the flow of Kanban (cards, bins, pallets, etc.) will be disrupted. This brings problems to light fast, allowing them to be resolved as soon as feasible.

  • Kanban reduces wait times by increasing supply availability and reducing administrative bottlenecks. This results in increased output while using the same resources.


Disadvantages of Kanban:

  1. It is less successful in circumstances where resources are shared. Assume that the upstream station produced a number of components. If further components are required, a request for more of the downstream station's required part will have to be delayed. In the interim, a buffer is necessary to guarantee that the downstream station does not run out of electricity.

  2. Furthermore, because each component necessitates its own signalling card, the system becomes more complicated than it would be if the resources were allocated.

  3. Because kanban is based on repeatable production schedules, changes in mix or demand generate problems. It is less suitable for sectors with a volatile mix and volume.

  4. Kanban does not remove unpredictability, thus unexpected and prolonged downtimes might disrupt the system; low quality in terms of scrap and rework also has an influence on the system's capacity to function properly.

  5. Kanban systems are inadequate for industrial environments characterised by short production runs, extremely changing product demand, low product quality, and a diverse product variety.

CRYSTAL METHOD

What is the Crystal Method?

Crystal is a flexible framework that focuses on people and their interactions rather than processes and equipment. In other words, this paradigm is a natural extension of one of the Agile Manifesto's key values.


The Crystal agile framework is based on two key beliefs:

  • Teams can enhance and optimise their workflows on their own.

  • Every project is different and evolving, which is why the team in charge of that project is best prepared to define how it will approach the task.


Crystal's qualities include:

  • Allowing teams to operate in whatever way they see fit.

  • Direct team communication, transparency, and accountability are facilitated.

  • Teams can respond quickly to changing requirements thanks to the adaptable method.


Crystal’s weaknesses include:

  • Lack of pre-defined plans can lead to scope creep, which is one of Crystal's flaws.

  • Confusion can arise due to a lack of documentation.

BENEFITS OF AGILE

9 key benefits of using agile methodology

  1. Product of exceptional quality

  2. Customer satisfaction is important.

  3. Improved control

  4. Project predictability has improved.

  5. Reduced dangers

  6. Increased flexibility to manage changing priorities

  7. Continuous improvement

  8. Improved team morale and team-centered collaboration

  9. More relevant metrics

HURDLES IN ADOPTING AGILE FRAMEWORK

Why Agile cannot be used in every project?


There are two key prerequisites for an adaptable lifecycle, both of which must be met in order to enable true feedback loops:

  • Rather of releasing the entire project at once, incremental delivery implies developing "usable" parts of the product one at a time. Consider a piece of software: you can start with a basic version and then add new features every few weeks to make a new version (increment). Each version would be usable, and new additions would give users/customers more value. This should be the case because unusable deliverables cannot generate the necessary feedback for adaptation. Can you do it with a structure? Can you think of any potential subsets? Can you use a building with walls but no windows or doors in theory? Even if you can, can you use the feedback from the completed walls to decide on the doors and windows?

  • Iterative development: To deliver incrementally, you must develop iteratively, which means you must repeat the development processes. Instead of designing, coding, integrating, and testing each item separately for a piece of software, you design, code, integrate, and test each item separately (Waterfall). Is it feasible for a structure? Is it possible to design a foundation without also designing the rest of the building? No, the dependencies between the elements in this product are unavoidable.

As a result, Agile cannot be used in every project, such as the construction of a building.

Yes, there are some aspects of every project that can be developed iteratively and delivered incrementally. Interior decoration is a good example of a product that can be done with an Agile system in the context of a building.

Organizational hurdles to adopting agile

Organizations attempting to implement agile for project management may encounter any of the following common roadblocks:

  • A firm structure or culture that does not support agile effectively: The remainder of the organisation may not be agile-ready, even if project teams are. For agile to be genuinely effective, all functional leaders must believe in it and support it.

  • Uncertainty about the influence on broader company goals: To obtain the necessary goals, using agile methods to execute projects is insufficient. Projects can nevertheless be carried out in methods that do not produce the results necessary for the company's long-term growth. The importance of strategic alignment cannot be emphasized.

  • Testing cycles that are rushed: Sprints can result in rushed testing cycles. In the rush to finish sprints as soon as possible, teams can become overly focused on the deadline, overlooking simple aspects of the testing cycle, which can have serious consequences. Defects can go undetected for extended periods of time or be discovered too late.

  • Inadequate agility: Despite the fact that agile is gaining popularity, top agile talent can be difficult to find. Due to a scarcity of agile talent, companies wishing to implement projects using this methodology will have few options.

REAL LIFE EXAMPLES OF AGILE PROJECT MANAGEMENT


Projects where Agile is acceptable or may be viable include the following:

  1. Software development for small to medium-sized businesses.

  2. In circumstances where several variations are required, product development is required.

  3. The main deliverable can be broken down and developed in little, distinct chunks, which can then be released or at the very least accepted by the final client. There is one crucial aspect here: each iteration's requirements and functions must be stand-alone, with no significant dependencies on needs and functions produced outside of the current iteration. We should have product parts that are ready for release and deployment at the end of the iteration. We may not be able to use Agile at all if we are unable to do this.

  4. This method can also be used to deploy changes to the business process that the product is used in.


So let’s look at a few examples of Agile in the real world.


1. The build-your-own meal

In fast, informal dining, the build-your-own-meal trend is well-known. At places like Chipotle or Subway, an employee assembles your dish while you provide input.

Is there any more cheese? Is it possible to have less cheese? Is there a different kind of bread? Guacamole? Is there no guacamole? It's no problem.

Your food project manager will check in with you every step of the way to ensure that your food project is still on track. The end result is a delectable supper that was enhanced at every stage by regular face-to-face engagement.


2. The Apple Genius Bar

Looking behind the name's pretensions, the Apple Genius Bar is an excellent real-world illustration of Agile project management.

You won't have to fill out a bunch of documents or wait in a large queue (it's more like a waiting area) when you bring in your broken iPhone or iPad. It's nothing like your previous DMV encounter.

The Genius Bar stands out as an Agile process because of its emphasis on communication. You're interacting with an associate who asks you questions and takes notes. To put it another way, "It's about people and how they engage with processes and tools." Apple, on the other hand, employs procedures and instruments, such as the iPad on which they take notes "you could say. Yes, but first and foremost is human conversation.


3. Baseball

To be effective, a baseball manager must be an Agile project manager. Every season, which consists of 162 games plus playoffs, is a massive undertaking, and each game is a small part of that.

Consider what would happen if a baseball manager put the same players in the same positions and batted in the same order for all 162 games, regardless of injuries, poor performance, or bad match-ups. That leadership would almost probably fail miserably (even Lou Piniella with the 2001 Seattle Mariners needed to make adjustments here and there).

Agile can actually be seen all across baseball. At the end of each iteration, there are infield Scrum meetings on the pitcher's mound, phone calls to the bullpen (rather than emails), and a definite outcome (win or loss) (game).

SUMMARY

As a result, there are numerous benefits to using an agile framework in software development. Many large corporations are now adopting this idea. Agile concepts have spawned a slew of various models and development processes. A increasing number of businesses have credited the technique with their success in recent years. Agile has been adopted and commended by some of the largest names in journalism, technology, finance, and even certain national government agencies.


GROUP NO : SY D 20

MEMBERS : ARJUN THAKUR (PRN No. 12010313 ROLL No. 53)

RISHAB KHANDELWAL (PRN No. 12011319 ROLL No. 4)

RAJAT HARNE (PRN No. 12010059 ROLL No. 1)

SANKALP CHORDIA (PRN No. 12010145 ROLL No. 18)