Extreme Programming. Sources

Similar documents
Sustainable Software Development: Evolving Extreme Programming

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Fearless Change -- Patterns for Introducing New Ideas

COUNSELLING PROCESS. Definition

Being Extreme in the Classroom: Experiences Teaching XP

Introduction to CRC Cards

Why Pay Attention to Race?

IT4305: Rapid Software Development Part 2: Structured Question Paper

Pair Programming: When and Why it Works

THE CONSENSUS PROCESS

Study Group Handbook

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

Software Maintenance

Thinking Maps for Organizing Thinking

The NH Parent Partner Program

Stimulating Techniques in Micro Teaching. Puan Ng Swee Teng Ketua Program Kursus Lanjutan U48 Kolej Sains Kesihatan Bersekutu, SAS, Ulu Kinta

A Context-Driven Use Case Creation Process for Specifying Automotive Driver Assistance Systems

How to Do Research. Jeff Chase Duke University

The open source development model has unique characteristics that make it in some

Davidson College Library Strategic Plan

TU-E2090 Research Assignment in Operations Management and Services

Brainstorming Tools Literature Review and Introduction to Code Development

Harvesting the Wisdom of Coalitions

Student-Centered Learning

The Agile Mindset. Linda Rising.

Shockwheat. Statistics 1, Activity 1

RESPONSE TO LITERATURE

BSM 2801, Sport Marketing Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes. Credits.

Course Outline for Honors Spanish II Mrs. Sharon Koller

Two Futures of Software Testing

Institutionen för datavetenskap. Hardware test equipment utilization measurement

Andover USD #385 Elementary Band HANDBOOK

COMMUNICATION PLAN. We believe that all individuals are valuable and worthy of respect.

Running Head: STUDENT CENTRIC INTEGRATED TECHNOLOGY

PROCESS USE CASES: USE CASES IDENTIFICATION

The Rise and Fall of the

Success Factors for Creativity Workshops in RE

Project Leadership in the Future

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

Shank, Matthew D. (2009). Sports marketing: A strategic perspective (4th ed.). Upper Saddle River, NJ: Pearson/Prentice Hall.

Module Title: Managing and Leading Change. Lesson 4 THE SIX SIGMA

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

Team Dispersal. Some shaping ideas

MARKETING MANAGEMENT II: MARKETING STRATEGY (MKTG 613) Section 007

Linguistics Program Outcomes Assessment 2012

University of Florida ADV 3502, Section 1B21 Advertising Sales Fall 2017

White Paper. The Art of Learning

HANDOUT for AMCHP Conference February 14 th 2012

Virtual Meetings with Hundreds of Managers

C O U R S E. Tools for Group Thinking

CHAPTER 2: COUNTERING FOUR RISKY ASSUMPTIONS

Deploying Agile Practices in Organizations: A Case Study

Synthesis Essay: The 7 Habits of a Highly Effective Teacher: What Graduate School Has Taught Me By: Kamille Samborski

Leader s Guide: Dream Big and Plan for Success

MBA 5652, Research Methods Course Syllabus. Course Description. Course Material(s) Course Learning Outcomes. Credits.

Designing a Rubric to Assess the Modelling Phase of Student Design Projects in Upper Year Engineering Courses

The Lean And Six Sigma Sinergy

Swinburne University of Technology 2020 Plan

high writing writing high contests. school students student

Table of Contents. Introduction Choral Reading How to Use This Book...5. Cloze Activities Correlation to TESOL Standards...

University of Texas Libraries. Welcome!

Mission Statement Workshop 2010

Strategic Practice: Career Practitioner Case Study

Utilizing Soft System Methodology to Increase Productivity of Shell Fabrication Sushant Sudheer Takekar 1 Dr. D.N. Raut 2

Peaceful School Bus Program

Illinois WIC Program Nutrition Practice Standards (NPS) Effective Secondary Education May 2013

Examining the Structure of a Multidisciplinary Engineering Capstone Design Program

Measurement & Analysis in the Real World

a) analyse sentences, so you know what s going on and how to use that information to help you find the answer.

Application of Virtual Instruments (VIs) for an enhanced learning environment

WORK OF LEADERS GROUP REPORT

Merry-Go-Round. Science and Technology Grade 4: Understanding Structures and Mechanisms Pulleys and Gears. Language Grades 4-5: Oral Communication

Life and career planning

RESIDENCE DON APPLICATION

Danielle Dodge and Paula Barnick first

Essay on importance of good friends. It can cause flooding of the countries or even continents..

LEGO MINDSTORMS Education EV3 Coding Activities

Unit 3. Design Activity. Overview. Purpose. Profile

QUESTIONING QUALITY. Chapter 6. Shortcut 16: Bah! Scrum Bug! New Definitions. Definition 1: Issues

CERTIFIED PROJECT MANAGEMENT SPECIALIST (CPMS) STUDY GUIDE

About this unit. Lesson one

Applying Florida s Planning and Problem-Solving Process (Using RtI Data) in Virtual Settings

Editor s Welcome. Summer 2016 Lean Six Sigma Innovation. You Deserve More. Lean Innovation: The Art of Making Less Into More

Evidence for Reliability, Validity and Learning Effectiveness

Computers Change the World

New Paths to Learning with Chromebooks

An Introduction to Simio for Beginners

2017 FALL PROFESSIONAL TRAINING CALENDAR

BENTLEY ST PAUL S C OF E PRIMARY SCHOOL POLICY FOR I.C.T. Growing together in faith, love and trust, we will succeed. Date of Policy: 2013

Notetaking Directions

TEAM-BUILDING GAMES, ACTIVITIES AND IDEAS

Summer 2017 in Mexico

Every student absence jeopardizes the ability of students to succeed at school and schools to

teaching essay writing presentation presentation essay presentations. presentation, presentations writing teaching essay essay writing

Fieldwork Practice Manual- AHSC 435

Experience Corps. Mentor Toolkit

Problem Solving for Success Handbook. Solve the Problem Sustain the Solution Celebrate Success

A CASE STUDY FOR THE SYSTEMS APPROACH FOR DEVELOPING CURRICULA DON T THROW OUT THE BABY WITH THE BATH WATER. Dr. Anthony A.

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Transcription:

Extreme Programming John T. Bell Department of Computer Science University of Illinois, Chicago Prepared for CS 442, Spring 2017 Sources 1. Wikipedia: Extreme Programming 2. Wikipedia: Extreme Programming Practices 3. Wikipedia: Kent Beck 4. Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change, 2 nd Edition 5. Kent Beck and Martin Fowler, Planning Extreme Programming 2 1

An Early Definition of XP XP is a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly changing requirements. Beck, Kent; Andres, Cynthia. Extreme Programming Explained: Embrace Change (Kindle Location 316). Pearson Education. Kindle Edition. Quoted from the First Edition. 3 History of XP Extreme programming was created by Kent Beck in the late 1990s during his work on the Chrysler C3 payroll project. OO movement takes hold; Dot-com boom speeds up expected time-to-market for software. XP takes "best practices" to extreme levels. For Example: Frequent inspections -> Pair Programming Test early -> Automated tests built before code. 4 2

Kent Beck An original signatory to the Agile Manifesto. Leading proponent of test-driven development. Pioneered Design Patterns and application of Smalltalk. Wrote JUnit, with Erich Gamma. Popularized CRC cards. Works at Facebook. 5 XP is based upon Values, Principals, and Practices Practices Principals Values 6 3

XP Values Communication Simplicity Feedback Courage Respect Others 7 Communication Value What matters most in team software development is communication. When problems arise in development, most often someone already knows the solution; but that knowledge doesn t get through to someone with the power to make the change. This value drives information sharing and transparency in the XP methodology. 8 4

Simplicity Value What is the simplest thing that could possibly work? Start with the simplest possible solution; Add complexity only if necessary. XP does not prepare for future possibilities that may or may not happen. It concentrates on the simplest solution for today s problems. 9 Feedback Value Feedback from the system: Automated unit tests and continuous integration return feedback on code changes within minutes. Feedback from the customer: Frequent close contact, including acceptance tests, planning meetings, and general project steering. Feedback from the team: When requirements change, team gives new planning estimates. 10 5

Courage Value Courage is effective action in the face of fear. Sometimes courage manifests as a bias to action. Sometimes courage manifests as patience. Courage alone is dangerous; In concert with the other values it is powerful. The courage to speak truths, pleasant or unpleasant, fosters communication and trust. The courage to discard failing solutions and seek new ones encourages simplicity. The courage to seek real, concrete answers creates feedback. 11 Respect Value Respect for team mates. Respect for the project. Respect for the customer. Respect for self. 12 6

Other Values The values given above are those that come with XP. Any given organization, team, or project may and should add their own values. Some possibilities include safety, security, predictability, and quality-of-life. 13 Poll: Which XP Value do you see as most important? A. Communication B. Simplicity C. Feedback D. Courage E. Respect 14 7

XP is based upon Values, Principals, and Practices Practices Principals Values 15 XP Principals bridge the gap between values and practices Humanity Economics Mutual Benefit Self-Similarity Improvement Diversity Reflection Flow Opportunity Redundancy Failure Quality Baby Steps Accepted Responsibility 16 8

Principals I Humanity People develop software. Economics Add business value. Mutual Benefit Strive for win-win always. Self-Similarity If something works in one situation, try to apply it to others. Improvement Perfect is a verb, not an adjective. Always strive to improve processes. 17 Principals II Diversity It takes a variety of skills and perspectives to solve problems effectively. This can lead to conflicts when there are multiple possible solutions or approaches. Reflection How and why does this work? Flow Bias towards a continuous flow of development, as opposed to developing in phases or chunks. Continuous integration. 18 9

Principals III Opportunity Learn to see problems as opportunities for change. Redundancy The critical, difficult problems in software development should be solved several different ways. e.g. defect elimination. Failure Trial and error. Try things even if they don t work, and learn from the failures. ( Edison learned 1000s of filaments that failed. ) 19 Principals IV Quality Quality is not a control variable. Always strive for high quality, and control the project by adjusting scope as needed. Baby Steps Lots of little steps can be faster than a few large bounds, with more control. Accepted Responsibility Responsibility for completing tasks must be taken, not given. 20 10

Coming Soon Next we will look at the specific Practices of XP. 21 Exercise: Reflection Based on your past experience in SE, e.g. 440: What have you done that worked well, that you would do again on future projects? What have you done that has not worked well, and what could you change to ( try to ) make it work better in the future? 22 11

XP is based upon Values, Principals, and Practices Practices Principals Values 23 XP Practices Primary and Corollary Beck, Kent; Andres, Cynthia. Extreme Programming Explained: Embrace Change (Kindle Location 788). Pearson Education. Kindle Edition. Primary practices safely give immediate benefits. Corollary practices should only be attempted after mastering primary practices. Combining practices amplifies their effectiveness. 24 12

The List of Primary Practices Sit Together Whole Team Informative Workspace Energized Work Pair Programming Stories Weekly Cycle Quarterly Cycle Slack Ten-Minute Build Continuous Integration Test-First Programming Incremental Design 25 Primary Practices I Sit Together Find a large room where everyone can sit together, at least part of the day. Whole Team Bring together all skills and perspectives necessary. Foster sense of team. Informative Workspace The space should be a visible display of the project and its current status. The space should also have resources for positive social interactions, e.g. coffee & snacks. 26 13

Informative Workspace Images Beck, Kent; Andres, Cynthia. Extreme Programming Explained: Embrace Change (Kindle Location 845). Pearson Education. Kindle Edition. 27 Primary Practices II Energized Work Work only as many hours as you are productive and efficient. Pair Programming Two people, One computer. Keep each other on task. Brainstorm refinements. Clarify ideas. Alternate initiative when one is stuck. Hold each other accountable to team standards. Rotate pairs after 1 to 3 hours. No more than 5 or 6 hours a day. Beware of inter-personal, hygiene, and other social issues. 28 14

Primary Practices III Stories A more natural alternative to requirements. Functionality described by the client and quickly estimated by the development team. Beck, Kent; Andres, Cynthia. Extreme Programming Explained: Embrace Change (Kindle Location 845). Pearson Education. Kindle Edition. 29 Primary Practices IV Weekly Cycle Plan each week at a Monday meeting: 1. Review progress to date, including how actual progress for the previous week matched expected progress. 2. Have the customers pick a week s worth of stories to implement this week. 3. Break the stories into tasks. Team members sign up for tasks and estimate them. (Alt: Draw tasks from hat/pile.) Start the week by writing automated tests that will run when the stories are completed. Then spend the rest of the week completing the stories and getting the tests to pass. Deliver functionality & celebrate every Friday. 30 15

Primary Practices V Quarterly Cycle Another good time frame for planning longer-term goals. During quarterly planning: Identify bottlenecks, especially those controlled outside the team. Initiate repairs. Plan the theme or themes for the quarter. Pick a quarter s worth of stories to address those themes. Focus on the big picture, where the project fits within the organization. 31 Primary Practices VI Slack Always include some minor tasks that can be dropped if needed to meet overall commitments. Don t over-commit and underdeliver, but set realistic attainable goals. Ten-Minute Build - Automatically build the whole system and run all of the tests in ten minutes. 32 16

Primary Practices VII Continuous Integration - Integrate and test changes after no more than a couple of hours. Test-First Programming - Write a failing automated test before changing any code. Avoid scope creep by keeping focused goals. Build trust by writing code that passes tests. Develop a rhythm: test, code, refactor, repeat. Difficulty writing tests indicates a design problem. 33 Test-First Development Cycle Start Select a new feature to work on. Write ( and automate ) tests to determine if the new feature is working. Refactor code, to improve quality without changing functionality. Develop new code, until all tests pass. 34 17

Primary Practices VIII Incremental Design Make small safe design improvements every day. ( Software is easier and cheaper to redesign than bricks and mortar, if done properly. ) 35 Think-Pair-Share Which one(s) do you want to try out? Sit Together Whole Team Informative Workspace Energized Work Pair Programming Stories Weekly Cycle Quarterly Cycle Slack Ten-Minute Build Continuous Integration Test-First Programming Incremental Design 36 18

FYI The Corollary Practices Real Customer Involvement Incremental Deployment Team Continuity Shrinking Teams Root-Cause Analysis Shared Code Code andtests Single Code Base Daily Deployment Negotiated Scope Contract Pay-Per-Use 37 Planning Extreme Programming This material is presented based on an excerpt from Planning Extreme Programming by Kent Beck and Martin Fowler, handed out in class. See Resources. Image source: https://commons.wikimedi a.org/wiki/file:xpfeedback.gif, originally authored by Don Wells. 38 19