Agile Ajax

But Where are All the Architect Positions?

ARCHITECT, n. One who drafts a plan of your house, and plans a draft of your money.

Ambrose Bierce, The Devil's Dictionary


I'm a faculty brat and have a certain idea of what it means to be a professor. Both of my parents are Mathematicians, so I thought that they did research largely on their own and occasionally mentored graduate students on their way to earning a Ph.D. When I met my wife, she was studying with the renowned spectroscopist Takeshi Oka. To me it seemed a very different way to be a professor -- he had maybe a dozen post-docs and graduate students toiling away in labs -- it just didn't seem possible that he could also be involved with day-to-day research.

In fact he was very involved, spending time with each graduate student and post-doc, mentoring them and strongly influencing the quality and direction of the research. I've seen other professors over the years, in physics and in biochemistry, with much bigger labs, with dozens upon dozens of collaborators. Those professors are really just administrators, writing grants and managing office space and payrolls. Put a scientist in charge of a large organization and they cease being a scientist. As it turns out, I think Professor Oka had the size of his team -- a dozen -- about right. Just as in Agile software development, too large of a team becomes unwieldy and decreases productivity and quality.

So, what does this have to do with architects? Some people have asked me why we only advertise developer positions and no architect positions. First, I don't believe in title inflation. "Architect" is most times another way of saying "senior senior developer." Second, the software architect who ponders how to design applications and how they should be hooked up to an enterprise software ecosystem is a creature of the enormous corporation. I'll concede that you may need one or two of these rarefied creatures in a company of tens of thousands, but not a department of dozens. I've seen that in action. That's the sort of company that generates five year plans, runs their business like the Soviet Union did, and throws software products over the wall to more nimble acquisitions at the first opportunity.

So no, we don't hire architects. We hire developers. In a small team, there is no room for management deadwood. Everybody pays their own freight. The more senior you are, the more you get to help and coach and mentor others. Leading means enabling others to do their job and make good decisions on their own, not cutting their food and handing off work.

If you've made the transition from a hierarchical environment to an agile, self-organizing team, you know what I'm saying. You won't ever want to go back.

Technorati Tags: , ,

Comments: 9 so far

  1. Architects? Worked with a few, and they left a really bad taste in my mouth.

    There are two key difference between architects and developers: architects wear suits and nice dress shirts (sometimes even ties), and architects make $15k-20k more. The two facts are not unrelated.

    My experience with software architecture is that it’s a field for people who want to make the big bucks without learning how to program. They dispense the same advice a senior developer would, but since they make nice Visio diagrams, wear a suit, and buy gourmet pastries for the senior mangement when they make their presentation, they’re actually taken seriously.

    You’re smart to take architectural advice from the senior members of your staff. They’re the ones who have to live in the world they create. They also know the abilities of the people they work with, and hopefully can come up with an architecture that meets the project’s needs, but that the team can also work with.

    NOTE: “software architects” (the posers) should not be confused with “Software Architects”, the consulting company, who were great Java developers and fun folks to work with.

    Comment by Dave Ross, Sunday, February 3, 2008 @ 9:34 am

  2. Gotta go with Dave on this one.

    The guy with the “architect” title in our business would be referred to as “the guy who only has ideas” in any other industry.

    Companies don’t advertise “architect” and “senior senior developer” positions because they don’t want to pay the premium we command. What they end up getting is less than what they actually need, and the difference gets made up when the project goes over budget or schedule or they have to scrap the whole thing.

    Comment by Argle Bargle, Sunday, February 3, 2008 @ 11:49 am

  3. @Dave and Argle:

    I think it is relative to each demographic area, company, person, and situation.

    I am a Software Architect and I almost always act as the Lead Developer after the design phase. I hardly ever wear a suit either. I usually dress business casual: a polo shirt with my company logo and the Microsoft Gold Certified Partner logo with a pair of designer slacks or khahis. I also see Software Architech positions advertised here in my area (Tampa, FL). Currently, I mentoring and devloping on an Agile project I architected from the beginning. The project is now into it’s 17th month.

    You can find an infinite variety of companies and people in the business world. Likewise, you will also find a wide variety of Software Architects out there. I am not sure you can come up with one single stereotype which could be used to describe all Software Architects.

    Comment by Edward J. Stembler, Sunday, February 3, 2008 @ 2:58 pm

  4. I’ve worked with several teams of architects at multiple large corporations (1,000 employees to 22,000 employees). In general, I’ve been largely impressed. Architects provide “enterprise architectural planning”, necessary for chartering any kind of long term roadmap.

    Comment by Lead Developer, Sunday, February 3, 2008 @ 8:07 pm

  5. @Edward: I think you are touching on exactly the point that Dave and Argle (and Dietrich) are making. There is a trend in the industry to reward titles rather than skill sets.

    The “Software Architect” title is an excellent example of this, because there are a lot of people out there who position themselves as “Software Architects” but who don’t actually program. They don’t “live in the world they create” (as Dave very aptly put it).

    Notice that this is NOT a sweeping generalization. You, for example, do not sound like someone who belongs in this category. You are indeed a senior level developer. Thus, you are necessarily a Software Architect. (After all, Architecting Software is exactly what senior developers do so very well.) Dave and Argle are talking about the people who CALL themselves Software Architects, but are really just agreeable people who make up “designs” that sound good.

    Comment by Taylor Barstow, Sunday, February 3, 2008 @ 10:38 pm

  6.   @Taylor:

    I agree that many times the title does not match the skills, or is itself meaningless or too ambigious. However, this can be true for any work–related job titles, not just ones in the software development field.

    I’ll also concede that many times, especially in our field, titles are more of a reflection of what is en vogue at the moment. For instance, I can recall a few years back programmers wanted to be known as Software Engineers. But was there really any true Enrneering envolved in their jobs? Probably not. A true Software Engineer, in my mind, is someone with an Engineering background whom also does programming. Perhaps someone working at NASA or Lockheed Martin.

    So if titles are misleading, then perhaps we need more specific and meaningful titles? In my line of work, I design software solutions from the ground up and also participate in the implementation — many times the majority of the core implementation. Should I be considered a Software Architect, Solutions Architect, Software Solutions Guy? Or, a more simple and dubious title such as Consultant; since I have my own company and clients? I often work with multiple technologies, and cannot really use something like .NET Architect, or Java Architect. So I resort to Software Architect. These days, projects encompass a varied cornucopia of technologies and required skills. Making it virtually impossible to create a title based on a skill set.

    I agree that not all Software Architects are created equal. I have a client with over 23,000 employees world wide. And for each of their divisions they may have several Architects. They might have a few Principle Architects (a mix of a Software Architect / Technical Architect), Database Architects and even one head Software Architect for the entire company. Some of these (Software) Architects are extremely sharp guys, some deal with code and some do not, some were even promoted via the Peter Principle unfortunately.

    Nonetheless, I still believe that you should not make generalizations regarding Software Architects. There are simply too many variations to make a blanket statement. Sure some of them do not deal with actual code, but many do. I also do not know if there is a solution or better way of coming up with more pertinent titles. Can anyone think of one?

    In the past, I have sometimes wondered what it might be like if our industry were unionized. If everyone were required to be certified and assigned levels for competencies. This may seem somewhat elitist, however it could help reduce the amount of bad code out there, and help stop the market from devaluing. Almost every aspect of modern–day life relies upon on software more and more. For Businesses and Governments with mission–critical software systems, this could be a way to help guarantee their success and peace of mind. In any case, it is highly unlikely an industry paradigm shift like this will come to be anytime soon; however, it is entertaining to ponder…

    Comment by Edward J. Stembler, Monday, February 4, 2008 @ 12:48 am

  7. I too am a software architect and lead developer. I don’t wear a suit, and I work in an angile environment. I most definately still engage in active code, being responsible for probably 75% of the codebase that my team works on. My role is to ensure now that we’re well past worrying about infrastructure and are building applications that we remain honest with regard to the infrastructure, that there’s an long term vision that doesn’t get forgotten while we’re working on tight iterations. I have an understanding and overview of the entire system… because I designed it. *shrug* That’s a useful thing to have around.

    I’d be wary of the assumptions you make lest you end up becoming what you’re knocking.

    In an agile environment where there’s a long term development taking place having one or two people with an architectural viewpoint makes tight and pragmatic iterations safe…. The Architect is normally just an experienced developer who ended up actually architecting a system. Kind of obvious when you put it that way.

    Comment by Guy Murphy, Monday, February 4, 2008 @ 3:59 am

  8. But when did “programmer” become “analyst” and then “developer”?

    Comment by asdf, Monday, February 4, 2008 @ 6:02 am

  9. Agile does NOT mean code from the hip without any design or planning. That leads to chaos and giving agile a bad name.

    Architects are overseers of the design and required for any major project, period.

    A ’senior senior developer’ is not necessarily an architect. I know of several people that can code pretty much anything they want. Doesn’t mean the code is of the best design. Doesn’t mean they know how to refactor well. An architect is a frame of mind that allows projects to have good design that can be reused in other projects.

    For the record, I fall in the ‘good coder, bad architect’ category, so don’t think I’m an architect ‘on high’ trying to smite you mortals…

    Comment by Josh, Tuesday, February 5, 2008 @ 2:21 pm

Leave a comment

Powered by WP Hashcash

About Pathfinder

  • We design and build extraordinary applications for companies looking to make the next great idea a reality.
  • learn more

Topics

WordPress

Comments about this site: info@pathf.com