Saturday, May 20, 2006

The Architect

My earliest memories were filled with being able to design and build things. When I was about eight or nine I took a bunch of scrap wood and built a bridge in my grandparents backyard in Odessa, Texas. I always knew I wanted to be an Architect. But apparently I didn't understand back then exactly what type I wanted to be.

When I was growing up I took all the drafting and building classes I could. But then I was side-tracked for several years chasing art, which is still a passion of mine. But somehow I got into programming. Over the years I have found that I am rather good at it. I have a very logical mind. I have always had a deep interest in tearing things apart and discovering how they work. As a software developer, I get to build things. As a Software Architect I would get to design entire systems.

A Software Architect and a Building Architect share quite a few similarities. You are responsible for the entire project. It's success, or failure, relies on how good your design is. You must manage a throng of people and make sure that your plan is carried out to the fullest. You must be well read and well practiced. You must understand the latest techniques in your trade, better than anyone else around you.

So how can I get there? I'm already on my way. It's been, and will continue to be, a long and difficult journey. There are projects that I have worked on that have consumed over one hundred hours per week of my time. There have been times when I was afraid I would crack under the tremendous pressure.

Several years ago I was responsible for converting my companies entire suite of web applications from Tango to Active Server Pages, two completely different technologies. It was a more difficult task because of the fact that I was not brought into the project until the very last moment. I was given two months to do so, which was impossible. I feverishly worked around the clock while my very pregnant wife sat at home by herself in a town three hundred miles away from her family. There was a two week period toward the end where I did not see her at all. Not because she had gone somewhere else, but because I would work until long after she had gone to bed, and then get up long before she would. She, of course, was furious with me. So the launch deadline came and everyone in the company was very excited about it. Our web site had five thousand dedicated daily users from around the world. Our site would now support five languages. And it would be more performant than ever before. We had a lot riding on it. I had a lot riding on it. So, when the night came we were to launch I had the VP of Marketing in my office as well as my boss who was the Director of IT. There were also ten others waiting in my office, champaign in hand. We launched, everything broke. Ouch. I spent the next two sleepless days fixing everything, and it all ended up fine. But can you imagine the stress.

So in my career I have often encountered several instances of stress like that. But what I learned over the years is that you benefit greatly by having an architect on the project. An architect could have dealt with marketing and let them know that they were wrong in not letting me know ahead of time. He could have designed the bugs out of my systems before I coded them. That's what I want to be some day.

So, what are my next steps? What does it take to be an architect? There are two paths, both of which take a tremendous amount of time. You can either go the scholastic route, earning your Masters or PhD in Computer Science. You then still have to work in the field, first as a developer then working your way up. Or you can choose the path that I inadvertently have. You step into the field and work your way through. You do all the jobs that no one else can or will and you put in your hours. You take your lumps and learn from them.

My current boss has been a Software Architect for many years. He's been in software development for over twenty five years. He told me that I was on the cusp of being an architect. I just had a few things to work on, Most of which are my project management skills. Microsoft has an architecture program which I want to get into. But the requirements are that you be in software development for at least ten years. You must also be in a valid architecture role for at least three years. And you must have a certified architect nominate you. After your nomination you must write a thesis paper and defend it before a panel of ten other architects in a week long process in Redman, Washington. You must also pass numerous tests and hold several certifications. You must also have published several papers in industry leading publications. Like I said, it's a long and difficult journey. But one worth doing.

So what do I have left? Well, I have been in software development for eight years. I have no certifications, although I have ordered a set of training material to prepare my slept for the first round of exams and certifications. I have a software architect, in my boss, that is training me for an architect role. Just a few more years.

No comments: