History of Agile

Download Report

Transcript History of Agile

Quick introduction into the History
of Agile development, as we see it
after almost few decades from its
inception.
Radu Poenaru
Ijaz Ahmet

Basic ideas of the Agile technique:
◦
◦
◦
◦

Recalibrate itself
Adaptive result
Customer gets quick updates
... And gives quick feedback
Thus the programmer‘s work is useful to the
cliend and both time is used to the maximum


Around 1950 the methodology was created Toyota factory was the first adopting
Build products only for which you have a
customer

Eliminate anything that doesn‘t add value

Stop if something goes wrong
A real philosophy of work, which:



respects those engaged in the work
strives for full utilization of workers’
capabilities
places authority and responsibility for the
work with those doing it




Applying Toyota techniques to software
industry is not so easy nor efficient
While a steel plate can‘t be recomposed after
cutting, a piece of code can be easily cut and
pasted
The workers can‘t specialise enough in one
direction (eg design) without loosing the big
picture
Fast and addapted techniques were
developed - „Time is money“

eXtreme Programming
o Reusability
◦ Predictive model
o Easy to change direction
◦ Optimized for a single purpose
o But no idea of next 6 months
◦ Hard to change
Waterfall model:


Sprints – reccuring periods in which code is
created

User gets the build and starts reviewing it

Feedback from user to the team

Thus, team is kept on the right path
… is a family of development processes




Individuals and interactions over processes
and tools
Working software over comprehensive
documentation
Customer collaboration over contract
negotiation
Responding to change over following a plan





one of Agile processes
use incremental framework for developing
complex software
managing new products
considered more like a framework in which
you can employ various processes and
techniques
Key principle: during a project the customers
can change their minds

Transparency
◦ The outcome of the product should be visible to the manager who
is managing the outcomes. Also each process that affect the
outcome of the product also should been visible to the managers.

Inspection
◦ Various aspects of the process must be frequently inspected
regularly so that quality of work and peoples can be seen.

Adaptation
◦ If the inspection process find outs some process are outside the
scope of the product or the outcomes will be unacceptable, then
the inspector should response quickly and adjusts the process or
data being used in the process.

Product Owner (Also known as chickens)
◦ is responsible for the communicating version of
the product.

Scrum Master
◦ Scrum manager provide cooperation between the
product owner and team.

Team (Also known as pigs)
◦ It’s the team which performs work or sprintusually there are many teams working on their
sprints and each team consist of 5 to 9 crossfunctional members.

The Sprint
◦ Sprint is one iteration. Project is dived into small workable
sprints which take 2 to 4 week durations, no change to the
sprint backlog

The Backlog
◦ list of requirement from product owner based on their
priorities - after every sprint, backlogs are updated.

The Sprint Backlog
◦ the information how this sprint going to be implementedprocess/features are broken down in to small tasks (6 to 8
hours) for teams.

The Time Boxing
◦ Everything in scrum is time-boxed - It’s about release
planning meeting, sprint planning meeting, sprint review and
daily scrum meetings.

The Daily Meeting/Scrum
◦ also called as "the daily standup“ - 15 minutes and all peoples
are welcome to join but only the teams (pigs) are allowed to
speak. This meeting has only 3 questions to answer
 What you done yesterday?
 What you will do today?
 Do you have issues which are stopping you doing this job?

first applied to software development

but then successfully used in big industries


now it used for developing any kind of
product.
the best part of SCRUM as compared to other
agile process that it introduces the idea of
real world progress of a project not just the
best guess on unknown information.

is about project management, practices and
programming methodologies for

rapidly developing

high quality software

for the customer

in fastest way possible



whole process is visible and accountable
developers program in pairs
show concrete progress in the form of
deployable software

development includes extensive code review

unit testing of all the code

Coding
◦ First test, then code
◦ Code integrated often to avoid changes in main product
later

Testing
◦ The process that says when development is done
◦ Ensures that software meets client requirements

Listening
◦ Customer is participating in all stages
◦ Clarify and sharpens the team‘s perception on requirements

Designing
◦ Reduces the code complexity by analysis
◦ Ensures that all pieces of code are efficiently tied together

Communication
◦ documentation is not a core value or at least a very little – the communication
increases cooperation, group productiveness, and decreases mistakes

Simplicity
◦ implement the simplest solution or write code which you believe will be rewrite for
extra functionality.

Feedback
◦ Kent : "Optimism is an occupational hazard of programming, feedback is the
treatment." -feedback keeps the project on track.

Courage
◦ make decisions and assume their responsibility - change direction by either
discarding or re-factoring your work.

Humility/Respect
◦ The best developers have the humility to recognize that they do not know everything,
that their fellow developers also have their own areas of expertise.

Core practices of XP
◦ Pair Programming: All code is written by 2
programmers
◦ Planning Game: Stories from Business and
development cooperate
◦ Small Releases: There is a short time between
versions
◦ Continuous Testing: Before you write a program for
features, you write a test for it

Core practices of XP
◦ Simple Design: Always use the simplest possible
design that gets the job done
◦ Re-factoring: You cannot leave the duplicated code
around.
◦ Collective Code Ownership: No single person
"owns" a module.
◦ Continuous Integration: Code addition and changes
are integrated into the codebase after few hours or
at least daily.

Core practices of XP
◦ Coding Standards: Everyone codes to the same
standards.
◦ Forty Hour Week: Programmers go home on time
and enjoy weeks too.
◦ On-site Customer: The customer should be
available for answering questions any time for
developers.


XP is more toward rapid programming, scrum
is more of team work and Toyota production
system is organized manufacturing and
logistics for the manufacturer.
XP consists of five values and 12 common
practices. Scrum development process is
divided into 2-4 weeks sprints


scrum allows to start development even if you
are uncertain about what the clients wants.
Toyota production system does not have
power to stand against issues instead it stop.

Scrum allows to combine it with XP to make
good combination of speed programming.




Decision of technique is depends on
situation.
Scrum is independent of software
development while XP is for speed
programming
TPS reduces the element of waste and
overburden.
Each process has its own benefits and can be
combined in best situations.
Thank You!!!