Wednesday, October 11, 2006

I call them "coders"

They call them programmers.  Whatever you call them - not good :)

I don't think I was ever a programmer - I would like to think I was always a (database) Developer.  At least according to their metrics.

I remember way back when, I decided to go for a Masters in Information Science.  I was attending George Washington University and George Mason.  In addition to being taught absolutely nothing relevant to real work (although I did learn to write a compiler in Lisp - very interesting...) as it applied to me - I had to listen to a professor explain that "there is no such thing as a programmer/analyst" (the job title in vogue at that time for developers).  His theory was "there are analysts, they do not write code, they architect solutions, then there are coders, programmers - they take this perfection and make code from it".  I didn't agree then, I don't agree now.  He thought anyone that thought they were a programmer/ analyst was a really bad coder that couldn't think right.

Now, I'm not saying that 19 years ago, I was a really good "analyst" (what we call architects these days).  But I really disagreed with the thought that a developer could not be both a "writer of code" and someone with some smarts business wise - who could "architect" the system. 

And I still do - see that link, makes a good read.  I think they got it mostly right.

Software engineering, not yet a true profession, places no minimum standards and requirements upon practitioners. Until that changes, hobbyist programmers will remain free to masquerade as software development professionals.

yeah...

POST A COMMENT

16 Comments:

Blogger David Aldridge said....

>> ..."there is no such thing as a programmer/analyst"

I wonder what he would have thought of developer/DBA's?

Wed Oct 11, 11:17:00 PM EDT  

Anonymous Doug Burns said....

Watch it, Aldridge! ;-)

Reading that article made me think just how many of those are attributes of a good DBA too.

I've decided it's about IT professionals.

Thu Oct 12, 04:10:00 AM EDT  

Blogger Noons said....

that "no such thing as a p/a" is the main responsible for the debacle that custom software and inhouse software was during the 90s.

Instead of shooting the idiots who came up with this one, IBM and many others delighted in making the A/P role disappear. Usual excuses: too expensive, can't find anyone competent, TCO, buy 3rd party don't develop inhouse, yaddayadda.

The usual excuse of the pointy hair style of management.

5 years ago I was at an IBM contract where the project manager was running around like a blind chook, looking for A/Ps. Real ones. I just laughed and explained it was his company that had mostly contributed to the demise of the role, why not ask his senior management for it?

After the usual initial discredit reaction, the guy finally admitted I was absolutely right. He'd been there long enough to remember what an A/P really was all about...

Now we got L-l-larry trying to do the same to dbas and developer/dbas. If only these guys LEARNED from history, instead of forever repeating the same errors in tight spirals...

Thu Oct 12, 04:27:00 AM EDT  

Blogger Kim Berg Hansen said....

Thank you, Tom!

My heartfelt appreciations for showing me that link - that just hit the spot!

When I started university (math/computer sciences) in '88 anything I read also said there was either analyst or programmer - not both. It didn't "feel right" to me, but I didn't know any alternatives.

Fortunately for me when I did get into the programming business, I started at a medium small place where new customers were "given" to the one of the consultants/programmers available who had closest knowledge about that customers business. Then that consultant/programmer was a one-man project for that customer - meetings, analyzing, coding, debugging, teaching, talking to users, etc.

It didn't quite work that way when we grew and got larger customers needing more than one coder, but it was great while it lasted. And it certainly helped give me a foundation of understanding the benefits of being involved in all stages of development - interviewing users, analyzing, designing, coding, delivering, teaching, etc.

I would not consider taking a job where I just had to code what others had designed/analyzed.

Thu Oct 12, 07:40:00 AM EDT  

Blogger Bill S. said....

I started in I/T back in the early '80s as a computer operator. I worked my way up to P/A over the course of many years, during which time I took pains to learn the systems I worked on as an operator to the best of my ability. When I became a programmer I was very concious of the things that, as an operator, annoyed the hell out of me when programmers did them. I felt that knowing how to RUN the systems I was coding on made me a better programmer.
Today, seems like you no longer need to do that - just spend 2 years in an approved educational program and BAM! - you're a programmer.
Just add water....

Thu Oct 12, 08:27:00 AM EDT  

Blogger Niall said....

I too liked the article, though I hated the titles he chose to use, it is not at all obvious to me that the word "developer" implies a different mindset to the word "programmer".

I also still think it is about professionalism rather than a particular skill set - why I want to hear the worst practices talk, since Doug's summary of it rather suggested that I'd disagree with it - I don't see why developers/dbas/designers can't all exhibit professional standards myself. Sadly too few do, probably because too few have worked in a profession rather than a trade, not that a trade is a bad thing per se - just that its the sort of area that tends to encourage cowboys and needs regulation in a way that professions, that tend to *effectively* self-regulate don't.

Thu Oct 12, 10:43:00 AM EDT  

Blogger Joel Garry said....

Since I've had "I'm a Computer Programmer" on my homepage for a decade, you might imagine I'm ticked off at their choice of words.

Today is the 26th anniversary of the start of my first programming job. I guess I'm glad I have a lucrative hobby.

So now I can't tell people I'm a Computer Programmer. Can't tell them anything with "database" in it either, the conversations go like this:

Unemployed Construction Worker: So, what do you do?

Me: I work on computer databases.

UCW: Oh, I've really gotten into that. Have you heard of J--- [something I've never heard of that probably has nothing to do with databases]?

Me: No, I work on, um, larger databases for businesses.

UCW: Oh, yeah, I've really been wanting to learn Access.

Me: Well, um, to me, the essence of a business database is being able to share data among people. Access...

UCW: [Eyes glazed over]

Don't get me started on people equating "administrator" with "secretary."

As far as the article, to me "developer" means what they are calling programmer and Tom is calling coder. Maybe they've been offended by the "extreme programming" folk.

The points people are making about professionalism are good ones. I think I don't agree with Niall about professions effectively self-regulating - they have became professions because they were not effective at self-regulating, and the problems became obvious. Hence, professional societies, with their own issues of being with us or against us. There are professional computer societies, of course. Why have they not solved these issues, or indeed, why are they so invisible this is the first mention here? I guess the answer there is there are no laws to say they are in control. Should they be? I think not, as they tend to be anti-scientific and anti-innovation. Even scientific societies and academia have problems with not-how-we've-done-things.

I'm not convinced that there shouldn't be all different sorts of people doing information work. Even complete-BS consultants have their place. The only real problem is people whose skills are way out of sync with what they should be doing. There is some self-regulation there: we've all heard of people not lasting 2 days in some jobs. And conversely, we all know people like those denigrated in the article. We're upset that they get work we don't. Sometimes those people learn (I'd argue, in general, either they do or they eventually go on to something else - or such work is actually useful in some cases).

Maybe the real answer is, it doesn't really matter for many companies whether their software is done professionally. That really rubs me the wrong way, and yet I have to remember, perfection only matters to shadow reality.

Even accountants have write-offs.

Thu Oct 12, 01:40:00 PM EDT  

Anonymous Doug Burns said....

Nial said ...

why I want to hear the worst practices talk, since Doug's summary of it rather suggested that I'd disagree with it - I don't see why developers/dbas/designers can't all exhibit professional standards myself

Well, it was a pretty throw-away summary that I couldn't resist including because of the whole DBA/Developer 'thing'. I missed out most of what Tom actually said, some of which he's expressed before with discussions of 'Version 6 DBAs' who only do shutdown, startup, backups etc ... Having worked with a few of them, I think they are bad news. As are developers who just sit and cut code and expect the database to 'just work' without any thought to how it works.

I'm not sure I've expressed it much better than my original summary, so you'd probably be better attending that presentation ;-)

Joel said

Maybe the real answer is, it doesn't really matter for many companies whether their software is done professionally.

Not so long ago I realised that was my main problem with my job these days. If software is 'good enough', companies are satisfied. Maybe they could spend less on hardware and have more supportable systems if people had higher work standards, but unless I can demonstrate a real improvement in the return on investment, why should they care? They're not geeks.

Every time chaos hits, we all fight like crazy to fix it and then we wait for the next outbreak.

It's not what I believe to be best, but it's what I keep seeing.

Thu Oct 12, 02:15:00 PM EDT  

Blogger Noons said....

Every time chaos hits, we all fight like crazy to fix it and then we wait for the next outbreak.

Very true. It's been the backbone of my IT life to fight against this very mind set. And before anyone says it, let me Phantom Nitpick: "pro-active" is NOT an English word.

How many times have I seen database servers about to run out of disk space or just plain capacity, yet when we raise the flag and warn of it, all heck breaks lose on "how expensive it is to run Oracle" and other such utter rubbish?

Then it takes weeks before anyone decides that indeed backing stuff to tape MIGHT just have been a good idea after all? And that expanding the capacity of a high performance SAN to keep backups is a fundamentally stupid and expensive solution?

This kind of people wouldn't blink an eyelid if the "flavour of the moment" brigade asked them to install the equivalent of a Cray supercomputer to run a blithering inefficient, pidly workflow system with half a dozen users!

The problem is not with the "programmers" or the "designers". The problem is with the management layers who foster and abide this kind of approach. And the prevalent attitude that this is the way IT should be run.

Look at a "risk analysis" done by these folks: is there anywhere a column dealing with the REAL cost of not considering a technology-sound solution? Or the real cost of not submitting a project to a feasability and/or optimal use study? Most of these folks don't even know what those mean!

And yet, these are the "decision makers" of this industry! Decision here being understood as the ability to discern who gives the biggest kickback.

Quite frankly, while we keep circumventing the problem with discussions of "programmers" vs "developers", this will just go on and on...

Thu Oct 12, 10:38:00 PM EDT  

Blogger stephan said....

This comment has been removed by a blog administrator.

Fri Oct 13, 05:25:00 AM EDT  

Blogger SeanMacGC said....

Good article Tom, and agree, that it's mostly accurate.

Would it be correct to say that 'WHEN OTHERS THEN NULL' or SYSDATE embedded in ETL, for example, are the best friends of 'programmers', and using the word programmers in its most derogatory sense here?

Programmers in that sense operate in a vacuum, developers aspire to an awareness of the whole.

Fri Oct 13, 05:46:00 AM EDT  

Anonymous Gabe said....

Noons said: The problem is not with the "programmers" or the "designers". The problem is with the management layers who foster and abide this kind of approach …

Quite frankly, while we keep circumventing the problem with discussions of "programmers" vs "developers", this will just go on and on ...


Yep.

Fri Oct 13, 10:50:00 AM EDT  

Anonymous Michael Norbert said....

Tom

Could you blog on what you think a database developer encompasses? I don't do any front end development at my work. Most of it involves working with developers on using Oracle to its maximum potential. I always fight to not get lumped in as database support. I prefer database developer but just need more clarification on what you think that means.

Tue Oct 17, 10:58:00 AM EDT  

Blogger Thomas Kyte said....

Michael -

see these links...

Tue Oct 17, 11:06:00 AM EDT  

Anonymous Understandably Anonymous said....

Great article. I don't agree with the role-based terminology. It's all down to competent vs. incompenent. These divisions can be further broken down to conscious and unconscious (i.e. unconsciously imcompetent, consciously imcompetent, consciously competent, unconsciously competent). I work in an organization where the majority of the programmers/developers are unconsciously imcompetent despite repeated late, flawed and unmaintainable software deliveries. A cosy little club has been built that "talks a good game" and still gets judged on this particular ability instead of past performance. I would be interested to hear any war stories where this type of prevailing mindset within development teams has been broken.

Fri Oct 20, 08:30:00 AM EDT  

Anonymous Anonymous said....

Hi Tom,

I browse your asktom site a lot, but it seems I have never be able to ask a question there and I hope my question here can be passed to you:


We have all linux in house, and we have oracle 10g (10.1.0.4) running. As I observed, even if our total SGA+PGA is less than the total physical memory, the 'top' command shows the memory is 100% used (all the time!)

top - 12:47:53 up 16 days, 12:58, 3 users, load average: 1.06, 1.12, 1.55
Tasks: 457 total, 4 running, 453 sleeping, 0 stopped, 0 zombie
Cpu0 : 49.8% us, 2.6% sy, 0.0% ni, 41.9% id, 2.3% wa, 0.7% hi, 2.6% si
Cpu1 : 4.6% us, 0.7% sy, 0.0% ni, 90.1% id, 4.3% wa, 0.0% hi, 0.3% si
Cpu2 : 28.8% us, 1.7% sy, 0.0% ni, 66.9% id, 2.3% wa, 0.0% hi, 0.3% si
Cpu3 : 89.4% us, 0.0% sy, 0.0% ni, 9.9% id, 0.7% wa, 0.0% hi, 0.0% si
Mem: 16410228k total, 16295052k used, 115176k free, 64112k buffers
Swap: 16779852k total, 807328k used, 15972524k free, 14749960k cached

Could you explain how does oracle allocate memory in linux? is it different from other OS?

also, in one of your thread from asktom site, you mentioned SEMMSL should be set to 10 plus the largest initsid.ora PROCESSES parameter of an Oracle database on the system. Is this still true for oracle 10g? the meaning of PROCESSES parameter cahnged since oracle 9i...

Thanks a lot!

Linda

lding@broad.mit.edu

Fri Oct 20, 01:17:00 PM EDT  

POST A COMMENT

<< Home