Tuesday, June 26, 2007

How to encourage the development team to share the schema and common service?

I have seen a lot of cases that the programs, database schema, or application services can be shared by various modules, but the development teams tend to build the duplicate by themselves.

I guess that here are the common causes of the problem:
  1. The team may not know the similar schema or reusable components available from other modules.
  2. Even they know a similar schema or a service is available in other module, the team may feel difficult to get the specific requirements addressed by other team. There are several reasons for this:
    1.  Doing additional work for other module is not considered as a revenue generation activity for the provider team. It is not how the performance of the development team was typically measured.
    2. There are communication costs. The consuming team needs to explain their requirements to the provider team and the requirement may not be easily understood.
    3.  The component was not designed to be reused. Adding extra data or introducing additional use of the service may impact the provider's module. They do not want to take the risk.
    4. This means that extra responsibility are taken by the provider team. They may not want to get blame when the consuming product is delayed or the customer requirement is not satisfied.
  3. Even the provider team can understand and willing to make the changes for the new consuming team, the consuming team may still have other concerns. Here are some typical questions that have been asked.
    1. What if the quality of the codes from other module is not as good, will it damage our module?
    2. How about the potential delay of their shareable service? We do not want to delay our release due to the small component sharing.
    3. How about the maintenance in the future? Will they inform us when they make any change to the module? Will they keep the shared component backward compatible?
    4. How about the future enhancements? Can we get their commitments on continuing supporting us? Will we run into the trouble that they cannot address our requirement (all the reasons from #2) in the future?

No comments: