Friday, October 07, 2005

Talking about software company structures – Part 3

Let’s discuss about the role of an Architect today.

The Architect role has overall responsibility for the software architecture and infrastructure architecture in a small scaled company. The responsibilities include:
  • Identifying and documenting the architecturally significant aspects of the system, including use case, design, implementation, and deployment "views" of the system.
  • Driving the major technical decisions taken for defining the architecture including providing rationale for these decisions, balancing the concerns of the various stakeholders, driving down technical risks, and ensuring that decisions are effectively communicated, validated, and adhered to.
  • Defining the engineering guidelines for the projects. Reviewing the detail design of the system done by leads and engineers.

It is evident that an Architect must possess maturity, vision, and a depth of experience that allows for grasping issues quickly and making educated, critical judgment in the absence of complete information. He/She should be academically qualified and should have in depth knowledge of technologies used in the company and tools which are used for modeling and defining the architecture. In an ideal situating an Architect should have at least 6~8 years of industry experience functioning on all previously discussed designations and roles.

The role of Architect also could be expanded in to three designations as discussed with relatively to the Lead and Engineer. The designation would be an indicative of the Architect’s experience, maturity and competency.

I will talk about the Project Manager role next before coming up with a formula of density, at each role, to assemble a small scaled company.