Click to See Complete Forum and Search --> : Software Developer Types


darwen
August 24th, 2005, 06:49 PM
In my experience, there are four groups of programmers :

Hackers

These are people who have no consideration about design issues. They hack away at code until it works, and then deliver it.

How to identify a hacker :

(1) Huge blocks of code commented out.
(2) Code like this left in place :


void CMyClass::MyFunction(LPSTR szString)
{
// ....
szString[nIndex + 3] = '\0';
szString[nIndex + 2] = '\0';
szString[nIndex + 1] = '\0';
}

or

CMyClass::CMyClass()
{
m_nMyInteger = 2;
m_nMyInteger = 1;
m_nMyInteger = 4;
}


Programmers
I don't mean to be derogatory here, it's just a name I'm giving to a particular type of person (for want of a better one).

These are people who need specifications.

They can't think for themselves. If you say to them "maybe this is a good idea" they take it as gospel and base their entire coding strategy around what you might have said as an example.

They're kind of automaton - robots. You tell them what to do and they're fine, but if they have to think for themselves then like most robots on Sci-Fi movies they shut down.

Software Engineers
These people are more interested in producing 1000 pages of UML design than actually writing the code.

If you take offense to this, then see the last statement.

But these are people who have reasonable technical knowledge, but have a great deal of knowledge about how management works and more specifically how they can make the management system of their company work for them.

These people always suggest that they know the best way of doing things (e.g. let's use C# - when they have no idea what they're talking about), impress management and generally talk more bull than I've got in my cess pit.

Unfortunately these people are more likely to make big money than us in the final section...

The Undefined
The Undefined can do everything.

The Undefined can be a hacker when necessary.

The Undefined can be a programmer when necessary.

The Undefined can take on managerial skills and be a software engineer when necessary.

Mainly that the Undefined care about their art, their craft and actively try to improve themselves in everything that they do.

In short, the Undefined care about what they are producing.

Generally the Undefined will always produce great designs for software, in a very short space of time and combine all the above's advantages without any of their disadvantages.

The Undefined work in the job that is required of them at that moment in time.

However, The Undefined are never really appreciated by management. Mainly, from my experience, because this section of people are not understood by management.

Good management of staff comes from the understanding that no-one wants to be working. And that the people that are working for you will 90% of the time not deliver either on time, or even what you wanted them to do in the first place.

Management is there to solve and account for problems.

The "Undefined" programmer doesn't cause problems and actively goes out of their way to solve problems which they see arising in the team which they are working in.

Am I wrong in this categorisation ?

Any thoughts ?

Darwen.

kirants
August 24th, 2005, 08:36 PM
The categorization is pretty good.. From what you say it sounds more like ..
The undefined = Jack of all trades, master of none.

But, I should disagree with you when you say that the engineers are ones who make the money and have a say. From my personal experience ( for 10 years as a programmer, hacker, undefined ;) ) , I should say, I have been in groups where a fairly good amount of responsibility of technical decisions were taken by people who actually did the core work ( i.e. the != engineers class ). I should mention that this was limited to the technical decisions alone and not about the product roadmap and such..

I don't understand what you mean by
However, The Undefined are never really appreciated by management.
How would you define appreciation ?

RoboTact
August 25th, 2005, 07:14 AM
Your "programmers" group is usually named "coders".

wildfrog
August 25th, 2005, 07:19 AM
Your "programmers" group is usually named "coders".Are you sure? To me a "coder" sounds more like an "undefined hacker".

- petter