Transcript מצגת של PowerPoint
םיטקיורפ תייחנה בשחמה יעדמב
טנלס םואברמ ינרוא ןזח תירוא 10-12.7.2005
םירומ תומלתשה
תומלתשהה תינכות
10.7
אובמ ןוידל םייזכרמ םיאשונ יתנש הארוה ןונכת 11.7
הנכות תסדנה לש המגידרפה הנכות חותיפ תויגולודותמ 12.7
םיטקיורפ תכרעה הלועפ ףותיש ךשמה
Extreme Programming
הנכות יטקיורפ חותיפל היגולודותמ
הנכות יטקייורפ לש תונייפאמ תויעב
הרוקמ הנכות חותיפב תיתימאה תויכוביסה
) יגולונכטה אלו ( ישונאה טביהב לש הנבה , םיגאב , וב הדימע יאו ץוחל ז " ול , תוחוקל
, עדימ ףותיש יא , תווצ ירבח ןיב תרושקת , תוינכות ...
, היצרגטניא
םינותנ : הנכות יטקיורפ
: ןולשיככ םיבשחנ תוחוקלל םיחלשנה םילודגה הנכותה ירצוממ 75%
.
תוחוקלה תושירדל םימיאתמ םניאש וא ללכ שומישב םניאש וא
Based on: Mullet, D. (July, 1999). The Software Crisis , Benchmarks Online - a monthly publication of Academic Computing Services
2
(7).
59.5
ב הנש לכב תדמאנ ב " הראב הנכותב םיגאב לש םנוקית תולע
$ ןויליב
The National Institute of Standards and Technology (NIST), New Release of June 28, 2002.
$ ןויליב 200 הנכותב ב " הראב ועקשוה 2003 לש Q2 ב : האוושה םשל
What is Extreme Programming
.
היישעתב החמצ Extreme Programming Differences from traditional methodologies Emphasis on people vs. development activities & schedule XP specifies how to behave; still leaves freedom 12 practices 4 values: feedback, simplicity, communication, courage The meaning of ‘extreme’
What is Extreme Programming
Extreme Programming Explained
First edition 2000
by Kent Beck
Second edition 2005
by Kent Beck with Cynthia Andres Reflection, Roles, Respect
Extreme Programming
םישקבתמ םתא היגולודותמה םע תורכיהה ךלהמב יטקיורפ חותיפ תרגסמב םושייל התמאתה לע בושחל .
ןוכיתב הנכות
How XP? - Project Timetable :
1 release (2 months) , 3 iterations (3 weeks each) Business Day Business Day Week 1, Release 1, Iteration 1 Week 5, Release 1, Iteration 2 Week 9, Release 1, Iteration 3 Week 2, Release 1, Iteration 1 Week 6, Release 1, Iteration 2
Release 2 starts
Week 3, Release 1, Iteration 1 Week 7, Release 1, Iteration 3 Business Day Week 4, Release 1, Iteration 2 Week 8, Release 1, Iteration 3 Business Day
How Extreme Programming?
Two days in Extreme Programming Development Environment
Business Day
Planning game On-site customer Small releases Simple design Metaphor Source: http://www.rolemodelsoftware.com/
Business Day – Reflection
5 practices (out of 12) Planning game On-site customer Small releases Simple design Metaphor Planning game All developers participate All have the same load All developers get an overview of the entire development process Simple means Very detailed Levels of abstraction
Business Day – Reflection
5 practices
(out of 12) Planning game On-site customer Small releases Simple design Metaphor On-site customer Customer ’s on-going feedback Small releases On-going opportunity to update/change requirements
Business Day – Reflection
5 practices
(out of 12) Planning game On-site customer Small releases Simple design Metaphor Simple design Develop only what is needed for your development task Metaphor Bridges customers developers-business gaps
Development Day
Source: http://www.rolemodelsoftware.com/ Stand-up meeting The development environment Pair programming Test driven development (acceptance, unit-test) Code standards Refactoring Simple design Continuous integration (one integration machine) Collective ownership Sustainable pace (40-hour week)
Development Day -
Reflection
The development environment All see all; fosters communication Stand-up meeting All know what all do Pair programming Each task is thought on two levels of abstraction Unit test (automatic test first) First: improves understanding; Automatic: testing is easy Developers program and test Testing becomes manageable Success vs. failure
Development Day -
Reflection
Continuous integration Reduces integration risks in later stages Collective ownership Important in companies with high turnover Coding standards Refactoring and simple design Code improvement is part of the methodology (though it doesn't produce code), gradual process Sustainable pace (40-hour week) Intense and productive work , developers are not tired
Development and Business Days – Reflection
Code/Technical Perspective
Refactoring Simple design Coding standards Testing Continuous integration Small releases
Human/Social Perspective
Collective ownership Pair programming Sustainable pace On-site customer Planning game Metaphor
The 12 XP practices
Note:
nothing is new; gathering the practices together is XP uniqueness
Source:
Beck, K. (2000).
eXtreme Programming explained
, Addison Wesley.
Extreme Programming in the SE world Agile Software Development Methodology
Other agile methods :
SCRUM, Feature Driven Development, DSDM All acknowledge that the main issue of software development is people: customers, communication Manifesto for Agile Software Development: http://agilemanifesto.org/ Extreme Programming: Kent Beck, 1996, Chrysler
The Agile Manifesto
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. http://agilemanifesto.org/
Why Extreme Programming?
big companies using XP in at least some capacity Ford Motor, Chrysler, IBM, HP
Companies doing XP
smaller software houses: Mayford Technologies RoleModel Software tutorials: Industrial Logic , Object Mentor , Tochen (Israel)
Software Development Methods
All traverse the activities of specifying, designing, coding, testing. Some do this several times. These activities have become the paradigm of software development. When the majority of developers accepted this, it became a paradigm.
Paradigm is
the
way of doing things.
Kuhn, T. S. (1962).
The Structure of Scientific Revolutions
, Chicago: Univ. Chicago Press .
Extreme Programming
הנכות יטקיורפ חותיפ תרגסמב םושייל התמאתה .
ןוכיתב םירומה לש םטבמ תדוקנמ םידימלתה לש םטבמ תדוקנמ