views:

726

answers:

8

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

A: 

Software analyst comes first in the project's lifecycle process. He also doesn't have to know anything about programming.

cherouvim
+2  A: 

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

Jon
+5  A: 

A software analyst defines the problem. A software architect defines the solution.

The big question is... which one IS the problem...
MadMurf
I would argue that an analyst is charged with producing the solution also - the business solution.
Jon
+3  A: 

The software analyst:

  • Digs around and uncovers requirements from interested parties
  • Documents those requirements
  • Decides what is to be a business process and what is to be done within the software

The software architect:

  • Decides what 3rd party software/hardware components to use
  • Decides at a high-level components that are to be built
  • Provides a high-level design (aka architecture) of how the various components of the software are to interact
WW
+3  A: 

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.

Igor Brejc
A: 

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.

  • Enterprise Architect. The main task here is to align the stucture and goals of the IT division with the goals of the Enterprise. e.g. If the organisation has a makes and sells widgits there should be a manufactuirng support system and a sales support system. If the organisations goal is to make widgits faster then the IT department should concetrate thier efforts on the manufactring support system
  • Data Archichitect. This is a wooly one. But the Data Architect should identify the owners of an organisations data and the flows of data between parts of the organisation. Identifing mis-alignments in the process (i.e. The sales team should not be allocating part numbers).
  • Solution Architect. This is the closest fit to "Software Architect". The solution architect works within the constaints and rules set by all the other architects, and, defines the technical environment for a project. (e.g. It will be programmed in C and run on NintendoDS) and the overall structure of the application (thier will be a Widget cost engine with a public interface to be used by external clients etc.) They do not design programs! Thats up to the programmers, but, they do define the constants within which the programmers work.
  • Infrastructure Architect. These guys have a mostly operational focus. But they have a large effect on the other architects as they are responsable for defining the hardware, network and major software used in the organisation -- and defining the constaints for using the infrastructure (e.g. No business systems on Nintendo hardware, Oracle will be the only RDMS used etc. etc.)
  • -
James Anderson
+1 for designing a solution to run on NintendoDS (^_^)
Metro Smurf
-1 This thinking is certainly not accepted by all parties!"According to ISO/IEC, there are not various types of architects. An architect is an architect"In our opinion, the distinctions offered by Microsoft are misleading because they attempt to break into parts what is ultimately an atomic, yet c
Peter
yet complex, role. It creates unnecessary categorization and lays the groundwork for confusing, who-does-what scenarios.For example, who's responsible for security? Is it the SA or the IA? Ultimately, security is an ISO-recognized quality attribute of a software architecture and, as such,
Peter
should be planned from the beginning. Security should grow with the system's design and implementation. It cannot be added at a later time, by a separate team. Not if you really want security in the system.(Extract from :Microsoft.NET : Architecting App. For the Enterprise)
Peter
A: 

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.

Martin K.
A: 

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.

Airsource Ltd