A life in these times : Civilization, Democracy, Economics, Family, Ideas, Liberal, Life, Multi-Cultural, Principles, Progress, Science, Self, Truth.

Friday, May 06, 2005

Version It. Damn it!

This is a post of frustration stemming from chasing dependencies and versioning of components. You know what it's like, working on a new product, have half the time needed to deliver the project, design docs are "good enough", you or your team drag in 3rd party components put them in the runtime environment don't check or note down the version numbers anywhere (oh yeah, you can always check versions numbers online) . Reviews...well no time for most of that.

That was last year and this week it was time to move the dependency packaging out of the individual products to baseline the 3rd party components across the our product suite and the supported application server (JBoss) environment. Not a big problem unless the version numbers are not in the manifest files, does not form part of the filename and the used versions are not documented. Then it sucks as it involves time consuming detective work.

This should be Software Engineering 202.

a) Provide the necessary meta-information in every component you produce. This makes it easier for developers to determine dependencies and compatibilities. I found out this week that a lot of people, including some Sun, Apache and F/OSS developers have been guilty of producing jars with jack all in the manifest files. I can't comment on the latest practices/componets but looking at jars produced over the past couple of years it's not always good news.

b) If you are developer adding 3rd party components check the version details and include them in the design and/or implementation docs. If not, at least in the code. Remember to do step (a) if you are writing your own components.

That's it for now. More blogs to come over the weekend.


Post a Comment

<< Home