Before you ask, yes, the title is inspired by this classic scene from Office Space. Not particularly a useful post, but what is?
Last night my wife was doing some paperwork for a new house loan and threw a very challenging question at me: “Jeremy, what’s your title? Can I say that you’re a Software Architect?” I honestly didn’t know how to answer the question and I hemmed and hawed until my gave up on me in disgust. I’ve thought about it off and on for a day since and I still can’t answer the question. I really don’t feel like any one title expresses what I am with any accuracy, and there’s also the issue that “I’m 21 flavors and then some.” I code. I do design. I set up the continuous integration server and write build and deployment scripts. I’m involved with the test automation efforts. I take part in iteration management. I’m the primary guy doing architecture most of the time. I don’t think anything at all about doing all of those things because it’s just the things you need to do to make software. Since “guy who makes software” doesn’t particularly play well on either a resume or a mortgage application, I thought I’d try some of the possibilities on for size. This is further complicated with the tension between what *I* and my peers think is valuable versus what management and the outside world feels is valuable. It’s also complicated by a reluctance on my part to claim certain titles, even though individuals of much less experience and ability than me are happily running around billing healthy rates claiming just those titles.
- Senior Manager – This is my official HR title. I can’t say this with a straight face and it says absolutely nothing about what I bring to the table on a given software project. The only thing this indicates is that my billing rate is going to be higher than the guys who are merely “Managers.” Being strictly a people manager or yet another faceless middle manager is a fate I’d just as soon avoid.
- Programmer – While I insist on coding, and coding skills are a must for whatever it is that I am supposed to be, this title carries a hugely negative connotation as just a code monkey. Just read the consternation over the title at JustAProgrammer. Same thing with the title “Developer.” You simply don’t garner much respect for being a programmer or developer.
- Architect – We might as well start this unending argument up again. At one time my career goal was to advance from being just a developer to being a full-fledged architect. I have even worn this title in the past, but it didn’t fit well. Or I should more properly say that the job as defined by my management did not fit what I actually wanted to do.
Architectural skills are an absolute must in any organization or team, but I’m extremely dubious of the value of separating any technical decision maker from the actual technical work. Coding, design, and architecture are so interrelated that it just doesn’t seem wise to separate these activities into different people. I really don’t want to be saddled with coders who don’t know anything about good design principles or stuck with a non-coding architect that has no skin exposed to the real code. I wrote a post over two years ago on the question of Software Architects called Architect: Person, Role, or Useless Appendage?. Other than a greater appreciation for the value of continuous design, my opinions about being an architect haven’t changed in the 2+ years. I am simply not willing to believe that any person can properly guide the conceptual integrity of a design from concept to finished product without being an integral part of the team doing the work, and the very term “Architect” seems to connote an aloofness from the rest of the team. There’s a definite bias in much of the software development world against being “JustAProgrammer,” but I think it’s just as bad to be “OnlyAnArchitect” as well.
My other problem with trying to call myself an architect is that no three people in the entire world agree on what an architect really is. I’m creating my own taxonomy of architect titles here:
- Solutions Architect – I smirk every time I hear this because a former employer used this title for business analysts. I spent some time around the Solution Architect MVP’s at the MVP summit last May and frankly walked away unimpressed. It’s not a bad title if I could just get over the cynicism. If you came into this title without any prior conceptions the idea of architecting a solution is appealing. Anyway, I’m not going to use this title.
- Enterprise Architect – I’ve gotten involved with this before, and it’s an interesting sideline in larger enterprises. I don’t think it’s nearly as fulfilling to me as actually building solutions though. Just to generate some hate mail, the definition of the role of an enterprise architect that I see at places like James McGovern’s blog puts more focus on business process engineering and IT strategy in general and analysis than technology. Just to really irk somebody out there, I think an Enterprise Architect is just a fancier title for what used to be called Systems Analysts. I’m definitely not an Enterprise Architect, but I’m not disparaging them either. They’re just different critters from me.
- Integration Architect – I haven’t been involved with any kind of large scale integration work in about 5 years. I look at WCF and see lots of better mechanics for the systems I was building 5 years ago, but not much advantage for the work I do today. I’m making a distinction here because many of the people I interact with that carry an Architect title seem to me just to be experts in systems integration. Again, it’s a very valuable skill in a larger enterprise, but don’t mistake expertise with WS-* or SOA strategy with expertise with the stuff going on behind a WSDL contract. A few people (Sam & Udi come to mind) are strong in both arenas, but most of us are on one side or the other of the WSDL line. The challenge that I’ve faced sometimes is that the integration architects often have more political power and can ram architectures down your throat that do a great deal of harm to the application architecture. I’d like to do more integration and connected system work someday, but I’m definitely not an integration architect.
- Systems Architect – This was my actual title about five years ago. I hated it. I wasn’t allowed to code and didn’t really have any impact on design or the enterprise architecture. I went to meetings and made powerpoints while plotting a move to a different company. I don’t know what a Systems Architect is really supposed to be. I’m under the impression that it’s terminology from RUP, but I’ve never researched it. Definitely not for me.
- Application Architect – I’m only making a distinction here from integration architect because I’ve met very few people who really do both. If anything, I’m an application architect. If the client wants me to be an architect, I’ll happily call myself a Software Architect. Likewise, for comparisons of salary I’ll identify myself as a Software Architect. I won’t internalize that title because there’s so much backlash against architects in the Agile camp. I was even put down by an XP project manager one time as an architect (far nicer than the things I said about him though).
- The Shade Tree Developer – Only people from the rural Midwest or South are going to understand the cultural reference, and they’ll only snort. If you get the reference it simply points out the fact that you might not be a blueblood. There’s a bit of an explanation for the term in my little bio.
- Coding Gorilla – As opposed to being a CodeMonkey. One of the developers at my client started calling me this one day when he was introducing a new team member to me. By far and away my favorite title. Not quite usable on resumes or loan applications though.
- Software Engineer – As much oxygen as serious minded guys like Steve McConnell expend trying to make software development to be just another branch of engineering, I think we’re a long way off. I’ve been a real engineer and I know what that feels like (predictable, controlled, and boring). There’s plenty of lessons we can draw up from real engineering, but it’s still more craft than engineering to me.
- Software Craftsman – My preferred title truth be told. To me this captures the essence of what I want to be and my own self image. My wife rolled her eyes when I said “Craftsman,” so its probably out too.
- Coach – I hope this title fits, and I think I’m completely ready to step into this role. I’ve had very few chances to do this but this is where I’m hoping to move my career in the future. I’m a little iffy about claiming this on a resume and its worthless on a bank load application.
So there you have it, about a dozen different choices, none of which really work for me. I’d say that kind of bothers me, but since I’d rather work for a smaller company anyway, I’m hoping my permanent title is just “Jeremy.” Oh, and by the way, I settled for just “Software Consultant.”
So, does the title actually matter? What do you thing? And by the way, have a happy Labor Day tomorrow for those of us in the US (I plan to do nothing but take my son to the park).