History of Agile Quick introduction into the History

  • Slides: 26
Download presentation
History of Agile Quick introduction into the History of Agile development, as we see

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

Intro � Basic ◦ ◦ ideas of the Agile technique: Recalibrate itself Adaptive result

Intro � 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

Roots � Around 1950 the methodology was created Toyota factory was the first adopting

Roots � Around 1950 the methodology was created Toyota factory was the first adopting � Build products only for which you have a customer � Eliminate � Stop anything that doesn‘t add value if something goes wrong

Toyota‘s values A real philosophy of work, which: � respects � strives those engaged

Toyota‘s values A real philosophy of work, which: � respects � strives those engaged in the work for full utilization of workers’ capabilities � places authority and responsibility for the work with those doing it

Hardware vs Software � Applying Toyota techniques to software industry is not so easy

Hardware vs Software � 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“

Planning VS Agile e. Xtreme Programming o Reusability ◦ Predictive model o Easy to

Planning VS Agile e. Xtreme 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: �

Agile technique � Sprints created � User – reccuring periods in which code is

Agile technique � Sprints created � User – reccuring periods in which code is gets the build and starts reviewing it � Feedback � Thus, from user to the team is kept on the right path

Methodology … is a family of development processes � Individuals and interactions over processes

Methodology … 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

SCRUM � one � use of Agile processes incremental framework for developing complex software

SCRUM � one � use of Agile processes 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

Managing complex products � Transparency ◦ The outcome of the product should be visible

Managing complex products � 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.

Partners � Product Owner (Also known as chickens) ◦ is responsible for the communicating

Partners � 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.

SCRUM terms � The Sprint � The Backlog � The Sprint Backlog ◦ Sprint

SCRUM terms � The Sprint � The Backlog � The Sprint Backlog ◦ Sprint is one iteration. Project is dived into small workable sprints which take 2 to 4 week durations, no change to the sprint backlog ◦ list of requirement from product owner based on their priorities - after every sprint, backlogs are updated. ◦ the information how this sprint going to be implementedprocess/features are broken down in to small tasks (6 to 8 hours) for teams.

SCRUM terms (2) � The Time Boxing ◦ Everything in scrum is time-boxed -

SCRUM terms (2) � The Time Boxing ◦ Everything in scrum is time-boxed - It’s about release 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?

Coverage � first � but applied to software development then successfully used in big

Coverage � first � but applied to software development 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.

e. Xtreme Programming � is about project management, practices and programming methodologies for �

e. Xtreme Programming � is about project management, practices and programming methodologies for � rapidly � high � for � in developing quality software the customer fastest way possible

e. Xtreme Programming(2) � whole � process is visible and accountable developers program in

e. Xtreme Programming(2) � whole � process is visible and accountable developers program in pairs � show concrete progress in the form of deployable software � development � unit includes extensive code review testing of all the code

XP - activities � Coding ◦ First test, then code ◦ Code integrated often

XP - activities � 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 - values � Communication ◦ documentation is not a core value or at

XP - values � 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.

e. Xtreme Programming � Core practices of XP ◦ Pair Programming: All code is

e. Xtreme 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

e. Xtreme Programming � Core practices of XP ◦ Simple Design: Always use the

e. Xtreme 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.

e. Xtreme Programming � Core practices of XP ◦ Coding Standards: Everyone codes to

e. Xtreme 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.

Comparison of techniques � XP is more toward rapid programming, scrum is more of

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

Comparison of techniques � scrum allows to start development even if you are uncertain

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.

Comparison of techniques � Scrum allows to combine it with XP to make good

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

Conclusion � Decision of technique is depends on situation. � Scrum is independent of

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.

Thank You!!!

Thank You!!!