Keep It Simple Stupid

Published on 2007-01-17 by John Collins.

When I left college I joined a large software company which was involved in developing a closed-source CRM application targeting the financial industry. The application was huge and required scores of developers to develop and maintain it. Despite being several years old, it was never really "mature" as large chunks of new functionality were constantly being added to satisfy client requirements, thereby adding layers on top of layers of complexity.

One large department was responsible for developing the base product, while another, smaller department (where I worked) was responsible for customizing the base product to meet with custom requirements on a per-client basis.

Naturally being a large bureaucratic organization, communication between these departments was meager at best, in fact at one stage they even went as far as to stop sharing the source code of the base product with the smaller department, who were left trying to modify an application which they no longer had the latest source code for!

The application in question was a huge Java-based web application, buggy and a pain to work with due to the complexity of the code requiring lots of work for minimal results.

After this experience my leanings towards open source and agile development models became strongly reinforced, and I swore I would never work in an "enterprizey" Java team again. The post here, and the comments succeeding it, really sum up my strong feelings in this area:

The Lamest Justification for J2EE Complexity, Ever :

P.S. I am also not a BOZO.

Updated 2021 : note that the above post is out-of-date, given this post was originally published in 2007, but is left here for archival purposes. I have unlinked the original external link as it is now dead.