Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Exp 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

EXPERIMENT NO.

Aim: Agile framework


Theory:
Agile is a project management and software development methodology that emphasizes
flexibility, collaboration, customer satisfaction, and the rapid delivery of high-quality
software. It is an iterative approach, where projects are broken down into smaller parts
called "iterations" or "sprints," typically lasting 1-4 weeks. Each sprint results in a potentially
shippable product increment.

How Agile Works


1. Project Initiation:
The project starts with a broad vision and a list of high-level requirements known as
the "product backlog." The team, including the product owner, stakeholders, and
developers, collaboratively define the goals and prioritize features.
2. Sprint Planning:
At the beginning of each sprint, the team selects a set of features from the product
backlog to work on. This subset is called the "sprint backlog." The team then plans
how to implement these features during the sprint.
3. Sprint Execution:
During the sprint, the development team works on the tasks defined in the sprint
backlog. Daily stand-up meetings (or daily scrums) are held to discuss progress,
challenges, and plans for the day.
4. Continuous Feedback and Testing:

Agile emphasizes continuous integration and testing. Developers regularly integrate


their work, and automated tests are often used to ensure that new code does not
break existing functionality.

5. Sprint Review and Retrospective:


At the end of the sprint, the team conducts a sprint review to demonstrate the
completed work to stakeholders and gather feedback. A sprint retrospective follows,
where the team reflects on what went well, what could be improved, and how to
implement those improvements in the next sprint.
6. Release:
After several sprints, a complete product or a significant product increment is ready
for release. Agile encourages delivering functional software as early as possible, even
if it is not fully complete, to gather user feedback.

7. Iteration and Continuous Improvement:

The process repeats with new sprints, continuously refining and expanding the
product based on feedback and changing requirements.
Principles of the Agile Model:
 To establish close contact with the customer during development and to gain a clear
understanding of various requirements, each Agile project usually includes a
customer representative on the team. At the end of each iteration stakeholders and
the customer representative review, the progress made and re-evaluate the
requirements.
 The agile model relies on working software deployment rather than comprehensive
documentation.
 Frequent delivery of incremental versions of the software to the customer
representative in intervals of a few weeks.
 Requirement change requests from the customer are encouraged and efficiently
incorporated.
 It emphasizes having efficient team members and enhancing communications
among them is given more importance. It is realized that improved communication
among the development team members can be achieved through face-to-face
communication rather than through the exchange of formal documents.
 It is recommended that the development team size should be kept small (5 to 9
people) to help the team members meaningfully engage in face-to-face
communication and have a collaborative work environment.
 The agile development process usually deploys Pair Programming. In Pair
programming, two programmers work together at one workstation. One doe’s code
while the other reviews the code as it is typed in. The two programmers switch their
roles every hour or so.

Characteristics of the Agile Process


 Agile processes must be adaptable to technical and environmental changes. That
means if any technological changes occur, then the agile process must accommodate
them.
 The development of agile processes must be incremental. That means, in each
development, the increment should contain some functionality that can be tested
and verified by the customer.
 The customer feedback must be used to create the next increment of the process.
 The software increment must be delivered in a short span of time.
 It must be iterative so that each increment can be evaluated regularly.
When To Use the Agile Model?
 When frequent modifications need to be made, this method is implemented.
 When a highly qualified and experienced team is available.
 When a customer is ready to have a meeting with the team all the time.

 when the project needs to be delivered quickly.


 Projects with few regulatory requirements or not certain requirements.
 projects utilizing a less-than-strict current methodology
 Those undertakings where the product proprietor is easily reachable
 Flexible project schedules and budgets.

Advantages of the Agile Model


 Working through Pair programming produces well-written compact programs which
have fewer errors as compared to programmers working alone.
 It reduces the total development time of the whole project.
 Agile development emphasizes face-to-face communication among team members,
leading to better collaboration and understanding of project goals.
 Customer representatives get the idea of updated software products after each
iteration. So, it is easy for him to change any requirement if needed.
 Agile development puts the customer at the center of the development process,
ensuring that the end product meets their needs.

Disadvantages of the Agile Model


 The lack of formal documents creates confusion and important decisions taken
during different phases can be misinterpreted at any time by different team
members.
 It is not suitable for handling complex dependencies.
 The agile model depends highly on customer interactions so if the customer is not
clear, then the development team can be driven in the wrong direction.
 Agile development models often involve working in short sprints, which can make it
difficult to plan and forecast project timelines and deliverables. This can lead to
delays in the project and can make it difficult to accurately estimate the costs and
resources needed for the project.
 Agile development models require a high degree of expertise from team members,
as they need to be able to adapt to changing requirements and work in an iterative
environment. This can be challenging for teams that are not experienced in agile
development practices and can lead to delays and difficulties in the project.

 Due to the absence of proper documentation, when the project completes and the
developers are assigned to another project, maintenance of the developed project
can become a problem.

Agile is a powerful methodology for managing projects, especially in software


development, where flexibility, customer involvement, and rapid delivery are crucial.
While it offers numerous benefits, including adaptability and continuous improvement,
it also comes with challenges such as scope creep and less predictability. Agile works
best when teams are experienced, collaborative, and aligned with the Agile mindset.

Types of agile process models:

Agile is an iterative and incremental approach to software development that emphasizes


flexibility, collaboration, and customer satisfaction. Within Agile, there are several process
models, each with its own unique focus and practices. Here are some of the most common
types of Agile process models:

1) Scrum:
Overview: Scrum is one of the most widely used Agile frameworks, organized around fixed-
length iterations called "sprints," typically lasting 2-4 weeks. Each sprint aims to deliver a
potentially shippable product increment.

Roles:
 Product Owner: Manages the product backlog and ensures that the team is working
on the most valuable features.
 Scrum Master: Facilitates the Scrum process, ensuring the team adheres to Scrum
practices and removing any obstacles.
 Development Team: A cross-functional team responsible for delivering the product
increment by the end of the sprint.
Key Artifacts:

 Product Backlog: A prioritized list of features, enhancements, and bug fixes that
need to be developed.
 Sprint Backlog: A selection of items from the Product Backlog that the team
commits to completing during the sprint.
 Increment: The sum of all Product Backlog items completed during a sprint,
representing a potentially shippable product.

Ceremonies:

 Sprint Planning: The team plans what work will be done in the upcoming sprint.
 Daily Scrum: A short daily meeting where the team discusses progress and any
impediments.
 Sprint Review: At the end of the sprint, the team demonstrates the completed work to
stakeholders.
 Sprint Retrospective: The team reflects on the sprint and discusses what went well
and what could be improved in the next sprint.

Advantages:
 Predictable Delivery: The fixed-length sprints make it easier to predict when
features will be delivered.
 Focused Teamwork: Scrum promotes focused teamwork, with the entire team
working together to achieve the sprint goal.
 Continuous Improvement: The Sprint Retrospective provides a regular opportunity
for the team to reflect and improve.
 Customer Collaboration: Regular sprint reviews involve stakeholders and ensure
that the product is aligned with customer needs.

Disadvantages:
 Strict Structure: The rigid structure of Scrum can be challenging for teams that
require more flexibility.
 Scope Creep: Without proper backlog management, scope creep can occur, leading
to incomplete or rushed work within a sprint.
 Overhead: The various ceremonies and roles in Scrum (e.g., Sprint Planning, Daily
Scrum, etc.) can add overhead, especially for smaller teams.
When to Use:
 Product Development: Scrum is ideal for product development projects where there
is a clear vision, but the details may evolve over time.
 Cross-Functional Teams: Scrum works best with cross-functional teams that can
handle all aspects of development within the team.

 Projects with Well-Defined Goals: Scrum is suited for projects where the goals are
clear, but the path to achieving them is iterative.

2) Extreme Programming (XP):


Overview: Extreme Programming (XP) is an Agile methodology that emphasizes technical
excellence and responsiveness to customer needs. It is particularly well-suited for projects
with rapidly changing requirements.
Key Practices:
 Pair Programming: Two developers work together on the same code, continuously
reviewing each other's work to improve code quality.
 Test-Driven Development (TDD): Developers write tests before the actual code,
ensuring that each piece of code meets the specified requirements.
 Continuous Integration: Code is frequently integrated and tested in a shared
repository, allowing for early detection of integration issues.
 Refactoring: Code is continuously improved and simplified without changing its
functionality, making it easier to maintain.
 Customer Collaboration: The customer is closely involved in the development
process, providing regular feedback and clarifying requirements.
Advantages:
 High Code Quality: Practices like Pair Programming and Test-Driven Development
(TDD) lead to higher code quality and fewer defects.
 Customer Satisfaction: Continuous customer involvement ensures that the product
meets the customer’s needs and can adapt to changing requirements.

 Rapid Feedback: Continuous Integration and frequent releases provide quick


feedback on the code, allowing for rapid adjustments.

 Improved Communication: Close collaboration among team members and with the
customer leads to better understanding and alignment on goals.

Disadvantages:
 Intensive Collaboration: Requires a high level of collaboration and communication,
which can be challenging for distributed teams.
 High Discipline Needed: Practices like TDD and Pair Programming require discipline
and can be challenging to maintain over time.
 Overhead in Pair Programming: Some teams may find Pair Programming to be
resource-intensive, as it requires two developers to work on the same task.
When to Use:
 Projects with Rapidly Changing Requirements: XP is ideal for projects where
requirements are expected to change frequently.
 Small to Medium-Sized Teams: XP works best with small to medium-sized teams
where close collaboration is possible.
 High-Risk Projects: XP is suitable for projects where the cost of defects is high, and
quality is paramount.

3) Kanban board:
Overview: Kanban is an Agile framework that focuses on visualizing work, limiting work
in progress (WIP), and improving the flow of tasks through various stages. It is often
used to enhance existing processes and is highly flexible.
Key Elements:

 Kanban Board: A visual tool used to track the progress of tasks through various
stages such as "To Do," "In Progress," and "Done."
 Work in Progress (WIP) Limits: Specific limits are set on the number of tasks that can
be in progress at any given time to prevent bottlenecks and ensure steady workflow.
 Continuous Delivery: Kanban encourages continuous delivery of work items
whenever they are completed, rather than waiting for a specific release cycle.
 Focus on Flow: The goal is to maintain a smooth and efficient flow of work, making it
easier to identify and resolve issues quickly.
Advantages:
 Flexibility: Kanban is highly adaptable and can be implemented on top of existing
processes without significant changes.
 Continuous Delivery: Work items are continuously delivered as soon as they are
completed, allowing for faster time-to-market.
 Visual Workflow: The Kanban board provides a clear visual representation of the
workflow, making it easy to identify bottlenecks and inefficiencies.
 Focus on Flow: WIP limits help prevent overloading the team, ensuring a smooth and
steady flow of work.
Disadvantages:

 No Fixed Iterations: Unlike Scrum, Kanban doesn’t have fixed-length iterations,


which can make it harder to predict delivery timelines.
 Less Structure: Kanban is less structured than other Agile methodologies, which may
be challenging for teams that need more guidance.
 Potential for Overwhelm: Without proper WIP limits, teams may take on too many
tasks simultaneously, leading to burnout and reduced productivity.
When to Use:
 Existing Processes: Kanban is ideal for teams that want to improve their existing
workflow without making drastic changes.
 Continuous Flow of Work: Use Kanban for projects that require a continuous flow of
tasks rather than fixed-length sprints.
 Maintenance and Support Work: Kanban is well-suited for maintenance and support
work where tasks come in unpredictably and need to be addressed as they arise.
Case Study: Development of an E-commerce System

Background:

A retail company, RetailHub, decides to develop a new e-commerce system to enhance its online
shopping experience and compete in the growing digital market. The project aims to include features
such as product listings, shopping cart functionality, payment gateways, order tracking, and customer
support integration.

Objectives:

1. Deliver a fully functional e-commerce system within 8 months.

2. Ensure a user-friendly interface that encourages customer engagement and boosts sales.

3. Maintain flexibility to adapt to market trends and user feedback for continuous
improvement.

Scrum Implementation:

1. Forming the Scrum Team:

• Product Owner: A senior member from the business team who understands the retail
market and the company’s strategic goals.

• Scrum Master: An experienced Scrum practitioner responsible for ensuring the Scrum
process runs smoothly and resolving any roadblocks.

• Development Team: A cross-functional team consisting of web developers, UX/UI designers,


testers, database experts, and security specialists.

2. Creating the Product Backlog:

• The Product Owner collaborates with stakeholders to create an initial product backlog,
which includes features such as product catalog, user registration, shopping cart, payment
gateway, order tracking, and reviews.

• User stories are developed for each feature to capture its requirements, including
acceptance criteria.

3. Sprint Planning:

• During sprint planning, the team defines the scope of work for the first sprint, which might
involve setting up the product catalog and basic user registration.

• Tasks are broken down into manageable pieces and estimated using story points. The team
commits to delivering these features by the end of the sprint.

4. Sprint Execution:

• Daily Standups: The team holds daily standup meetings to track progress, address
challenges, and coordinate daily tasks.

• Development and Testing: The team focuses on coding and testing features like the product
catalog and user registration. Continuous integration ensures frequent testing and
integration of code changes.
5. Sprint Review:

• At the end of the sprint, the completed product catalog and user registration features are
demonstrated to stakeholders for feedback.

• Any new requests or changes are added to the product backlog.

6. Sprint Retrospective:

• The team discusses what went well, areas for improvement, and key action items for the
next sprint.

• An improvement area identified could be the need to streamline the checkout process,
leading to better coordination between the development and payment integration teams.

7. Iteration and Improvement:

• The following sprints focus on building the shopping cart, payment gateway, and order
tracking features. Each sprint incorporates feedback from previous reviews, ensuring
continuous refinement of the product.

• The backlog is regularly reprioritized based on user feedback, changing business needs, and
market trends.

8. Release Planning:

• As the project approaches the 8-month deadline, the team prepares for release by
conducting thorough testing, addressing bugs, and ensuring that all features meet the
definition of done.

• A marketing campaign and user training are prepared to promote the system and ensure a
smooth launch.

Outcome:

• The e-commerce system is launched within the 8-month timeframe. RetailHub can now
provide its customers with an improved online shopping experience that encourages
engagement and boosts sales.

• The iterative approach allowed for flexibility in responding to user feedback and market
changes, resulting in a product better suited to customer needs.

• Post-launch, updates and new features continue to be managed using Scrum, allowing for
the ongoing optimization of the system.

Lessons Learned:

• Frequent feedback loops with stakeholders ensured the system stayed aligned with
customer expectations.

• Clear communication and collaboration within the team were crucial in overcoming
obstacles and maintaining agility.

• The iterative and flexible nature of the Scrum framework allowed RetailHub to adapt quickly
to market dynamics, delivering a robust and feature-rich e-commerce system.
This case study shows how Scrum can be successfully applied to the development of an e-commerce
system, promoting agility, continuous improvement, and a strong alignment with business and
customer needs.

You might also like