September 22, 2006

Role of a Software Architect

In the construction industry, the Architect understands the client needs & translates them into various blueprint drawings such that the concerned Construction team members have clarity on what they need to do.

For example, the masonry team needs to know the dimensions of various rooms, the wall thickness etc. The Electrical engg needs to know where the wires need to be drawn and concealed within the walls, the necessary switch/ plug points, the required electrical fixtures etc. The Sanitary engg needs to know where the water outlets are required and the drainage layout. Pipe thickness specs etc. The painter needs to know what color scheme is required. The carpenter needs to know the dimensions of the cupboards, shelves, Door/ window designs

All of these activities have to happen in tandem with the required sequence or co-ordination. You don’t want to remove the polished tiles in the bathroom to lay the pipes for drainage, neither do you want the electrical engineer to make slits in the newly painted walls to conceal electrical wires

Architect here is responsible for giving the detailed drawings or specs for each of the above activities and also indicating the sequence & co-ordination required. As the construction progresses the client may ask for changes, Architect here is responsible for evaluating the technical feasibility of the changes and instructing the construction team of the same.

This above description holds equally good for a software Architect.

Collecting customer Requirements & translating to a software design, Indicating the Use case scenarios for the UI Team, The Data flow and entity Relationship for the Database developer, the State Transition & object diagram for development of Middleware & business components, defining interface standards so that all of these work together seamlessly.

Just as in construction industry, here too, the software Architect is responsible for understanding the client needs & translate them into various blueprints, design specifications and drawings, such that the concerned Developers have clarity, on what they need to do, dependencies and optimum sequence of tasks.

No comments: