Scrum Training Notes - Week 1
Scrum Training Notes - Week 1
Week 1
Introduction
One of the most popular buzzwords in the software development business today is agile.
But what does agile development actually mean? Agile development is, to put it in simple
terms, a different approach to managing software development teams and projects.
First, let's review the conventional approaches so you can see what is new. Prior to starting
the development process in traditional software development, the product requirements
are finalised.
Waterfall Model
The Waterfall Model, as shown in the following diagram, is the most popular software
development model containing this feature. However, modifications are frequently added,
and previous requirements can sometimes change.
The structure of the waterfall model does not allow for such frequent changes in
requirements. The user won't fully understand the product's functioning unless it is made
available in its entire form.
2
The waterfall model initially was used in the manufacturing and construction industries. But
in the 50's it started being used for software development as well. It is also referred to as a
Linear -Sequential Life Cycle model because it follows a pattern which is completing
phase by phase.
Meaning, a phase has to be completed before moving on to the next phase and there's no
going back to the previous phase.
Requirements Gathering
In this phase the requirements are gathered by the business analyst and they are analysed
by the team. The Business Analysts document the requirement based on their discussion
with the customer. Will the new banking application be used in more than one country? Do
we have to support multiple languages? How many users are expected to use the
application? etc
System Design
The architect and senior members of the team work on the software architecture, Which is
designing the software. It is decided that the banking application needs to have redundant
backup and failover capabilities such that system is accessible at all times. The architect
creates the Architecture diagrams and high level / low level design documents.
Implementation
The development team works on coding the project. They take the design documents and
ensure that their solution follows the design finalised by the architect. Since the application
is a banking application and security was a high priority in the application requirements,
they implement several security checks, audit logging features in the application.
3
Testing
The testing team tests the complete application and identifies any defects in the
application. These defects are fixed by the developers and the testing team. Security testing
teams were assigned to test the security of the banking application. After that they'll deploy
the software.
Maintenance
During the maintenance phase, the team ensures that the application is running smoothly
on the servers without any downtime. Issues that are reported after going live are fixed by
the team and tested by the testing team.
The waterfall method involves the idea that you cannot move on to the next stage of
building something until the stage before it has been completed.
It’s a very rigid framework, which doesn’t allow development teams any flexibility, meaning
there is no time to adapt to change and, as anyone will tell you, technology changes fast.
Something new was needed to allow companies to try, fail, try again, and succeed, at the
same rate that technology was evolving.
Agile
Agile is built on incremental iterative development, in which team collaboration allows for
the evolution of requirements and solutions. It encourages quick and adaptable responses
to change and suggests an iterative process which is timeboxed.
4
Agile focuses on keeping the process lean and creating minimum viable products (MVPs)
that go through a number of iterations before anything is final.
Feedback is gathered and implemented continually and in all, it is a much more dynamic
process where everyone is working together towards one goal.
Agile Manifesto
Software engineers created the Agile Manifesto in 2001, emphasising the value of the
development team, the necessity to adapt to changing requirements, and the importance
of customer interaction.
The manifesto is a set of 4 values and 12 principles that describe “What is meant by
Agile".
“We are uncovering better ways of developing software by doing it and helping others do it.
1. Individuals and interactions over processes and tools: Importance needs to be given
to: self-organisation and self-motivation of the team members, continuous
interaction for work, clarifications, information among the team members
2. Working software over comprehensive documentation: Delivery of working software
at short duration intervals helps gain customer trust and assurance in the team.
3. Customer collaboration over contract negotiation: Constant involvement of
customers with the development team ensures communication of necessary
modifications.
4. Responding to change over following a plan: Focus on quick response to the
proposed changes, which is made possible with short duration iterations.
5
That is, while there is value in the items on the right, we value the items on the left
more."
The Agile Manifesto's key tenet is that we must have faith in people and their
capacity for cooperation. Because of this, these particular agile approaches
emphasise teamwork and collaboration throughout the course of the project,
thereby maximising the potential of team members.
6
Different Subsets of Agile
Agile is a concept, not a particular methodology, according to the word. Agile encompasses
a variety of approaches, some of which may be in conflict with one another. These include;
It is a flexible framework for software projects. It was used to polish the conventional
methods. DSDM Atern is the name of the most recent version of DSDM.
The word Atern is an acronym for Arctic Tern, a seabird that can fly great distances and is
used to symbolise several aspects of the system, including prioritisation and collaboration.
Scrum
Extreme Programming XP
Kanban
It is a method for enhancing and maintaining high levels of productivity. Kanban is one tool
used by businesses to implement Just-In-Time (JIT), a tactic used to reduce inventory costs.
7
Kanban evolved into a useful tool for managing a production system as a whole and proved
to be a great approach to encourage development.
KEY POINTS
There have been an increasing number of success stories over the past ten years showing
how organisations have used agile practices to significantly increase the productivity and
success of their IT development teams and projects. Agile has been widely embraced as a
result across many industries, including media and technology, big businesses, and even
the government.