Colin's Journal

Colin's Journal: A place for thoughts about politics, software, and daily life.

December 15th, 2002

Architecting software

I’ve just read (a little belatedly) the latest Joel on Software. The point that the article makes is that to really know a platform inside out takes a huge amount of time and energy, and so the people that do know a platform inside out are extremely valuable. It’s all summed up at the end as “So for now, my advice is this: don’t start a new project without at least one architect with several years of solid experience in the language, classes, APIs, and platforms you’re building on.”

There is however another side to the coin – the people that know lots of different platforms and technologies reasonably well, rather than in depth, are able to adapt to new situations better than those that have concentrated on one area to exclusion. When architecting out a new product you need to pick a platform (or platforms) and then define the functional areas of responsibility (this bit talks to web clients, this bit talks to the databases, etc) and corresponding API layers. Determining coding standards and support libraries is also important (otherwise you end up with 3 different types of logging none of which can be configured) at this early stage. While it’s extremely helpful to have platform experts working with you at this level there is a danger if they have the final say because the vision they will layout is the one they have always used, not necessarily the one that is best for this particular product.

However the role of platform expert is far less important in integration work. When integrating different systems on different platforms you are almost always going to be working with things you have never seen before. In these situations the best kind of person you can have is one that has seen and understands how multiple different platforms work. This general background in multiple different platforms enables you to easily define in generic terms the terminology used by a particular vendor/system, as well as understanding the limitations as they are described to you. I still see plenty of room in IT for those that wish to deal with multiple different platforms – especially as the integration of existing systems or new systems into an established environment is the mainstay of the IT world.

Comments are closed.

Copyright 2015 Colin Stewart

Email: colin at owlfish.com