Friday, April 24, 2009

Stating the obvious

We have three computer systems, all of them developed in house using the same programming language and utilizing the same technical platforms. Let's call the systems A, B and C. The system A exposes a few services (in a crude, low-level way) that systems B and C wish to consume. The programming API is clearly defined and the only task remaining is to write the client software. This development effort should be a joint venture between the developers of B and C, possibly with some assistance from the developers of A who might have some good insight. You should absolutely not let B and C come up with their own implementations.


This is how you build good software. You collaborate and share. Right now I'm actually finding myself in a situation where I have to explain the benefits of this approach. I'm not sure where to start. Maybe some reverse psychology? "Hi class, today we're going to demonstrate the benefits of reinventing the wheel"


Building software is about putting together different components and making them work together. If someone else has written a good component that you can use - use it! Expand on it, improve it and contribute to it. Make it better.

0 comments: