June 30, 2006

Software Architect - Definition

Lots of people have heard of this position/role before and some of them do not know what this position/role does in terms of reponsibilities and their role in the team hierarchy.

I first took on this role in my previous job in a small start-up company when we started to employ lots of developers. At frist, the boss decided to label all of us as Software Engineers, making just two layers of management,

The Bosses
LARGE GROUP of Software Engineers

This was well and good but basically, some of us were doing something completely different from what the Software Engineers were doing. We were primarily involved in the design of software based on some requirements, setting up standards for framework use, coding and development, tools as well as liaising with customer/boss.

The Software Engineers on the other hand, were taking the requirements and design specs, writing and testing the code out and ultimately maintaining the code after the code has been put into production as part of the post-production-support/maintenance process.

It was bad enough that we were labelled as Software Engineers but when we were leading the team, some of the slightly more experienced staff did not warrant us the respect because of the job title we got. Well, one would argue that was their respect expected or earned? That's another war story to talk about. ^_^

Anyway, the primary problem was that the job we were doing was completely different from what the Software Engineers were doing. We sat down with the boss and he thought that the job title didn't matter, but it did because our roles and responsibilites were greater than what the Software Engineer had to do. So, the boss suggested, Team Lead but thats a role and primarily, the Team Lead does something similar to what a Software Engineer did, except that the Team Lead handled additional issues regarding the members of the team and delivery of the product based on requirements accepted.

So, what does the Software Architect do?

Architects as we all know, design structures of space for us to live in. From the architect's drawings, engineers, craftsmans and builders will take the design, physically construct the building. As we know from construction practices, there are many people working on the building, from engineers, foreman to normal workers. The architect will not oversee the actual construction process but more or less with the help of engineers and other technical people, become one of the cogs in the wheel in constructing the building from drawings on a piece of paper.

A Software Architect is similar in this sense as when the application is being developed, the architect has to perform the tasks of being the liaise between the technical team and client, the technologist/evangelist, part mentor, author of many documents and part project manager in helping to manage a team of people to finish a product.

So, in short, you can say that the Software Architect will architect/design a software solution to fulfill a client's requirements. Seems simple but the responsibilties are quite heavy.

I'll get to the details of what skills are required of a Software Architect in my next article after I've digested some interesting articles I've read from books and on the Web. Needless to say, being a Software Architect does not mean having additional knowledge of hardware on top of the software technical skills acquired, as what some people may suggest. -___-

Meanwhile, chew on this link --> Worldwide Institute of Software Architects

No comments:

Post a Comment

Please feel free to add your comments. However, take note that your comments may be edited or deleted as seen fit by the author of this blog.

Take note that the author of this blog may not be held responsible for the comments which may be insensitive, vulgar or controversial.

Related Posts with Thumbnails