Welcome!

Java Authors: Pat Romanski, Elizabeth White, Trevor Parsons, Andreas Grabner, Michael Bushong

Related Topics: Java

Java: Article

Those Who Can, Code; Those Who Can't, Architect

Architects seem invincible to failure and rise within the ranks of their organizations

At the moment there seems to be an extremely unhealthy obsession in software with the concept of architecture. A colleague of mine, a recent graduate, told me he wished to become a software architect. He was drawn to the glamour of being able to come up with grandiose ideas - sweeping generalized designs, creating presentations to audiences of acronym addicts, writing esoteric academic papers, speaking at conferences attended by headless engineers on company expense accounts hungrily seeking out this year's grail, and creating e-mails with huge cc lists from people whose signature footer is more interesting than the content. I tried to re-orient him into actually doing some coding, to join a team that has a good product and keen users both of whom are pushing requirements forward, to no avail. Somehow the lure of being an architecture astronaut was too strong and I lost him to the dark side.

He'll be in good company though. I was recently called to a customer who expressed interest in a software tool I'm working on. I came armed with the latest build of the product, looking forward to the opportunity to test some ideas and concepts in front of potential users. Instead I found myself in front of the customer who had also invited a competitor in order to create a conference room product shoot out. While I had my PC with running code to show, my opponent had brought along a briefcase full of PowerPoint presentations. Their slides were impressive: good use of color, animation, and a generous splattering of buzzwords and acronyms. Despite the fact I had working code to showcase, the discussion quickly degenerated into a discussion about the fact that mine was a so-called "fat" client, in fact a pretty lean Eclipse RCP-based product, while the opposition had a "thin" client.

The truth was the opposition didn't have a thin Web-based offering; their current product was built six years ago as a desktop application that could be downloaded as an 87M applet. However, they were in the process of rewriting it all to run in a lightweight Java EE container as portlets. In other words, they had nothing. They were peddling vaporwear. Worse than that, despite the fact their company had a perfectly good product offering that I was prepared to go head-to-head with, they seemed to have given up on making it more usable and instead opted for the deep thought option: a total rewrite just to suit the whims of today's architectural fashion.

I kept wanting to take the customer's IT manager and shake him back to reality; however, he somehow got drawn into their trap and was asking me architectural questions rather than focusing on whether the product I had brought to show and tell was going to make his users more productive.

Remember the kid in the playground who knew the name of a band you didn't, or who had a new album? They were cool; they had knowledge we didn't; and whether or not it was any better didn't matter, it was new and shiny and we had to have it too. If we did, then we would also be in possession of knowledge that others didn't own, and we in turn could be the cool kid to someone else.

This kind of atavistic worshipping of the obscure and unknown piece of knowledge is the personality disorder that plagues the software industry and is somehow encouraged and admired by architects who are never satisfied with what they have available to them to build software. They're not innovators or research pioneers pushing knowledge forward though - such people are hugely important as they invent the future and redefine technology boundaries. Instead these silver-bullet junkies just latch onto ideas and fads for the sake of it, because if nothing else it makes them appear ahead of the curve and in possession of secret facts and information. As soon as a project gets into trouble, they can launch these facts at programmers and proclaim, "Aha, it's because you're not using BOJOX and NADA 2.0 combined with YML that you have a bug" in front of the nervous manager who wants nothing more than to buy more time by telling his reporting chain that he needs a year to do a total rewrite. During this time, because nothing ships, nothing can go wrong and, hopefully, the stock price will have grown to the point the manager can cash in his options in time to go be a coward somewhere else.

Meanwhile, the architects seem invincible to failure and rise within the ranks of their organizations, ordering fresh business cards each year with the words "architect," "senior" or, for the power blowhards, "distinguished" in the title. They are drawn to the tar pit of attending and creating presentations, or joining conference calls with fellow architects who showboat their knowledge of obscure standards specifications or bleeding-edge research projects. They'll have copies of Christopher Alexander books in their office and spend hours googling for obtuse and arcane quotations to lace their presentations with and gain kudos from fellow fools.

When confronted by such people, recant the following mantra:

Code ships,
code runs,
code helps users,
get their job done.

Remind any architects in your path that presentation charts, e-mails, project plans, line-items spreadsheets and so forth, are all there to help the code ship on time and to spec. The goal of everyone on a project should be to spend as little time as possible on tasks that distract from the job of creating quality, tested, and shippable code. Please architects, please understand this, respect this, and quietly stay out of the way of those good folk who prefer to spend their day working with an IDE writing code rather than composing e-mails.

More Stories By Joe Winchester

Joe Winchester, Editor-in-Chief of Java Developer's Journal, was formerly JDJ's longtime Desktop Technologies Editor and is a software developer working on development tools for IBM in Hursley, UK.

Comments (32) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
David Tomlinson 06/20/07 05:28:32 PM EDT

In regards to what Todd Little said, most companies, through their outsourcing of high skill IT functions to big 5/4/3 consulting companies and offshoring of the coding activities to Indian (and other) consulting companies, are in dire need of all forms of IT skill sets, not just architects. The C?O positions have sold you all out to cut a few bucks off the bottom line. The people that are left are often the b*llsh*t artists that know all the buzzwords, and the glorified middle managers that are left to fill the architect positions (which used to be highly skilled positions).

That's one of the reasons I've been so successful as an application/system/network/data/security architect....I work for a consulting company. Eventually, all the C?Os realize they need help and call us. :)

Adam OGorman 06/20/07 04:29:16 PM EDT

Pure Software Architecture is one thing, Application Architecture is another. I wonder if the original authors comments were intended to also include Network Architects, Infrastructure Architects, Security Architects, Solution Architects, Operational Architects, Data Architects, Systems Architects, Enterprise Architects, Information Architects or Integration Architects.... and all the other architectural skills that may be required to successfully deliver large complex projects to clients.

RajKuruganti@4Circles 06/20/07 04:06:33 PM EDT

I agree with the author. I have recently worked on a major project where the System Architect knew enough buzz words - BPEL, ESB, etc.. and wanted to use everything available for a DB of 200K records which was running on SQL Server.

The company spent $10Million and laid off everyone and sold the company. The architect has a bigger title and better pay.

The rest of us are still peeved. It is time that WE EDUCATE THE MANAGERS THRU WEB OR SPAM.

Todd Little 06/18/07 06:11:13 PM EDT

Interesting story, although what it has to do with architecture is totally beyond me. It sounds like you simply got out sold by some hucksters that knew how to catch and hold the customers attention. Welcome to the real world.

It seems the real issue here is what constitutes a "software architect"? My experience tells me that in many organizations, a software architect is someone that can dictate standards that must be adhered to. Personally I don't think that is architecture, at least not that main part of architecture. This is especially true when you get into mandating that certain tools, products, etc., are to be used. Maybe that is "systems architecture" but it certainly isn't "application architecture" which is what I think most companies are in dire needs of.

Without going into a long post about architecture, may I suggest readers look at some of the work done by Michael Hammer. Although his focus years ago was on re-engineering, he had a lot of great thoughts on what was basically software architecture.

I personally subscribe to the notion that in application architecture, architecture is the set of functions or features that remains relatively constant over time. Done well it can allow applications to be built that survive changes in requirements, changes in platforms, changes in technology, etc. Done poorly architecture simply becomes standards, functional specifications, or design documents.

So is there an unhealthy "obsession" with the concept of architecture? I believe absolutely not. Is there an unhealthy view of what architecture is and what value it provides to an organization? Absolutely.

Fat Bold Cyclop 06/14/07 01:29:57 AM EDT

Now You did it! Now my boss thinks he doesn't need a good and working software. Now he thinks that INSTEAD he needs more architects to sell powerpoint presentations! ;-)

Dewayne Hafenstein 05/21/07 11:19:16 PM EDT

I agree somewhat that there are a great too many people calling themselves architects that wouldn't know a domain pattern from a transaction script! However, I take a great deal of offense at the broad generalizations that you are making. Software architects serve the same purpose as a building architect, and are just as important. Just as a building architect takes vauge ideas, concepts, and desires from a client and transforms them into a vision, a software architect has to do the same. We often work with the end users, product management, executive management, developers, QA, training, support, marketing, and so forth. We facilitate the process of building a successful product, and we define it in terms that the developers, QA testers, documentation, and customer support teams can consume and understand in the least ambiguous and most cost-effective ways. In order to perform this job, you MUST understand the underlying technologies, know what is possible and what is not, but more importantly, understand the consequences of your decisions. The process of software design, or any design for that matter, is never black and white. There are always trade-offs. In large, complex products, the developers are often ill-equiped to make these decisions.

I take serious offense at your title, because to me a software architect, a truely good one, has to first be a good programmer. Notice I said programmer, not coder. To me a programmer is someone that can devise algorithms to solve problems. A coder is someone that can express that algorithm in a programming language. Often they are one in the same, but many times they are not. A good architect has to have a much broader understanding than a programmer typically, as well as understanding of how to express the concepts of the design.

The audience that an architect deals with varies widely. We have to be able to describe the concepts and the end product before it is built to th customers, to management, and to non-technical audiences. We then have to turn around and explain the same things to a technical audience in much greater detail. We use tools such as UML and ERD (as well as others) to explain these concepts. We have to deal with higher levels of abstraction, such as deployment of the application, affects on performance by using different approaches to application structure, scalability issues, security, etc. We often have to wade through piles of regulatory documents and legal materials if we are working with products that deal with sensitive information (and most do these days). We also build the prototypes to ensure that the risky areas of the design will work correctly. In many cases, we roll up our sleves and develop some parts of the application. Case in point, the product I am building now has a good amount of code in it that I have written, as well as everyone on my team. If we do our jobs right, the result is an unambiguous design that will be easier to build, test, and maintain and with less cost.

No, I disagree with your assumption, and I think you are way off target. I think that you need to re-think your assumptions. The whole software process needs a lot of contributors, and the mix varies widely from one project to another. You, just as the "architects" that you belittle, have missed the mark.

David Tomlinson 04/12/07 07:34:41 PM EDT

Your rant is against software architects or silver bullet addicts, or competitors in the software space or .... what?

1) Being a software architect is a matter of experience and aptitude. There ARE too many people calling themselves architects who really aren't. But there are many qualified and even superior software development people out there who ARE architects. AND good ones at that.

2) Silver bullet addicts are everywhere! CIOs, programmers, managers, clients. I've got a client who thinks that SOA is the silver bullet that will save his company. I've got a developer that thinks that Ruby or Rails or Groovy is so cool that we need to use it on our current J2EE project. I've had CIOs that think the WebSphere (apparently, the name alone) will save their jobs.

3) Software vendors have been hyping vaporware since I started in the mid-70's. IBM was a major violator back then and they still are!

4) Lazy managers and CIOs who should be doing vision and management, love to tinker at the buzzword level. Just smack em.

5) It sounds like you didn't get your nap today. You rag on about a half dozen subjects and conclude that the life form 'architects' are to blame. You paraphrase "Those that can...do, those that can't...teach." to make it seem that all architects are useless, do nothing white paper architects seeking their next conference at the Moscone Center.

6) I an a Senior Solutions Architect for a national consulting company, and a Director in their Solutions Architecture Chicago office. I began 30 years ago writing assembler on mainframes and mini computers, working in C and C++ and Java on Unix and Windows for nearly 20 years. I've worked on very large projects and very small projects. I do architectural specification, design and J2EE development on a daily basis.

You do working architects a disservice by your article. Sure white paper architects are to be despised. Sure, developers with 2 1/2 years of development are NOT architects, despite what their Monster resume says. Sure, many of the presenters at most of the conferences you might go to today, and a significant majority of the attendees that attend these conferences with "Grand Architectural Poobah" on their badge are NOT architects, but it doesn't mean that much of everything you wrote wasn't just wrong and maybe even mean-spirited.

So take a nap, raise your blood sugar and post a retraction or an apology. Do your karma some good.

Peace Out,

David Tomlinson

James White 04/06/07 01:06:04 PM EDT

I have been reading the list of comments and interestingly enough, I am taking a class on Software Architecture. A point the instructor (a long time Software Architect and Coder) made was that no one questions an architect for a construction project (e.g. building, bridge, etc.), or a mechnical engineering project to the same degree that a software architect is questioned. Perhaps because there is a certain level of rigor and standard that customers and people in general have come to accept when the construction or mechanical architect speaks. People tend to believe that they can live with bad software (some may even expect it to be bad to a certain degree), where as the consequences are far more grave if a bridge collapses or a machine (e.g. a car engine) locks up and becomes inoperable. Perhaps because of the fluid nature of software development people expect too much too fast. Unfortunately, it is thinking like the author of this article that lends into the misconception about Software Architecture. I am not an architect, but I hope to be one day. Coders in the U.S. (if that is all they can do well) are easy to replaced with coders from other countries. A coder must develop a sense of the non-technical aspects (i.e. business goals and strategies, sales, marketing, finance, etc.) of the business to become a better developer. Otherwise, the coder is only cranking out exactly what the user requests (at best), and how many users know exactly what they want? Furthermore, when a developer becomes adept enough at working with business people and can see the big picture from both a technical and business perspect, they eventually become architects (or something very similar). So, with that in mind aren't most technically inclined people striving for what the author of this article disdains so much?

Just my Opinon.

Jit 04/05/07 06:21:32 PM EDT

Humm interesting. Why did architect in IT come into being. Or ... better so, why did architect came into being anywhere?

Yes ... a programmer does gets the job done. But, architect takes the image from the user's head and puts it into a form that can not only be coded and perform optimally through the life of the application but also include the morphing of the application.

Further, how would an eterprise be architected by coders?

It is like saying carpenters do the actual work while constructing a home ... what's the need of an architect?

I think, when architecture office and developers work together then ... well things turn out OK.

Adam OGorman 03/21/07 10:31:10 AM EDT

There has always been an interest in SW architecture - largely because applications that are developed without it usually fail in the long run. You make some valid points; we have all probably encountered architects that contribute little to (or even damage) a project. However there are plenty of excellent architects out there, ensuring that the overall solution is well architected, meets the business requirements and can operate in the target environment.

There are also plenty of developers out there that contribute little to the team, they are dismissive of those that do not grasp the technical details of whatever their specialisation is, are too technology focused and have little or no interest in the actual end users requirements or the business problem that the project is tackling.

A little humility goes a long way - for a project to be successful you need a good sales team, business consultants, developers, architects, test engineers and strong management, and for all of them to respect the contribution of the others - even if they don't understand it.

Kirk 03/20/07 01:14:04 PM EDT

I am an architect who writes code. An architect who cannot write effective and efficient code is like the building architect who designed my first house. He understood the basics of home building and distributing loads, but he ran the joists thinking he was doing the HVAC guy a favor and instead increased the cost of the house by using glulams and joists 12 inches on center. The HVAC guy ran his ductwork in the crawl space and the attic, not even using the long runs between the joists of the second floor.

Architects need to stay current by actually coding their designs once in while.

Joe's "architect" sounded more like a marketing architect; as they say in Texas "All hat, no cattle".

vikas 03/20/07 08:37:53 AM EDT

i do agree that this happens in realworld.

but i came across the people who are perfect architect and they have left coding some years back. But they know if they are shown the design where the problem will come.

i will call an architect as a programmer with view to details and person with more analytical skills

Chris 03/19/07 05:17:08 AM EDT

As one of the targets of Joe's spleen-venting rhetoric I can only marvel at his singular lack of knowledge about what "architecture" actually is. His example of a brush with a software salesperson (who patently was not an IT architect) re-inforces the importance for clients understanding the place of the different technologies in their environment, rather than an obsession with buzzwords and techno-babble. I'm not sure why Joe feels so aggrieved - but his unbalanced, inaccurate and narrow minded rant merely presents a perspective that he is where he should be - tucked away from customers in the ivory echelons of the labs in Hursley.

Skip Cashwell 03/18/07 08:39:31 AM EDT

One thing you got right - your "friend", the just graduated seeker of the lime-light, really does need to learn to code! Most of the other hypotheses you propose are immature, uninformed and just plain dumb. My suggestion is that you do some research at The Open Group site: there you will find what an IT Architect is and the intensive requirements to achieve that credential.

Peter Thomas 03/18/07 04:57:59 AM EDT

One more reply in favor of the author of the article :)

It's a rant after all but the point stands. There are indeed the good Architects, but let me rant about the bad ones for a moment.

These kinds of Architects exist and I've seen them do huge damage to projects. These are the guys who would create the powerpoint slides that define the architecture and then leave the hapless developers to do the rest. The Architect would be unavailable to address any issues that come up during development because of course, he would be making the slides for another project. Most likely the Architect would not have worked hands-on on the technologies involved and this is the biggest problem.

I see a lot of people similarly attracted to SOA nowadays.

JC 03/14/07 05:47:33 PM EDT

This is a silly article. Let's take the word "architect" from it's original sense. Do you think a carpenter (coder) can build a house without an architect? He probably can, but it might look like a doghouse instead of house. This is usually why we need architects. Get the point?

Nativeson 03/14/07 03:25:23 PM EDT

By far the best article I have read in quite sometime. A voice of sanity in a completely insane buzzword world.

Sunit Katkar 03/14/07 02:50:58 PM EDT

A very good article in a long time!! I completely agree with the author. Right now there is so much hype about Web2.0 and Ajax. It is supposed to solve world hunger if you believe some 'gurus'. What is Ajax? Just a Javascript call! The author forgot to mention that there are 'review' junkies too in this cadre who believe that the more the reviews, the more 'refined' the 'architecture'!

Great article!!

- Sunit

Sudhir 03/13/07 02:03:48 PM EDT

In my view an architect is the one who has at one point of his life been through the code monkey cycle and shields the development team from erratic dreams of the CEO. It makes sense to be an architect in the long run otherwise whats the benefit of gaining all that experience you have. I have usually come across architects who are very developer friendly and insist on coding to suit the project/timeline instead of adding hi-fi technologies to make the project cool and this is very contrary from your observation

Richard Ouimet 03/12/07 11:48:21 PM EDT

Perhaps you were unable to convince your friend because he had read some of your writing? Just how does someone, architect or otherwise, "creating presentations to audiences".

Ron 03/12/07 09:18:54 PM EDT

I think you are talking about marketing guys, not architects. True architects started as developers, but have a knack for the bigger picture, such as how to structure data, how to handle complex systems integration, and how to assemble infrastructure. Code does not run in a vacuum, and a great number of expensive problems have been caused by developers who wrote "great code" but had no sense of context, no ability to see the bigger picture and account for dependencies and constraints.

fury 03/12/07 11:16:24 AM EDT

Sounds like a case of sour grapes. The fact that you can't clinch the deal spells something really wrong....not with the client, the architect, but you. I'm not saying you don't have a good product, but the fact is you can't communicate why your working product is better than someone else's vapourware. If you know your stuff, why can't you counter the arguments? precisely you because you went to the meeting not as prepared as the competitor... you are focused on selling your product....not solving the client's problem. At least the vapourware Team realised their legacy product won't solve the client's problems well....they being smart, they proposed a new system....no shame in that. Think of why you lost the contract...not whine about losing the contract would do you a lot of good. Every top professional programmer or architect knows that you can't run projects, especially large projects well without good communications...and marketing is part of that.

none 03/12/07 04:50:57 AM EDT

Well....I understand your point that the product quality would help your users more than architure mumbo jumbo....but the sad fact is that these stuff sells. And because these stuff sells....these people will continue to get paid more. If I were you, I'll learnt more of the marketing jargon so that when I sell my software, can I explain why those are just jargons and my working software rocks...No use having great ideas if you can't communicate and sell it right?

Real Architect 03/10/07 05:45:13 PM EST

Well code monkey's don't get the fact that without a vision or promotion or business aspect to any software their code is just a bunch of bytes that ends up on some dusty hard disk in a thrash dump. Other commentors do a good job of addressing the fallacies expoused. Keep on coding you don't need to do better.

wtranmer 03/09/07 07:35:14 PM EST

Congratulations. You have written a scathing epigraph to neatly bundle and package an entire profession into a tidy kettle all while managing to paint your own pot black. The article is sickeningly self-aggrandizing, paraphrased as "coders are good and architects are bad, and I am a coder by the way." Go back to your choir because I am sure they miss your sermons.
Your failure in the presented sales scenario is not due to over-preening managers looking for the latest fad; it is due to your failure to provide what the client wanted. It does not matter what the client's reasons are, it only matters that you could not deliver. Afterall, in the end it is not the results of your quality assurance that makes code "shippable" - it is that there is someone willing to receive it. That is business, and that is why you should hire an architect - to complement your competence in front of the keyboard by giving a competent performance in front of the prospect.

Frank Krasicki 03/09/07 02:32:22 PM EST

I have been a software engineer who has spent over twenty-five years developing state of the art solutions for clients and in recent years I have served as an architect in many cases.

I share some empathy for your laments on the state of the art in software architecture. In far too many instances it has become a career salary stepping stone for programmers whose interest is not to add vision and clarity to systems but to add to their paychecks. As such it has become a avocation that suffers from the misappropriation of its mission.

However valuable running code is, your argument falls flat because you insist that whatever you have coded merely needs to adequately scratch an enterprise itch. And that's where I disagree with you.

Organizations too often, and in fits of maddening immediate gratification pathologies, buy code as a something that fits a loud need. And these companies wind up with hundreds of running code solutions not a one of which cares to integrate with another.

Architects, to the degree they can, attempt to be sure your running code fits into a grander scheme of things and that concept is not so much about executable code as integrable code.

This is not to say that what passes as enterprise architecture groups sufficiently satisfy this charge, merely that they are supposed to.

Frank Krasicki

Cristiano Ronaldo 03/09/07 01:18:57 PM EST

I completely agree with all this. However, the reality of the situation is that coders are considered just "implementation engineers". And it's the architects who catch the eye of the powers that be.
The other side of it is: if you're a straight coder, your job can easily be outsourced/offshored. Let's face it, folks in India can grok EJB3/JavaEE/Spring too. But it's much harder to offshore an architect's job.

Sad, but true for coders (who really have all the deep knowledge).

bevier 03/09/07 06:23:24 AM EST

ok, now a reply in favor of you ;-)

the previous comments are not without truth, but that doesn't contradict you. The problem of the Great Pretenders cannot be denied...

alas, i guess, it is not only about architects and coders - it is a general mismatch between planners and doers, doesn't matter, if you build software or engines. And yes, it is more about psychology than about products, because success is seductive and it is much easier to look successful than to be it - so Great Pretenders sell better than Great Engineers. Shiny vaporware will always impress more than a boring prototype, i guess, it's about the principle "hope", more stimulated by great promises - Law of Sales...

James White 03/08/07 06:55:49 PM EST

Funny article. I must say that I am among those who aspire to become an architect, not to impress fellow architects and managers with obsure knowledge, but to lead efforts in developing better applications. Any way you can become an architect w/o becoming what you have described in your article, or is becoming an architect the way to lose your development skills?

Dave Bernstein 03/08/07 05:07:01 PM EST

So you were incapable of differentiating your product from vaporware, but the fault for that was your prospect's unhealthy obession with architecture. You get extra credit for writing your excuse up as an article, but doing so makes it no less lame.

Dave

Charlie Alfred 03/08/07 02:14:13 PM EST

The title and premise of this article are guilty of the very same "smoke" that the author criticizes architects for. While I fully understand the value of provocative headlines to catch the reader's eye (amidst a flood of other text competiting for attention), this one is truly over the top.

Fallacy #1: Architects can't code (or can't code well)

This is BS. All old people don't have Alzehimers and all homeless people aren't lazy unemployed bums. I personally know dozens of architects who can and do code better than anyone else on their development team.

Fallacy #2: Working code is good because it works

This is more BS. Code is good because:

o it works in all the contexts and situations it is supposed to work in

o it is designed in such a way that it can adapt flexibly to different contexts

o it handles error conditions cleanly and safely

o it is easy to use, and provides the response time the user needs,

o it was designed with a good separation of concerns, so that it doesn't break miserably when the first change is made to handle something that wasn't anticipated by the original author.

What's ironic is that virtually every one of these considerations are things that *real* architects sweat every day. By contrast, I have worked with customers who have shipping products in the field that work (semiconductor control tools, in this case) that have horrible code - abuse of global variables, 3000 line methods, etc.

So Joe, do us all a small favor. Get off your soapbox. Travel around a little more, and talk to some real architects. Not the ones who pretend to be architects because they memorize a few buzz words and draw some pretty box and line diagrams.

Regards,
Charlie Alfred

SOA News 03/08/07 11:50:56 AM EST

At the moment there seems to be an extremely unhealthy obsession in software with the concept of architecture. A colleague of mine, a recent graduate, told me he wished to become a software architect. He was drawn to the glamour of being able to come up with grandiose ideas - sweeping generalized designs, creating presentations to audiences of acronym addicts, writing esoteric academic papers, speaking at conferences attended by headless engineers on company expense accounts hungrily seeking out this year's grail, and creating e-mails with huge cc lists from people whose signature footer is more interesting than the content.