Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was just curious to know about how to become a good technical architect Or what are the things makes a Developer good architect. Please share your insights and articles.

share|improve this question

5 Answers 5

It depends on how you define the role.

Some organizations define it as the person who designs the overall solution to a problem or set of problems. That role needs someone with a lot of design and programming experience who can get up to speed on new things and has an interest in keeping up on new tech and new challenges from the business side of things.

Other organization define it as the person who identifies new opportunities or builds the road map to the future state. This version is much more powerful, but also much more dangerous. You need all the requirements above, but you also need a fairly intimate level of knowledge of how the work actually happens and all the little bits that are never documented that human reason, timing, current nature of the clients, etc. takes care of for you. These people almost never are successful unless they come from within the organization or a nearly identical situation or are given months or years to familiarize themselves with the workings of the company.

A developer with a reasonable variety and length of experience can do the first, but only a developer with the right specific industry knowledge is likely to do well in a reasonable amount of time at the latter.

IMHO in both cases it helps to be a developer who is more interested in practical problem solving than theoretical perfection. If you find yourself uncomfortable with making ugly compromises when needed you will likely not enjoy this role.

share|improve this answer

IMHO, a good architect:

  • Can be open minded about platform / language / technology - selecting the best mix for the project (and not the current fad).
  • Takes into account the internal and external constraints on a project
  • Designs a solution which meets the customers current requirements (or their perceived requirements)
  • Considers possible future requirements

The sign of a good architect is a project that is a pleasure to work on months or years later.

share|improve this answer

From Wikipedia :

Software architect is a general term with many accepted definitions, which refers to a broad range of roles.

I think the moment you start designing a software before-hand, you're an architect. You try to organize things to remove complexity before coding anything. The main goal of an architect is quality in its broad sense. So if you want to be a good architect you have to know what quality is. Here are a few starting points in quality :

  • Availability
  • Maintainability
  • Performance
  • Testability
  • Usability
  • Security

The goal of an architect is to clearly define what the customer expects from the software in terms of quality, and design a solution that answers to every quality requirements expressed.

There are ways to formally express quality attributes. Read Software Architecture in Practice by Bass, Clement and Kazman. They cleary define architecture, terms and associated practices.

share|improve this answer

An technical architect is a very broad term, because today we have a lot of definitions given the roles and responsabilities.

Right now I think of the usual types of architects:

  1. A Systems Architect
  2. A Software Architect
  3. A Infrastructure Architect.
  4. And so on...

But even when every type has a different set of goals and products, all of them has commons goals on the architecture definition, that are:

  • Define a set of structures that defines to a given detail how a software solution is going to be, work and interact in a given context.
  • Define how the construction of the solution is going to be structured. This sounds like a Program Manager role, but in reality, an Architect defines the components of a solution and propose the order of construction, the tools and the key objectives.
  • Simplify the work to be done by the development/infraestructure/execution team. An development/infraestructure/execution that makes the development team scream and run away is not a good architecture.

Given that ground base, I think that the things necesary to become a "good" architect are the ones that maximizes the results of an architect.

These things are the "hard" (technical) and the "soft" (personal) skills that every architect must have.

On the hard skill side, a "good" architect must have:

  1. Knowlegde about software design practices
  2. Understanding of Code Patterns, Software Patterns
  3. Experience on the Technical Tools (Programming Languages, Infraestructure Skills, etc)
  4. Knowlegde on sotfware development methodologies.

On the soft skill side, a "good" architect must have:

  1. Good verbal skills
  2. Leadership skills
  3. Capacity to explain the design
  4. Capacity to work as a group.

There are a lot more of skills on either side, these set is only a starting point.

share|improve this answer

A good architect is the one who identifies/ defines the right problem to solve and provides the best approach to solve it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.