CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Raymond Lewallen

Framework Design, Agile Coach, President Oklahoma City Developers Group, Microsoft MVP C#, TDD, Continuous Integration, Patterns and Practices, Domain Driven Design, Speaker, VB.Net, C# and Sql Server

Developer versus Programmer

Once had a new hire come to the project I work on. Took him out to lunch his first day (he only lasted 5 days, admitted the project and code was out of his league) and I started talking about programming and programmers, because my wife won't let me and I have to have these conversations with somebody. At the first mention of the word programmer, he quickly corrected me with "I'm not a programmer. I'm a developer." Uh, what?

Let us examine to two from the dictionary:
pro gram mer or pro gram er
n.
1. One who programs
de vel op er
n.
1. One that develops


Ok, so that wasn't much help. You see job listings for web developer or C# programmer; do you ever see web programmer or C# developer? Are they interchangable? Of course they are. Even Microsoft refers to those who use C#, or any other language to write software, as developers. Is programmer a dying term? Are we all transistioning to some weird marketing scheme that I'm unaware of that will change my job title from Programmer to Developer? If you go out and look, most job titles are still focused around the keyword "programmer".

Is there a proper use for one over the other, and in what scenarios? I just find this completely meaningless and trivial concept of programmer versus developer interesting. I'm odd that way. Any thoughts? How do you like to be referred to, a programmer or a developer? What's on your business card? Your resume? FYI, my job title has Programmer in it.


Comments

Colin said:

Eric Sink has a good article on his definitions of programmer and developer:

http://software.ericsink.com/No_Programmers.html

I tend to use programmer and developer the way he does.

Colin
# February 22, 2005 4:27 PM

Raymond Lewallen said:

Hrm, according to his definitions, I am absolutely a developer.
# February 22, 2005 5:22 PM

Brendan Tompkins said:

Ugh. Developer vs. Coder vs. Programmer vs. Engineer... I guess they do mean something, for better or worse, to most people.

I went to the first Java One conference, circa 1995 or so, and at an event, I walked past a group of hardcore Java Developers. At least, I assumed they were due to the characteristic, urban safari uniform. Anyhow, they looked at my badge which said "Brendan Tompkins" Programmer. I'll never forget the audible scoff when one of them said under his breath "programmer".

I have never called myself programmer since, I prefer the term engineer, although I often think that's a bit too much for what I do.

Developer is most commonly accepted, right? But when you think about it, it's not really semantically correct. Yes we develop software, but that kind of implies that software is something that's there, and we just coax it into existence.

Even the dictionary doesn't help

DEVELOPER: To free from that which infolds or envelops; to unfold; to lay open by degrees or in detail; to make visible or known; to disclose; to produce or give forth; as, to develop theories; a motor that develops 100 horse power.

Engineer makes the most sense to me, but the problem is, so much weight has been placed on this term, that you'd better know your stuff, if you're calling yourself an engineer.

If we're really going to use a word that everyone understands, even those outside of our field, we should use Programmer.

If your applying for a job, Developer, or Engineer or Architect, depending on what you can do.
# February 22, 2005 5:40 PM

ben said:

I agree with Eric Sink's interpretation, he wrote exactly my feelings on the matter
# February 22, 2005 7:22 PM

Eric Wise said:

I'm neither. I'm the guy who does the best he can with the resources available to make the end user happy. ;-)
# February 22, 2005 7:44 PM

Guenter said:

From my perceptions there is a significant difference, at least here in germany:
"programmers" are those who are primarily invoked in coding very well defined pieces of software, whereas "developer" are more involved with design issues and are proposed to have more freedom in their decisions.

Of course, this is just an outside view (I primarily heard this from managers), but it's somewhat similar to the difference between BASIC and C programmers, where the difference is more from a philosophical view than from solid facts.

Personally, I am a "Managing developer"; if our company choose the title right; you shold be able to infer my primary business from that 8-)
# February 23, 2005 3:41 AM

Raymond Lewallen said:

I agree with Eric Wise, I just make software and make it work right. After a bit more research, I'm closer to architect, but many definitions of architect don't include actually writing code, and I do a ton of coding. Engineer makes me sound like I have a college degree in something, and I don't. Developer probably suits me best.
# February 23, 2005 5:28 AM

Sashidhar Kokku said:

The difference between a programmer and a developer (apart from all the definitions I have seen so far), is that a programmer is told what to do....(for all u know...even how to do). He has no standard practices, no testing at all, forget documentation. Any hobbyst is a programmer.
A developer on the other hand is the gentleman who tells the programmer what to do. He decides what needs to be done, has a vision and a scope, documentation practices, testing style, etc etc etc. (Words from my prof @ http://ecs.syr.edu/faculty/fawcett)

The irony in the professional world is that there are ISV's who have a work force of less than 5, and supposedly hire "Sr. Software Engineers"...and the lead keeps telling them what to do. Funny....there is no documentation involved at all...and yet they manage to call themselves to be developing the "latest and the greatest" software.
# February 23, 2005 6:47 AM

Alex Lvovich said:

I agree with Guenter about that developer is more ivolved in design procceses than programmer. So the responsabilities are different.
# February 23, 2005 7:18 AM

Darrell said:

Since I'm a consultant, I can't be "just a developer", even the developer-type that Eric Sink talks about.

I'm a problem-solver; I create and implement solutions to business problems. Note that it does not always involve code, and in fact the majority of the time the problems are people problems. :)
# February 23, 2005 7:21 AM

Liz said:

Here is the department of labor's definition of job titles: http://stats.bls.gov/search/ooh.asp?ct=OOH You will sadly notice right off that astro-archeologist doesn't show up on the list... =;>) bummer, or for that matter developer.
# February 23, 2005 8:19 AM

Raymond Lewallen said:

Hey Liz, who woulda thought that a 5 day employee we had lunch with once would spawn a blog post over a year later ;) Thanks for the link. Astro-archeologist is too special for the list, if that makes you feel better.
# February 23, 2005 8:25 AM

Rajan said:

Specify the clear difference between Programmer and developer.?
# June 20, 2006 9:10 AM

Eric said:

Interesting that the department of labor site doesn't list "Developer" or "Software Developer" but they do list "Programmer". I feel that all these new names for programmers are just fancy new names created to make people feel like they are better or different. I am a programmer. Architects design buildings. Developers take raw land and add improvements such as buildings by hiring project managers to hire and manage the construction people. And a programmer codes programs.
Another strange thing is that my employer hires junior programmers and calls them Developers, and when we reach the senior level we are called programmers.
# June 29, 2006 2:33 PM

A.J.Rimmer said:

I call that IRONY :)

# June 23, 2007 11:54 AM

Dan said:

This is a very interesting topic.  I almost disagreed with Eric Sink by differentiating programmers from developers based on the scope of job responsibilities, b/c in most companies (and tech firms makes up a very small percentage of top fortune 1000 companies) all 3 needs to do some sort of documentations, interacting with other people, fixing bugs, enhancing existing codes, testing, etc, though the degree varies, but the point is they all have these responsibilities that Eric uses to differentiates their job titles.

I worked in the financial industry for 5 years (doing tech work) before joining a consulting firm.  From my personal experience, I begin to relate the terms "programmer," "developer" and "software engineer" with the degree of programming complexity and level of system design/architecture responsibilities.

For example, there are positions call "database developers" out there, but frankly, writing pl/sql packages or t-sql stored procs, aren't exactly the most complex type of programming out there, heck, it's not even OOP not to mention they not even real programming languages.  Then there are also positions out there that write perl ETL's or system shell scripts, etc, again, I'm not exactly sure if the complexity of such programming requires the entire arsenal of a computer science or engineering background.  And neither of them involves a higher level of systems design/architecture.  I tend to relate these positions as programming positions.

On the other hand, a developer uses a deeper understanding of computer science and engineering principles and applies them to design a system at a more macro level first, then code the micro level using more sophisticated algorithms and faces more challenging problems all the while keeping scalability, robustness and performance in mind.  Developers typically uses more sophisticated programming languages, such as Java, .Net and C++ and such systems are typically multi-tiers.

Software engineers should have the most experience of them all.  Using his or her experience and a superior understanding of computer science and engineering, they typically erect highly complex systems or applications from the ground up.  They are the most involved with design and architecture of the three.

# August 31, 2007 10:43 AM

ron4 said:

Eric, but it does mention that Software Enginner is also Software Developer.

"computer software engineers design, develop, test, and evaluate software programs and systems. Although programmers write and support programs in new languages, much of the design and development now is the responsibility of software engineers  or software developers."

To me Software Engineer and Software Developer are the same thing, because they will be involved in the same role and job scope like analysis, design, development, programming and documentation.

Whereas Programmer is a different thing, the job role mainly involve in programming / writting a computer program and/or writing documentation i presume. But need not to involve in analysis, design and full SDLC.

Imho Software Engineer/Software Developer level should be higher than a Programmer because of they have more responsibility in day to day job tasks.

# September 18, 2007 7:07 AM

Saikiran said:

Here is a nice topic which i got lot of information from this. As per my knowledge , a Developer can also be a Programmer but not ViceVersa. Adeveloper developes , suggests , integrates, modifies the designing and so on . BUt a programmer can only do programme but not the rest of the things..

If i am not right here, please rectify me..

Thanking you.

Saikiran

INDIA

# September 30, 2007 9:57 AM

Kevin said:

Here in Singapore, a junior/entry level is called a developer and when you get promoted, you are called a programmer/engineer. I'm not implying that when you are freshly grad, we are perfect fit as a developer but just in general, what title you are holding.

Well, here's the concept behind the bosses.

A developer shall be a "Know all, handles all", which we relate as lowest life form which does all the hated works. And when you get promoted, you become a programmer/engineer which at a "Senior level" you shall be doing less, the higher you go, the lesser things you have to do, just need to instruct the developer to do jobs programmers/engineer doesn't like to do or doesn't have time to do, documentation, etc. Who does?

Well, which is very true isn't it? When you get more senior, you get more responsibilities on management and account servicing, pitching new jobs with your bosses. How to squeeze more time to do coding and write documentation? Well i'm talking about ISV not bigger corporation.

This is what our lousy culture is. Pace never slow down.  Is either you get promoted or you are out.

# March 31, 2008 10:13 PM

Mark said:

Developers build the "whole"

Programmers write code that is added to the "whole"

# April 25, 2008 1:18 PM

mihkel said:

I Agree with Mark Developers have a vision programmers have goals.

# May 7, 2008 7:09 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Raymond Lewallen

Working primarily in the public sector during his career, Raymond has designed and built several high profile enterprise level applications for all levels of the government. Raymond now works as a solutions architect for EMC. Raymond is an agile coach, Microsoft MVP C# and also president of the Oklahoma City Developers Group and Oklahoma Agile Developers Group. Raymond spends a lot of his time learning and teaching such things as Test Driven Development, Domain Driven Design, Design Patterns and Extreme Programming practices and principles, to name a few. Raymond is also an advocate of Alt.Net. Raymond is primarily a framework guy, so don't ask him anything about UI :) Check out Devlicio.us!