views:

268

answers:

6

My career goal is to become architect. I would like to know from people who made such transition what are the best suggestions/hints/recommendation that would be critical in making the change.

Thanks

+6  A: 

Ultimately, to be an architect requires a skillset that is built on experience, not hard knowledge.

Start communicating with the business stakeholders in your current system. Position yourself to get involved, or at least start being aware of, the "how and why" of the business side of things. An architect's responsibility is to be able to make that leap between business and technical without friction. That requires communication skills and understanding. When you do this for an extended period of time, you start to become familiar with the "patterns and practices" of what business drivers expect of software solutions.

Also take an interest in any hardware/infrastructure/logistical stuff that you don't deal with today. Being able to coordinate a solution from many aspects can only be done if you have prior experience under your belt, be able to foresee practical roadblocks by applying what you've learned in the past.

When you are working on a project, think about it from these perspectives:

  • What will be required to make changes a year from now? (Maintenance and enhancements)
  • How difficult is the solution to deploy?
  • Does the solution fit into a broader IT scheme? e.g. will it be the red-headed stepchild in a solution portfolio?
  • What impact(s) does the solution have on the surrounding systems as far as network access, security, load, etc.?

These books have been very helpful to me:

Rex M
+1  A: 

Yup - as Rex M says, there's no substitute for experience. There are a couple of other useful skills you can develop while you're gaining that experience, though...

Blog. Blog about that neat technique you applied in your code the other day. Blog about the new API you're using. Blog about your cat, but only from time to time :-)

Writing about a subject, especially for public consumption, forces you to think more deeply about it, to really get an understanding. Blogging will also sharpen your written communication skills - crucial for an architect.

For verbal skills, get on a presentation skills course. As an architect you will be presenting your architectural thoughts to developers. Your audience will thank you for not being one of those presenters that simply stands there and reads the slides out, word for word!

If you can stand in front of a room full of expectant faces and lucidly convey an idea, you'll be ahead of 90% of most aspiring architects.

metadaddy
That's neat to know. I'm already on the blog/presentations path. Cool :)
Maxim
A: 

There's nothing magical about being an architect. Most of the ones I know are just really good developers. With that in mind, just work on being the best dev around. Take every opportunity to learn. You might focus on the broader sorts of learning. It's better to know how two pieces fit together than to understand every detail of a tiny piece. Look for opportunities to work on the seams between pieces. That's where architects do most of their work so the experience will be most valuable from there.

Steve Rowe
+1  A: 

I found that my ability to translate between developers and non-developers made me invaluable - I could understand the problems, and create analogies or examples to explain them to the business folk. And, in the opposite direction, I could understand the issues and constraints that the business folk were experience, and translate those into requirements and suggestions for the developers.

Also, it helps to be a very good developer, it helps to regularly learn new things, it helps to be somewhat humble. Lastly, it helps to volunteer for work, especially the work that other developers don't want to do. Bosses (good ones, anyway) usually remember that you were a team player, and when you tell them you want more responsibility, are more likely to give it to you.

johnbr
A: 

I found this 97-things-every-software-architect-should-know very useful.

Bharani
A: 

There are different types of software architects. The common ingredient between different types of architects is the right balance of technical knowlege, leadership skills, soft skills and domain knowledge. The most difficult aspect of being a software architect is to persuade different stakeholder on various decisions. That is where sound communication and persuasion skills help. To summarize:

  • Technical Knowledge
  • Domain Understanding
  • Communication Skills
  • Persuasion Skills
  • Qualities of a leader

I am also an aspiring architect. I have found http://www.bredemeyer.com/ a goot resource for aspiring as well as veteran architects.

Anand Patel