Your question is quite understandable. In a sense, a Software Architect does
the same thing that a Software Devloper does. Given a set of requirements,
each is tasked with the responsibility of satisfying those requirements via
software. However, that is where the similarity ends. If you compare a
building architect to a carpenter, you get much the same result. The
difference is one of scope.
A Software developer is a person that writes instructions to a computer, in
the form of code. These instructions comprise a structure that performs an
encapsulation of a set of tasks all related to the satisfaction of the
original set of requirements. The result may be a DLL or class library, an
executable, or something similar. It may or may not have a user interface,
or a programming interface. Generally speaking, there will be a variety of
tasks and sub-tasks encapsulated into a single package, or a small set of
packages that all work together.
Big things are made up of lots of little things. The larger the set of
requirements, the more components it will have. Just as the tools used to
dig the foundation for a house are not the same (except conceptually) as the
tools used to build the foundation for a skyscraper, so the tools of the
Software Architect are different than the tools used by the Software
Developer. A Software Architect's job is to create something large enough
that it requires the work of a large number of people working in cooperation
to perform it. So, the Software Architect is the designer of the big
picture, and rather than writing instructions to a computer in code, the
Software Architect's job is to give instructions to groups of people, in
various ways that people understand, such as written documents, speech,
drawings and diagrams, and so on.
Because of the nature of the job, the Software Architect also becomes the
point of contact between the client and the builders. The job involves
people skills, human communication skills, the ability to organize and
coordinate between smaller organizations of people, as well as a complete
technical understanding of the actual software to be developed. The Software
Architect should be able to write the software, but is not tasked with doing
so, only ensuring that it is done.
Often, in fact, the Software Architect does not interact directly with the
Software developers. If the job is large enough, the Architect will
coordinate with Software designers who are in charge of groups of
developers. In such a case, the actual design of the larger parts of the
software will not be done, but overseen, by the Software Architect.
At any rate, that's the big picture.
--
HTH,
Kevin Spencer
Microsoft MVP
Software Composer
http://unclechutney.blogspot.com
The shortest distance between 2 points is a curve.