0% found this document useful (0 votes)
6 views12 pages

Agile Notes Unit 1 and 2

Agile Notes unit 1 and 2 for engineering

Uploaded by

clandestinegyana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views12 pages

Agile Notes Unit 1 and 2

Agile Notes unit 1 and 2 for engineering

Uploaded by

clandestinegyana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

G. H.

Raisoni College of Engineering, Nagpur


(An AutonomousInstitution)
Department of Information Technology
Agile Scrum Master(Elective-VI)
by Dr. Ashlesha Nagdive Ph.D (IT)

Unit 1:
 Agile practices and Principles
Agile principles are a set of guiding values and concepts that underlie the Agile Manifesto, a
foundational document for Agile software development. These principles provide a framework for
teams and organizations to adopt Agile practices and achieve more adaptive, customer-focused, and
collaborative ways of working. Here are the 12 Agile principles:

1. Customer Satisfaction through Early and Continuous Delivery of Valuable


Software: The primary measure of progress is delivering working software that provides
value to the customer. Agile teams prioritize delivering valuable increments of the
product frequently.
2. Welcome Changing Requirements, Even Late in Development: Agile processes
harness change for the customer's competitive advantage. Teams are prepared to
accommodate changing requirements throughout the project.
3. Deliver Working Software Frequently, with a Preference for Short Timescales:
Agile teams aim to deliver small, functional increments of the product frequently,
typically every few weeks, to gather feedback and adapt to changing needs.
4. Collaboration between Business People and Developers: Close collaboration
between business stakeholders (e.g., product owners) and development teams is
essential to ensure shared understanding and alignment on project goals.
5. Build Projects around Motivated Individuals, Trust Them, and Give Them the
Support and Environment They Need: Agile teams are self-organizing and
empowered. Trusting individuals to make decisions fosters motivation and creativity.
6. Use Face-to-Face Communication When Possible: While not always feasible, face-
to-face communication is highly effective for conveying information and building strong
working relationships. Agile teams aim for rich, direct communication.
7. Working Software is the Primary Measure of Progress: Progress is measured by
the software's functionality, not just documentation or plans. Working software
demonstrates tangible results.
8. Maintain a Sustainable Pace of Work: Agile processes promote a steady and
sustainable workflow. Teams should avoid overloading team members to prevent
burnout.
9. Continuous Attention to Technical Excellence and Good Design: High-quality
software development practices, including code reviews, testing, and design, are integral
to Agile. Technical excellence ensures the long-term maintainability of the product.
10. Simplicity: Agile values simplicity in design and implementation. Teams strive to do the
simplest thing that could possibly work to meet customer needs.
11. Self-Organizing Teams Make the Best Architectures, Designs, and Decisions:
Teams that are closest to the work are best positioned to make decisions about
architecture, design, and implementation. Hierarchical decision-making is minimized.
12. Reflect Regularly on Effectiveness and Adjust Accordingly: Agile teams regularly
inspect and adapt their processes. Retrospectives provide a forum for teams to identify
areas for improvement and make adjustments.

These Agile principles guide organizations and teams in delivering value to customers
through iterative development, collaboration, adaptability, and a focus on individuals and
interactions. Agile methodologies like Scrum, Kanban, and Extreme Programming (XP)
operationalize these principles, helping teams and organizations implement Agile
practices effectively. The goal is to respond to change, deliver customer value, and
continuously improve processes and products.

 Elaborate Agile Lean Principles.

Agile Lean principles represent a blend of concepts from both the Agile and Lean methodologies.
They provide a comprehensive approach to product development, emphasizing customer value, waste
reduction, and continuous improvement. Below are the key Agile Lean principles:

1. Customer-Centric Value: Focus on delivering value to the customer. Understand their needs and
prioritize features and tasks that provide the highest value.
2. Value Stream: Identify and analyze the value stream, which is the end-to-end process from concept
to delivery. This helps in identifying areas of waste and opportunities for improvement.
3. Flow: Strive for a smooth, uninterrupted flow of work through the development process. Minimize
delays and handoffs between stages.
4. Pull System: Use a pull-based approach, where work is pulled based on actual demand rather than
being pushed onto the team. This helps prevent overloading and improves responsiveness.
5. Continuous Improvement (Kaizen): Foster a culture of continuous improvement. Encourage teams
to regularly reflect on their processes, identify areas for enhancement, and implement changes.
6. Optimize the Whole: Focus on optimizing the entire value stream rather than just individual
components. Consider the end-to-end process and how each part contributes to delivering value.
7. Empowered Teams: Empower teams to make decisions and take ownership of their work. Encourage
self-organization and trust in the team's abilities.
8. Respect for People: Treat individuals with respect and recognize their expertise and contributions.
Create an environment where team members feel valued and empowered.
9. Eliminate Waste (Muda): Identify and eliminate activities or processes that do not add value to the
customer. This includes unnecessary documentation, waiting time, and rework.
10. Amplify Learning: Encourage a learning culture within the organization. Embrace experimentation,
feedback, and adaptability to improve processes and outcomes.
11. Decentralized Decision-Making: Push decision-making authority to the lowest appropriate level.
Allow those closest to the work to make decisions, reducing bottlenecks and delays.
12. Optimize for Flow Efficiency: Focus on optimizing the flow of work through the system, rather than
optimizing individual tasks. This involves minimizing handovers and ensuring work moves smoothly
from one stage to the next.
13. Visual Management: Use visual tools (e.g., Kanban boards) to provide transparency and make it
easier to monitor progress, identify bottlenecks, and manage work.
14. Limit Work in Progress (WIP): Place constraints on the amount of work that can be in progress at
any given time. This prevents overloading and helps maintain a manageable flow of work.

By combining the principles of Agile and Lean, Agile Lean practices aim to create a more efficient,
value-driven, and adaptable approach to product development. These principles guide teams and
organizations in delivering higher quality products, reducing waste, and continuously improving their
processes.

 Agile Process Models


Agile process models are a set of iterative and incremental software development
approaches that prioritize flexibility, collaboration, and customer feedback. These
models aim to deliver high-quality software in a more responsive and adaptive
manner compared to traditional, sequential methodologies like Waterfall. Agile
methodologies emphasize individuals and interactions, working software, customer
collaboration, and responding to change.

Here are some of the most well-known Agile process models:

1. Scrum: Scrum is one of the most widely used Agile frameworks. It involves cross-
functional teams working in time-boxed iterations called sprints, usually lasting two to
four weeks. Scrum includes roles such as Scrum Master, Product Owner, and
Development Team, and it relies heavily on ceremonies like daily stand-up meetings,
sprint planning, sprint review, and sprint retrospective.
2. Kanban: Kanban is a visual management method for software development. It focuses
on visualizing the work process on a Kanban board, which helps teams manage and
optimize their workflow. Unlike Scrum, Kanban does not have predefined time-boxed
iterations; work is pulled as capacity allows. It's especially useful for teams with variable
workloads.
3. Extreme Programming (XP): XP is a software development methodology that
emphasizes practices like test-driven development (TDD), continuous integration, pair
programming, and frequent releases. XP aims to improve software quality and
responsiveness to changing requirements.
4. Lean Software Development: Lean principles, inspired by lean manufacturing, have
been applied to software development. This approach seeks to eliminate waste, optimize
processes, and deliver value to customers as efficiently as possible. Lean encourages
small batch sizes, quick feedback loops, and continuous improvement.
5. Dynamic Systems Development Method (DSDM): DSDM is an Agile framework that
provides a set of principles and practices for rapid software development. It includes
iterative and incremental development, timeboxing, and focuses on prioritizing the most
important features for delivery.
6. Crystal: Crystal is a family of Agile methodologies developed by Alistair Cockburn. Each
"color" of Crystal represents a different level of formality and is suited to different project
sizes and criticalities. Crystal emphasizes early and frequent delivery of working
software.
7. Feature-Driven Development (FDD): FDD is an Agile approach that focuses on
building software through a feature-centric approach. It involves breaking down the
system into discrete, well-defined features and managing their development individually.
8. Adaptive Software Development (ASD): ASD is an Agile approach that emphasizes
collaboration, continuous learning, and adapting to changes in requirements. It involves
three phases: speculation, collaboration, and learning, and it encourages frequent
reassessment and adaptation.
9. Scaled Agile Framework (SAFe): SAFe is an Agile framework designed to scale Agile
principles and methods to large organizations. It provides guidance on how to coordinate
and align multiple Agile teams to work together effectively.
10. Nexus: Nexus is a framework for scaling Scrum to large organizations. It helps multiple
Scrum teams work together to deliver integrated software at scale.

Each of these Agile process models has its strengths and weaknesses, and organizations
may choose the one that best fits their specific needs, project size, and culture. Many
organizations also customize Agile approaches to create hybrid models that combine
elements from multiple methodologies. The key to success in Agile development is the
commitment to collaboration, adaptability, and delivering value to the customer early
and frequently.

 Incremental and Iterative Product development in Agile

Agile method and methodology is a particular approach to project management that is


utilized in software development. It is a combination of iterative and incremental work
sequences with a focus on process adaptability and customer satisfaction through the
rapid delivery of the working product. Unlike the traditional waterfall model, where
each step of the software development lifecycle (SDLC), is done sequentially after the
completion of the previous step, agile promotes the idea of overlapping phases.
Agile methodology promotes iterative development with incremental releases. To understand
more about how agile is an incremental and iterative method, let us first understand more about
incremental and iterative development methods.
Iterative Process

An iterative process makes progress through successive refinement. The development team develops
the first cut of the system, knowing in advance that some/many parts are incomplete. The team then
iteratively enhances those parts until the product is satisfactory. With each iteration, customer feedback
is taken into account and the software is improved through the addition of greater detail.For example,
let us take an example of search functionality on a website. In the first iteration, a simplistic search
screen can be built. In the next iteration, advanced search criteria can be added.

Incremental Process

An incremental process involves delivering components of the software in parts. Each increment
represents a complete subset of functionality and is fully coded and tested.For example, for an e-
commerce store, initially, payment can be supported only via credit and debit cards. In the next release,
payment via wallets can be supported.

Agile: The incremental and iterative method

Agile method combines both incremental and iterative methodology. It


is iterative because it plans for the work of one iteration to be
improved upon in subsequent iterations. It is incremental because
completed work is delivered throughout the project.

During a development “iteration” where we build several features some may be iterating to
improve, modify or remove existing functionality, while others may be incrementally adding
new functionality.

Scrum

is one of the implementations of agile methodology in which incremental builds are delivered
to customers in iterative cycles of 2 to 4 weeks.
Scrum Teams are self-organizing and cross-functional teams of 7 +/- 2 members. There are
three roles in a scrum team viz. Product Owner, Scrum Master and Development team
member.

Scrum Artifacts

Various artefacts of scrum are:

1. Product Backlog

2. Sprint backlog

The above artefacts contain a list of Epics and User Stories ordered by their priorities. The product
backlog contains a list of all the stories that are available and need to be developed. The sprint backlog
contains the list of stories that the team plans to take up in a particular sprint.

Scrum Events

The sprint starts with sprint planning, in which the top priority stories from the product backlog which
can be taken up by the team in the current sprint are added to the sprint backlog. Every day a small
activity called daily standup is done to track the amount of work left. At the end of the sprint, there is a
sprint review/demo to the product owner to ensure that all the acceptance criteria are met and the
delivery is as expected. After that, there is another activity named sprint retrospective, in which the
sprint is reviewed and opportunities for further improvement are discussed.

Unit 2:

 Project Strategies in Agile Scrum Master


In Agile, particularly in the Scrum framework, project strategies revolve around flexibility,
collaboration, and iterative development to deliver value to customers. Here are some key strategies
for managing projects in Agile using the Scrum framework:
1. Product Vision and Roadmap: Start by establishing a clear product vision and a high-level
roadmap. This helps the team understand the long-term goals and direction of the project.
2. Product Backlog: Create a product backlog, which is a prioritized list of all the features,
enhancements, and bug fixes that need to be addressed in the project. The product owner is
responsible for maintaining and prioritizing this backlog.
3. Sprint Planning: Break the work into smaller, manageable units called sprints (usually 2-4 weeks).
During sprint planning, the team selects items from the product backlog to work on during the
upcoming sprint.
4. Cross-Functional Teams: Form cross-functional teams consisting of developers, testers, designers,
and other necessary roles. These teams are responsible for delivering potentially shippable increments
of the product at the end of each sprint.
5. Daily Stand-up: Hold daily stand-up meetings (also known as daily scrums) where team members
share what they worked on yesterday, what they plan to work on today, and any impediments they are
facing. This fosters collaboration and keeps everyone informed.
6. Sprint Review: At the end of each sprint, conduct a sprint review meeting to showcase the work
completed during the sprint to stakeholders and gather feedback.
7. Sprint Retrospective: After the sprint review, hold a sprint retrospective to reflect on the team's
performance, identify areas for improvement, and make adjustments to the process.
8. Continuous Delivery: Strive for continuous delivery of potentially shippable increments at the end of
each sprint. This allows for early and frequent releases, which can lead to faster feedback and quicker
adaptation to changes.
9. Adaptation: Embrace change and adapt to evolving customer needs or market conditions. Agile
projects prioritize responding to change over following a rigid plan.
10. Transparency: Maintain transparency by sharing information about the project's progress, issues, and
impediments. This enables informed decision-making and trust among team members and
stakeholders.
11. Empowerment: Empower teams to make decisions about how to best achieve their sprint goals.
Trust their expertise and let them self-organize.
12. Metrics and Improvement: Use metrics such as velocity, burn-down charts, and lead time to track
progress and identify areas for improvement. Continuously seek ways to enhance the team's
performance.
13. Scaling Agile: For larger projects or organizations, consider scaling Agile using frameworks like
SAFe (Scaled Agile Framework), LeSS (Large-Scale Scrum), or Nexus to coordinate multiple Scrum
teams working on a common goal.
14. Customer Feedback: Actively seek and incorporate customer feedback throughout the development
process. This ensures that the product aligns with customer expectations and needs.
15. Documentation: Focus on lightweight documentation and emphasize working software over
comprehensive documentation. Documentation should serve the purpose of enabling collaboration
and understanding, not just for its own sake.
16. Technical Excellence: Prioritize technical excellence and maintain a sustainable pace of work to
prevent burnout and maintain high-quality output.

 T shaped people in Agile scrum master


In Agile and Scrum teams, people with a "T-shaped" skill set are highly valued. The concept
of a "T-shaped" person refers to an individual who possesses a combination of broad and
deep skills. Here's what it means:

1. Broad Skills (The Horizontal Bar of the "T"): These are skills that cover a wide range of
areas or domains. In an Agile team context, this might include skills such as communication,
collaboration, adaptability, and problem-solving. These skills enable team members to work
effectively with others, embrace change, and tackle various challenges that may arise during
the project.
2. Deep Skills (The Vertical Stem of the "T"): These are specialized skills or expertise in a
specific area. In Agile, this typically refers to a person's primary role or area of specialization,
such as a software developer, tester, designer, or business analyst. Deep skills are what allow
team members to contribute specialized knowledge to the project.

The idea behind a T-shaped person in Agile teams is that they can perform their specialized
role (the vertical stem) while also collaborating effectively with others and contributing to
different aspects of the project (the horizontal bar). This combination of skills fosters cross-
functional teamwork and ensures that team members are not overly siloed in their roles. It
promotes a sense of ownership, shared responsibility, and adaptability within the team.

 Product backlog characteristics in Agile


In Agile, particularly in the Scrum framework, the product backlog is a critical artifact that plays a
central role in managing the work to be done on a project. The product backlog has several key
characteristics:

1. Dynamic: The product backlog is dynamic and continuously evolving. It's not a fixed or static
document. As the product evolves and stakeholders provide feedback, new items can be added,
existing items can be reprioritized, and items can be removed or refined. This dynamic nature allows
the team to adapt to changing requirements and priorities.
2. Prioritized: Items in the product backlog are prioritized based on their importance to the product's
success. The product owner is responsible for defining and maintaining the priority of backlog items.
Higher-priority items are typically at the top of the backlog and are addressed sooner than lower-
priority items.
3. User-Centric: The product backlog focuses on delivering value to users or customers. Each item in
the backlog should represent a user need, feature, enhancement, or bug fix that contributes to the
overall product's value proposition.
4. Detailed: While the product backlog items do not need to be overly detailed, they should contain
enough information for the development team to understand what needs to be done. This might
include a brief description, acceptance criteria, and any necessary attachments or references.
5. Estimable: Backlog items should be clear and well-defined enough for the team to estimate the effort
required to complete them. Teams often use techniques like story points or relative sizing to estimate
the complexity of backlog items.
6. Emergent: As the team learns more about the product and its users, new ideas and insights may
emerge. These can result in the addition of new backlog items or changes to existing ones. The
backlog is responsive to emerging requirements and knowledge.
7. Cross-Functional: The product backlog includes items that require contributions from multiple
disciplines, such as development, design, testing, and others. This encourages cross-functional
collaboration within the team.
8. Visibility: The product backlog is visible to the entire Agile team, including the product owner,
Scrum Master, and development team members. This transparency ensures that everyone is aware of
the work to be done and the priorities.
9. Dependencies: The product backlog may include dependencies between backlog items. These
dependencies should be identified and managed to ensure that work can progress smoothly and
efficiently.
10. Refinement: Backlog refinement, also known as backlog grooming, is an ongoing process where the
team reviews, clarifies, and prepares backlog items for upcoming sprints. This helps ensure that items
are ready for implementation when they are selected for a sprint.
11. Sprint-Bound: While the product backlog contains all the work to be done on the product, only a
subset of these items is selected for each sprint during sprint planning. The sprint backlog is derived
from the product backlog for each sprint.
12. Evolutionary: As the product progresses and customer feedback is received, the product backlog
evolves. Items may be reprioritized or modified based on the evolving understanding of user needs
and market dynamics.
13. Owned by the Product Owner: The product owner is responsible for managing the product backlog.
They make decisions about what to prioritize, what to include, and how to refine items. However, the
entire Agile team collaborates in backlog refinement and sprint planning discussions.
14. Measurable: Backlog items may include acceptance criteria or success criteria that allow the team to
measure whether an item has been successfully completed.

Overall, the product backlog is a central element of Agile project management, serving as a living
document that guides the team's work and ensures alignment with the product's vision and goals. It is
a dynamic and adaptable tool that supports Agile principles such as customer focus, collaboration, and
responsiveness to change.

 Product backlog characteristics in Agile


In Agile development, a product backlog is a prioritized list of features, user stories, enhancements,
bug fixes, and other items that represent the work that needs to be done on a product. The product
backlog serves as a dynamic and evolving document that helps the Agile team plan, prioritize, and
execute the work during the development process. Here are some key characteristics of a product
backlog in Agile:

1. Dynamic: The product backlog is not a static document. It evolves over time as new ideas,
requirements, and feedback emerge. Items can be added, modified, or removed based on changing
priorities and needs.
2. Prioritized: Items in the product backlog are prioritized based on their business value, customer
needs, and other relevant factors. The most important and valuable items should be at the top of the
backlog, allowing the team to focus on delivering the highest value first.
3. User-Centric: Items in the backlog are often user stories or user-centric features. They are written
from the perspective of end-users or customers and describe what the product should do to meet their
needs.
4. Estimable: Items in the backlog should be sufficiently well-defined and clear so that the development
team can estimate the effort required to implement them. This helps in planning and scheduling work
in iterations or sprints.
5. Small and Independent: Ideally, backlog items should be small and independent of each other. This
allows for greater flexibility in prioritization and execution. Smaller items are easier to estimate and
can be completed within shorter time frames.
6. Emergent: The backlog is not fixed or fully defined at the beginning of the project. New items can
emerge as the team learns more about the product, market, and customer needs. It's essential to
embrace change and adapt the backlog accordingly.
7. Cross-Functional: The backlog includes items that require various skills and expertise to implement.
It's not limited to just development tasks but may also include design, testing, documentation, and
other activities necessary to deliver a complete product.
8. Detailed When Necessary: While high-priority items may have detailed descriptions and acceptance
criteria, lower-priority items may have less detail. The level of detail increases as items move closer
to the top of the backlog and become candidates for development in upcoming iterations.
9. Owned by the Product Owner: The Product Owner is responsible for managing and prioritizing the
product backlog. They work closely with stakeholders to understand requirements and ensure the
backlog reflects the highest business value.
10. Visible and Accessible: The product backlog is typically a shared and visible artifact, often
maintained electronically using tools like Jira or Trello. This visibility helps the entire team stay
aligned and informed about upcoming work.
11. Subject to Continuous Refinement: The backlog is subject to continuous refinement, which
involves clarifying requirements, adding more detail, and ensuring that the top items are ready for
development. This process helps maintain the backlog's health.
12. Used for Sprint Planning: During sprint planning meetings, the team selects a subset of items from
the product backlog to work on during the upcoming sprint. These items become part of the sprint
backlog.

Overall, the product backlog is a critical tool in Agile development, enabling teams to deliver
value incrementally while remaining responsive to changing business needs and customer
feedback

 User stories in Agile


User stories are a common technique used in Agile software development to capture and
describe user requirements or features from the perspective of an end-user or customer. They
serve as a simple and effective way to communicate and document what a software system
should do and why. User stories are typically written in a specific format and are an essential
part of Agile methodologies such as Scrum and Kanban. Here are the key components and
characteristics of user stories in Agile:

1. Format: User stories are typically written in a specific format, which consists of a short,
simple sentence that follows the template: "As a [user role], I want [an action] so that
[benefit/value]." For example: "As a customer, I want to be able to view my order history so
that I can track my purchases."
2. User Role: This part of the user story identifies the user or stakeholder who will benefit from
or interact with the feature. It helps provide context for the development team.
3. Action: The action describes the specific functionality or behavior the user is requesting. It's
a concise and clear statement of what the software should do.
4. Benefit/Value: This section explains the reason behind the user's request and the value it
brings to them or the business. It helps prioritize user stories based on their importance.
5. Conversation: User stories encourage conversation and collaboration between team
members, including developers, product owners, and stakeholders. The user story is not
intended to be a detailed specification but rather a starting point for discussions and
clarifications.
6. Acceptance Criteria: To add more detail to a user story, acceptance criteria are often
included. These are specific conditions that must be met for the user story to be considered
complete. Acceptance criteria help define the boundaries of the user story and provide a clear
definition of "done."
7. Estimation: Development teams often estimate the effort required to implement a user story
using techniques like story points or time-based estimates. This helps with prioritization and
sprint planning.
8. Prioritization: User stories are typically maintained in a prioritized product backlog. The
product owner is responsible for prioritizing user stories based on business value, customer
feedback, and other factors.
9. Small and Independent: User stories are ideally small in scope and independent of each
other. This allows for incremental development and delivery of value. Smaller user stories are
easier to estimate and fit into shorter iterations or sprints.
10. Negotiable: User stories are negotiable, meaning they can be refined and modified based on
feedback and evolving requirements. The goal is to maintain flexibility and adapt to changing
needs.
11. Vertical Slices: User stories should aim to deliver a vertical slice of functionality, meaning
that they encompass all layers of the software stack (e.g., user interface, business logic, and
data layer) necessary to provide value to the user.
12. Testable: User stories must be testable, meaning that it should be clear how the development
team can verify that the story has been successfully implemented based on the acceptance
criteria.

User stories are a crucial tool for Agile teams to capture requirements, ensure alignment
between development and business goals, and deliver software that meets user needs. They
promote collaboration, flexibility, and a customer-centric approach to software development.

You might also like