Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm reading through the CNN article about the highest paying jobs in America. A software architect is listed as #1. A software engineer listed as #9. And a software developer (programmer) is listed at #35. I think it's valid to replace computer scientist with programmer, right?

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.

Thanks in advance for any and all responses received.

share|improve this question

closed as primarily opinion-based by Jim G., gnat, Dan Pichelman, jmo21, Michael Kohne Oct 1 '13 at 11:50

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.

1  
There are a lot of related questions on job titles already, this might be either too localized or a duplicate. –  Josh K Jan 24 '11 at 5:24
1  
These seem relevant as potential duplicates: programmers.stackexchange.com/questions/13439/…, programmers.stackexchange.com/questions/22124/…. I'm not seeing one that brings it all together, though. –  Anna Lear Jan 24 '11 at 5:47
8  
A software architect wants to be paid more :-) –  Stephen C Jan 24 '11 at 6:07
4  
Hmm, a haircut? –  Pawka Jan 24 '11 at 6:38
7  
@Rob S, a computer scientist is NOT a software developer (programmer). –  systemovich Jan 24 '11 at 8:29

3 Answers 3

up vote 19 down vote accepted

Warning: Anecdotal evidence follows....

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.

$0.02

share|improve this answer
14  
What a wonderful username, "Bobby Tables." –  Josh K Jan 24 '11 at 6:20
    
Thanks man , much appreciated! –  Rob S. Jan 25 '11 at 16:14
    
what is $0.02 ??? –  Sarawut Positwinyu Sep 24 '11 at 3:34
7  
@Sarawut: "My two cents". It just means "this is my opinion". :) –  Bobby Tables Sep 25 '11 at 1:37

I learned it this way:

  • 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.
share|improve this answer
    
What about a "software developer"? –  Anna Lear Jan 24 '11 at 5:48
    
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 –  Osukaa Jan 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 Marcovic Sep 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.

share|improve this answer

protected by Thomas Owens Aug 21 '13 at 14:25

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.