Your SlideShare is downloading. ×
  • Like
  • Save
20011119 XPLabs Tour01 @UniParma Parma-IT [ITA]
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

20011119 XPLabs Tour01 @UniParma Parma-IT [ITA]

  • 169 views
Published

 

Published in Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
169
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Improving Software Productivity with eXtreme Programming Francesco Cirillo Director, XPLabs - s.r.l. Coordinator, XPLabs Consortium francesco.cirillo@xplabs.com ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 2. 2 The XP Answer  To be effective today, the development process must allow customers to maximize business opportunities:  by enabling them to identify new ones;  by ensuring a return on their investment as early and frequently as possible; and  by allowing them to make changes when they feel the need.  In this scenario, the production function implicit in the work of the development team must make it possible to minimize the cost of change ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 3. 3 We Need Feedback  “We need to control the development of software by making many small adjustments, kind of like driving a car. This means that we will need the feedback to know when we are a little off, we will need many opportunities to make corrections, and we will have to be able to make those corrections at a reasonable cost” (Beck00, p. 27)  “Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way” (Beck00, p. 27) ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 4. 4 Navigation Story  The first story is that of a payroll employee who has to answer questions about paychecks.  “Hello, payroll support here.”  I just got my paycheck, and I want to know why I received $1500 this month and only $1000 last month.”  “Well, sir, I see that you got a raise on the first of this month.”  “I got that raise last month.”  “I’m sorry about that. I see that the raise wasn’t recorded in out system until this month. We adjusted your paycheck to reflect the increase. You should receive $1250 per month from now on.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 5. 5 Enumeration Story  The second story is that of an employee who needs lots of changes.  “Hello, payroll support here.”  “I would like to increase my deductions to 6, effectively immediately.”  “Certainly.”  Two days later:  “Hello, payroll support here.”  “I would like to take the additional life insurance coverage we were offered.”  “Certainly. That will be in force as of today. You will notice a half- month’s deduction in your next paycheck. Thereafter the deduction will be $55.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 6. 6 Enumeration Story  Three days later:  “Hello, payroll support here.”  “I would like to begin contributing 5% of my wages every month to the United Way.”  “Certainly. Since this is a monthly deduction, you will see a full month’s deduction on your next paycheck.”  At the end of the month, the paycheck is correctly computed automatically. ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 7. 7 Binary Deliverables  “Tom Demarco said of project management: ‘Your project, the whole project, has a binary deliverable. On scheduled completion day, the project has either delivered a system that is accepted by the user, or it hasn’t. Everyone knows the result on that day’ (Demarco82)” (Martin99b)  “The object of building a project model is to divide the project into component pieces, each of which has this same characteristic: Each activity must be defined by a deliverable with objective completion criteria. The deliverables are demonstrably done or not done” (Martin99b) ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 8. 8 Binary Deliverables (continue)  “So a binary deliverable is a deliverable that has one of two states: done or not-done. Clearly Analysis and Design are not binary deliverables. They can never be shown to be complete. On the other hand, what better binary deliverable could we have than a piece of code that executes according to stated requirements?” (Martin99b)  What about the iterative and incremental development?  “When we begin an iterative and incremental development (IID), our first goal is to subdivide the project into binary deliverables. Those binary deliverables are defined as executing segments of the overall project” (Martin99b) ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 9. 9 Mayo’s Contributions  The contributions of the Mayo school can be summed up in the following conclusions:  Productivity of personnel and of the organization, beyond the physical conditions of the workers and of the work environment, depends on the conditions of the social environment that exists and of the spontaneous cooperation that develops  Non-monetary incentives are of the utmost importance in order to reach a satisfactory level of productivity  High-level specialization is not the most efficient way to assign tasks  Personnel doesn’t manifest exclusively individual behavior, but also group behavior ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 10. 10 Mayo’s Contributions (continue)  The small spontaneous group that makes up an informal organization serves to satisfy the need to belong and is a source of positive influence on morale and productivity  The small, spontaneous group is highly productive and motivated, as long as the complexity of the tasks assigned to it isn’t excessive. Maslow in fact, explains with his infamous curve, that people become demotivated when facing too complex a task, get extremely motivated by complex but doable assignments, and again demotivated by complex and un-doable tasks  Motivation, furthermore, seems to increase with an increase in results obtained (objectives reached). A high frequency of deliverables most certainly increases said motivation ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 11. 11 Have you ever been asked to work free overtime?  Let’s try to answer in a more complete way. Let’s suppose we follow the Human Relation school of tought. How much does working overtime for free increase my team motivation and hence its productivity?  Not too much, eh? Just imagine working overtime on impossible tasks (remember what Maslow says…) ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 12. 12 Have you ever been asked to work free overtime?  But, why should we work overtime?  To be a good team it doesn’t necessarily means to be fast, but to take the time estimated (expected) to accomplish a given task. But to do that you have to know how you work/are working and you must be experienced  Many project managers accept impossible deadlines to do. Eventually this brings the request for overtime  But consistently working overtime reduces motivation, self- esteem and in this way slows productivity and makes it impossible to do high quality work ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 13. 13 Have you ever been asked to work free overtime?  Working overtime is considered acceptable for one or two weeks at most before we see the drawbacks I’ve mentioned  Project managers and project leaders are good at their work when they can estimate the right time to do things, and know how to say no when customers ask impossible things. (To say no you have to know that it IS impossible…) ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 14. 14 On the other hand...  On the other hand, we find Scientific Management (Taylorism).  Translated in software development, Taylorism could say if you don’t produce I’ll fire you, if we need to reduce costs we pay less, if we need to produce more with low costs we’ll hire at lower rates.  Taylorism showed us how to create tensions, how to alienate, demotivate, and exploit hundreds of workers in a factory ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 15. 15 Quality Assurance  Three themes are central to quality assurance:  Quality is everybody’s business  Quality must be an early focus of a project  The best way to achieve quality is to build it in ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 16. 16 Correct By Construction - Cantor  “The premise is that if the documentation is sufficiently detailed and found to be correct by the customer, then the project is correct by construction. The developers only need build what has been documented.”  “...This approach is defocusing; it adds risks and expense to the project. Since the entire success of the project depends on correct documents, the customer and the developer focus their attention on the documentation, not the project. An unreasonable amount of effort may be spent in the attempt to create a correct diagram. In fact, so much of the project’s budget can be spent trying to finish the flawless design that the project may be canceled before the software is coded.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 17. 17 Correct By Construction - Cantor  “...Experience has also shown that no amount of formal process, checkpoints, or design review can completely eliminate the risk of delivering a nonoperational system.”  “To ensure this (maintain an ongoing dialog) develop a common vocabulary to discuss the system specifications in a way the customer can understand. Assess whether this project will serve his or her needs. This will drive the design process. As the project proceeds, the customer’s understanding of the program will evolve. Only by taking advantage of the increased understanding can you and the customer ensure that what is delivered is acceptable.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 18. 18 Our job... - Thomas  “Our job is to solve problems, not spoonfeed compilers...”  “We need clarity so we can communicate using our code. We value conciseness and the ability to express a requirement in code accurately and efficiently. The less code we write, the less that can go wrong.”  “...You can concentrate on solving the problem at hand, instead of struggling with compiler and language issues. That’s how it can help become a better programmer: by giving you the chance to spend your time creating solutions for your users, not for the compiler.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 19. 19 Simple Rules - Dee Hock  “Simple, clear purpose and principles give rise to complex, intelligent behavior.”  “Complex rules and regulations give rise to simple, stupid behavior.” ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.
  • 20. 20  References  Beck00 -Kent Beck, Extreme Programming Explained: Embrace the Change, Addison-Wesley, 2000.  Demarco82 - Tom Demarco, Controlling Software Projects, Yourdon Press, 1982  Jacobson92 - Ivar Jacobson, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, 1992  Martin99a - Robert Martin, “Iterative and Incremental Development I”. C++ Report, February, 1999.  Martin99b - Robert Martin, “Iterative and Incremental Development II”. C++ Report, April, 1999.  Martin99c - Robert Martin, “Iterative and Incremental Development III”. C++ Report, June, 1999. ah © 2001 Francesco Cirillo Improving Software Productivity with XP XPLabs - S.R.L.