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.

A little background:

Bachelor In Engineering, Master Degree in Comp Sci. Landed junior dev straight out of Uni.

2 years later, left for Senior Dev. Now planning next step...

Platform: .NET, VB,C# (upto 4.0, LINQ, PLINQ) ,F#,Winform,ASP.NET+(usual web tech,js,xslt, dxhtml,etc),WPF, db ->MS T-SQL

Question:

What are the next steps I should be thinking about if my goal is to become a .NET Architect?

What things do I need to gain experience in, both soft skills + technical.

What is the fastest route there?

Are there any advice in general related to becoming a Architect?

Thanks in advanced.

share|improve this question
2  
Isn't an architect somebody who can design a complete application from scratch? Can you do that? Or do you need certification? –  user1249 Nov 21 '10 at 13:32
3  
If you can do it, then you are already a .NET architect. –  user2567 Nov 21 '10 at 14:07
8  
.NET architect is a pretty limited goal (like a wood-frame-house architect). Maybe you should be looking to learn general software architecture? There are many tools and techniques available, including the .NET pieces. –  Bruce Alderson Nov 21 '10 at 19:13
2  
What makes you software architect is not only your programming knowledge. Experience and deep understanding of how software works might be a starting point. And you may design thousands of almost-good solutions or some few brilliant ones. It's totally up to you. –  narcisradu May 23 '11 at 21:51
3  
Worry less about the title and more about learning to design better applications. At some point you'll be an "architect" whether your title says that or not. –  William Shakespeare Nov 5 '11 at 7:19

4 Answers 4

The single most important question that an architect needs to be able to answer is, "What alternatives did you consider, and why did you choose to do it this way?"

Most senior developers cannot answer this question with more than "well, that's the way I've done it before and it worked." When you can respond to that question with a well-thought-out, well-reasoned answer, discussing pros and cons for each approach, for virtually every aspect of the system, then you are (most likely) ready to be an architect.

share|improve this answer
    
I'm worried that I've leaned too much on the .NET platform. When you mention alternatives, does this include alternative platforms, e.g open to all platforms? –  Darknight Nov 21 '10 at 14:22
7  
@Darknight: I expect my architects to be experts in the platform they are working on; and I expect them to be at least familiar with the foundational aspects of other platforms. It is hard to say with any authority that ".NET is the perfect platform to solve your problem" if you don't know how it compares to other platforms. You don't need to know everything about everything, but you need to know enough convince the client and your team that you're an expert, than you've given the problem due consideration, and that your solution is the best for the problem at hand. –  Jeff Knecht Nov 21 '10 at 14:40

Architecture isn't about expertise in specific tools or techniques, it's the design and planning of systems, their parts, and the way they interact with other systems. This includes mastering skills like:

  • API and other system interaction methods (things like REST, but for a number of different types of systems)
  • Large scale schema design in a number of database (and data storage) systems, including varying levels of normalization.
  • Differing approaches to design documentation and other artifacts
  • Capacity planning and other scale and measurement techniques
  • Lower level design techniques and experience (implies a number of languages, approaches, etc.)
  • Operational design approaches

Without understanding a number of different systems and approaches, an architect is really just a Sr. Developer or designer.

That said, the term Architect is not applied uniformly in our industry. ".NET Architect" seems more like a designer or senior post, as architecture implies knowledge and experience with other things.

share|improve this answer

These other answers are all good. Having recently moved from a senior .NET development position to an architect role I will throw in my two cents. Architecture is about a lot more than technical knowledge and systems design. The key thing that an architect brings to the table is an understanding of the customers or users of the software, the value chain of the organization and how the technology fits into that value change, and the vision for where the technology needs to go in order to better the organization. You have to stop thinking about how to make the best use of .NET, and instead start to focus on the larger picture of how every aspect of the technology portfolio of the organization relates to each other and the rest of the organization.

As for specific skills, I believe the most critical one is communication. And that includes both inwards and outwards - you have to be able to listen and understand what technical and non-technical people are telling you, and you have to be able to explain your ideas well to those people. You also have to be able to translate between different groups such as sales, marketing, finance, development, QA, operations, etc. and make sure that everyone is on the same page.

For more specific learning, I would take a look at the IASA. I have gone to one of their training courses, and I've used some of their materials such as their ITABoK and they lay a good foundation for what it means to be an architect. In addition I found the Coding the Architecture blog to be quite helpful in understanding what an architect should be thinking about.

share|improve this answer

In short, the difference between a senior software engineer and an architect is that your colleagues look to you for advice and direction.

Help your fellow programmers, give advice, earn their respect and then, when you have a track record, just ask your boss if you can change your job title to reflect the role you are currently doing.

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.