Module2 Agile and Scrum Methodology
Module2 Agile and Scrum Methodology
AGILE
METHODOLOGY
Agile Processes – Lean Principles, Feature driven, behavior driven and test
driven
development, Scrum master, Product owner, Scrum and XP team, Agile
metrics
What is agile?
■ Restaurant orders:
– Preparation of some of the food before
opening the shop (sprint planning)
– continuous delivery of orders (adhoc stories)
– number of successful orders (velocity)
■ cricket team:
– Run rate (velocity)
– team (scrum team self sufficient)
– over (sprint length)
– captain/ coach (scrum master)
■ "Agile process model" refers to a software development approach
based on iterative development.
Phases of Agile Model:
■ Requirements gathering
■ Design the requirements
■ Construction/ iteration
■ Testing/ Quality assurance
■ Deployment
■ Feedback
■ Requirement Gathering:- In this step, the development team must gather the requirements, by
interaction with the customer. development team should plan the time and effort needed to build
the project. Based on this information you can evaluate technical and economical feasibility.
■ 2. Design the Requirements:- In this step, the development team will use user-flow-diagram or
high-level UML diagrams to show the working of the new features and show how they will apply to
the existing software. Wireframing and designing user interfaces are done in this phase.
■ 3. Construction / Iteration:- In this step, development team members start working on their
project, which aims to deploy a working product.
■ 4. Testing / Quality Assurance:- Testing involves Unit Testing, Integration Testing, and
System Testing. A brief introduction of these three tests is as follows:
■ 5. Unit Testing:- Unit testing is the process of checking small pieces of code to ensure that the
individual parts of a program work properly on their own. Unit testing is used to test individual
blocks (units) of code.
■ Integration Testing:- Integration testing is used to identify and resolve any issues that may
arise when different units of the software are combined.
■ System Testing:- Goal is to ensure that the software meets the requirements of the users and
that it works correctly in all possible scenarios.
■ 5. Deployment:- In this step, the development team will deploy the working project to end
users.
■ 6. Feedback:- This is the last step of the Agile Model. In this, the team receives feedback
about the product and works on correcting bugs based on feedback provided by the customer.
■ The time required to complete an iteration is known as a Time Box.
Time-box refers to the maximum amount of time needed to deliver an
iteration to customers. So, the end date for an iteration does not
change. However, the development team can decide to reduce the
delivered functionality during a Time-box if necessary to deliver it on
time. The Agile model’s central principle is delivering an increment to
the customer after each Time-box.
3 C’s of Agile
■ Card
A card in user stories in Agile is a way of breaking down user stories into smaller,
more manageable tasks that can be easily monitored and identified. Each card may
include additional information such as priority level or estimated completion date for
further support of project management.
Conversation
The second C of Agile is a conversation, which emphasizes frequent communication
between team members to identify any possible changes or issues before they
become problems during development.
Confirmation
third C of Agile is confirmation, which allows customers to review and test features
before making them available in production environments. This helps to ensure
applications are error-free while also giving developers valuable insights into
customer preferences so they can make necessary improvements before release.
What are the 12 principles of
agile?
■ Customer satisfaction
■ Early and continuous delivery
■ Embrace change
■ Frequent delivery
■ Collaboration of businesses and developers
■ Motivated individuals
■ Face-to-face conversation
■ Functional products
■ Technical excellence
■ Simplicity
■ Self-organized teams
■ Regulation, reflection and adjustment
Agile methodology
■ The software development term scrum was first used in a 1986 paper titled "The New
Product Development Game". The term is borrowed from rugby, where a scrum is a
formation of players. The term scrum was chosen by the paper's authors because it
emphasizes teamwork.
■ Scrum is a subset of Agile. It is a lightweight process framework for agile development,
and the most widely-used one.
■ Scrum is an agile project management methodology or framework used primarily
for software development projects with the goal of delivering new software capability
every 2-4 weeks.
■ Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts
immediately after the completion of the previous Sprint.
■ Release:
When the product is completed then it goes to the Release
stage.
■ Sprint Review:
If the product still have some non-achievable features then it
will be checked in this stage and then the product is passed to
the Sprint Retrospective stage.
■ Sprint Retrospective:
In this stage quality or status of the product is checked.
■ Product Backlog:
According to the prioritize features the product is organized.
■ Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned
features to sprint and Sprint planning meeting.
How Scrum Works
■ In a rugby scrum, all the players literally put their heads together. When it comes to software
development, a scrum can be characterized by
developers putting their heads together to address complex problems.
■ Scrum software development starts with a wish list of features — a.k.a. a product backlog. The
team meets to discuss:
– The backlog.
– What still needs to be completed.
– How long it will take.
■ Scrum relies on an agile software development concept called sprints:
– Sprints are periods of time when software development is actually done.
– A sprint usually lasts from one week to one month to complete an item from the backlog.
– The goal of each sprint is to create a saleable product.
– Each sprint ends with a sprint review.
– Then the team chooses another piece of backlog to develop — which starts a new sprint.
– Sprints continue until the project deadline or the project budget is spent.
■ In daily scrums, teams meet to discuss their progress since the previous meeting and make plans
for that day.
– The meetings should be brief — no longer than 15 minutes.
– Each team member needs to be present and prepared.
■ The ScrumMaster keeps the team focused on the goal.
How Scrum Works
Introduction to Scrum Terms
■ While scrum can benefit a wide variety of businesses and projects, these
are the most likely beneficiaries:
■ Complicated projects: Scrum methodology is ideal for projects that
require teams to complete a backlog.
■ While a rugby scrum may get rough and bloody, software developers
shouldn’t have to worry about that. Nonetheless, scrum is not for all
developer teams or software development projects. There are
disadvantages to implementing scrum projects:
■ There is a danger of scope creep if stakeholders keep adding
functionality to the backlog. This could be encouraged by the fixed
deadline.
■ Scrum works best with small teams of experienced software
developers. They need to be able to work quickly.
■ Scrum teams do not work well when the scrum master micromanages
their work.
■ Losing any team members can hurt the progress of the project.
Scrum Best Practices
■ Teamwork wins rugby games and helps software developers create
quality products. To get the best quality out of scrum:
■ Define requirements just in time to keep product features as relevant as
possible.
■ Test and incorporate product owner feedback daily.
■ Sprint reviews with stakeholders need to be regular.
■ The scrum team needs to use the sprint retrospectives to improve how
they work.
■ Conduct face-to-face conversations to reduce miscommunications.
■ Trust the teams to do the best job possible.
■ Allow the teams to self-organize around people’s skills, work styles and
personalities.
■ Don’t burn out the team members. Respect the balance between their
personal and professional lives to ease stress.
When you should use Scrum
Select user
Break down
stories for this Plan release
stories to tasks
release
Incremental planning Requirements are recorded on Story Cards and the Stories to be
included in a release are determined by the time available and
their relative priority. The developers break these Stories into
development Ô TasksÕ .
Small Releases The minimal useful set of functionality that provides business
value is developed first. Releases of the system are frequent and
incrementally add functionality to the first release.
Simple Design Enough design is carried out to meet the current requirements
and no more.
Test first development An automated unit test framework is used to write tests for a new
piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.
Extreme programming practices 2
Pair Programming Developers work in pairs, checking each otherÕ s work and
providing the support to always do a good job.
Collective Ownership The pairs of developers work on all areas of the system, so that
no islands of expertise develop and all the developers own all the
code. Anyone can change anything.
Continuous Integration As soon as work on a task is complete it is integrated into the
whole system. After any such integration, all the unit tests in the
system must pass.
Sustainable pace Large amounts of over-time are not considered acceptable as the
net effect is often to reduce code quality and medium term
productivity
On-site Customer A representative of the end-user of the system (the Customer)
should be available full time for the use of the XP team. In an
extreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.
XP and agile principles
First, you select the article that you want from a displayed list. You
then have to tell the system how you will pay for it - this can either
be through a subscription, through a company account or by credit
card.
After this, you get a copyright form from the system to fill in and,
when you have submitted this, the article you want is downloaded
onto your computer.
You then choose a printer and a copy of the article is printed. You
tell the system if printing has been successful.
If the article is a print-only article, you canÕ t keep the PDF version
so it is automatically deleted from your computer .
XP and change
■ Test-first development.
■ Incremental test development from scenarios.
■ User involvement in test development and validation.
■ Automated test harnesses are used to run all component tests each
time that a new release is built.
Task cards for document downloading
■ Customer involvement
– This is perhaps the most difficult problem. It may be difficult or
impossible to find a customer who can represent all stakeholders
and who can be taken off their normal work to become part of the
XP team. For generic products, there is no ‘customer’ - the
marketing team may not be typical of real customers.
Problems with XP
■ Architectural design
– The incremental style of development can mean that
inappropriate architectural decisions are made at an early stage
of the process.
– Problems with these may not become clear until many features
have been implemented and refactoring the architecture is very
expensive.
■ Test complacency
– It is easy for a team to believe that because it has many tests, the
system is properly tested.
– Because of the automated testing approach, there is a tendency
to develop tests that are easy to automate rather than tests that
are ‘good’ tests.
Key points
■ ean was born out of manufacturing practices but in recent time has
transformed the world of knowledge work and management. It
encourages the practice of continuous improvement and is based on
the fundamental idea of respect for people. Womack and Jones
defined the five principles of Lean manufacturing in their book “The
Machine That Changed the World”. The five principles are considered
a recipe for improving workplace efficiency and include: 1) defining
value, 2) mapping the value stream, 3) creating flow, 4) using a pull
system, and 5) pursuing perfection.
■ 1. Defining Value
■ Identifying value in a lean project is always defined by what the customer needs for the product. This might mean the time to market, pricing or
other expectations that must be met. This is the core principle and must be shared with everyone involved in the project so they always work with
the customer’s needs in mind.
■ 2. Value Stream Mapping
■ After you’ve defined the value for your end-user, next you need to map the value stream. This means defining all of the steps and related processes
that take your product from raw material to final deliverable. You can also identify the actions to produce your product in design, procurement, HR,
administration, delivery and customer service. The map should be on only one page and you should remove any steps that offer no value to the
customer.
■ 3. Create Flow
■ Once you’ve removed the waste from your value stream, it’s time to ensure those steps flow smoothly from one to another. You don’t want any
interruptions, delays or bottlenecks that can slow down production and threaten your schedule and budget. To do this, you want the value stream
steps to be in a tight sequence. This leads to cross-functional teams that work together across departments to create greater productivity.
■ 4. Establish Pull
■ “Pull” means that the customer can pull the product with a shorter production cycle, often turning what could have been months into weeks. This
lets you avoid having to build in advance or stockpile materials, which saves on inventory costs that can be passed on to your customers. This is all
dependent on the flow you created in the previous step.
■ 5. Continuous Improvement (Kaizen)
■ If the first step is the most important of the five lean principles, this step is a close second. It means approaching perfection in all aspects of your
corporate culture. Specifically, you want to use this step to loop you back to the first step. Yes, you should never stop following these steps. This
continuous improvement, also referred to by the Japanese word kaizen, is essential to lean project management.
What is FDD in Agile?
■ In FDD, each feature is useful and important to the client and results
in something tangible to showcase. And because businesses
appreciate quick results, the methodology depends on its two-week
cycle.
FDD
■
Lifecycle
Build overall model
■ Build feature list
■ Plan by feature
■ Design by feature
■ Build by feature
Stages of Feature-Driven
Development
■ Stage 0: Gather Data
■ Develop an overall model
■ Build a features list
Advantages of FDD
Kanban
• Lean approach to agile development
• You select, plan, develop, test and deploy one feature (in its
simplest form) before you select, plan, develop, test and deploy
the next feature.
• Assign explicit limits to how many items may be in progress at each stage
Measure the lead time (average time to complete one item, sometimes called
“cycle time”)
• Optimize the process to make lead time as small and predictable as
possible
■ Agile metrics is a tool that helps marketing teams measure the progress and
productivity of marketing activities, stay on track, and address roadblocks. Agile
metrics are most effective when tailored to the specific needs of individual
projects.
■ both quantitative and qualitative data comes in. Agile metrics help agile teams
set benchmarks, measure against goals, and evaluate performance. Agile
metrics typically assess productivity, predictability, quality, or value in some way.
■ The metrics you choose will vary based on your goals, organization, and
development team. For example, the most common agile metrics for scrum
teams are burndown and velocity — while kanban teams typically track cycle
time, throughput, and work in progress (WIP). But in this guide, you will also find
plenty of methodology-agnostic metrics to choose from.
■ 37 agile metrics for development teams
Types of Agile Metrics
■ Blocked time
■ Control chart
■ Cumulative flow diagram
■ Cycle time
■ Lead time
■ Queue length
■ Throughput
■ Work in progress (WIP)
■ Work item age
SAFe metrics
Agile engineering and code metrics
■ Code coverage
■ Code quality
■ Code review time
■ Defect resolution time
■ Defect density
■ Deployment frequency
■ Escaped defects
■ Failed deployments
■ Production downtime
■ Quality intelligence
■ Release frequency
project schedule in traditional
software development
iteration cycle of an Agile project