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