How
can we help our business grow? It seems like an obvious question for
everyone
to ask. Yet many software teams never do. When we consider adopting an
Agile process we worry about iterations and testing. But the very first
thing you must do to become Agile is establish a good relationship
with your customers, users, and domain experts; who ever it is that
directly or indirectly pays for your work.
The
first symptom of a damaged customer relationship is when your customer
considers it a waste of time to participate in the project. You may
have delivered software that just doesn't meet return on investment
(ROI).
You may have delivered software that is frustrating to use. You may
even have treated the customer with disdain. In any case your customer
is important and you need to repair your relationship first.
One
way to start a partnership with your customers is to listen to their
needs and respond immediately. The best way to guarantee your
customer's time (and thus money) isn't wasted is to involve them enough
to guarantee success. Customers who don't want to be involved in their
own software project believe the software will be built
the same even if they don't participate. This belief needs to be
dispelled.
Damage
to the customer relationship can be the result of careless disdain for
the customer's expertise by the development team. It doesn't matter how
smart you may think you are, you simply can't expect to know as much
as your customer. You can't learn in weeks what someone else learned
over years. Respect your customer by acknowledging their expertise,
listen carefully, defer to their authority, and never insert your own
opinions into your code.
Repairing
an abused relationship takes time. Trust takes months to establish but
minutes to destroy. Start out by being honest about your process.
Everyone will give up something before the project is over. Giving up
something first is a good way to start. Give up on having the most
interesting
and complex system around by