More Related Content
More from Francesco Cirillo
More from Francesco Cirillo (11)
20011119 XPLabs Tour01 @UniParma Parma-IT [ITA]
- 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.