|
Presentation: "Big Ball of Mud: Is This the Best that Agile can Do?"
Time:
Wednesday 12:05 - 13:05
Location:
Stanford Room
Abstract: It was back in ‘97 when Brian Foote and I first opined that: while much attention had been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture had seldom been discussed: the Big Ball of Mud. A Big Ball of Mud is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle. We’ve all seen them. 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. Somewhat to our astonishment, since our original statement, no one has ever undertaken to dispute this premise. Still, this approach endures and thrives. Why is this architecture so popular? Is it as bad as it seems, or might it serve as a way-station on the road to more enduring, elegant artifacts? What forces drive good programmers to build ugly systems? Can we avoid this? Should we? How can we make such systems better?
This talk will examine the paradoxes that underlie Big Balls of Mud, what causes them, and why they are so prominent. What Agile Practices help us avoid or cope with mud? Does Agile practices such as TDD really help minimize mud? What are we doing RIGHT? What Agile Practices contribute to the problem? Encourage mud? Is Mud really the best that Agile can do? Is Agility’s utilitarian focus on process rather than design its secret weapon, or its Achilles heel?
|
Joseph Yoder, Software Patterns writer
Joseph Yoder is a founder and principle of The Refactory, Inc., a
company focused on software architecture, design, implementation,
consulting and mentoring on all facets of software development. Joseph
is an international speaker and pattern author and long standing member
of The Hillside Group, a group dedicated to improving the quality of
software development. He is co-author of the Big Ball of Mud pattern,
which illuminates many fallacies in the approach to software
architecture. Joseph has organized and participated in many
international conferences including program chair for the Pattern
Languages of Programming Conferences (PLoP and SugarLoaf PLoP) and
helping organize the first Agile Portugal. Joe has presented many
tutorials and talks at many international conferences such as Agile,
JAOO, QCon, PLoP, OOPSLA and ECOOP.
Joe currently resides in Urbana, Illinois where he oversees a team of
developers who have constructed many systems based on enterprise
architecture using the .NET environment. Other projects involve working
in both the Java and .NET environments deploying Adaptive Systems or
Domain-Specific Languages for clients. Joe thinks software is still too
hard to change. He wants do something about this and believes that by
using good patterns and by putting the ability to change software into
the hands of the people with the domain knowledge seems to be some
promising avenues to solve this problem.
|
 |
|