1. Welcome!!
Who am I?
Technical Software Project Manager
Social & Tech Entrepreneur
Traveler & Photographer
University Lecturer
Coder & Innovator
Youth Activist
TV Personal
Blogger
2. A R W M M D Rohana Kumara – MBA (AUS), B.Sc (CIS - SUSL), MBCS (UK), PMP (Reading)
WHAT IS AGILE ?
UNDERSTAND AGILE IN SIMPLE STEPS
3. Let’s Talk About These Stuff
What is agile & history of agile
12 principals of agile methodology
Agile Methodology
Advantages of agile
Disadvantages of agile
Do We Really Need Agile?
How agile address software requirements
How to get started with agile
Agile Development Circle
Agile Methodologies
How to estimate budget in agile?
Methodologies Use To Implement Agile
01
02
03
04
A R W M M D Rohana Kumara – MBA (AUS), B.Sc (CIS - SUSL), MBCS (UK), PMP (Reading)
5. Agile Methodology
What is agile?
01
What Is Agile?
• Agile is a time boxed, iterative approach to software delivery that builds sof
tware incrementally from the start of the project, instead of trying to deliver
it all at once near the end.
• Agile doesn’t have in-depth planning at the beginning of the project, Agile i
s open to changing requirements over time and encourages constant feed
back from the end users.
Agile is the way of ability to create and respond to changes o
n an incremental, iterative approach in order to succeed in a
n uncertain and turbulent environment.
6. Agile Methodology
What is agile?
01
What Is Agile?
Agile is collaboration between self-organizing, cross-functional teams work
on iterations of a product over a period of time, and this work is organized into
a backlog that is prioritized based on business or customer value.
The goal of each iteration is to produce a working product for customer.
In Agile methodologies, leadership encourages teamwork, accountability, an
d face-to-face communication.
Business stakeholders and developers must work together to align the product
with customer needs and company goals.
Manifesto for Agile Software Development, which covered how they found “
better ways of developing software by doing it and helping others do it” and in
cluded four values and 12 principles.
7. Agile Methodology
12 Fundamental principals of agile methodology
01
Agile manifesto
The Agile Manifesto lists 12 fundamental principles to guide teams on how to
execute with agility.
The Agile Manifesto is a dramatic contrast to the traditional
Project Manager’s Body of Knowledge (PMBOK) guide a
nd standards.
9. Agile Methodology
12 Fundamental principals of agile methodology
01
Agile manifesto
1. Our highest priority is to satisfy the customer through early and continuo
us delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile proc
esses harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a coupl
e of months, with preference to the shorter timescale.
4. Business people and developers must work together daily throughout th
e project.
5. Build projects around motivated individuals. Give them the environment a
nd support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and w
ithin a development team is face-to-face conversation.
10. Agile Methodology
12 Fundamental principals of agile methodology
01
Agile manifesto
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, devel
opers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances
agility.
10. Simplicity -- the art of maximizing the amount of work not done -- is esse
ntial.
11. The best architectures, requirements, and designs emerge from self-orga
nizing teams.
12. At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behaviour accordingly.
12. Agile Methodology
History of agile
01
History Of Agile
Old School Thought – “Waterfall”
In the early stages all the software projects used to be run as a series of seq
uential phases or steps which completed one after another.
13. Agile Methodology
History of agile
01
History Of Agile
Old School Thought – “Waterfall”
• It’s what you learn at high school, and it’s what most large organization
s still practice.
• The hidden downside is that it’s sequential. If a requirement is no longer
valid during the testing phase or the market has changed, it’s too late. It’
s being tested now. Development and requirements are done.
• In our hyper-evolving world, this doesn’t quite work in practice anymore.
Well, for building great products at least.
• They call this approach “waterfall”. Once you go past a phase, you can’t
climb back up. It’s a waterfall after all.
15. Agile Methodology
History of agile
01
History Of Agile
New School Thinking – ‘Agile’
• Some trace agile methodologies all the way back to Francis Bacon’s arti
culation of the scientific method in 1620.
• A more reasonable starting point might be the 1930s, when the physicist
and statistician Walter Shewhart of Bell Labs began applying Plan-Do-St
udy-Act (PDSA) cycles to the improvement of products and processes.
• Shewhart taught this iterative and incremental-development methodology
to his mentee, W. Edwards Deming, who used it extensively in Japan in t
he years following World War II.
• Toyota hired Deming to train hundreds of the company’s managers, even
tually capitalizing on his expertise to develop the famous Toyota Productio
n System the primary source of today’s “lean” thinking.
• Iterative and incremental development methods were also a major contrib
utor to the successful creation of the X-15 hypersonic jet in the 1950s.
16. Agile Methodology
History of agile
01
History Of Agile
New School Thinking – ‘Agile’
• Bunch of people got together in 2001 and decided to create a medicine to
remedy the immobility present in the software development practices at th
e time. They called it ”The Agile Manifesto”.
• The manifesto consists of a number of values and principles.
• In a nutshell, it’s based on quickly and iteratively developing software, wit
h a focus on customer feedback and effective communication between th
e people that build the software product.
• Out of this manifesto spun the concept of Agile Software Development, w
hich is a number of methods that can be used to develop software based
off the values and principles in The Agile Manifesto.
• Alone, Agile Software Development doesn’t do much for teams. It’s the ag
ile software methods that provide teams structure on how to manage and
build products.
17. Agile Methodology
History of agile
01
History Of Agile
Difference between ‘Agile’ & ‘Waterfall’
Some of these methods include several sub agile
practices;
19. Agile Methodology
History of agile
01
History Of Agile
New School Thinking – ‘Agile’
What previously discussed methods have in common is that they help teams
to build and release software in small, frequent iterations, as opposed to takin
g the ‘big bang’ waterfall approach of releasing software after everything else
has been completed.
21. Agile Methodology
Advantages of agile
02
Advantages Of
Agile
Agile evolved from different lightweight software approaches in the 1990s and
is a response to some project managers’ dislike of the rigid, linear Waterfall m
ethodology.
It focuses on flexibility, continuous improvement, and speed. New School Thi
nking – ‘Agile’.
22. Agile Methodology
Advantages of agile
02
Advantages Of
Agile
• Change is embraced:
With shorter planning cycles, it’s easy to accommodate and accept changes
at any time during the project. There is always an opportunity to refine and re
prioritize the backlog, letting teams introduce changes to the project in a matt
er of weeks.
• End-goal can be unknown:
Agile is very beneficial for projects where the end-goal is not clearly defined.
As the project progresses, the goals will come to light and development can e
asily adapt to these evolving requirements.
• Faster, high-quality delivery:
Breaking down the project into iterations (manageable units) allows the team
to focus on high-quality development, testing, and collaboration. Conducting t
esting during each iteration means that bugs get identified and solved more q
uickly. And this high-quality software can be delivered faster with consistent, s
uccessive iterations.
23. Agile Methodology
Advantages of agile
02
Advantages Of
Agile
• Strong team interaction:
Agile highlights the importance of frequent communication and face-to-face in
teractions. Teams work together and people are able to take responsibility an
d own parts of the projects.
• Customers are heard:
Customers have many opportunities to see the work being delivered, share th
eir input, and have a real impact on the end product. They can gain a sense o
f ownership by working so closely with the project team.
• Continuous improvement:
Agile projects encourage feedback from users and team members throughout
the whole project, so lessons learned are used to improve future iterations.
24. Agile Methodology
Disadvantages of agile
02
Dis-advantages
Of Agile
While the level of flexibility in Agile is usually a positive, it also comes with so
me trade-offs.
It can be hard to establish a solid delivery date, documentation can be neglec
ted, or the final product can be very different than originally intended.
25. Agile Methodology
Disadvantages of agile
02
Dis-advantages
Of Agile
• Planning can be less concrete:
It can sometimes be hard to pin down a solid delivery date. Because Agile is
based on time-boxed delivery and project managers are often reprioritizing ta
sks, it’s possible that some items originally scheduled for delivery may not be
complete in time. And, additional sprints may be added at any time in the proj
ect, adding to the overall timeline.
• Team must be knowledgeable:
Agile teams are usually small, so team members must be highly skilled in a v
ariety of areas. They also must understand and feel comfortable with the cho
sen Agile methodology.
• Time commitment from developers:
Agile is most successful when the development team is completely dedicated
to the project. Active involvement and collaboration is required throughout the
Agile process, which is more time consuming than a traditional approach. It al
so means that the developers need to commit to the entire duration of the pro
ject.
26. Agile Methodology
Disadvantages of agile
02
Dis-advantages
Of Agile
• Documentation can be neglected:
The Agile Manifesto prefers working software over comprehensive document
ation, so some team members may feel like it’s less important to focus on doc
umentation. While comprehensive documentation on its own does not lead to
project success, Agile teams should find the right balance between document
ation and discussion.
• Final product can be very different:
The initial Agile project might not have a definitive plan, so the final product c
an look much different than what was initially intended. Because Agile is so fl
exible, new iterations may be added based on evolving customer feedback, w
hich can lead to a very different final deliverable.
29. Agile Development Circle
How agile address software requirements
03
How Agile
Address SW
Requirements
It’s important to note that these phases shouldn’t happen in succession; they
are flexible and always evolving. Many of these phases happen in parallel.
30. Agile Development Circle
How agile address software requirements
03
How Agile
Address SW
Requirements
• Planning:
Once an idea is deemed viable and feasible, the project team comes together
and works to identify features. The goal of this phase is to break down the ide
a into smaller pieces of work (the features) then to prioritize each feature and
assign it to an iteration.
• Requirements analysis:
This phase involves many meetings with managers, stakeholders, and users t
o identify business requirements. The team needs to gather information like w
ho will use the product and how they will use it. These requirements must be
quantifiable, relevant, and detailed.
• Design:
The system and software design is prepared from the requirements identified
in the previous phase. The team needs to think about what the product or solu
tion will look like. The test team also comes up with a test strategy or plan to
proceed.
31. Agile Development Circle
How agile address software requirements
03
How Agile
Address SW
Requirements
• Implementation, coding or development:
This phase is all about creating and testing features, and scheduling iterations
for deployment (following the iterative and incremental development approach
[IID]). The development phase starts with iteration 0, because there are no
features being delivered. This iteration lays down the foundation for developm
ent, with tasks like finalizing contracts, preparing the environments, and fundin
g.
• Testing:
Once the code has been developed, it is tested against the requirements to m
ake sure the product is actually solving customer needs and matching user
stories. During this phase, unit testing, integration testing, system testing, and
acceptance testing are done.
• Deployment:
After testing, the product is delivered to customers for them to use. However,
deployment isn’t the end of the project. Once customers start using the produc
t, they may run into new problems that the project team will need to address.
38. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
Agile is a framework and there are a number of specific methods within th
e Agile movement.
You can think of these as different flavours of Agile:
Scrum
Kanban
Extreme Programming - XP
Lean
Crystal
Feature Driven Development – FDD
Dynamic System Development Method – DSDM
(Let’s learn these Agile methods in another presentation)
39. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
40. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
• Extreme Programming (XP):
Extreme Programming is a type of software development intended to impr
ove quality and responsiveness to evolving customer requirements. The p
rinciples of XP include feedback, assuming simplicity, and embracing cha
nge.
• Feature-driven development (FDD):
This iterative and incremental software development process blends indus
try best practices into one approach. There are five basic activities in FDD
: develop overall model, build feature list, plan by feature, design by featur
e, and build by feature.
• Adaptive system development (ASD):
Adaptive system development represents the idea that projects should al
ways be in a state of continuous adaptation. ASD has a cycle of three rep
eating series: speculate, collaborate, and learn.
41. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
• Dynamic Systems Development Method (DSDM):
This Agile project delivery framework is used for developing software and
non-IT solutions. It addresses the common failures of IT projects, like goin
g over budget, missing deadlines, and lack of user involvement. The eight
principles of DSDM are: focus on the business need, deliver on time, colla
borate, never compromise quality, build incrementally from firm foundation
s, develop iteratively, communicate continuously and clearly, and demonst
rate control.
• Lean Software Development (LSD):
Lean Software Development takes Lean manufacturing and Lean IT princi
ples and applies them to software development. It can be characterized b
y seven principles: eliminate waste, amplify learning, decide as late as po
ssible, deliver as fast as possible, empower the team, build integrity in, an
d see the whole.
42. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
• Kanban:
Kanban, meaning “visual sign” or “card” in Japanese, is a visual framewor
k to implement Agile. It promotes small, continuous changes to your curre
nt system. Its principles include: visualize the workflow, limit work in progr
ess, manage and enhance the flow, make policies explicit, and continuous
ly improve.
• Crystal Clear:
Crystal Clear can be used with teams of six to eight developers and it focu
ses on the people, not processes or artefacts. Crystal Clear requires the
following: frequent delivery of usable code to users, reflective improvemen
t, and osmotic communication preferably by being co-located.
• Scrum:
Scrum is one of the most popular ways to implement Agile. It is an iterativ
e software model that follows a set of roles, responsibilities, and meetings
that never change. Sprints, usually lasting one to two weeks, allow the tea
m to deliver software on a regular basis.
43. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
Other Practices in Agile
• Agile Modelling (AM):
Agile modelling is used to model and document software systems and is a
supplement to other Agile methodologies like Scrum, Extreme Programmi
ng (XP), and Rational Unified Process (RUP). AM is not a complete softw
are process on its own. It can help improve models with code, but it doesn
’t include programming activities.
• Rational Unified Process (RUP):
Created by the Rational Software Corporation, a division of IBM, RUP is a
n iterative, adaptive framework for software development. According to Ra
tional, RUP is like an online mentor that provides guidelines, templates, a
nd examples for program development. The key aspects of RUP include a
risk-driven process, use case focused development, and architecture-cent
ric design.
44. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
Other Practices in Agile
• Lean vs Agile:
Lean development focuses on eliminating and reducing waste (activities t
hat don’t add any value). Lean development takes the principles from Lea
n manufacturing and applies them to software development. These princip
les are very similar to Agile, however Lean takes it one step further. In the
development phase, you select, plan, develop, test, and deploy only one f
eature before you repeat the process for the next feature.
• Test-Driven Development (TDD):
Test-driven development relies on repetitive, short development cycles. Fir
st, a developer writes an (initially failing) automated test case for a new fe
ature and quickly adds a test with the minimum amount of code to pass th
at test. Then, he refactors the new code to acceptable standards.
45. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
Other Practices in Agile
• Scaled Agile Framework:
The Scaled Agile Framework is a very structured method to help large bus
inesses get started with adopting Agile. SAFe is based on Lean and Agile
principles and tackles tough issues in big organizations, like architecture, i
ntegration, funding, and roles at scale. SAFe has three levels: team, progr
am, and portfolio.
• Rapid Application Development (RAD):
RAD’s approach to software development puts more emphasis on develo
pment than planning tasks. It follows an incremental model, where each c
omponent is developed in parallel. The phases in RAD are: business mod
eling, data modeling, process modeling, application generation, and testin
g and turnover.
46. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
Other Practices in Agile
• Empirical Control Method:
With Agile software development, you can use an Empirical Control Metho
d, which means that you make decisions based on the realities you obser
ve in the actual project. The empirical model of process control has three
parts: visibility, inspection, and adaption.
47. Methodologies To Implement Agile
Methodologies that are used to implement agile
Methodologies To
Implement Agile
04
48. Methodologies To Implement Agile
How to estimate budget in agile
Estimate
Budget In Agile
04
Without in-depth, upfront planning, many project managers are unsure of ho
w to calculate the cost and budget of an Agile project.
Estimating the cost before the project even starts can always be challenging
, regardless of which project methodology you use. However, in an Agile proj
ect, you can tie the amount of time the project will take with its total cost.
First, create a burn down chart and use the burn down rate to estimate how
many sprints will be in your project and when the project will end.
Then, calculate how much the team will cost based on their hourly rates. Mul
tiply each person’s rate by the number of working hours per week, then multi
ply that by the number of weeks in a sprint.
Once you estimate the initial budget for your team, you can add any other co
sts, like technology, travel, or equipment.
49. Methodologies To Implement Agile
How to estimate budget in agile
Estimate
Budget In Agile
04
You could also break down each user story into tasks.
Once you have an idea of how many hours it will take to complete each task,
you can estimate the project budget.
And lastly, you could use planning poker to estimate the effort required for de
velopment goals. Planning poker is a consensus-based, gamified technique f
or estimating the effort of development goals.
Each team member makes estimates by playing numbered cards face-down
on the table, instead of saying it out loud. The cards are then revealed and th
e estimates discussed with the whole team.
(Let’s learn how we can use planning poker for Agile in another presentation)