EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.
|
|
- Paulina Jackson
- 6 years ago
- Views:
Transcription
1 XP XP extreme programming (slides partially from Andrew Black, Ras Bodik, and Dan Klawitter s letures) EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September What is XP? a light-weight methodology for small to medium sized teams developing software in the face of vague and rapidly changing requirements Why XP? traditional software development methodologies are too rigid and over-constraining, they do not work for small projects, Is XP a religion? 1 2 XP Why XP? XP in context Kent Beck has a Smalltalk background He is part of the Design Pattern community He has worked with Fowler on Refactoring XP and traditional Methodologies XP runs counter to almost all software engineering practice, XP is not a solution for all problems (mostly for small teams), XP is programmer friendly The Risks of Software Development Schedule slips the delivery date is always six months in the future Project canceled after many slips, project canned System goes sour after a couple of years of operation and some changes, bugs start to appear Defect rate so buggy that it is not used Business misunderstood software does not answer all the right questions Business changes the system answers the wrong (out of date) questions False feature rich lots of unused features Staff turnover where have all the good programmers gone? 3 4 1
2 Why XP? Why XP? XP to the rescue Schedule slips short release cycles to limit the scope of slips within release XP uses 1 to 4 wks customer-requested feature iterations within an iteration, 1-3 day tasks implement most important features first, to minimize the impact of slips Project canceled Customer involvement to choose the smallest possible release, to minimize potential bottlenecks and maximize software value. System goes sour create and maintain a comprehensive suite of tests run tests after every change Defect rate unit test (programmer defined) functional tests (user defined) XP to the rescue Business misunderstood customer is an integral part of the team specification continuously refined Business changes shorter release cycles imply less change during development unimplemented features can be replaced at no cost False feature rich only highest priority tasks are addressed Staff turnover religion 5 6 The XP premise The cost of change plays a key role in most software engineering methodologies The XP premise What if the cost of change did not rise exponentially? Cost of change Cost of change REQUIREMENTS ANALYSIS DESIGN IMPLEMENTATION TESTING PRODUCTION TIME 7 8 2
3 The XP premise The Basics How does the premise affect software development? XP relies on 12 principles that are used as guides during the development process. Instead of making big decisions early and little ones late, XP makes each decision quickly, backs them with tests, and is also prepared to modify designs. XP separates software development into 4 activities, these are roles a software engineer can play XP advocates 12 practices that describe how to approach the development process 9 10 The 12 XP principles The 12 XP principles 1. Rapid feedback 2. Assume simplicity 3. Incremental change 4. Embracing change 5. Quality work 6. Small initial investment 7. Concrete experiments 8. Open, honest communication 9. Accepted responsibility 10. Local adaptation 11. Travel light 12. Honest measurements 1. Rapid feedback generate feedback, interpret it and put experience in the system as frequently as possible business learns the benefits and shortcoming of the systems programmers lean how to best test, design, implement seconds/minutes instead of weeks/months 2. Assume simplicity do not design for reuse plan for today and trust your ability to add complexity in the future
4 The 12 XP principles The 12 XP principles 3. Incremental change designs change a little at a time plans change a little at a time teams change a little at a time 4. Embracing change best strategies preserve most options while solving the pressing problems 5. Quality of work quality is not a free variable: the only possible values are excellent and insanely excellent 6. Small initial investment tight budgets force programmers and customers to focus on essentials avoid comfort 7. Concrete experiments every abstract decision should be test the result of a design session should be a series of experiements The 12 XP principles The 4 XP activities 8. Open, honest communication deliver the bad news early 9. Accepted responsibility responsibilities should not be given, they should be accepted 10. Local adaptation there are no fixed rules 11. Travel light keep things small, maintain only the essential 11. Honest measurements strive for accurate measurement of productivity CODING TESTING LISTENING DESIGNING
5 Life Cycle The 12 XP practices Like iterative, but putting to extreme Short cycle (2 weeks): 1. Meet with client to elicit requirements User stories + acceptance tests 2. Planning game Break stories into tasks, estimate cost Client prioritizes stories to do first 3. Implementation Wit Write programmer tests t first Simplest possible design to pass the tests Occasionally refactor the code 4. Evaluate progress and reiterate from step The Planning Game quickly determine scope of next release 2. Small releases put a simple system in production quickly then release new version on a short cycle 3. Metaphor guide development with a simple shared story 4. Simple design system should be as simple as possible, complexity should be removed if at all possible 5. Testing continually write unit tests, customers write functional tests 6. Refactoring restructure the system without changing behavior 7. Pair programming g all code written with 2 programmer at 1 machine 8. Collective ownership anyone can change code anywhere anytime 9. Continuous integration integrate and build many times a day hour week work no more than 40h/wk as a rule 11.On-site customer include a real, live user on the team full time 12.Coding standards code in accord. to rules emphasizing communication 18 Planning Game Example User stories = lightweight use cases 2-3 sentences on a file card (4X6) that the customer cares about can be reasonably tested can be estimated & prioritized Users write stories Stories-> tasks Developers estimate them Users split, merge, & prioritize Plan overall release (loosely) and the next iteration Don t plan too far ahead Create account I can create named accounts List accounts I can get a list of all accounts Question: How is the list ordered? I can get an alphabetical list of all accounts Query account balance I can query account balance Delete account I can delete a named account Question: Even if the balance is not zero? I can delete a named account if the balance is not zero
6 Example Tasks License Enforcement When run for the first time, JeraWorks puts up a license dialog, and will not proceed until the user enters either: a valid non-time-limited (paid) license certificate or a valid time-limited (demo) license that has not yet expired. A valid license is stored so the user doesn't have to re-enter it on subsequent runs. License info is displayed on the splash screen. When a demo license expires, the license dialog re-appears the next time JeraWorks is run. Each story is broken into tasks To split the work and to improve cost estimates Story: customer-centered description Task: developer-centered description Example: Story: I can create named accounts Tasks: ask the user the name of the account check to see if the account already exists create an empty account Break down only as much as needed to estimate cost Tasks Small Releases Validate the breakdown of stories into tasks with the customer If a story has too many tasks: break it down Team assigns cost to tasks We care about relative cost of task/stories Use abstract units (as opposed to hours, days) Experience will tell us how much a unit is Developers can assign units by bidding: I can do this task in 2 units Make every release as small as possible Release makes sense as a whole Make simple designs, sufficient for the current release Small releases provide: rapid feedback sense of accomplishment reduced risk customer confidence adjustments to changing requirements
7 Metaphor Simple Design Guide the project with a single Metaphor e.g., the UI is a desktop Must represent the architecture makes it easier to discuss The customer must be comfortable with it The right design for software: Runs all the tests. Has no duplicated d logic (DRY principle) i States every intention important to the programmers. Has the fewest possible classes and methods Don t worry about having to change a design later CRC Cards What is a CRC Card? Class, Responsibilities, and Collaboration Cards A simple way to specify a design First introduced d by Kent Beck and Ward Cunningham at OOPSLA 89 Not specifically part of Extreme Programming but works well with the XP paradigm On the top of the card is the Class The list on the left are the Responsibilities The list on the right are the Collaborating classes A simple specification/design of a class, and what it does 27 7
8 How are they used? Documenting Your Design Create cards for the obvious classes Talk through a user story, describing how the classes interact with each other Move cards (exploring different designs) Add/Delete cards as needed You don t need to keep the cards, nor do you need to produce any extra design documents. Well written and well tested code is the documentation of the design. Why waste time writing and updating the documentation? Or why live with out-of-date documentation? Testing Test Driven Development XP tests everything that might possibly break, all the time The tests are the specification: An executable specification Two kinds of tests: Functional Tests Specified by the user; implemented by users, developers, and/or test team; automated; run at least daily; part of the specification Unit Tests Written by developers Written before and after coding Always run at 100% Support design, coding, refactoring, and quality. Write unit tests before implementing tasks Unit test: concentrate on one module Start by breaking acceptance tests into units Example of a test addaccount( checking ); if(balance( checking )!= 0) throw ; try { addaccount( checking ); } catch(duplicateaccount e) { };
9 Why Write Tests First Refactoring Testing-first clarifies the task at hand Forces you to think in concrete terms Helps identify and focus on corner cases Testing forces simplicity Your only goal (now) is to pass the test Fight premature optimization Tests act as useful documentation Exposes (completely) the programmer s intent Ensures that you think about testability first How will you know when you are done? In what order do you need to test components? What infrastructure you need to test? Refactor = to improve the structure of code without affecting its external behavior Done in small steps Supported by unit tests, simple design, and pair programming Seek once and only once Refactoring in pairs gives you more courage and confidence Pair Programming Collective Code Ownership Role of one partner uses the mouse and the keyboard thinks about the best way implementing the method Role of the other is the approach going to work think about test cases can it be done simpler Pairing is dynamic Pairing provides discipline Pairing spreads knowledge about the system Anybody can add to any portion of the code subject to current requirements subject to simple design Unit tests protect the system functionality Whoever find a problem, solves it Everybody is responsible for the whole system
10 Continuous Integration 40 Hour Week Integration of tested code every few hours (max. a day) All unit tests need to run successfully If a test fails the pair has to repair it If you can t repair it, throw away the code and start again If you can t do your work in 40 hours, then you have too much work 40-Hour weeks keeps you fresh to tackle problems It prevents making silly, hard to find mistakes late at night Frequent planning prevents you from having too much work Overtime is a symptom m of a serious problem On-Site Customer Writes functional tests Makes priority and scope decisions for the programmers Answers questions Does his or her own work If you cann t get a on-site customer Maybe the project is not important enough
11 Coding Standards Extreme Programming in Summary Complicated constructions are not allowed let s keep things simple Code looks uniform easier to read No need to reformat the code no curly brackets wars 41 What is Different About XP When to Use XP No specialized analysts, architects programmers, testers, and integrators every XP programmer participates i t in all of these critical activities every day. No complete up-front analysis and design start with a quick analysis of the system team continues to make analysis and design decisions throughout development. Use for: A dynamic project done in small teams (2-10 people) Projects with requirements prone to change Have a customer available Do not use when: Requirements are truly fixed Cost of late changes is very high Your customer is not available (e.g., space probe)
12 In Conclusion XP Programming example (by Dan s team) A lightweight development process that emphasizes active and ongoing customer involvement pay-as-you-go design test-before-you-implement This is a very primitive example of using XP programming methodology to revive a project. Project Structure Project: Customize an existing Labor Collection System. Primary User: Human resource Project Team: Programer1, Programer2, Senior Programmer, DBA, Project Manager. Project Manager owns: Project plan, project source code, project user requirements. Prog1 owns Part P1; Prog2 owns Part P2; Senior Part P3; DBA Database objects; User contact in team: project manager Original project structure diagram. Any communication among users and programmers goes through program manager. Code ownership: monopoly. P1, P2, P3 R and Data Prog1 P1 Program manager Pro 2 DBA P2 User Senior Pro. P3 R Problems encountered: In the absence of any member of team, work slows down or stops. Impossible to maintain other programmer s work; System testing and feedback takes long time; Programmers and users are in the dark about requirement interpretation and implementation; Each part of system is owned by a team member; Data 48 12
13 When one person is gone, it s difficult to back up the person s work. When more than one person left, the project is to die unless some critic changes are made to project structure. Three months into project, three people left in two months. Project looked like. P1, P2, P3 R and Data Prog1 P1 Pro 2 P2 User P3 R Implement XP with limited available human resources to revive the project: First work in pair and take over the ownership of code left by the senior programmer. Started to work on each others code in pair. Promote a code standard. Promote a collective ownership of project. Perform unit testing, integration testing, and user test frequently on each implementation. Users are consistently available to each programmer on feedback about changes, requirements implementations. User stories are used to describe requirements, and test the implementation. Data 50 New project diagram after following XP programming method. Direct communication among users and programmers. No middle man; Direct access to any resources of project. No middle barrier; Collective ownership of project. P1, P2, P3 R and Data Prog1 Pro 2 User Pro Lead 13
The problem. extreme Programming (XP) Conclusions Resources. Problems in software development. Practices Why XP works Benefits of XP
Introduction to extreme Programming Contents The problem Problems in software development extreme Programming (XP) Values Practices Why XP works Benefits of XP Conclusions Resources Risks: Problems in
More informationSOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V
SOFTWARE DEVELOPMENT Process, Models, Methods, Diagrams Software Development Life Cyles Part - V Extreme Programming (XP) was conceived and developed by Kent Beck to address the specific needs of software
More informationExtreme Programming, an agile software development process
Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models 1.Determine objectives Cumulative cost Progress
More informationAgile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development
Agile Software Development T-110.6130 Systems Engineering in Data Communications Software P, Aalto University Agile software development Structured and disciplined, fast-paced Iterative and Incremental
More informationIntroduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016
Introduction to Agile Life Cycles CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016 1 Goals Introduction to Agile Life Cycles The Agile Manifesto and Agile Principles Agile Life Cycles
More informationExtreme programming XP 5
Extreme programming XP 5 XP is not XP is not XP is not XP is not XP is. a lightweight software development methodology for small to medium sized teams developing software in the face of t vague or rapidly
More informationXP is not hacking. extreme Programming. XP practices. Whole Team. When using XP you write as little documentation as possible.
extreme Programming Introduced by Ward Cunningham, Kent Beck, and Ron Jeffries. XP is what it says, an extreme way of developing software. If a practice is good, then do it all the time. If a practice
More information13. Team evolutionary developement
13. Team evolutionary developement Most of the software projects require a larger effort than a solo programmer can handle Programmers have to organize themselves into teams Agile teams Directed teams
More informationUser-centered System Design. Agile
User-centered System Design Agile Department of Information Technology Methods - what are they? Why do we have them? Business modeling Usability Design Requirements Analysis & design Implementation Test
More informationCS 5704: Software Engineering
CS 5704: Software Engineering Agile Methodologies Dr. Pardha S. Pyla 1 1 What is wrong with this? System requirements Software requirements Analysis Program design 1. Rigid/heavy weight process 2. Too
More informationIntroduction to Agile/Extreme Programming
Introduction to Agile/Extreme Programming Matt Ganis, Senior Technical Staff Member (Certified Scrum Master) IBM Hawthorne, New York ganis@us.ibm.com August 2007 Session 8061 Current slides at: http://webpage.pace.edu/mganis
More informationAssistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.
Extreme Programming: Aiming towards Quality Assurance Ayesha Saad Khan, Mohammad Suaib M.tech CSE (2 nd Year), Integral University, Lucknow, India Abstract- Agile methodologies are among the most popular
More informationAgile Manifesto & XP
Agile Manifesto & XP Chapter 3.1-3.3 CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville. Slides 8 18-06-10 1 Topics 1) What is Agile trying to do? 2) How to choose plan-driven
More informationTuesday, October 25. Announcements
Tuesday, October 25 Announcements Crowdsourcing the Midterm http://www.drsusansim.org/teaching/inf111/pligg Homework 5 Skip lab portion Use anything you want to draw the diagrams for the take home portion
More informationExtreme Programming (XP)
Assignment D Draft paper Extreme Programming (XP) Course code: INFOME Course name: Method Engineering Faculty of Science, Department of Information and Computer Sciences, Utrecht University, Princetonplein
More informationAgile Software Development
Agile Software Development Chapter 3 Agile Software Development in the textbook 3.1 Agile methods 3.2 Plan-driven and agile development 3.3 Extreme programming (XP) - A well known agile method 3.4 Agile
More informationAgile Development Processes. CSCE Lecture 3-08/31/2017
Agile Development Processes CSCE 740 - Lecture 3-08/31/2017 Common Practice: Code & Fix Sit down, write out the code, and fix problems as they occur. No formal structure to development. What is wrong with
More informationAgile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods
Agile Software Construction Beatrice Åkerblom beatrice@dsv.su.se This Course Course Contents Course information Software Engineering Agile Methods Daisy: ~ Schedule ~ Goals ~ Requirements ~ Important dates
More informationScrum - Introduction. Petri Heiramo. Agile Coach, CST
Scrum - Introduction Petri Heiramo Agile Coach, CST Scrum Started in the Harvard BR. The relay race approach to product development may conflict with the goals of maximum speed and flexibility. Instead
More informationFoundations of Software Engineering. Process: Agile Practices Michael Hilton
Foundations of Software Engineering Process: Agile Practices Michael Hilton 1 Learning goals Define agile as both a set of iterative process practices and a business approach for aligning customer needs
More informationProcesses and Life- Cycles. Kristian Sandahl
Processes and Life- Cycles Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify
More informationExtreme programming. Why XP?
Extreme programming Timo Tuunanen YOMI 2004 Why XP? In the early 1990s a man named Kent Beck was thinking about better ways to develop software. He had recently spent some time working with Ward Cunningham.
More informationIntroduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014
Introduction to Software Life Cycles and Agile CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014 1 Goals Present an introduction to the topic of software life cycles concepts and terminology
More informationSoftware Engineering Lecture 5 Agile Software Development
Software Engineering Lecture 5 Agile Software Development JJCAO Mostly based on the presentation of Software Engineering, 9ed Exercise Describe the main activities in the software design process and the
More informationChapter 3 Agile Software Development
Chapter 3 Agile Software Development Chapter 3 Agile Software Development Slide 1 Topics covered Rapid software development Agile methods Plan-driven vs. agile development Extreme programming (XP) Agile
More informationProcesses and Life- Cycles. Kristian Sandahl
Processes and Life- Cycles Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify
More informationLecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.
Chapter 3 Agile Software Development Lecture 1 Topics covered Agile g methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Rapid software development
More informationSuitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications
Suitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications Guillermo A. Callahan 1 1 Seminar on Enterprise Information Systems : Service Oriented Architecture and
More informationChapter 1. What is XP?
XP2e_book.fm Page 1 Wednesday, October 27, 2004 8:13 AM Chapter 1 What is XP? Extreme Programming (XP) is about social change. It is about letting go of habits and patterns that were adaptive in the past,
More informationChapter 3 Software Process Model
Usman Akram COMSATS Institute of information Technology lahore musmanakram@ciitlahore.edu.pk March 8, 2015 About software process model Outline 1 About software process model Build and Fix Model Why Models
More informationIntroduction to Extreme Programming
Introduction to Extreme Programming Brian Button bbutton@objectmentor.com, Inc Overview Motivation Business Case Description Case Studies References 1-800-338-6716 2 My Typical Client Manager doesn t trust
More informationRapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Because of rapidly changing business environments, businesses have to respond
More informationFoundations of software engineering
Foundations of software engineering Agile and Extreme Dr. Julie Greensmith G51 Overview (Very) Briefly introduce the concepts of Agile Design and Extreme Programming Also briefly discuss some of the other
More informationAgile Practices in Regulated Railway Software Development
Agile Practices in Regulated Railway Software Development Henrik Jonsson System Development Department Etteplan Industry AB Västerås, Sweden henrik.jonsson@etteplan.com Stig Larsson and Sasikumar Punnekkat
More informationAgile project management in Extreme Programming projects. Carl Erickson Atomic Object LLC
Agile project management in Extreme Programming projects Carl Erickson Atomic Object LLC Professor life course planning team supervision evaluation research projects mentoring teaching grant writing This
More informationLecture 8 Agile Software Development
Lecture 8 Agile Software Development Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics
More informationAgile Test Plan How to Construct an Agile Test Plan
Agile Test Plan How to Construct an Agile Test Plan XBOSoft White Paper How to Construct an Agile Test Plan www.xbosoft.com 2 Agile is changing not only the way we develop software but the way we work
More informationAgile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed
Agile Development Methods: Philosophy and Practice CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight
More informationObjectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes
Objectives Rapid software development To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To
More informationDissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.
Agile methods Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods: Focus on the code rather than the design
More informationAgile Methods. Background
Agile Methods Agile Alliance http://www.agilealliance.com/home Background In 2001, a group of lightweight methodologies practioners met to discuss similarities and experiences They wrote the Manifesto
More informationChapter 14: Iteration Planning. It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia
Chapter 14: Iteration Planning It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia Release Plan: High level view of what is to be built Iteration Plan: More focused
More informationSoftware Processes. With a focus on Agile/Scrum CPSC310 Software Engineering
Software Processes With a focus on Agile/Scrum CPSC310 Software Engineering Learning Goals Why do software projects fail? Unrealistic project goals Inaccurate estimates of needed resources Unmanaged risks
More informationSoftware Engineering Part 2
CS 0901341 Software Engineering Part 2 In this part, we look at 2.1 Software Process 2.2 Software Process Models 2.3 Tools and Techniques for Processing Modelling As we saw in the previous part, the concept
More informationAgile Requirements with User Stories. Overview
Agile Requirements with User Stories Part of the Intro to Agile Track Gerard Meszaros ClearStream Consulting gerard@clrstream.com IUS-1 Overview What s A User Story? Why Do Things Differently? How Do We
More informationAgile Software Development. Lecture 4: Let s Wrap up Agile Fundamentals
Agile Software Development Lecture 4: Let s Wrap up Agile Fundamentals Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Slides are a modified version of the slides by Prof. Kenneth M. Anderson Acknowledgment
More informationNon-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15
Non-object-oriented design methods Software Requirements and Design CITS 4401 Lecture 15 1 (reminder) Software Design is a creative process no cook book solutions goal driven we create a design for solving
More informationLearning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping
Agile Modeling and Prototyping Systems Analysis and Design, 7e Kendall & Kendall 6 Learning Objectives Understand the roots of agile modeling in prototyping and the four main types of prototyping Be able
More information1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum
1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum Delivering late Delivering over budget Delivering the wrong thing Unstable in production Costly to maintain Smart people trying to do good work
More informationChapter 3 Agile Software Development. Part 1b
Chapter 3 Agile Software Development Part 1b 1 Testing in XP Testing is central to XP and XP has developed an approach where the program is tested after every change has been made. XP testing features:
More informationWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects Rebecca Wirfs-Brock rebecca@wirfs-brock.com Twitter: @rebeccawb www.wirfs-brock.com 2015 Wirfs-Brock Associates Three Questions??? What is the
More informationAn Overview of Software Process
An Overview of Software Process Objectives To introduce the general phases of the software development life cycle (SDLC) To describe various generic software process models and discuss their pros and cons
More informationSoftware Process. Overview
Software Process Overview What is software process? Examples of process models Unified Process (UP) Agile software development N. Meng, B. Ryder 2 1 Software Process Definition [Pressman] a framework for
More informationSoftware Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti
Software Engineering G22.2440-001 Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of
More information! How work in building software is done: ! e.g., waterfall process. ! e.g., object-oriented development. ! e.g., requirements inspection process
Software Process Process CMPUT 401 Module 04! How work in building software is done:! e.g., waterfall process! e.g., object-oriented development! e.g., requirements inspection process Department of Computing
More informationCS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT
1 CS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT Agile Processes 2 Some have criticized highly-structured processes (such as those based on a CMM framework) as unresponsive to change during
More informationChapter 14 Current trends in system development
Chapter 14 Current trends in system development Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Trends in System Development Methodologies
More informationTHE PURPOSE OF TESTING
Chapter 6 THE PURPOSE OF TESTING Context-Driven Overview of Quadrants Tests That Support the Team Tests That Critique the Product Quadrant Intro Purpose of Testing Managing Technical Debt Knowing When
More informationProcess. CMPUT 401 Module 04. Department of Computing Science University of Alberta Ken Wong, 2008
Process CMPUT 401 Module 04 Department of Computing Science University of Alberta Ken Wong, 2008 Software Process How work in building software is done: e.g., waterfall process e.g., object-oriented development
More informationSoftware Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)
Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) armahmood786@yahoo.com alphasecure@gmail.com alphapeeler.sf.net/pubkeys/pkey.htm http://alphapeeler.sourceforge.net
More informationIntroduction to Software Project Management. CITS3220 Software Requirements & Project Management
Introduction to Software Project Management CITS3220 Software Requirements & Project Management "A project gets a year late one day at a time." "Anything that can be changed will be changed until there
More informationCopyright Software Engineering Competence Center
Copyright Software Engineering Competence Center 2012 1 Copyright Software Engineering Competence Center 2012 5 These are mapped categories to the waste categories of manufacturing. An excellent overview
More informationScrum er ikke en religion
Scrum er ikke en religion Jesper Boeg, Agile Coach jbo@trifork.com January 25, 2011 In general Trifork Software development Coaching Workshops, seminars and conferences Please let me know if: You have
More informationXP PROJECT MANAGEMENT
University of Montana ScholarWorks at University of Montana Graduate Student Theses, Dissertations, & Professional Papers Graduate School 2007 XP PROJECT MANAGEMENT Craig William Macholz The University
More informationSoftware engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?
Software engineering Facts CSC 4181 - Compiler Construction Software Engineering Topics Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software
More informationSuccess of Agile Environment in Complex Projects
Edith Cowan University Research Online Australian Information Warfare and Security Conference Conferences, Symposia and Campus Events 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary
More information04. Agile Development
04. Agile Development Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Background of Agile Software Development Software development until late 90s
More informationAGILE SOLUTIONS. Agile Basics
AGILE SOLUTIONS Agile Basics info@one80services.com one80services.com AGILE SOLUTIONS Agile Basics Table of Contents 2 Who We Are 3 What Is Agile? 4 Agile Values 5 Agile Principles 6 Agile Development
More informationIntroduction. Failure. Why Projects Fail. Agile in an Hour
Agile in an Hour Joe Bergin & Fred Grossman Seidenberg School Computer Science and Information Systems Pace University Introduction Agile Software Development is a high discipline and very iterative development
More informationThe Top 13 Organization Challenges of Agile Development and a Solution to Each
The Top 13 Organization Challenges of Agile Development and a Solution to Each Executive Summary Agile methods often expose problems that were previously ignored or otherwise invisible, and the biggest
More informationCISC So*ware Quality Assurance
CISC 327 - So*ware Quality Assurance Lecture 5 Agile development extreme Programming CISC 327-2003- 2016 J.R. Cordy, S. Grant, J.S. Bradbury Agile Development A group of so*ware development methods Early
More informationAgile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007
Agile and Secure Can We Be Both? San Antonio AITP August 15 th, 2007 Agenda Background Evolution of traditional software development methodologies Benefits of Agile development Requirement for Secure development
More informationCS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae
CS350 Lecture 2 Software Dev. Life Cycle Doo-Hwan Bae bae@se.kaist.ac.kr Whose Drawings? Watts Humphrey, SE is Religion and Philosophy. Just Follow me! CS350 Software Engineering, SoC, KAIST 2 What is
More informationAre Agile Testers Different?
Are Agile Testers Different? Agile Vancouver 2009 Lisa Crispin With Material from Janet Gregory 1 Introduction Me: Tester for ~ 14 years Programmer, tech support background Got involved with projects up
More informationCISC So*ware Quality Assurance
CISC 327 - So*ware Quality Assurance Lecture 5 Agile development extreme Programming CISC 327-2003- 2016 J.R. Cordy, S. Grant, J.S. Bradbury Agile Development A group of so*ware development methods Early
More informationMike Vincent. mvasoftware.net
Scrum and ALM Coach Over 30 years as software developer and architect Marketing director, construction project manager and structural engineer previously Microsoft MVP - Visual Studio ALM Professional
More informationBuild Agile Knowledge - Participate in a sprint!
Build Agile Knowledge - Participate in a sprint! Presenters: Almir Drugovic and Terri Spratt 1 [Review] About the Presenters Almir Drugovic (adrugovic@gmail.com; LinkedIn) has over fifteen years of professional
More informationSections. ! Introduction. ! Development Activities. ! Dealing with Technical Debt. ! Bonus: How to become an Agile Architect
Me Sections! Introduction! Development Activities! Dealing with Technical Debt! Bonus: How to become an Agile Architect Agile! Lean! Value Stream! Discipline! Embrace Change Architecture! Everything that
More informationSoftware Engineering. M Umair.
Software Engineering M Umair www.m-umair.com Activity and Sprint An activity is a general term for any part of a project that takes place over time (also known as a task) Each step in the software development
More informationIntroduction. Failure. Why Projects Fail. Agile in an Hour
Agile in an Hour Joe Bergin & Fred Grossman Seidenberg School Computer Science and Information Systems Pace University Introduction Agile Software Development is a high discipline and very iterative development
More informationSoftware Life Cycles and Configuration Management
Software Configuration Lecture 11 Software Engineering TDDC88/TDDC93 autumn 2008 Department of Computer and Information Science Linköping University, Sweden Theory Lecture Plan 2 L1 - Course Introduction
More informationLecture 29: Agile Design and Extreme Programming
1 Lecture 29: Agile Design and Extreme Programming Kenneth M. Anderson Software Methods and Tools CSCI 4448/6448 - Spring Semester, 2005 2 Credit where Credit is Due The material for this lecture is based
More informationSign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too
Sign up to mailing list Join Slack, teaching team is available All links are on the course website Slides are uploaded there too Week 1 (Oct 16 Oct 20) Introduction lectures Week 2 (Oct 23 Oct 27) Work
More informationAgile Essentials Track: Business Services
Agile Essentials Track: Business Services Presenter: Mark Thomas Synopsis Are you a victim of building the wrong solutions slowly? If so, you re not alone, and considering an Agile approach may be the
More informationThe Systems Development Lifecycle
Modelling and Systems Development Lecture 2 The Systems Development Lifecycle The four-phase model common to all system developments projects The project Major attributes of the Lifecycle Moves systematically
More informationAgile Quality Management
Agile Quality Management Panagiotis Sfetsos, PhD Assistant Professor, Department of Informatics, Alexander Technological Educational Institution E mail: sfetsos@it.teithe.gr Web Page: http://aetos.it.teithe.gr/~sfetsos/
More informationHow to Use a Weird "Trade- In" Loophole to Bank $300 to $500 PER DAY
How to Use a Weird "Trade- In" Loophole to Bank $300 to $500 PER DAY Presented by: Luke Sample Hosted by: John S. Rhodes Copyright 2016 WebWord, LLC. All Rights Reserved. This guide may not be reproduced
More informationSoftware Engineering Chap.3 - Agile Software Development
Software Engineering Chap.3 - Agile Software Development Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,
More informationTraining Within Industry. An Overview Beginning with the JI 4-Step Method of Instruction
Training Within Industry An Overview Beginning with the JI 4-Step Method of Instruction What is TWI? TWI or Training Within Industry is a Leadership Development Program designed to provide your supervisors
More informationAgile Software Development:
Agile Software Development: 1.Agile methods 2.Plan-driven and agile development 3.Extreme programming (XP) 4.Agile project management 5.Pair Programming 6.Scrum 7.Scaling agile methods Rapid software development:
More informationAgile Delivery Framework (ADF)
Agile Delivery Framework (ADF) Overview Agile is an iterative methodology with self-directed teams and the ability to embrace change rapidly. This document summarizes the Agile Scrum process as well as
More informationAgile versus? Architecture
Agile versus? Architecture This presentation is about Software Architecture and its relationship to Agile practices. There is often a kind of tension between Agile Concepts and Architecture concepts. Why
More informationPart 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?
Software engineering Facts CSC 4181 Compiler Construction Software Engineering Lectures Part 1 Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software
More informationissue 5 The Magazine for Agile Developers and Agile Testers January free digital version made in Germany ISSN
The Magazine for Agile Developers and Agile Testers www.agilerecord.com free digital version made in Germany ISSN 2191-1320 January 2011 issue 5 istockphoto.com/thomasvogel wibaimages - Fotolia.com Distributed
More informationSystem integration and software process
System integration and software process CSE 331 University of Washington Michael Ernst Outline Architecture Tools: Build tools and version control Tools: Bug tracking Scheduling Implementation and testing
More informationThe Role of Scrum Methodologies in the Design and Production Software
2013, TextRoad Publication ISSN 2090-4304 Journal of Basic and Applied Scientific Research www.textroad.com The Role of Scrum Methodologies in the Design and Production Software Parastoo Fathi 1*, Arman
More informationABHELSINKI UNIVERSITY OF TECHNOLOGY
T 76.3601 Introduction to Software Engineering Software Life-Cycle Models http://www.soberit.hut.fi/t-76.3601/ Casper.Lassenius@tkk.fi Software Engineering? 1. The application of a systematic, disciplined,
More informationChapter 4 Document Driven Approach for Agile Methodology
Chapter 4 Document Driven Approach for Agile Methodology In this chapter, 4.1. Introduction 4.2. Documentation Selection Factors 4.3. Minimum Required Documents 4.4. Summary 4.1. Introduction In all, the
More informationThe Challenge of Agile Estimating
The Challenge of Agile Estimating Christina Donadi Heather Nayhouse SCEA/ISPA National Conference, Albuquerque, New Mexico June 2011 2011 TASC, Inc. Agenda Overview of Agile Development Importance of Agile
More information