First of all, thanks for this nice write up! Learned a great deal of stuffs.
Here's a query that I have in my mind. What should be the approach when starting a completely new product/service. If it's an established company, then it should already have software architects. What about startups? Would you suggest recruiting an architect from the very beginning or rather build a team of junior engineers, build up the product and then recruit an architect to refactor the existing system?
Thank you for your comment!
When we talk about startups, they do often produce not very complicated software (commonly). So for startups, it's not very necessary to grow or to hire an own software architect. Besides, the size of startup teams often small, and they need to think about developers at first. If the need in a software architect appears, they tend to outsource such kind of a specialist.
On the other hand, if this startup works with something really challenging on a daily basis, they, probably, have to have their own software architect. But this is possible only if the software development team is complete and has all the needed engineers. Do you agree that if you don't have a backend specialist in your company, you unlikely will hire a software architect? So start with junior engineers and then complete your team with a software architect. But that is my opinion.
I've heard about situations when the team started with the software architect who helped to complete the team according to the project needs. So it really depends.
I'd say, that before considering to have your own software architect you need to understand how often you will use him (or her). If this need will cover only one your project - you'd better outsource. If you're planning to deal with different complicated projects that need high-level design and new approaches - you can think of having your own specialist.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.