Does a Large Software Project Need a Software Architect?

I just answer this question on Quora. I am happy to hear any comments that you might have about my answer.

My background is that I was the Chief Architect of 4 different companies (as now a CTO for Rent), so my answer is colored by my experiences and my biases.

There are all sorts of “architects” out there. Enterprise architects, solutions architects, business architects, software architects, infrastructure architects, etc. Everyone fancies themselves as an architect.

So, what distinguishes an Architect from an ordinary Developer, and why would you need one.

I am going to make an assumption that you are in a large company since you mentioned a “large software project”. I am going to assume that there are teams of developers, project managers, business analysts, etc, and that the project is budgeted at several million dollars.

In large companies, one of the jobs of the Architect is to make sure that what your team is developing is following certain standards. You do not want to be using end-of-life software, you may not want to be using some open source software that is only being developed and maintained by a single person, you want to use software that is a “buy” on the company’s buy/sell/hold list, you want to be using software that passes certain performance criteria, etc.

Another job of the Architect is to make sure that your project is well thought out. Are you thinking about scalability? About different kinds of failover? About certain edge cases? Is your team following good coding practices? Is the software extensible, so that new features can be added easily? Is it easy for other systems in the company to integrate with your platform? Does your application follow a future vision that the business has?

The Architect should be familiar with frameworks and patterns and lessons-learned that other areas of the company have developed, and should be able to recommend their use to you.

Often times, the Architect is closely allied with (or in charge of) the Common Services Team of your organization, so the Architect should be able to recommend frameworks that this central team has developed for the organization.

If your project did not have a good Architect, who would do these jobs for you? The Project Manager? The Product Manager? Both no. The Dev Lead? Maybe they would do some of these tasks, but the Dev Lead will probably live inside the silo of your team and not reach across the whole organization.

I hope this answers your question. Good luck with your project.

Leave a Reply