Fog Creek Software
Discussion Board




What is a software developer?

Seriously!  This is a sincere question.  Four years ago, my boss came up with specifications for an application he would like.  For the past four years, I have been turning his specifications into a reality.  As the only *programmer* of this application, I've done all the design from high-level down to writing each line of code.  Getting ready for our big release, my boss has helped out by doing all the testing, writing user documentation, and providing me feedback of how to improve the application (ie. more specifications).

Recently I wrote an internal memo which indicated me as the developer of this application.  My boss took issue with this saying that he is also a software developer since he has worked so hard on the project this last year.  He said that rather than "the developer" I should indicate that I am "a developer" of this application.

I never meant to make my boss feel bad.  He has contributed greatly to the success of this project.  His specifications have been very good, and I'm glad he has done so much testing and documenting.  But, on the other hand, I'm concerned about having too loose of definition of "software developer".  Yes, my boss's specifications have greatly shaped how I design the software, but has he crossed the line into actually developing software?  I'll admit it:  I take a certain amount of pride in being called a "software developer".

Stevo
Friday, March 12, 2004

Tell him he's a Software Designer.

chris
Friday, March 12, 2004

" turning his specifications into a reality" - that definitely is a software developer's job. Kudo's to you. The problem is you didn't give him enough credit and an an important sounding title. He is more of a Project Manager, or Chief Business Analyst and Director of QA. :-)

DJ
Friday, March 12, 2004

Actually... what you really should do is, not care and let him sall himself whatever he pleases.  It's not an issue worth thinking twice about.

chris
Friday, March 12, 2004

The higher you promote HIS title, the higher YOURS gets promoted.

Make him Lead Software Architect, or whatever.

Glory. Reward. Enjoyable job.  Pick any two.

The real Entrepreneur
Friday, March 12, 2004

Manage Up

It's the only way to fly ;)

bodhi
Friday, March 12, 2004

Sounds like he was the Tester and maybe the Documenter.

He was not the Developer, anymore than you're an accountant just because you take your receipts to the accountant.

x
Friday, March 12, 2004

Stevo, your boss is ignorant. In software development, a developer *is* the person who develops the software by doing hands-on coding. A developer *may* also do design, analysis, or perform other related roles, but developers write the actual code. Anyone who put no hands on effort into programming is not "the developer".

But... he is your boss and it sounds like he's pining for ego massage and for credit and recognition. The Real Entrepeneur had an excellent suggestion. However, I would start lower, say by suggesting that he was the Analyst and Designer. Which much more correctly denotes his role.

Bored Bystander
Friday, March 12, 2004

I agree, it is a sad world where you have to get involved in office politics of calling the boss something he isn't just to make him happy enough to give you the credit you deserve.

Software Architect? Software Designer? thank him for doing the documentation, give him a line in the credits for doing some beta testing, but aside from that isn't he just the end-user, the client?

Aussie Chick
Friday, March 12, 2004

Chief Software Architect!

Isn't it obvious? :)

Ignorant youth
Friday, March 12, 2004

I see two sides to this.  It all really depends on your relationship.  If you trust him well, and believe he would go out of his way to help your career, then it might be wise to help him advance his own in the ways he wishes.  At least in large organizations, helping a trusted boss climb the ladder usually garners reward for you too.  If you're ambivalent or don't feel so trusting of him, then maybe not.

Regardless of how you finally choose to cope with his desire for titular pomp, I'd be wary, and ensure he isn't taking too much credit when you are not around to keep him honest -- weighing what I said above against this cost to yourself.

Assuming you don't want him to take an unfair share of credit, take every opportunity to talk to other people about your roles and his, couching the discussion as praise for your boss and his visionary conceptualizing.  Publicly praise his contribution, but make sure to precisely communicate who did what whenever discussing this project.

So long as you also manage the possible misconceptions about your own role, I'd tend to follow the tack of Demosthenes who, when Alexander demanded the Greeks recognize his apotheosis as a Son of Zeus, joked that so far as he cared, "Alexander could be the son of Zeus -- and of Poseidon as well!"

For the record, "software developer" seems a popular term by which the people who *build* the software are called.  I've always found "developer" too wishy-washy myself, potentially including nonprogrammers, so I prefer the clarity of "programmer" which indicates that one can perform every facet of software creation.  I may imagine and request a glorious souffle, naming a superb and precise list of ingredients I'd adore eating, but if I cannot *cook* I was certainly not the chef.

veal
Friday, March 12, 2004

Having recently told my architect what sort of house I want, and then commented on various designs, I insisted he credit me as the architect.

x
Friday, March 12, 2004

Thanks for the feedback, everybody.  Many of you had great sarcastic analogies which really drove the point home.  ie.  I'm going to make a list of things I want in my next car, so now I guess I'm a new car designer.  :^)

I decided to pour out my thanks to my boss for the part he played in helping me to develop the software.  He was helpful, so he deserved atleast that.  Perhaps he can loosen his grip around who gets credit by just giving him what's due him.

I told him that by saying I'm "the developer" that I in no way meant to minimize the contribution of others like him.  But rather I just acknowledged that my definition of "software developer" is more narrow than his.  There's no reason to argue over semantics.  I'm just going to avoid saying I'm "the developer" so as to avoid the friction with him, but also, to be true to myself, I'm never going to call him "a developer" when he only offered a list of suggestions (specs), and never did any actual design.

Stevo
Friday, March 12, 2004

Stevo, your proposed approach is reasonable. Instead of appeasing him you stay mute on attaching a term to your role that offends him.

It's also frikking pathetic that someone in an authority position has to be so petty and ignorant at the same time. But typical.

Bored Bystander
Friday, March 12, 2004

>I've always found "developer" too wishy-washy myself, potentially including nonprogrammers, so I prefer the clarity of "programmer" which indicates that one can perform every facet of software creation

That is the complete opposite to the way I look at it, ditto for your use of the chef/cook analogy. You seem to place the cook/programmer in more able positions, yet I see them as less able. (though that is really neither here nor there).

>It's also frikking pathetic that someone in an authority position has to be so petty and ignorant at the same time. But typical.

I agree with BB, the original post has, of course, opted for the sensible 'give the boss what he wants' approach, and the title probably doesn't mean anything, but it can still knock of a touch of it all when you achieve something great and someone else things they have more claim then they do.

Aussie Chick
Saturday, March 13, 2004

Realistically, titles vary from one organisation to another anyway.

You might be called a project manager in one place, and a team leader in the next.

In other places, team leader might be used to designate the lead programmer. Or the chief designer. Or whatever.

There's no standardised job titles. Which is probably why resumes are filtered by spelling mistakes and other trivia - you can't just look at them and decide what a person was actually doing by the role they list!

So really, I'd not worry what other people want to call themselves, or what they want to call you. It's all pretty wishy washy anyway.

Sum Dum Gai
Saturday, March 13, 2004

"my boss has helped out by doing all the testing, writing user documentation, and providing me feedback of how to improve the application (ie. more specifications)."

thats a _huge_ contribution, for any reasonable sized project.  (and if its taken you 4 years to develop Id say it must be a reasonable size)

why didn't you give your boss any credit in the first instance?  seems to me that you have been implementing _his_ ideas, risking _his_ reputation as much as your own and moving _his_ project forward.
If that was his contribution then Ill be willing to bet that he has had as large an impact on the final product as yourself.

I have a client for whom I/my company does a reasonable amount of work, maybe 10-15% of what we do now is to develop his projects and it used to be even higher.
He markets himself as a 'software developer', making sales and in some cases gaining venture capital thereby.  He has ideas, arranges the testing, contracts developers to do whats required (us :), drives the project forward when it needs it, makes the 'tie-breaker' decisions on the design when its required (selecting from the possibilities we give him of course), has good ideas about where to go next, arranges everything from graphics to websites (for some clients we arrange such things ourselves, in this case he does it).
I have _never_ doubted his right to call himself a software developer...he couldn't write code to save his life (and is even smart enough to know this), but there is no doubt in my mind that he is the single most important force behind his applications.

_dont_ be stingy about giving credit where its due, and _dont_ fret over the definition of what a 'software developer' is, its just a label.

Ive always disliked people who battle over giving out credit, for any reasonable, mature adult there is _always_ enough credit to go around, and for everyone else there is _never_ enough.

From your original post Im picking you as the person with the ego problem, not necessarily your boss....or, to put it more clearly, maybe your boss has an ego problem and maybe he does not, but _you_ certainly do.

shame on you :)

FullNameRequired
Saturday, March 13, 2004

Ok, Stevo's boss is the Lead Software Architect. Everyone happy? ;-)

Bored Bystander
Saturday, March 13, 2004

FullName, I don't think you're a software developer at all. I would call you a coder or a web developer.

That came out back when you were saying open source was so wonderful.

.
Saturday, March 13, 2004

"FullName, I don't think you're a software developer at all. I would call you a coder or a web developer."

LOL

Nice to see that your total lack of knowledge regarding who I am and what I do isn't stopping you from forming an opinion :)

you would be half-right :)  Im a coder, a web developer <shudder>, and a software developer.

On the whole my company focuses on software development and writing applications for others...thats just cause I far prefer application development(using c++ or realbasic) over writing websites ...wherever its reasonable and possible I subcontract all the graphical and web development work out, wherever its not we just bite the bullet and do it.
We also do all kinds of fun stuff with php, perl, databases (mysql and sqlserver are the ones we use most), applescript and other strange and wonderful scripting languages.


Interesting distinctions though, perhaps you would like to differentiate between 'coder','web developer' and 'software developer' for me?  Im a little unclear on exactly where youare drawing the distinctions...I have my own ideas on that but Id be interested in hearing yours.

FullNameRequired
Saturday, March 13, 2004

Software developer - develops applications and everything associated with that. Would generally be capable in C++ although in some cases might not be

Web developer - HTML jockey, pulls things together under instruction by others who do the design and provide the content; "coding" consists of hooking up databases

Coder - writes code under instruction and probably lacks wider skills. Although this is a role more than an occupation, good developers avoid these types of roles, so the role does become something of an occupation.

.
Sunday, March 14, 2004

<g> I/We do all of those things and a number of others beside....what does that make me and my employees?  super developers?  software design and creation engineers?

personally I suspect that the answer is "computer geeks"  :)

the trouble with labels like that in the software industry is that they are entirely meaningless, totally insufficient and taken seriously only by those poor, sad people who need to reenergise their ego on a regular basis.

what are 'software engineers'?  that one has always appealed...Ive just never been sure exactly what it meant...

Maybe my company is made up entirely of 'software engineers'.....or maybe we are all 'solution developers'.

"synergisers" perhaps? 

Currently I just call everybody a 'programmer' and leave it at that....<g> our new reception person has a job description that includes 'project manager' for certain clients....what does that make her?  a receptionist or a project manager?

stupid people worry about labels. personally I like the kind of people that joel described so perfectly...."smart, and gets things done."

maybe I should use that as the title for _everyone_ :)

Hi there Mr Client, Im FullNameRequired and this our "smart, and gets things done." person...she will be working with you for the next week or two to sort out what your requirements are.
If you have any problems please feel free to contact me directly, we also have a "smart, and gets things done." person at the desk who is wil be happy to help you wherever they can.

FullNameRequired
Sunday, March 14, 2004

Lead/Chief Software Architect is just right to stroke his ego while implicitly stating he never got his hands dirty with any coding.

So he who has ears will get the message.

Incidentally, you can mention Bill Gates is a Chief Software Architect. If *that* doesn't do it for him...

Ignorant youth
Sunday, March 14, 2004

What happens to the good ol' days when you are a programmer, and your boss is a manager?

*sniffles*

T.J.
Sunday, March 14, 2004

If you look at it from a straightforward use of the language (which he may be as he's not inside of this programming culture, and your audience of other employees most likely is) then he appears to be the "developer" and you'd be the "programmer".

Dictionary.com says this:

developer
n 1: someone who contracts for and supervises the construction of a building

programmer
n : a person who designs and writes and tests computer programs

I know that these terms have come to have different uses within the programming community, but to the world at large, the above are likely the most common understanding.

  --Josh

JWA
Sunday, March 14, 2004

*  Recent Topics

*  Fog Creek Home