Hi
Can anybody provide me with a good explanation for the following : What are the main differences between a software architect and a software analyst ?
Thanks
Hi
Can anybody provide me with a good explanation for the following : What are the main differences between a software architect and a software analyst ?
Thanks
Software analyst comes first in the project's lifecycle process. He also doesn't have to know anything about programming.
A software analyst normally is involved in creating the business requirements for the intended software. This normally results in a business case and eventually a requirements specification.
The term architect is a contentious term and open to debate by many people. It generally refers to someone of a technical background who are concerned with bridging the gap between the business requirements and the technical requirements. This can sometimes be a dedicated role or it may be a role taken up by a technical team lead. They generally communicate their vision and ideas to the developers in their team. This is wholly dependent on the size of the organization and the nature of it however. A specific organization may have many different types of architect including enterprise architects, solutions architects and technical architects.
There is a good article here by Neal Ford on architecture and the role of the architect:
http://www.ibm.com/developerworks/java/library/j-eaed1/index.html
A software analyst defines the problem. A software architect defines the solution.
The software analyst:
The software architect:
Software (business) analyst's primary role is to understand the business (domain) problem the software is trying to solve. Software architect (although this term has been overused) primary role is to translate analysts knowledge into some kind of a software "architecture".
Also check out Domain Driven Design - this is where the two roles intertwine a lot.
There is really no such thing as a software architect. The current thinking from TOGAFF et all is that there are various levels of architecture.
A analyst knows the specific problem domain. He's mostly called Business Analyst. So he's part of the requirements definition process.
There are another roles like the requirements analyst, software architekt etc.
A software architect ist mostly in a critial position in the software team, because he has to migrate/choose/adopt technologies.
A real Analyst/Business Analyst/Software Analyst works for years in the same branch where his problem domain come from. He does a lot of process improvement and Design.
An analyst figures out what's needed. An architect decides that you actually wanted something completely different, and the best way to build a small house is to start your own construction company so that everything can be done perfectly and you can reuse it if you want another one.
While there are elements of sarcasm in this post, I'm overall pretty serious.