Keep It Simple Stupid

Published on 2007-01-17 by John Collins. Please follow me on Twitter for more: 

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 customising the base product to meet with custom requirements on a per-client basis.

Naturally being a large bureaucratic organisation, 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 "enterprisey" 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.