---
title: What's in a name?
url: https://www.grahambrooks.com/post/2013-08-10-whats-in-a-name/
date: 2013-08-10T00:00:00+00:00
author: Graham Brooks
---

# What's in a name?

Graham Brooks: Architect, Software Engineer

Over the years I have been described as a programmer, analyst programmer, software developer, software engineer and many other derivation of software X professional. For most of the time it has not seemed to be important. Recently though I have started to wonder how these names might affect the way software professionals see their role and perhaps how they view themselves.

In certain countries and regions the term engineer has more special
definition. [Wikipedia](https://en.wikipedia.org/wiki/Software_engineering)
emphasizes the method or approach to developing software. In Europe
the term infers that someone has undergone formal training and
attained a status through examination or peer election to a learned
society.

But why should we care?

In 1999 Andy Hunt and Dave Thomas wrote
[The Pragmatic Programmer: From Journeyman to Master](http://pragprog.com/book/tpp/the-pragmatic-programmer"). Their
first tip was *Care About Your Craft*. If like me you care
about the craft/practice/discipline of building software and software
applications then you probably feel that naming things is very
important. Without a clear name and common understanding of what a
name means it is very difficult to communicate effectively.

I also take a sense of pride in describing and talking about what I
do. That pride comes from the quality of the work that I produce and
the study and knowledge that I have gained from building software.

If I am going to use a name to describe what I do it needs to be
reasonably well understood, match at least part of my self image.

Searching for definitions brought up a number of suggestions mostly
around these themes

* Programmer or 'coder'
  * Has less that 5 years experience
  * Works from specifications
  * Code Monkey
* Software Developer
  * Gather requirements
  * Designs applications
  * Researches technologies
* Software Engineer
  * Designs and implements components, frameworks for developers and
    programmers to use.

So many people seem to infers a level of experience to each of these
terms with Programmer and I think there is a level of experience but
also levels of self awareness or interest in particular ares of
software.

I don’t see the term programmer being used much these days in job
adverts. The most popular term seems to be Software Developer for
developing applications. All these terms are fine but while I really
enjoy building applications my passion is for building better tools
and applying new techniques and languages to the problem. This feels
more like engineering to me. So after a an absence of some 15 years
Software Engineer is coming back to my vocabulary. No one term can
capture everything about a person and does not translate directly to
my role at any point in time but it is a starting point.
