Introduction to Pragmatic Architecture Series
Revised: February 2007
Summary: It's become almost fashionable to poke fun at that group of software engineers that call themselves "architects" and the seemingly irrelevant things they produce. If you are one of those of us who call themselves architects, how do you address this rather unenviable state of affairs? Are we nearing extinction? Or does architecture—and the architect—still serve a useful purpose? (2 printed pages)
Slowly, I make my way to the front of the group, heart fluttering. To avoid eye contact with anybody, I glance around at the room: nothing special, just a community-college classroom by day turned support-group chamber by night. I finally reach the podium; the group leader puts a hand on my shoulder, giving it a squeeze for a moment before sitting down. I take a deep breath and face the group. One of the group members, a tall guy wearing a German soccer team jacket and a T-shirt underneath it that proclaims something"-tecture," meets my glance and nods.
I try to say the words. "Hi, my name is Ted, and…." I falter. I can't do it. A blonde woman in the front of the room wearing a Washington Huskies pullover whispers, "It's OK, you're among friends here." The group leader meets my eyes and says, "Remember, admitting that you have the problem is always the first step."
With another deep breath, I finally blurt it out: "Hi. My name is Ted, and… I'm an architect!"
In recent years, it's become acceptable—almost fashionable—to poke fun at that group of software engineers that call themselves "architects" and the seemingly irrelevant things they produce. Industrial thought leaders berate the uselessness of certain architects. Joel Spolsky's "Architecture Astronauts" piece is just one such example. It does not stop there; an entire development approach has grown up around a structured dislike of the architectural community. Extreme Programming (XP) practitioners proclaim architecture to be a remnant of the old waterfall-design model, and therefore should be pitched with the rest of it. Even the most gentle of agile advocates are prone to suggest that architecture is planning too far in the future, claiming that it's a waste of time and "You Aren't Gonna Need It" (YAGNI).
If this were just opinion, it would be one thing, but these critics have easy citations of example. Companies form architectural committees that become the final resting place for developers who are too tenured to fire. Big consulting firms sell the services of a high-priced architect to produce a pile of documentation and Microsoft PowerPoint slides that end up serving no purpose beyond occupying space in landfills. In fact, it's a growing meme among young developers that "architect" is Latin for "cannot code anymore."
If you are one of those of us who call themselves architects, how do you address this rather unenviable state of affairs? Are we nearing extinction? Or does architecture—and the architect—still serve a useful purpose? It's fairly safe to assume, if you are reading this article, that you are likely to believe that, yes, architecture has a place in the world, and that it's still important to software. (For the record, so do I.) But it's also clear that a great deal of confusion remains about architecture and its purpose, and it's to that end that the MSDN Architecture DevCenter and I are introducing this, the first in a series of articles that are focused on architecture in concrete terms.
In other words, welcome to Pragmatic Architecture.
Articles in this series
About the author
Ted Neward is an independent consultant who specializes in high-scale enterprise systems, working with clients who range in size from Fortune 500 corporations to small 10-person shops. He is an authority in Java and .NET technologies, particularly in the areas of Java/.NET integration (both in-process and by way of integration tools like Web services), back-end enterprise software systems, and virtual machine/execution engine plumbing.
He is the author or co-author of several books, including Effective Enterprise Java, C# in a Nutshell, SSCLI Essentials, and Server-Based Java Programming, as well as a contributor to several technology journals. Ted also is a Microsoft MVP for Architecture, BEA Technical Director, INETA speaker, Pluralsight trainer, frequent conference speaker, and a member of various JSRs. He lives in the Pacific Northwest with his wife, two sons, two cats, and eight PCs.