Big Ball of Mud

I’ve stumbled over the Google Tech Talk of Brain Foote where he gives a talk about his famous paper Big Ball of Mud which he coauthored with Josef Yoder. The paper was published at the end of the last century, the Agile Movement starts and we all think that we have a great mess at most software development projects. The paper was and is a nice read and the question is if we are doing better now?
I think on one side we have at least the tools to be better: developmental testing (aka Unit Tests) are accepted everywhere, the Agile Practices are well established, Software testing in general is at least realised as need by most teams, refactoring is build in at most IDEs and patterns have matured. But is the code really become better, is it easier to integrate and extend software, have we found a way to dry out the swamp? As for code quality, I am not sure. Programmers today can produce the same smelly code as nearly one decade ago, they now also produce smelly unit test code (tests which are testing the wrong thing, which are depending on implicit preconditions or which are depending on time constraints)! The two major programming languages today, Java and C#, are object oriented and very powerful but most people never got the concepts provided by them and I fear it will not become better with the second comming of functional style programming features (LINQ). As the case for patterns, a lot of people read about them and at least the basic ones, the GoF patterns, are now common knowledge. What is missing is, if you have a problem conceptually to grasp, to look over the existing literature and see if you can find a pattern which solves your problem. What is also very disturbing today is that most software projects are one shot ones, so it doesn’t matter if they are bug free or functional, what only matters is that the last fantasiesed feature of someone who owns the project was implemented. To build up a sustainable process for developing software is not possible in most companies.
Software today becomes more complex every year but the ability to grasp the concepts either of the problem domain itself or the solutions needed stay the same. The brutal reality is that for the masses it doesn’t matter if software becomes better (hell, we have to reboot our mobile phones at least once a month!) and most development shops are not living long enough to have problems with their produced code base. For some people I think the awareness of most of the problems discussed has grown and sometimes they can make a positive impact, but for majority the ball of mud is as big as ever.


No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: