UNIT-1 PPT Agile project development with scrum
UNIT-1 PPT Agile project development with scrum
Scrum
.
UNIT I - AGILE METHODOLOGY
• Overview of Agile
2. Kanban
4. Lean Development
5. Crystal.
Agile Principle 1
• “Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.”
Agile Principle 3
• “Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter timescale.”
How it looks in practice:
• Agile development cycles, often called “sprints” or “iterations” break
down product initiatives into smaller chunks that can be completed
in a set timeframe. Often this timeframe is between 2 and 4 weeks
which truly is a sprint if you consider the marathon-like development
cycles waterfall teams often follow.
• Another popular alternative to agile sprints is continuous
deployment. This method of shipping software frequently works less
in terms of predetermined time boxes and more in terms of simply
deciding what to do and doing it.
Agile Principle 4
Agile Principle 4
• “Business people and developers must work together daily
throughout the project.”
How it looks in practice:
• Cross-functional agile product development teams include
product people. This means that product is represented on
the development team and bridges the gap between
technical and business aspects of the product.
• Daily update meetings, or standups, are one technique
many agile shops use to put this principle in practice and
keep everyone connected.
Agile Principle 5
Agile Principle 5
• “Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done.”
How it looks in practice:
• Product must clearly ensure engineering understands strategy and
requirements before development starts. This means not only sharing
user stories with the cross-functional team but also the bigger picture
outlined in the product roadmap.
• Product is not responsible for explaining “how” something should be
built. They need to share what and why, but it’s the delivery team’s job to
determine the how. Furthermore, during sprints product does not
micromanage outcome, instead they make themselves available to
answer questions and provide support as needed.
Agile Principle 6
Agile Principle 6
• “The most efficient and effective method of conveying
information to and within a development team is face-
to-face conversation.”
How it looks in practice:
• Daily standup meetings
• Collaborative backlog grooming sessions
• Sprint planning meetings
• Frequent demos
• Pair-programming
Agile Principle 7
Agile Principle 7
• “Working software is the primary measure of progress.”
How it looks in practice:
• Designing and releasing “Minimum Viable Features” rather than
fully-developed feature sets means thinking first and foremost
about the smallest things we can ship to start getting customer
feedback and validate as we continue to build software.
• A fail fast mentality means moving forward even in times of
uncertainty and testing ideas rapidly.
• Ship software often: a useful product now is better than a
perfect one later.
Agile Principle 8
Agile Principle 8
• “Agile processes promote sustainable development. The sponsors, developers, and
users should be able to maintain a constant pace indefinitely.”
How it looks in practice:
• Before every sprint, careful consideration of the amount of work that can be
committed to is made. Development teams don’t over promise on what they can
and cannot deliver. Effort estimations are a common practice in setting output
expectations for development teams.
• Everyone agrees on what will get done during a sprint. Once a sprint has begun, no
additional tasks are to be added except in rare cases.
• Product managers should act as gatekeepers to reduce the noise from other
stakeholders and to avoid squeezing in additional unplanned work during an
ongoing sprint.
• Product people should do their part in promoting a sense of psychological safety
across the cross-functional team that encourages open communication and freely
flowing feedback.
Agile Principle 9
Agile Principle 9
• “Continuous attention to technical excellence and good design
enhances agility.”
How it looks in practice:
• The team needs to be cognizant of technical debt and the
technical debt implications of any new features or initiatives
added to the backlog. Developers and product need to work
together to understand if and when technical debt is
acceptable.
• On a regular basis, product will need to allocate development
resources to refactoring efforts. Refactoring cannot be an
afterthought, it needs to be an ongoing consideration
Agile Principle 10
Agile Principle 10
• “Simplicity—the art of maximizing the amount of work not done—is
essential.”
How it looks in practice:
• Product managers need to make very focused product decisions and closely
align product strategy with organizational goals while being extremely picky
about what user stories and features actually make the cut. Using
prioritization techniques to prioritize initiatives by effort and predicted
impact is one way product teams can apply this agile principle to product
development.
• The short sprints that agile is characterized by present many opportunities
for rapid testing and experimentation which can help reduce uncertainty
around whether initiatives will truly have the predicted impact. Using
experiments to validate ideas before building them up to spec is a great way
to weed out bad ideas and identify good ones.
Agile Principle 11
Agile Principle 11
• “The best architectures, requirements, and designs
emerge from self-organizing teams.”
How it looks in practice:
• Self-organizing teams are autonomous groups within
the organization who take control and responsibility
over their respective projects and have ownership of
those areas. Different organizations practice this
principle differently. Spotify, for example uses
“product squads” to practice this.
Agile Principle 12
Agile Principle 12
• “At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.”
Depending on how your agile environment is set up, there are low-
tech and high-tech communication and collaboration tools you can
use.
Low-tech tools for local teams include:
– White boards
– Sticky notes in different colors
– Colorful pens or markers
– A sprint-specific kanban board
High-tech tools for hybrid and remote teams include:
– Video conferencing software
– Webcams
– Instant messaging apps
– Web-based desktop sharing apps
– Cloud-based collaboration websites and file organization systems
– Timeline tools with multiple views and dashboards
7 Steps to Implementing Agile Project Management
• Create a roadmap.
– Begin with an implementation strategy to plan how your organization will transition. Document current processes
and problems and outline what future processes will be. Create a step-by-step roadmap to move from existing
processes to agile, including a timeframe.
• Establish a transformation team.
– Establish a transformation team and identify who is responsible for improving processes, reporting requirements,
and measuring performance across the organization.
• Communicate the changes.
– Build awareness and excitement by communicating the changes and the benefits of the new process, using tools to
educate everyone involved. The goal is to generate early support and eliminate fear and uncertainty.
• Test the process.
– Identify a pilot project to test the process and figure out how to work with agile methods. Iron out the wrinkles
while the team slowly adjusts to the new methods.
• Get feedback.
– Make mistakes, gather feedback, and improve for next time. Use the end of a sprint to hold a sprint review and
review product functionality, as well as setting expectations for the next sprint.
• Identify KPIs.
– Identify success metrics, as well as a quantifiable way to demonstrate success to stakeholders.
• Appoint a mentor.
– Train and learn together. Identify a mentor to lead the way and make sure other team members learn the same
lessons.
Agile Team Interactions
• An Agile team is in near-constant communication with the
customer, clarifying expectations, collaborating on fixes, and
communicating options not previously considered.
Focus: Don't get sidetracked. Remember what you committed to do, and focus your energies on fulfilling that promise. Distractions are not limited to the
obvious things like email and unrelated meetings. They may also be things like creating documentation because "we've always done it that way" instead of
creating documentation because it truly provides the customer with something of value.
Openness: Openness is about keeping the project status highly visible to everyone all the time. Anyone who is interested should be able to look at a wall, a
wiki page, or a dashboard in an agile project management tool and see how many features have been completed, what's currently being worked on, and the
goals of the iteration and release.Communication: People on the team must talk to each other. This gets harder to do the more geographically separated the
team is, but with tools like Skype, teams can talk to one another easily and cheaply. The point is that team members must not rely on email and
documentation alone. Verbal communication is required to clarify ideas, solve complex problems, answer questions quickly, and help team members
coordinate work efforts.
Simplicity: Beck says the XP coach should ask the team, "What is the simplest thing that could possibly work?" Then they should do that thing. Because agile
approaches develop code in increments each iteration, the thought is that it is better to develop something simple that may have to be expanded later if
needed, rather than spend a large amount of time now developing a solution that's more complicated and may, in fact, not be necessary.
Feedback: As stated earlier, our number one obligation is to provide value to the customer. In order to do that, we must obtain frequent feedback from the
customer or customer representative in order to make sure that the product we are building is meeting their expectations. And if it is not, we have the
information we need now in order to make corrections. Beck extends this meaning of feedback to include feedback from the system itself in the form of unit,
functional, and performance tests run frequently in each iteration.
Courage: In order to accept the authority and accountability for the delivery of the product, the team members all need courage. From the courage to make
decisions to the courage to say no, this is a foundational value that gives rise to all the others.
Respect: Each team member must begin by agreeing that everyone deserves to be treated with respect. Many teams clarify this with working agreements
that outline ways in which they choose to work together. And, as a result of working together to adhere to all the other values outlined here, team members
grow to respect one another beyond their shared humanity to the ways each valued colleague contributes to the whole.
Adhering to a set of values that drive positive, collaborative behaviors and result in frequent software delivery helps us to work in an ethical manner.
Agility in Design
Agility in design refers to the ability to adapt and respond quickly to changes and
feedback during the design process. It involves an iterative and incremental approach
that encourages flexibility and collaboration. Here are some aspects of agility in design:
• Iterative Design Process: Agility in design involves breaking down the design process
into iterative cycles. Each cycle includes activities such as research, ideation,
prototyping, and user testing. Iterations allow for continuous improvement based on
feedback and evolving requirements.
• Collaboration and Co-creation: Agile design encourages collaboration among
designers, developers, stakeholders, and end-users. Designers work closely with
cross-functional teams, incorporating feedback and diverse perspectives throughout
the process. Co-creation sessions facilitate collective problem-solving and foster
innovation.
• Rapid Prototyping and Testing: Agile design emphasizes quick prototyping and
testing of design concepts. Rapid prototyping allows for early validation of ideas,
gathering feedback, and making necessary iterations. This iterative approach ensures
that design solutions meet user needs and expectations.
Agility in Design
• Flexibility and Adaptability: Agility in design requires a mindset of
flexibility and adaptability. Designers should be open to change, embrace
feedback, and be willing to pivot when needed. This allows for the
incorporation of new insights and avoids a rigid adherence to initial
design assumptions.
• Continuous Learning and Improvement: Agile design promotes a culture
of continuous learning and improvement. Designers should actively seek
feedback, conduct retrospectives, and reflect on their work. This
facilitates learning from successes and failures, leading to better design
outcomes over time.
• Emphasis on User-Centricity: Agile design puts the end-user at the center
of the design process. User research, user testing, and user feedback
drive design decisions. Iterative cycles enable designers to gather
insights, refine designs, and create solutions that align with user needs.
Agile Testing
• Agile testing is a software testing practice that follows the Agile
software development methodology. In Agile development,
projects tend to evolve during each sprint among collaborators
and shareholders.
• Agile testing focuses on ensuring quality throughout the Agile
software development process.
• Continuous integration and continuous delivery are two
important aspects of agile testing.
• In continuous integration, developers integrate their code
changes into a shared mainline several times a day. In
continuous delivery, every change that passes all tests is
automatically released into production.
Agile testing
The main principles of agile testing are:
• Early and continuous testing: Testers should start testing the software early in the development process. They
should also test the software continuously throughout the development cycle.
• Whole team approach: In agile development, all team members are responsible for ensuring the quality of the
product. This includes developers, testers, business analysts, and product owners.
• Frequent deliveries: Agile teams deliver working software frequently, typically every two weeks.
• Close collaboration: There is close collaboration between all team members in an agile project. This helps to
ensure that everyone is on the same page and that there are no surprises.
• Customer involvement: Customers involve themselves throughout the agile development process. They
provide feedback at each iteration, which helps the team to make constant improvements.
• Working software: Agile teams focus on quality software management during each iteration. This is more
important than documentation or other deliverables.
• Flexible approach: Agile development is a flexible approach. Teams can change the requirements at any time
during the development process.
Agile documentation
• Agile is a lightweight framework that helps
people, teams, and organizations generate
value through adaptive solutions for complex
problems.
• Agile documentation refers to the practice of
producing documentation following the
principles setup in the Agile manifesto.
Agile documentation
The importance of agile documentation in the agile software release cycle can be
summarised as follows
1. Software and documentation shall be released simultaneously to maximize
customer experience
2. Agile documentation processes to supplement software developers providing
business agility
3. Documentation team and software developers adopting the same agile
methodology and processes helps to get consistent practices across the team
4. Agile documentation processes set the stage for tighter collaboration with software
developers
5. Agile documentation also helps with reducing time to value for customers to utilize
the software solution holistically with accurate documentation
6. Communicate technical information to your customers such that the product value
can be maximized
7. Compliance / regulatory bodies mandates to have technical documentation as part
of their software product
Critical elements to include in Agile Documentation
Project scope
• A short description detailing what needs to be covered in the technical documentation such that it meets the expectation of the
customer. Thus, the documentation should be concise, precise, and technically accurate.
Specification document
• If the software feature is meant for a highly technical audience, a technical specification document can be useful that covers
technical specification/requirements
Compliance conditions
• If any compliance conditions need to be met by the documentation, it can be detailed out. This is applicable to medical
products, manufacturing, oil and gas industries
Training Manuals
• Based on the project scope, training manuals can also be released to bolster the impact of software documentation
Agile drivers
Agile Capabilities and Values
Agile methodologies are driven by certain capabilities and guided by a set of core values.
These capabilities and values form the foundation of Agile practices and principles. Here are
the key capabilities and values in Agile:
Agile Capabilities:
• Iterative and Incremental Delivery: Agile teams have the capability to deliver software in
small, frequent increments, allowing for early value delivery and continuous feedback.
• Adaptability: Agile teams possess the capability to embrace change and adjust their
plans and priorities based on customer feedback and evolving requirements.
• Collaboration: Agile teams have the capability to work collaboratively, fostering open
communication, knowledge sharing, and collective decision-making.
• Self-Organization: Agile teams are capable of self-organizing, meaning they have the
autonomy to make decisions, manage their work, and adapt their approach to achieve
project goals.
• Continuous Improvement: Agile teams have the capability to reflect on their work, learn
from their experiences, and continuously improve their processes, practices, and
deliverables.
Agile Capabilities and Values
Agile Values (as defined in the Agile Manifesto):
• Individuals and Interactions over Processes and Tools: Agile values the
importance of human interactions, effective communication, and collaboration
within the team and with stakeholders, prioritizing them over rigid processes
and tools.
• Working Software over Comprehensive Documentation: Agile values the delivery
of working software as the primary measure of progress, emphasizing the
practical value of software over excessive documentation.
• Customer Collaboration over Contract Negotiation: Agile values active
collaboration and involvement of customers or end-users throughout the
development process, fostering a partnership approach rather than relying
solely on contracts and negotiations.
• Responding to Change over Following a Plan: Agile values the ability to respond
to change and adapt plans based on feedback and evolving requirements,
recognizing that change is inevitable and can lead to better outcomes.