Login or Sign Up to become a member!
LessThanDot Sit Logo

LessThanDot

IT Professionals

Less Than Dot is a community of passionate IT professionals and enthusiasts dedicated to sharing technical knowledge, experience, and assistance. Inside you will find reference materials, interesting technical discussions, and expert tips and commentary. Once you register for an account you will have immediate access to the forums and all past articles and commentaries.

LTD Social Sitings

Lessthandot twitter Lessthandot Linkedin Lessthandot friendfeed Lessthandot facebook Lessthandot rss

Note: Watch for social icons on posts by your favorite authors to follow their postings on these and other social sites.

Your profile

    Search

    XML Feeds

    Google Ads

    « SQL Saturday #77 - Pensacola, FLThanks, LessThanDot »
    comments

    We've been conditioned to accept the terms "Programmer, "Software Developer", and "Software Engineer" as synonymous. Want ads and internal job titles tell us so. When someone gets paid to fill a human-sized hole, they're going to use the most marketable term that can be attached to a three sentence description, so these terms are used almost interchangeably. We can't trust that a company hiring for a "Developer" actually needs the skills that make a "Developer" different from a "Programmer".

    However, despite rampant misuse, the differences between the term "Developer" and "Programmer" still have value.

    The Programmer vs. the Developer

    To start with we have to accept that these titles represent different things. That neither of these titles are better than the other. In fact I would be willing to bet most of us have the wrong titles, both as a description of what the business thinks it needs from us and a reflection of our own particular skill sets and personalities. We're going to ignore all that for the moment.

    Ignored? Good.

    The defining difference between "Programmer" and "Developer" is one of scope, of depth vs. breadth.

    The Programmer

    The programmer writes code. The programmer knows the ins and outs of language, programming constructs, programming theory, and so on. The skill level of a programmer is reflected in their ability to write the best, most efficient, bug free code possible and to write that code for a well-defined purpose. The focus of a programmer is to deliver working code, skills outside of this focus serve as communication bridges to people with responsibilities for high level design, testing, project management, support, and so on. The Programmer has depth.

    The Developer

    The Developer produces a finished solution for a murky business definition. Along that path from nothing to something there is programming, but also end user communications, business analysis, architecture, documentation, testing, project management, and so on. A Developer has a base level of skill in all of these, some stronger than others. No two developers will have exactly the same skill levels, but their overall ability as a developer is reflected in how accurately the end solution meets the customer's needs. The Developer has breadth.

    The Overlap

    There is overlap. Obviously both roles are expected to write code, though I would expect a Senior Programmer to write better code than a Senior Developer. A Programmer might also have some experience with Unit Testing and Technical Documentation, but a Developer should take that further and have experience with end user documentation, integration testing, and manual testing. A Programmer is expected to have a certain level of design knowledge, but the Developer should be able to help the business or customer create requirements and design a system that fulfills those requirements.

    For another comparison, check out Small ISVs: You need Developers, not Programmers by Eric Sink (blog|twitter)

    Which Is Better?

    It Depends. (yeah, I said it)

    The Developer is a Swiss Army Knife with a vague set of specializations while the Programmer is a power drill, specialized to write code. A good group of developers will have complementary skill sets that allow them to take a project from vague business problem to solution with built-in redundancy for responsibilities. A great programmer will write better code than a great developer but have limited or no skill at translating business problems into business requirements, defining technical requirements, interacting with the customer, and designing the high-level architecture.

    And this is important, why?

    So back to where we started. Job ads and job titles cannot be counted on to accurately represent what a business needs or expects. However understanding what the company actually expects and where our own skills and preferences lie can have a drastic effect on how well or poorly we will do and like our jobs. Are we the Swiss Army Developer or the specialist (programmer, BA, QA, architect, PM, etc)?

    Job titles may be unreliable indicators of company expectations, but the terms still provide a useful starting point. Framing the company expectations and our own preferences is an important part of doing well at our jobs and in finding enjoyment in what we do.

    About the Author

    User bio imageEli delivers software and technology solutions for a living. His roles have included lone developer, accidental DBA, team lead, and even unintentional Solaris consultant once. With experience in adhoc, Lean, and Agile environments across NSF grants, SaaS products, and in-house IT groups, he is just as willing to chat about the principles of Lean or Continuous Delivery as he is to dive into Azure, SQL Server, or the last ATDD project he created.
    Social SitingsTwitterLinkedInHomePagedeliciousLTD RSS Feed
    InstapaperVote on HN

    7 comments

    Comment from: SQLDenis [Member] Email
    SQLDenis
    Job ads and job titles cannot be counted on to accurately represent what a business needs or expects.


    I love those jobs that require everything + the kitchen sink...how can you expect a person to know Java, Ruby, C#, C++, Python, VB, JavaScript, T-SQL, PL/SQL, Perl and know it well...this is impossible
    04/06/11 @ 06:53
    Comment from: LNBruno [Member] Email
    LNBruno Reminds me of a favorite quote from the original Ghostbusters movie (1984): "when someone asks you if you're a god, you say 'YES'!"
    04/06/11 @ 07:42
    Comment from: traingamer [Member] Email
    traingamer Then what's a Software Engineer?


    :-)
    04/06/11 @ 08:18
    Comment from: SQLDenis [Member] Email
    SQLDenis A software engineer is unlike a software architect
    04/06/11 @ 08:42
    Comment from: chopstik [Member]
    chopstik Which still doesn't clarify what a "software engineer" is. But I'm pretty sure I know what it's not.

    Useful definition breakdown, though. I'm going to recommend this to a few people I know to help them understand what I mean when I say "developer".
    04/06/11 @ 09:32
    Comment from: Tahir Khalid [Member] Email
    A Software Engineer sits in between a programmer and a developer (I am the latter).

    The Software Engineer does just that, engineers a solution - programming in multiple dimensions i.e. have a broader view of the architecture (but not necessarily the wider view of the Developer) but ultimately, still applying one important thing: Precision.

    Programmers are acutely precise.

    Software Engineers have a much wider scope but they still employ precision (through the disciplines of Software Engineering i.e. Patterns & Practices, Methodologies, Instrumentation [iteration, testing...]).

    Developers have a much more abstract view of the solution, they are essentially floating above everyone else, able to visualise where a solution starts and where it may end. Cause & Effect, Political Waves and Geography (the lay of the land, where resources are, where to apply them etc).

    In an ideal world (my world), you would have on or two Software Engineers, several Programmers, one to three Developers and an Architect (or two) who provides overall governance.

    Anyway I am ranting, this should be taken into the forum for a healthy chat.

    Great Post Eli!
    04/08/11 @ 04:50
    Comment from: martin [Visitor]
    martin Hi Guesss a Developer attends more meeting compared to Programmer.
    07/05/11 @ 07:41

    Leave a comment


    Your email address will not be revealed on this site.

    To mislead the spambots.

    Your URL will be displayed.
    (Line breaks become <br />)
    (Name, email & website)
    (Allow users to contact you through a message form (your email will not be revealed.)