Friday, October 13, 2006

No Silver Bullet:

No Silver Bullet:

It is obvious for someone like me who spent a good part of his career on programming.

We can take just one aspect of programming - type safety.

We start with C, get worried about the lack of type safety. C++ didn't help much in that part, but allowed for encapsulation for modeling objects. Java went over-board on the type checking and became a pain for simpler operations. For some thing as simple as a Http post, there may be a need to create a few objects and their inner objects and so on. My conclusion is, choose a language that will allow you to do what you want to do. This means, the decision maker has to have good knowledge on the strengths and weaknesses of the languages and platforms.

I still come across non-technical managers who want a design that can accommodate everything. For example, my boss wants a DB design that will allow for storing detailed information of products and also have a general solution. He suggested something like a place-holder for everything - in case of a mobile phone the place holder will hold the technology information (CDMA / GSM), for digital camera it might hold information like physical dimension. Fortunately I could explain the complexity in searching, comparing products with a design like that and stop at that. I am suggesting a mix of generalization and specification. If you want to focus on search and comparison, go for the details. If you want to just dump the data for display purposes go for a general place-holder.

To sum up - yes - there is no silver bullet.

No comments: