That is, while there is value in the items on the right, we value the items on the left more.

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

Project Leadership in the Future

IT4305: Rapid Software Development Part 2: Structured Question Paper

Deploying Agile Practices in Organizations: A Case Study

It's Not Just Standing Up: Patterns for Daily Stand-up Meetings

Being Extreme in the Classroom: Experiences Teaching XP

New Directions on Agile Methods: A Comparative Analysis

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

Pair Programming: When and Why it Works

Sustainable Software Development: Evolving Extreme Programming

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

PROCESS USE CASES: USE CASES IDENTIFICATION

The Success Principles How to Get from Where You Are to Where You Want to Be

Pair Programming in Introductory Programming Labs

WEEK FORTY-SEVEN. Now stay with me here--this is so important. Our topic this week in my opinion, is the ultimate success formula.

The Seven Habits of Effective Iterative Development

Mike Cohn - background

Why Pay Attention to Race?

Brainstorming Tools Literature Review and Introduction to Code Development

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

Pragmatic Use Case Writing

WikiAtoms: Contributions to Wikis as Atomic Units

Colossians Study Guide Executable Outlines

Helping Graduate Students Join an Online Learning Community

A Model to Detect Problems on Scrum-based Software Development Projects

Improving software testing course experience with pair testing pattern. Iyad Alazzam* and Mohammed Akour

Pair Programming: A Contingency Approach

5. UPPER INTERMEDIATE

THE ROLE OF THE ENGLISH TEACHERS: AN OVERVIEW

Book Review: Build Lean: Transforming construction using Lean Thinking by Adrian Terry & Stuart Smith

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Kelli Allen. Vicki Nieter. Jeanna Scheve. Foreword by Gregory J. Kaiser

Positive turning points for girls in mathematics classrooms: Do they stand the test of time?

Executive Summary: Tutor-facilitated Digital Literacy Acquisition

Two Futures of Software Testing

Davidson College Library Strategic Plan

COMMUNITY ENGAGEMENT

Successful Studio-Based Real-World Projects in IT Education

COACHING A CEREMONIES TEAM

Best website to write my essay >>>CLICK HERE<<<

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Software Maintenance

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

Visit us at:

CLASS EXODUS. The alumni giving rate has dropped 50 percent over the last 20 years. How can you rethink your value to graduates?

Professional Voices/Theoretical Framework. Planning the Year

Fearless Change -- Patterns for Introducing New Ideas

A cognitive perspective on pair programming

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

Early Start in Software Coaching

Philosophy of Literacy. on a daily basis. My students will be motivated, fluent, and flexible because I will make my reading

Getting Started with Deliberate Practice

The Agile Mindset. Linda Rising.

On the Combined Behavior of Autonomous Resource Management Agents

English Language Arts Missouri Learning Standards Grade-Level Expectations

Harvesting the Wisdom of Coalitions

From Scrum to Kanban: Introducing Lean Principles to a Software Engineering Capstone Course

IN THIS UNIT YOU LEARN HOW TO: SPEAKING 1 Work in pairs. Discuss the questions. 2 Work with a new partner. Discuss the questions.

Introduction to CRC Cards

Empirical Software Evolvability Code Smells and Human Evaluations

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

Solution-Focused Leadership Framework

Motivation to e-learn within organizational settings: What is it and how could it be measured?

For Portfolio, Programme, Project, Risk and Service Management. Integrating Six Sigma and PRINCE Mike Ward, Outperfom

Cooking Matters at the Store Evaluation: Executive Summary

Institutionen för datavetenskap. Hardware test equipment utilization measurement

PreReading. Lateral Leadership. provided by MDI Management Development International

Pair Programming. Spring 2015

Successful Implementation of a 1-to-1 Initiative

Calculators in a Middle School Mathematics Classroom: Helpful or Harmful?

leading people through change

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

Cognitive Self- Regulation

Higher education is becoming a major driver of economic competitiveness

Evolving Enabling Technologies Across CMC

PART C: ENERGIZERS & TEAM-BUILDING ACTIVITIES TO SUPPORT YOUTH-ADULT PARTNERSHIPS

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

Team Dispersal. Some shaping ideas

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Genevieve L. Hartman, Ph.D.

Swinburne University of Technology 2020 Plan

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

BLENDED LEARNING IN ACADEMIA: SUGGESTIONS FOR KEY STAKEHOLDERS. Jeff Rooks, University of West Georgia. Thomas W. Gainey, University of West Georgia

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

Critical Thinking in Everyday Life: 9 Strategies

The Strong Minimalist Thesis and Bounded Optimality

1. Lesson and Activities. a. Power Point Agenda i. A great means of keeping things organized and keeping your rehearsal or class running smoothly

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

CSC200: Lecture 4. Allan Borodin

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

Corporate learning: Blurring boundaries and breaking barriers

Number Line Moves Dash -- 1st Grade. Michelle Eckstein

Photography: Photojournalism and Digital Media Jim Lang/B , extension 3069 Course Descriptions

Lecturing Module

Hands-on Books-closed: Creating Interactive Foldables in Islamic Studies. Presented By Tatiana Coloso

Community Based Participatory Action Research Partnership Protocol

A Pipelined Approach for Iterative Software Process Model

BMBF Project ROBUKOM: Robust Communication Networks

Patterns for Supervising Thesis Projects

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Transcription:

MANIFESTO FOR AGILE SOFTWARE DEVELOPMENT 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. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas 1

AGILE SOFTWARE DEVELOPMENT CONSORTIUM Representatives from Extreme Programming http://www.extremeprogramming.org/ SCRUM http://www.controlchaos.com/ DSDM Dynamic Systems Development Method http://www.dsdm.org/ Adaptive Software Development http://www.dorsethouse.com/books/asd.html Crystal http://crystalmethodologies.org/ Feature-Driven Development http://www.featuredrivendevelopment.com/ Pragmatic Programming http://www.pragmaticprogrammer.com/ 2

PRINCIPLES BEHIND THE AGILE MANIFESTO We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. 3

Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. 4

The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. http://www.agilealliance.com/home 5

XP s 12 CORE PRACTICES 1 Customers define application features with user stories. 2 XP teams put small code releases into production early. 3 XP teams use a common system of names and descriptions. 4 Teams emphasize simply written, objectoriented code that meets requirements. 5 Designers write automated unit tests upfront and run them throughout the project. 6 XP teams frequently revise and edit the overall code design, a process called refactoring. 6

7 Programmers work side by side in pairs, continually seeing and discussing each other s code. 8 All programmers have collective ownership of the code and the ability to change it. 9 XP teams integrate code and release it to a repository every few hours and in no case hold on to it longer than a day. 10 Programmers work only 40 hours per week; there s no overtime. 11 A customer representative remains on-site throughout the development project. 12 Programmers must follow a common coding standard so all the code in the system looks as if it was written by a single individual. 7

What is Pair Programming? TWO programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software. -- Laurie Williams North Carolina State University Computer Science 8

CONCLUSION All methodologies are based on fear. You try to set up habits that prevent your fears from becoming reality. XP reflects my fears: KENT BECK Doing work that doesn t matter Having projects canceled because I didn t make enough technical progress Making business decisions badly Having business people make technical decisions badly for me Coming to the end of a career of building systems and realizing that I should have spent more time with my kids Doing work I m not proud of 9

XP also reflects things I m not afraid of: Coding Changing my mind Proceeding without knowing everything about the future Relying on other people Changing the analysis and design of a running system Writing tests I had to learn not to fear these things. 10

we felt privileged to work with a group of people who held a set of compatible values, a set of values based on trust and respect for each other and promoting organizational models based on people, collaboration, and building the types of organizational communities in which we would want to work. At the core, I believe Agile Methodologists are really about mushy stuff about delivering good products about the mushy stuff of values and culture. Jim Highsmith For the Agile Alliance http://www.agilemanifesto.org/history.html 11

More Quotes: XP has traditionally worked best in small or medium-size teams composed of competent developers who work well together; where the customer s requirements may change frequently; and where frequent small releases are possible. Five Lessons You Should Learn from Extreme Programming 1. Code for Maintainability 2. Know your status 3. Communicate early and often 4. Do things that matter 5. Fix your most important problem first http://www.onlamp.com/lpt/a/4061 12

One more Quote: One thing that s good about XP is that it simplifies things developers don t classically like to do, like testing and code review. And anything that makes developers do that is a desirable thing. But right now, there isn t enough evidence that XP is a breakthrough that all teams should embrace. http://www.computerworld.com/printthis/2001/0,4814,66192,00.html Computerworld, 2001 13

Another Quote: XP requires unfailing discipline from every member of the team throughout the project. This makes it anything but lightweight. Additionally, the 12 practices are sot tightly dependent on each other that tailoring XP (or skipping a few of the practices) can be tricky. The Irony of Extreme Programming Matt Stephens and Doug Rosenberg Dr. Dobb s Journal, May 2004 14

One more quote: We can drive ourselves crazy with expectation. But by preparing for every eventuality we can think of, we leave ourselves vulnerable to the eventualities we can t imagine. extreme Programming explained: Embrace Change, Kent Beck, Addison-Wesley, 2000. 15