Ekstremalus programavimas (XP)

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Agile Project Management with Scrum
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Agile Methods.
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
How Agile Are You? Larry Apke Agile Expert
The Two Faces of Project Management Bendik Bygstad, NITH IFI, 25.Sept 2009.
The Two Faces of Project Management Bendik Bygstad, NITH IFI, 16.Sept 2008.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Project Workflow. How do you do it? -Discussion-
Chapter 5 애자일 개발 Agile Development
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
Why (or When) Agile Fails Creating high performance software delivery teams.
Jeff Briggs Senior Consultant Capstone Consulting.
#2-What is Agile? Why Agile? Subtopics 1- Agile motivation for software / systems 2- Agile tenets and principles 3- Agile as a risk mitigation strategy.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 3 Agile Development
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
© 2014 IBM Corporation “Leaders Guide to Radical Management” for DevOps with Steve Denning Chapters 6 and 7: From Bureaucracy to Dynamic Linking by Delivering.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Project Management
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
Principles for Agile Development
Jenna Maghie, Policy Officer
The Agile/Non-Agile Debate
Agile Training Day 2 November 17, 2015.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Project Workflow.
Planning User stories are written.
#2-What is Agile? Why Agile?
Teaching Agile Methods CSEE&T 2017, Savannah, Georgia
Chapter 5 Agile Development
Project Management and the Agile Manifesto
Agile Software Development Paradigms
Rosa María Torres de Paz
The Agile Manifesto is based on 12 principles
Introduction to Agile Blue Ocean Workshops.
How Strong is Your Agile Foundation
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
The Manifesto for Agile Software Development
Projects, Assignments, and other Assessments
Chapter 3 Agile Development
Agile Development.
Presentation transcript:

Ekstremalus programavimas (XP) Anželika Šalaviejienė ir Marius Gedminas Agilemanifesto papildymai nuo: Andrius Adamonis, 2011 m.

www.extremeprogramming.org

Turinėlis Agile Manifesto Kas yra XP Kada naudoti XP Kam reikalinga dar viena PĮ kūrimo metodika XP taisyklės ir praktikos

agilemanifesto.org Kent Beck et al.

agilemanifesto.org We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Glen B. Alleman Individuals and interactions over processes and tools We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. before before before while

Agile principles 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable solutions 2. Welcome changing requirements, even late in the solution delivery lifecycle. Agile processes harness change for the stakeholder’s competitive advantage 3. Deliver working solutions frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Agile principles 4. Stakeholders and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a delivery team is face-to-face conversation.

Agile principles 7. Working solutions are the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility.

Agile principles 10. Simplicity--the art of maximizing the amount of work not done--is essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Agile principles 13. Leverage and evolve the assets within your organizational ecosystem, and collaborate with the people responsible for those assets to do so. 14. Minimize work in progress and visualize workflow. 15. The organizational ecosystem must evolve to reflect and enhance the efforts of agile teams, yet be sufficiently flexible to still support non-agile or hybrid teams.

Kas yra XP XP – tai (gerai apgalvotas) požiūris į programinės įrangos kūrimą XP yra metodika XP pradininkas – Kent Beck

XP akcentuoja Kliento poreikius ir norus Kolektyvinį darbą Testavimo būtinumą Paprastų ir lengvai suprantamų išeities tekstų kūrimą Teigiamą požiūrį į besikeičiančius reikalavimus

XP proceso gerinimo aspektai Komunikavimas(communication) Paprastumas(simplicity) Atsiliepimai(feedback) Drąsa(courage)

Kada naudoti XP Dinamiškai kintantys reikalavimai Rizikingi projektai Mažas programuotojų kolektyvas (2 - 10) Projekto kolektyvas įvairialypis Testavimas Produktyvumas

Kam reikalinga dar viena PĮ kūrimo metodika XP – lengvasvorė metodika Peržiūrimos PĮ kūrimo praktikos, paliekamos tik paprastos ir lengvai suprantamos taisyklės Mažinami PĮ kūrimo kaštai

XP iteracijos

XP taisyklės ir praktikos Planavimas Projektavimas Kodavimas Testavimas

Planavimas Užrašomi vartotojų pasakojimai(user stories are written) Sukuriamas laidos(release) planas(release planning creates the schedule) Atliekama daug mažų laidų(make frequent small releases) Matuojamas projekto greitumas(the project velocity is measured) Projektas dalinamas į iteracijas(the project is devided into iterations)

Planavimas Kiekviena iteracija pradedama nuo planavimo(iteration planning starts each iteration) “Stumdyk” žmones(move people around) Kiekviena diena pradedama nuo trumpo susirinkimo(a stand-up meeting starts each day) XP reikia pritaikyti(fix XP when it breaks)

Projektavimas Paprastumas(simplicity) Parinkti sistemos metaforą(choose a system metaphor) Projektavimui naudojamos CRC kortelės(use CRC cards for design sessions; CRC – Class Responsibility Collaborator) Rizikai mažinti kuriami spontaniški sprendimai(create spike solutios to reduce risk) Joks funkcionalumas nepridedamas anksčiau laiko(no functionality is added early) Pertvarkoma visada ir visur, kur tik įmanoma(refactor whenever and wherever possible) CRC card: -------------- Class Name Responsibilities | Collabolators Pvz.: Class ATM Responsibilities Collaborators Start up when switch is turned on OperatorPanel CashDispenser NetworkToBank Shut down when switch is turned off NetworkToBank Start a new session when card is inserted by customer CustomerConsole Session

Kodavimas Užsakovas visada “po ranka”(the customer is always available) Kodas rašomas laikantis standartų(code must be written to agreed standards) Pirma kuriami modulių testai(code the unit test first) Visas kodas rašomas poromis(all code is pair programmed) Tik viena pora integruoja kodą vienu metu(only one pair integrates code at a time) Integruojama dažnai(integrate often)

Kodavimas Kolektyvinė kodo nuosavybė(use collective code ownership) Optimizavimas atliekamas pabaigoje(leave optimization till last) Jokių viršvalandžių(no overtime)

Testavimas Testas kuriamas kiekvienam moduliui(all code must have unit tests) Visas kodas turi praeiti visus modulių testus(all code must pass all unit tests before it can be released) Jei randama klaida, kuriami testai(when a bug is found tests are created) Priėmimo testai dažnai leidžiami, fiksuojami ir peržiūrimi jų rezultatai(acceptance tests are run often and the score is published)

XP map

XP map

XP map