Prior to this I always saw "Software Engineers" as being the title for experienced programmers and team leads. But where then does a "Software Architect" fit in and what exactly do they do? I read the CNN descriptions but they don't really satisfy me so I'm assuming I can get more thorough and experienced descriptions from the awesome user base here.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers
3

In my experience, at least here in the Australian market - the terms Programmer, Software Developer and Software Engineer are more or less interchangeable (I've held all three for doing the exact same actual work).

The "Software Engineering Director" described in your CNN link is not the same as "Software Engineer". It is really more like a high level technical project manager role. This sort of person wouldn't actually program much, if at all. This role has little to do with your typical "Software Engineer" - which is often just a glorified title for an intermediate to senior programmer.

The "Software Architect" described in the link essentially sounds like a high level team leader, the type who designs the overall structure of a software system and then probably farms off some of the grunt work to more junior programmers. This is the sort of person who heads a project and probably reports to the "Software Engineering Director" - in a large company where lots of teams write various products, especially where integration between them is required.

TL;DR version: 1) Software Engineer is often just a glorified title for "programmer", maybe indicating being somewhat senior. 2) Software Architect probably roughly fits in with a high level team lead who has the responsibility of designing the overall architecture of the project. 3) Software Engineering Director is a high level project manager, the type who possibly reports to the highest levels and probably doesn't touch the code at all.

Software Engineer is the one who knows all the aspects to the software development process (requirements, specification, design, architecture, design, implementation,etc) so they can achieve management jobs, or work anywhere in the process, improve it,etc.

Software Architect is the one who only works in the Architecture phase which is after the design step, is the highest technical job one can aim for. You still need to program, as opposed to Software Engineer who can become management. It's also a master-apprentice type of job.

Also don't compare with Computer Science, a Computer Scientist can program but also can do a lot of other things, so they are not limited to the field of programming.

I really don't know how to define that role. I think it's a programmer, but I'm not sure. I meant to say that you shouldn't compare it to Computer Scientist. Sorry about that :s
–
OsukaaJan 24 '11 at 6:39

"Computer Scientist" is merely an academic title, no more no less. Most programmers where I work are "Computer Scientists", because they studied "Computer Science" - a subject where they teach you a lot on how to work with digital systems and state machines, and the math behind it. "Computer Engineering" is the profession that has "more than programming" in it, because they teach you a lot about physics and electricity, as well.
–
Yam MarcovicSep 23 '11 at 16:15

Here in the Great State of Texas many companies tend to shy away from the term 'Software Engineer', because in Texas we license engineers, and there is in fact such a thing as 'Sealed' Professional Engineer, Software ( http://www.tbpe.state.tx.us/eng_req.htm ).

I've never met one, nor has anyone I know. Of course the Engineer's guild would like very much to restrict competition by requiring licenses for writing 'hello world' but that hasn't happened yet.

'Software Developer' is more commonly used for a person whose main job is writing software.

Companies also have a little easier time dealing with Visa issues for 'Software Developers' rather than 'Software Engineers'.

I've only worked in startups for the last 15 years, so I'm not used to a bunch of finely differentiated job titles, but in general a software 'Architect' is a senior developer who is good at laying out the 'big picture' design of a software project. Every Architect I've ever known spends a great deal of time writing code, just like everyone else, especially after the main design is agreed on.