DEV Community

Discussion on: What should I know to be a software architect?

Collapse
 
joshualjohnson profile image
Joshua Johnson

Experience is the main thing you need to be an software architect. You must have the battle scars of being in the office at 3am trying to fix a solution that has been broken all day. You need to know both good and bad solutions. And you have to take ownership of a project that is failing due to your architecture.

Collapse
 
stereobooster profile image
stereobooster

To answer this I need to define what is "experience" first. Oxford dictionary defines it as - the knowledge or skill acquired by a period of practical experience of something, especially that gained in a particular profession.

Experience is not measured in time. Some people tend to say phrases like, "I have more than 10 years of experience in the industry" (guilty myself). In reality, it doesn't matter how much time is spent, what matters is how this time spent. People with 2 years of experience can be more knowledgable than people with 10 if they spent it doing active research, right?

Like in cooking temperature and time matters, the higher the temperature the smaller time you need to cook the thing. The more productive you spend time the less time you need to gain experience.

So my question is how to gain experience most effectively? How to spend as less as possible time and gain as much as possible experience.

Collapse
 
joshualjohnson profile image
Joshua Johnson

Build stuff is how to gain experience. Read articles and observe the opinion of others. You will become a architect when others recognize you as one.

Thread Thread
 
stereobooster profile image
stereobooster

Sounds like a lottery - buy a ticket every day and eventually you will win.

I'm not blaming, I did it myself in the past (and maybe doing it right now), but this is not the most effective way from my POV. If I have no idea how to achieve something I would ask for advice, search mentor, try to do something else to "reset" my brain and maybe then I can come up with a plan.

Thread Thread
 
joshualjohnson profile image
Joshua Johnson

Honestly, I think achieving architect status means that you've earned the right amongst your peers. Or you've earned the title by proving yourself within a job interview.

I don't think its winning the lottery. And to be honest, I don't think having the title "architect" really means anything either. I think as a developer,

  • you should be doing the best work you can do.
  • always try to achieve getting better.
  • Stay humble and realize you can always learn something new even from someone who has way less experience than you.

Let me ask you this, why is it important for you to be an architect?

Thread Thread
 
stereobooster profile image
stereobooster

I guess we get confused somewhere in the middle. My question never was about a title. I asked how to gain knowledge (or experience) in most effective way and what kind of knowledge people consider to be most valuable (in sense of giving most insight).

Thread Thread
 
joshualjohnson profile image
Joshua Johnson

Build stuff my friend. That’s it. Gain the knowledge by building stuff and leading teams. See what works and what doesn’t.

Seems like you want a simple answer like, if you read book X or blog post Y, it will tell you how to be a software architect. It takes real experience in the field of software development. You cannot skip all the hard work it takes to earn the badge.

Collapse
 
xr0master profile image
Sergey Khomushin

It seems to me that this is a good definition of a senior engineer, not an architect.