Monday, March 12, 2007

Customer-Developer Relationship

I was reading on "Agile Software Development Ecosystems"- Chapter 5: Delivering Something Useful. The chapter was talking about the customer-developer relationship and the best methodolgoies which should be followed.

One of the points I liked in this chapter which was talking about demand-driven methodology when you're dealing with your customer. That is you should try to avoid forcasting as much as you can and wait for the customer to demand this feature. This will avoid any missunderstanding and minimize the effort of doing the task and changing it afterwards.

Another nice point, when the author was talking about the developers of customer-domain knowledge. Actually, this skill is rarely to find in most of the developers. Customer-domain aware developers - who have the ability to know the terminology used by the customers, recommend features based on their knowledge, and even use their own experience to fill in details-level requirements gaps. In my point of view, this is a kind of "Good" forecasting which is based on knowledge as developer of this kind know by experience what the customer will demand and what can be done to make the customer life easier. This customer-domain awareness save a lot of time which might be consumed in fixing and modifying the features after customer reviewing.

Also, the chapter was talking about the Proxy Users - the ones we called: "System Analysts". The chapter discussed how Proxy Users are important in the customer-developer relationship. The point which take my interest was that Proxy users sometimes fall in a problem when they begin to believe that they actually are the customers! and start to block the direct contact between the developers and real customers. This will increase the probability of failure to deliver the project as expected by the customer and will increase the number of iterations needed to resolve the requirement.

Digg This Post!