26
History of Agile Radu Poenaru Ijaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception.

Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

History of Agile

Radu Poenaru Ijaz Ahmet

Quick introduction into the History of Agile development, as we see it after almost few decades from its inception.

Page 2: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

Intro

Page 3: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

Roots

Page 4: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

Toyota‘s values

Page 5: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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“

Hardware vs Software

Page 6: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Waterfall model:◦ Predictive model◦ Optimized for a single purpose◦ Hard to change

Planning VS Agile eXtreme Programming

o Reusabilityo Easy to change directiono But no idea of next 6 months

Page 7: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

Agile technique

Page 8: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

… 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

Methodology

Page 9: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

SCRUM

Page 10: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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.

Managing complex products

Page 11: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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 sprint-

usually there are many teams working on their sprints and each team consist of 5 to 9 cross-functional members.

Partners

Page 12: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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 implemented-

process/features are broken down in to small tasks (6 to 8

hours) for teams.

SCRUM terms

Page 13: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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?

SCRUM terms (2)

Page 14: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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.

Coverage

Page 15: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

is about project management, practices and programming methodologies for

rapidly developing high quality software for the customer in fastest way possible

eXtreme Programming

Page 16: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

eXtreme Programming(2)

Page 17: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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

XP - activities

Page 18: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

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.

XP - values

Page 19: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

eXtreme Programming

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

Page 20: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

eXtreme Programming

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.

Page 21: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

eXtreme Programming

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.

Page 22: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Comparison of techniques

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

Page 23: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Comparison of techniques

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.

Page 24: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Comparison of techniques

Scrum allows to combine it with XP to make good combination of speed programming.

Page 25: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Conclusion

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.

Page 26: Radu PoenaruIjaz Ahmet Quick introduction into the History of Agile development, as we see it after almost few decades from its inception

Thank You!!!