|
All agile methods stress the importance of direct interaction
between the developers of a system and customers who are its
eventual beneficiaries. The agile manifesto said "Business people
and developers must work together daily throughout the project",
which is there to stress the high frequency of interaction. Extreme
Programming stresses this through its practice of OnsiteCustomer. The main reason people give for this is that it improves
communication of requirements. As the manifesto says: "The most
efficient and effective method of conveying information to and
within a development team is face-to-face conversation." Interactive
communication can avoid much of the misunderstanding that arises
from documents or intermediaries. But I think these arguments, while valid, have missed another
vital reason for direct developer-customer interaction - enjoyment. Immediately I can hear many people wondering who cares about
whether developers enjoy their jobs. Actually I think it's very
important. A team that's enjoying their work is a team that's
motivated to do good work. In raw business terms, this translates to
much higher productivity and better value for your development
budget. I've always argued that development managers should devote a
good proportion of their energy figuring out how to motivate and
energize a development team. One way to do this is to connect developers to customers. Every
developer I know enjoys seeing his work used and valued. There's
nothing more satisfying than having a customer tell you how your
software makes her job more enjoyable, or have a business tie
software to revenue. If all of you see of the customers is
intermediaries, or worse still documents, then that motivational link is broken.
|