Big ball of mud



         


In computer programming, Big Ball of Mud is a term for a system or computer program that has no real distinguishable architecture. It usually includes more than one of the other anti-patterns.

The term was popularised in Brian Foote and Joseph Yoder's 1999 paper of the same name, which defines the term thus:

"A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and-baling-wire, spaghetti-code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems."

Big Ball of Mud systems were usually developed over a period of time with different individuals working on various pieces and parts. Expediency plays a major role. Systems developed by people with no formal computer architecture or programming training also often fall into this pattern.

Foote and Yoder do not universally condemn Big Ball of Mud programming, pointing out that this pattern is most prevalent because it works — at least for the moment. However, programs of this pattern become maintenance nightmares.

If you encounter a Big Ball of Mud system and have any control over its destiny, strongly consider studying it to understand what it accomplishes and use this as a loose basis for a formal set of requirements for the new well architected system you will develop to replace it. Technology shifts (client-server to web-based, file-based to database-based, etc.) can provide good reasons to start over from scratch.

A Big Ball of Mud is the software equivalent to a Rube Goldberg Machine.

[Top]




  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License