Fog Creek Software
Discussion Board




Programmers Attack! (other programmers, that is)

Quoting from a current thread:


>> an unusual characteristic of programmers as a profession ...  is the propensity of programmers to attack other members of the same occupational grouping.


>> This is relatively unusual. Most professions don't do this. Lawyers, doctors, journalists, plumbers, teachers, nurses generally understand the nuances and difficulties in their work and responsibilities, and protect each other against attacks from outside.


>> What is it about programming that removes this group identity?

I have wondered about this for years.  Snideness and extreme lack of sympathy and esprit de corps have always pervaded this IT industry sector. If there is a less mutually self protective group of workers around, I'd love to know.

The most egregrious example is localized. Usually, I've found that when someone loses their job or is hideously screwed over professionally in some other way, the victim generally has to find sympathy from outside this industry or at least outside the immediate peer group of co-workers. The most common reaction to professional misfortune is "he deserved it because he was lame/weak/incompetent/dishonest/too high falutin." People closest to the victim tend to turn most decidedly.

In my mind, the lack of loyalty and the back-stabbing nature of programming culture isn't  anything new. I've lived with it for > 15 years.

I can provide a laundry list of key examples, but the psychology is what I am interested in. IE: why are we such an occupation of unprofessional, snot nosed weasels? (If anyone vehemently disagrees and states that programmers they have known have acted only with honor and valor and courage, I will cough up such a list...)

I myself have even acted in the same manner that I am characterizing (only with very good reason, of course :-) ) and it just seems to be part of the culture of this field. Expect no loyalty. Expect no respect. Expect no deference to age, experience, accomplishments, or wisdom. Expect everyone who looks at the code you wrote at your last job from which you were fired to laugh at it and ridicule you as an asshole... and so on.

Bored Bystander
Saturday, May 24, 2003

Professionals like described - doctors, lawyers, etc. go through extensive training. There was a study where they determined that military personelle are loyal to each other, even years after being in the service because they all went through a similar difficult experience - basic training. This is similar to the hazing fraternities go through. Suffering brings people together, you've all been through the same thing, you can trust each other.

Programmers, on the other hand, don't go through such a stringent and ritualized initiation period. Perhaps it reflects in the culture - haxors (or however the cool way is to spell that) one up each other - they carry it up with them.

Just a thought.

www.marktaw.com
Saturday, May 24, 2003

other professions go through a rite of passage that provides a common frame of reference and bonds the practitioners together.

our profession consists of a majority of socially inept rejects.  sadly, most of them don't even realize it.

victim, jr.
Saturday, May 24, 2003

Bored Bystander is completely on the mark, as usual.

My experience is only w/class projects - can think of four off the top of my head.

Programmers, in general, are *extremely* secretive.  I remember one group had to kick out one of their members because he had like 12 pages of code and wouldn't let anyone else in the group see the printout.  Otherwise, this guy was talkative and open. 

For a change, I wasn't able to contribute to my last group because of other classes (role-reversal for me).  For the last couple of weeks (I had to ask the web master how to connect to the site w/ftp two weeks before it was due [my IP had been dropped 'cause I had tried to telnet once]) no one in my group would respond to any of my questions, like when the meeting was, etc.

I asked one guy how he did the javascript, loudly, during the presentation, and he just ignored me, and no one was even talking (on the one hand I understand, but only a programmer would go that far).

Anyway, there was barely any group communication, as usual.    If it wasn't for the fact that the project was a website and you could look at it, I don't know how we would have communicated - just periodic meetings for the "in" members, I suspect).

There must be something about programming that attracts the CYA first and last. 

Brian R.
Saturday, May 24, 2003

Is that what you were reading?  I was reading into it how police brotherhoods protect the bad seeds in their organization, or those nasdaq-blinded coders who treated their sysadmins like dirt.  It was common to stay late in my last job, commiserating with undervalued people lower in the totem pole.

Had I answered that question intelligently, I would have pointed out that the politics in other professions make programmers look like angels.  Workplace backstabbing is just not a common problem in this profession, unlike in say academia.

This is a little like Rashomon.

Tj
Saturday, May 24, 2003

Actually, I had a blast observing this team.  One guy said who wants to document the code, so I started doing it, but two other guys (whose jobs it wasn't) beat me to it (on the same day) and  left my name off the group list.

On the day of the presentation, I didn't exchange a single word w/any of the members.

I don't know if anyone can understand how much I am laughing my head off on the inside, because I carried two projects previously (project manager -lead programmer), and spent 125 hrs. on one of them.

So I was highly amused by them; it was just so much fun watching someone else squirm for a change.  lol.  Especially 'cause they seemed to act so superior - like I was bugging them if I talked about the code.  They wanted to be the ones to ask the questions.

It was a little more like 'king of the hill', than a group, to me.

Brian R.
Saturday, May 24, 2003

And for the record, we didn't write the program.  Just modified a very large one out of a book/CD.

Brian R.
Sunday, May 25, 2003

The funny part is that I told all five of them what each of their roles should be at the beginning when they were looking for guidance, and they each took on those roles, and it worked out best because of that.

Brian R.
Sunday, May 25, 2003

"Expect no loyalty. Expect no respect. Expect no deference to age, experience, accomplishments, or wisdom"

Bored,

I would say this true for almost any profession & professional in this day and age.

Prakash S
Sunday, May 25, 2003

Some thoughts in no particular order (and dammitall, I thought I was gonna start the mother of all flame wars. Guess I'm a lamer. :-) )

Prakash: re: 'this day and age' - I ran into slimey programmer behavior first in the late 80s', note that I qualified my statements with "last 15 years." I don't disagree with you, I just think that programmers have been on the "foreskin" of backbiting.

victim jr. stated the following (and www.marktaw.com stated something along the lines of  the first part too):

>> other professions go through a rite of passage that provides a common frame of reference and bonds the practitioners together.

>> our profession consists of a majority of socially inept rejects.  sadly, most of them don't even realize it.

I'll go this one "depressingly better" and state my general observation.

Programming has (til recently) been quite easy to get into. No formal credentialing exists or is possible. No dues have to be paid.

In some cases, rewards to some programmers have been dramatically disproportionate to the effort invested - dot com millionaires to cite one example, or, localized 'prima donna's who walk on water due to mastery of a few tricks.
Programming attracts "thing" people and those who have trouble relating to others.

Many people (myself included) who could be called 'lazy geniuses' with some logic and language skills gravitated to programming over the years.

So - basically, this is a field that attracts socially retarded to  extremely arrogant bit heads with no people skills. Those who are not arrogant are very often socially backward.

I've tried to raise the consciousness of people that I've worked around over the years, re: preaching to fellow code heads to broaden their social repertoire, to try to be more accessible to non techies, to read more, to listen better, to not think  more code is the answer. I've lead by example, and I've tried to instill these messages with words.

The results: very little apparent difference made. Usually, you just wind up pissing off most geeks when you try to speak to soft skills.
So, I'm trying to get "out" of programming, somehow. I've found a much better class of programmer (literacy and common sense wise) on some BBSs but it's not exactly a viable social scene...

Bored Bystander
Sunday, May 25, 2003

I think marktaw is on the right track. Other professions, occupational groupings, or whatever, have rituals of entry. Those rituals develop group identify.

Bored, you make a similar point but also illustrate my point by taking the opportunity to kick programmers. ("No formal credentialing exists or is possible. No dues have to be paid.")

I actually disagree with you on dues not having to be paid. Extensive dues have to be paid, being long hours, hard work, persistence and creativity. More so than other occupations, you can not coast in programming.

Anyway, I just thought this was an interesting topic. I've noticed over the years that when there are attacks on programmers as a group, surprise, surprise, many programmers and even industry groups join in. They're careful to exclude themselves of course. Everyone else is hopelessly incompetent, we must have licencing, etc..

By comparison, attacks on other groups are usually rebutted by those groups, and often belittled as well. "What would you know about ...?"

.
Sunday, May 25, 2003

Bored:

Well, I think the behavior you describe is fairly understandable, because software development is (perceptually, at least) a meritocracy.  That idea is more subdued in corporate environments, where people play by the office politics, but one can see it readily in the open source movement (a microcosm of software geekiness, if ever one existed).

I think programmers tend to see themselves and their peers according to absolute standards of merit (eg, "writing good code"), and when someone fails (for whatever reason), then they haven't lived up to them in some way.  IMO, this is a bit of illusion that geeks maintain to cover up their insecurities--and more importantly, to justify their salaries and positions in a highly competitive field.

It really doesn't help that most bugs, to an objective observer, look like stupid mistakes.  So when programmers pick up new projects and they look at others' code independently, they see stupid mistakes; their own notwithstanding, of course.  That's why code reviews get so vitriolic; programmers are exposed to an objective view of their mistakes.  And that view is not pretty.

So there's a very conflicted work environment here.  Everyone is trying to cling to their place on the merit scale, but everyone is making "stupid mistakes."  It's no wonder a lot of brickheaded arrogance arises.

The fact is, of course, that we're all under a lot of pressure.  Software is hard; merit is ill-defined and often thrown out the window in corporate America.  Bugs are everyone's problem, not some acute intellectual disorder. 

Smelling the roses, literally and figuratively, helps a lot.  Everyone should live and learn horizontally; if not for the here and now, but down the line it makes a huge difference.  Careers, industries, and economies aren't forever, after all. :)

smkr4
Sunday, May 25, 2003

The meritocracy argument is right on.  From what I see, aside from your coding ability, most programmers would "kick their colleagues to the curb."

The biggest disappointment I see w/most other programmers, is that they don't share well.  They are *very* bad at sharing with others.  The cliche, of course, is 'herding cats'.

I actually talk more than anyone else in my classes, probably because I like to share, 'talk shop'. 

Funny thing is system administrators like to share, and talk, a lot more than programmers.  Which makes me wonder if I am in the right part of the field from that aspect.

Sys admins are cool as hell, and many programmers (that I know in person) are kind of 'anal retentive', in an introverted way, if I may say that.  At least sys admins, from those I know, are more extroverted about any such retentive opinions they may hold.

Brian R.
Sunday, May 25, 2003

Programmers aren't so bad if you have time to get to know them.  It takes longer to get to know someone who is secretive, and more judgmental.

If you are thrown together as programmers, on a short project, then there just isn't any time to learn what that person is capable of.

Brian R.
Sunday, May 25, 2003

If this is a scientifically-unproven but well known attitude, How does it affect on XP?

Sharing is a two-way trip, you can't expect people to share theirs, while you are hiding yours from other.  I personally thought, if I share mine, people will "eventually" do the same.  But apprently, I am beginning to realize I wrong I was.  Perhaps, my "eventuality" needs more time.

RM
Sunday, May 25, 2003

Some of this stems from the "sink or swim" mentality that hangs over many workplaces. Mistakes are not tolerated even at the junior level, so C.Y.A. becomes standard operating procedure (epitomized in 4-D's: distract, deny, deflect, and denounce).

Plain Rube
Sunday, May 25, 2003

Gawd I hate CYA.

www.marktaw.com
Sunday, May 25, 2003

I think CYA comes from the fact that the people who have influence have very little clue (generally speaking) about software development.

In the one company I have worked in that was completely devoid of the CYA mentality, the management and directors were software developers, and they continued to work in the "pit" with the rest of us, on the same production code as us.

They always adopted the attitude that the person didn't fail, the process did. Even at this stage, they still examined the process to see how early mistakes of that ilk could be caught.

It was the most productive and happy place I've ever worked.

Everywhere else has issues with management not understanding why things take so long and when you try to tell them, they write it off as a bunch of developer hoo-ha as if you're trying not to blame yourself (which gets us back to CYA).

The easiest way to not get in trouble is to not do anything but look like you are.

Geoff Bennett
Sunday, May 25, 2003

Here is the difference between programmers and administrator (actual case, sort of ).

There are two assignments in the syllabus named assignment 7, and two named assignment 9.

One person (me) simply ignored the mistake, and came up with two extra assignment #'s.  Another student said no way, if teacher says they are both 7, then they are both 7 (mind you each was worth 100 pts. individually as were all assignments)[another student agreed w/his logic].

Now this was a class full of programmers and none of them brought it to the teachers attention.  A system admistrator would have spotted this error on the first fifteen minutes of day one and brought it to the class's attention.

What happened is that the teacher renumbered my assignments (even forgot to give me a grade for three assignments that he gave me back graded!).

I pointed out at the end of the semester, the numbering, and the teacher was bafffled.

So, in summary, programmers are full of sneaky little sh*ts just like me (to quote 'Animal House').

Brian R.
Sunday, May 25, 2003

"When programmers attack!", stay tuned for the special on Fox ;)

I've recognized this pattern as well. And I can genuinely say that I make an effort to do the exact opposite, -- and have been quietly rewarded for it by being offered jobs and making friends.

I just quietly shake my head at the jerks that don't get it, they go nowhere.

Steve
Sunday, May 25, 2003

Software development is one of those areas where everyone is aware that its easy to make dumb mistakes and everyone makes them quite frequently and yet a lot of the culture they come from, educationally and in the work ethic, making mistakes is a bad, bad thing.  Many developers have low self esteem, low self worth and feel threatened if their work is shared or inspected.

Once you realise everyone is in the same boat and that sharing code and development is one of the closest work relationships you can have with another individual you lose that self doubt and ego obsession.

And you lose that defensive aggressive shell.

Simon Lucy
Sunday, May 25, 2003

CYA?

Prakash S
Sunday, May 25, 2003

"Expect no loyalty. Expect no respect. Expect no deference to age, experience, accomplishments, or wisdom"

I've always gone by a completely different principle: "You tend to get what you expect."  Even complete weasels are nicer when you treat them as if you were unaware of their weasel-ness :)

One of the reasons I own my own business is so that I can keep control over my environment.  Although I know that programmers of the sort described exist, such a beast does not work with me.

I believe this is partly because we focus on the team, rather than individuals.  Individual accomplishment is important, but the team accomplishment is what is going to bring success.

We also require that new employees earn a spot on the team, either via an unpaid co-op or a lowpaying probationary period.  Both are relatively long, too - our latest was four months.  I know that attitude isn't popular on this board, but perhaps the best argument is that this period provides a "ritual of entry" that others are arguing the profession lacks.  It also tends to self-select people who are really dedicated to joining the team, weed out the prima-donnas and weed out people who value money over all as the end goal of employment.

Programming is best done in small groups, thus the entire group has to be on board with the new person or the team will become derailed. I think we're unusual in that we run HR as a semi-democracy.

Finally, we definitely focus on process failures when things go wrong.  Everyone makes mistakes.  The question is not why did the mistake happen, but how did the mistake become a problem? Then we come up with an approach to prevent the mistake from becoming a problem again.

Phibian
Sunday, May 25, 2003

CYA = Cover Your Ass.

I think it was the first new acronym I learned as a budding engineer, 20 years ago this May.  Ahh, the nostalgia.  Came out of college into a company with 2 groups fighting over the same project.  Enough CYA generated to wallpaper a gymnasium.

In my experience, it was the end of an age in American industry that had the luxury of tolerating that sort of waste and inefficiency.  Multiple groups, same project, back-stabbing.  You don't compete against the Japanese very long doing that.  That was consumer electronics, early 80's.

I wonder if the software industry has yet to feel this competetive pressure.  All the H1B/India/China/etc. machinations...  just the tip of an iceberg?  I will tell ya one thing, I never saw foreign competition as bad, nor do I expect to going forward.

As for dues paying, rituals and canibalism.  Its all pretty tribal stuff - you saw it with RealPC vs. Bobnoxious (alpha male farting/claiming territorial boundaries - prolly laying claim to any women as well).  We've had our share of alpha-somethings and power plays.

If merit doesn't win out over bullshit, then you need to working on an exit strategy.  Also, most lamers will give you enough rope to hang themselves with.  Be patient, accumulate, and when the time is right and you have maximized your resources, you take your shot.  Hope that you're left standing in the end,

Nat Ersoz
Sunday, May 25, 2003

Programmers' propensity to put down each other is also reflected in their adamant refusal to join together to form a sizeable union, guild, or professional association of any sort.  Meanwhile, their lack of unity gives corporations and lawmakers free reign to trample them.  That's why we end up with crappy laws like the DMCA and software patents, as well as any of the insane management practices and abuses that are too numerous to mention.

T. Norman
Sunday, May 25, 2003

I live in a society where it is very stable, and we have apprenticeships.  The attraction of IT is that you can prove yourself rather than spend dull years in training in a boy's club.  Maybe now that programmers get older and less idealistic, they will want for job security.  It is a tradeoff, a meritocracy or union.

anon
Sunday, May 25, 2003

"Programmers' propensity to put down each other is also reflected in their adamant refusal to join together to form a sizeable union, guild, or professional association of any sort."

Translation:

Anybody who opposes unionization must be some kind of asshole who thinks everyone is worse than them.

News flash: some of us like to earn what we get based on merit, not based on the "negotiating might of the mediocre".

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, May 25, 2003

This has been an unexpectedly genteel discussion. You guys all sure you program for a living? ;-)

Anyway - T. Norman, you said a mouthful. As soon as anyone says "we need to band together" you get the whining spoiled snot ass newbie who claims that he is so superior that he will never need protection or cover.
I said earlier that I wasn't even excusing myself from the syndrome of "programmer against programmer" - I've put down co-workers in a mean spirited and judgemental way, and given the same circumstances, I'd even go for "toofers". But I had my reasons.
Here's what has caused me to "back stab" or have the appearance of same: gross incompetency combined with hubris. It comes up time and again.

The first time I encountered this was in the 80's. I hired onto a consulting company that supposedly had an "in" to IBM sponsored new product development. The guys I worked with  there were total dicks. Each one was a newbie writing 10x the LOC that he needed for a simple set of serial data collection drivers under DOS. They developed a huge bloated API that amounted to - open serial port, read chars, write chars, register callback function on leading incoming char, close port. They endlessly bullshitted and rejustified their crap, and they then ganged up on me when I tried to point out that it was unstable stuff. I had just come from a DOD environment doing this stuff for three years prior and of course NOTHING I said had any weight, except that customers also found these guy's code unusable and unstable. Of course, I was first laid off in a downturn. These guys would rebut anything I said with the excuse that I was from DOD therefore used to wasting taxpayer money. It was constant mutual fuck-you's hurled every day in both directions. Ugly. But all too typical.

And I've intermittently been a party to similar machinations later on at other jobs.


A recent example (recanting an earlier post now) was a guy that wrote a special purpose TCP/IP network routing program for a past client. The guy was fired for lack of performance. I was given the task of making heads or tails of the orphaned code. This guy was a beard stroking 'mensch'. He projected sincerity and earnestness. He also peppered a lousy and bloated C++ design with 'sleep()' calls to pace the code so that it would not lock up. Take out the sleeps for decent performance, and you'd lock up.


I was never in the position to confront this guy, but if I ran into him, I'd ask him exactly what he was thinking, and I'd tell him that it would be best for everyone if he chose to not code for a living or say that he could.


(on T. Norman's point - would a professional guild shield some dip like this guy and protect him from the consequences of his incompetency, or would he be smoked out as a fool? I really wonder.)


I'm not saying I'm always right and that my judgement is infallible. But just that there appear to be a tremendous number of lightweight developers just clinging to their jobs in this industry, who refuse to listen to proven experience and who are snottily hostile and defensive toward anyone who could help them do their work. In turn, in these circumstances I've tended to get drawn into the conflict and painted as "that arrogant prick that everyone really should resent because he's got all those years of experience that nobody else has."


The lightweight poseurs generally wind up in one of two tracks: they either get laid off or fired and find work elsewhere (either in this or another field); or, if personable and with the gift of gab, wind up ascending to corporate sponsored "godhood", namely management, which seems to consist of feeling superior to programmers for a living.

I've also observed that on some BBSs I frequent, some people who I consider par excellence character wise as people, who are voluntarily leaving this industry.  As much for the poor character of both co-workers and management as well as the bad prospects for employment.


I do sincerely admire guys like Joel who have managed to work in classy enough environments that they have avoided most of the timewasting, worthless moron turd wanna be co-workers of second and third tier companies in this industry. The rest of us, the unconnected proletariat lacking the "good company" background, have to deal with the negative politics that the mass of programmers cluelessly wallow in.

Bored Bystander
Sunday, May 25, 2003

Come on Brad, I've seen your resume.  You're not a special little snowflake.

victim, jr.
Sunday, May 25, 2003

PS: Brad Wilson - I just saw your comment. I wasn't aiming my commentary about the spoiled "L33T" at you or anyone in particular.

It was just a composite of the general meritocracy arguments I always hear, which typically come from people who haven't been in this field very long and who have never been screwed really badly nor seen someone else screwed for no good reason.

Which I am also not attributing to you or others on this list.

Bored Bystander
Sunday, May 25, 2003

More of my blather on the "special little snowflake" mentality of programmers:

Whyizzit that any explicit statement of self interest  is ALWAYS considered socially unacceptable among programmers? It's ALWAYS attacked as an expression of loser-hood and victim mentality. 

I think that most of us appear to be haughty and smugly immature hypocrites who have never had bad things happen to our careers. The ones that have bad things happen to them tend to vanish from this industry (it's that hard, sometimes, to recover from setbacks in this field) and never are heard from again. So the majority voice is the special little creative snowflake.

The IT industry has shills like Harris Miller whose full time job is to fabricate compelling arguments in favor of offshoring and H1B visa quota maintenance.  Self interest in considered OK in that context.  Or, the AMA, the bar associations, congress, teamsters, etc...
We programmers are supernaturally bright idiots....  especially eager to be ascetic and self denying when it comes to economics. Each has GOT to be on his own.

Depressing.

Bored Bystander
Sunday, May 25, 2003

Bored, I would point out that you and victim jr. are the ones doing the vicious sniping.  All these examples you come up with have nothing to do with lacking a "shared childhood" but have more to do with just working at dysfunctional companies.  The grass is NOT greener on the other side -- if you ever had a non-programming job or have friends in other jobs who complain, things are NOT better.  Over 90% of jobs suck.  90% of anything sucks.  If licensing will somehow get rid of the dmca or patents or pedophilia, great, but it just ain't gonna happen.

Tj
Sunday, May 25, 2003

>'News flash: some of us like to earn what we get based on merit, not based on the "negotiating might of the mediocre".'

Classic example of the "I'm too good to need any group to help me with anything" mentality.

Good luck in trying to get patent laws and the DMCA reformed by yourself. Good luck in putting a stop to the widespread practice of knowingly shipping unfinished crappy code by yourself.

Every other profession forms groups that can promote their legal or business interests while we as programmers allow our interests to be squashed by those other groups with little or no opposition.

T. Norman
Sunday, May 25, 2003

" It is a tradeoff, a meritocracy or union."

It's not a tradeoff - you can have both.  The Screen Actor's Guild for example, is a union of sorts, but it still has plenty of room for meritocracy. And associations like the AMA, Bar Association, etc. don't operate like the classic unions do.

"Union" does not mean it has to resemble the classic unions like the Teamsters.  A union, guild, or professional association is what its members make it.  Given programmers' mentalities, I don't see them allowing any group they form to become a shield for the incompetent.

T. Norman
Sunday, May 25, 2003

Tj,

This proves out my premise. You weren't there but you call my account "vicious sniping".

I'm interested in hearing about the component of the self biography that you consider "vicious sniping". In one instance I was being attacked first when people weren't able to do their job competently and our group's viability depended on exactly that. In the other instance I was the fall guy for bad code written by a wanker who had elevated his image well above his ability to perform.

I try to under-promise and over-deliver and to have objective reasons for doing things, and I tend to not fall back on arguments "because it's me and I'm a precious little snowflake and I'm smartest". In short, in a field where the work culture tends to center on adolescence, I try to act my age.  Which uniformly gets interpreteted as arrogance, smugness, etc. This has worn on me tremendously over the years, which is why I'm posting about it. And I don't believe that I am terribly unique in feeling this way.
I do think that programming is unique in one way: when infighting occurs, the reasons and justifications are absolutely opaque to outsiders, and all combatants look equally ugly.

Bored Bystander
Sunday, May 25, 2003

Surely the reason the professionals don't badmouth one another is because they might be struck off and never work (legitimately) again?

Paul Sharples
Sunday, May 25, 2003

That's true.. Doctors and Lawyers have bodies that certify them as being legitimate Doctors and Lawyers, and they CANNOT practice unless the AMA or BAR association say they can.

www.marktaw.com
Sunday, May 25, 2003

... Therefore it's difficult to discredit a doctor (quack), whereas one programmer can easily rag on another, and they won't often have their certification to fall back on to prove they can practice.

www.marktaw.com
Sunday, May 25, 2003

It's interesting to see yet further illustration of my point in some of these comments.

I pointed out that programming is unusual as an occupation in not defending itself against external attacks, either in popular culture or in the workplace.

I pointed out that large numbers of programmers, when confronted with this type of external criticism, will actually join in with it, but of course exclude themselves.

Sure enough, in this very discussion, we have people interpreting this point to mean that other programmers are nasty, or "don't share," or other things.

I think the answer is more in that programmers have not generally been exposed to argument and advocacy, and thus aren't experienced in challenging attacks.

Also, the acceptance of slights is a way for weak people to gain social popularity.

.
Sunday, May 25, 2003

On the subject of sharing, do any of you people ever wonder if you've been brainwashed?

Members of other professions are much smarter with these issues. In their training, they are taught that time is money, that only idiots provide free advice, and so on.

Instead, CS students are taught to be "team players" and spread their work around. Al this does is make it easy for you to be replaced by a cheaper offshorer or something.

.
Sunday, May 25, 2003

Also, as T Norman mentioned, groups like the Screen Actors Guild, and the journalism unions too, provide fascinating insights into how professional people do actually have to draw a line in the sand in order to further their interests.

This just comes from reading on the subject, and I don't have the URL's, but apparently actors were systematically screwed by the big movie studios in the early days.

Then one day the actors got together and said there would be a few rules from then on. Naturally, the studios accused the actors of being morons etc and tried to push on, but in the end actors got a fair deal.

Similarly, journalists in around the middle of last century, I think, suddenly realised they were the most highly educated people on newspapers, but the worst paid. Again, screwed by pubishers. Got some rules in place. Better deal.

.
Sunday, May 25, 2003

"." :

You've basically contended that my posts are examples of the same sort of attack that I am lamenting. Or, that is what I am interpreting as the main point.


Interesting. So in describing the problem, I become an exemplar of the problem. The only way I can choose to not become my own example of Heisenberg's uncertainty principle is to stop typing and talking about the nature of my occupation.


No, I'm not taking offense. This angle seems to allude to the ultimate problem of programming as a profession: standards are impossible to enforce or even describe in rough terms. 


Reasons? Everyone has a vote. Nobody's standards are ever applied to anyone else or otherwise considered valid. There is no fixed reference point of professionalism or good practice in our industry.  One person's criteria of goodness ("I comment all my code") is at once someone else's criteria of lameness ("huh, anyone who comments their shit is a lame dumbass because they have to use words to describe their code, and the code itself should tell what is going on.")


Everyone is self made, an original, a 'precious snowflake', all at once. Everyone an expert, nobody willing to suffer any criticism or peer evaluation whatsoever.


Basically, in programming, meritocracy can be claimed by individual practitioners regardless of actual achievement or experience level, and it is often possible for such "voices in the wilderness", even though they are truly alone and have no "validity", to be heard, listened to, and respected by someone who doesn't know any better who is willing sometimes to throw a real shitload of money at them.


This confirms what I've always observed: programming is one field in which even the most egregrious bullshit artist can find respectability. Oftentimes, with much more ease than someone who is pathologically honest and self effacing.

Check, please! :-(

Bored Bystander
Sunday, May 25, 2003

More in response to .'s excellent points:

>>  I think the answer is more in that programmers have not generally been exposed to argument and advocacy, and thus aren't experienced in challenging attacks.
>> Also, the acceptance of slights is a way for weak people to gain social popularity.


"Not being exposed to argument and advocacy" is a very good description of abject naivete'.

And if you point this out to a group of programmers, you're a marked man. They will utterly despise you for pointing out what naive little babes in the woods that they are.

>> On the subject of sharing, do any of you people ever wonder if you've been brainwashed?
...
>> Instead, CS students are taught to be "team players" and spread their work around. Al this does is make it easy for you to be replaced by a cheaper offshorer or something.

Programming seems to attract a "college professor" sensibility that is our undoing.

Many programmers, even ones not formally educated beyond high school, fancy themselves elite academician wanna be's, respected for their pure brainpower.  So they are quite susceptible to any form of flattery of their talent and knowledge. After all, professors are supposed to work for the betterment of the knowledge of mankind, eh?

(In fact, on the college professor poseur syndrome: I've worked with *2* different ex-machinists with only high school and no formal technology training who stumbled into programming. Each was absurdly defensive and thought he was the best of the best. Each one was an impossible asshole to work or collaborate with. Each one's work was mediocre to sh*t. Each one had to have his ass kissed in order to even talk to him.)

>> Also, as T Norman mentioned, groups like the Screen Actors Guild, and the journalism unions too, provide fascinating insights into how professional people do actually have to draw a line in the sand in order to further their interests.

The faux meritocracy culture of programmers encourages rejection of group action for the sake of self-interest.

Programmers immediately raise the "union"  objection whenever any action involving self interest is raised. We're supposed to be self sacrificing and never giving in to the "weakness of the flesh" found in lesser mortals who actually group together to accomplish a goal beyond the reach of individuals.

Programmers tell and brainwash each other, like macho infants, that they are "supposed" to be beyond group action.

Bored Bystander
Sunday, May 25, 2003

Bored -  I hear ya.

Take a few days/weeks off is my advice.

Don't think. Try and do something 'real' that doesn't involve moving electrons around inside a box.

Realist
Sunday, May 25, 2003

PS - Try not and have too many developer types as friends.

I've been developing code for donkeys years and something I realised the other day is that I've got no friends that are developers, that's pretty weird I reckon, does it say something just about me, or about all of the developers I've ever met? I haven't figured that out yet.

Realist
Sunday, May 25, 2003

"Programmers' propensity to put down each other is also reflected in their adamant refusal to join together to form a sizeable union, guild, or professional association of any sort."

Amen, Brad, preach it.

To summarize, there are some of us over 40 who aren't afraid to compete and we play to win.  Period.

As to the likelihood of unionization/guilding - I doubt it will happen any time soon.  Gnash teeth all you like, reality bites.

Nat Ersoz
Monday, May 26, 2003

Realist,

Thanks for the concern, I do appreciate it.

Actually, I have both points you cited covered pretty well. I'm taking a few weeks off to try something different. And I get along with other programmers like oil and water. My best friends are non technical or semi technical.

Bored Bystander
Monday, May 26, 2003

These types of problems arise in any profession where you make things. We're "makers".  You get the same problems if you go to a graphic design studio, or a film production house, anything where people have to interact to make something.

The reason is, when you make something, you do tend to give a little of your self to it. It becomes a product of your thoughts and ideas. Very personal. Problem arises when someone else has to help create. Differences of opinion too quickly turns into anger and hurt when you talking of something so personal.

Amongst these creators, there are those so bent on creation that they lose touch with everything else. You see this in any art form. Designers, illustrators... whoever. They shut themselves off to many things in order to get better at their craft. They usually tend to shut out social things first.

Lawers and doctors do things on a case by case basis. They have a throughput of jobs. They typically don't create something out of years of effort. If they did, then I'm sure the same people problems would arise.

Bored metioned "getting out of coding"... I share the sentiment. At break time I become a little jealous of the person that makes sandwiches. A job is never really longer than just a few minutes depending if they have to toast/fry something, any problems regarding the task are dealt with just as quick. It's a good way to be really.

Coding would be great if you could just turn up and code. But you can never "just code". You have to interact with superiors who have different opinions, you have to play the document game to follow company policy, you have to play politics to make sure you're not forgetten in the flow.

It'd be too wonderful if coding was coding.

Arron Bates
Monday, May 26, 2003

"To summarize, there are some of us over 40 who aren't afraid to compete and we play to win.  Period."

OK, so go ahead and "compete and win" and make the DMCA, bogus software patents, and non-compete contracts go away. What you call "compete and win", opposing forces see it as "divide and conquer".

In a few states doctors have been making progress in malpractice tort reform, which would have never been accomplished if they weren't part of an association and instead relied on "compete and win".

Programmers are going to be trampled more and more by legal and managerial forces unless they can band together.  However, I don't expect they will do so anytime soon.

T. Norman
Monday, May 26, 2003

Bored and others, some nice points. I'll reply to those points later, when I've got some more brain cycles.

I do want to comment on the creative issue, because I think that is important. This is a different subject from the earlier one, but relevant. This isn't about how programmers respond to attacks, but how popular culture, or particularly business culture, is inconsistent in its treatment of creative drive.

Writers, artists, film-makers and architects ( the ones with floor-plans) are all given latitude on the basis of them creating things.

But the similar latitudes that software developers might wish to take, or might display, tend to be tramped on and dismissed as failures to be a team-player, or social clumsiness, or something. Yet artists, writers, actors exhibit various strange behaviours which are more or less accepted.

Another little analogy I was thinking of is, and this relates to the mention of military groups by marktaw, is that military units can often encounter severe problems, such as aircraft being shot down, soldiers killed, and so on. Those experiences are seen as part of their work, and handling them adds to the standing of the units.

Yet development groups encounter problems such as project problems, and those are seen as failures by those groups. Should problems such as that be seen as part of the difficulty of the job, and developers be respected for their ability to handle them? Just thinking.

.
Monday, May 26, 2003

"Yet development groups encounter problems such as project problems, and those are seen as failures by those groups. Should problems such as that be seen as part of the difficulty of the job, and developers be respected for their ability to handle them? Just thinking."

Being involved in a nightmare project deserves respect, and I suspect that you could parlay it into something better looking on your resume. It's all a matter of what you focus on... The challenges or the problems.

Project problems do bring programmers together. The problem is that project problems are often not helped by management, whose goal is to get things done. I guess it's the same in the military, but I suspect in the military there's a greater respect for the life of each being sent into battle.

In programming you're disposable, in the military you're essential.

Also, the equivelant of surviving a horrible military manouver isn't living - of course you're gonna *live* through a nightmare project. The equivelant is delivering it.

www.MarkTAW.com
Monday, May 26, 2003

Hmmmm, for those that think programming is coding do they also think that writing, literary, technical or a note to Aunt Susan is the formulation of letters on a page?

Simon Lucy
Monday, May 26, 2003

If life is a spiritual journey, then we could each be here to help one another.

Yes, you are all right about typical programmer attitudes that we each come up against.

It's when someone tries to own their work, and say I did it, and they lock all of that sunshine up in a box.  Presumbably the box will open up in the afterlife, and light up their lonely pyramid of a tomb.

If we take the spiritual tack, and acknowledge that we don't own it, and it comes from God, we will get more out of life. 

I don't know what to say about people from countries that pay less, profiting from our knowledge.  This is the internet age, and offshoring is rampant.  We've been sold out by management, but that doesn't mean we should sell out one another.  Shine a light if no one else will.

Brian R.
Monday, May 26, 2003

In conclusion (given the posts to date): I have not seen one set of comments (mine included) that provide a road map out of the "bad karmic" cesspool that is programmer culture.

The only  interim, partial solution I've seen is Phibian's, but I have problems even with that:

>> We also require that new employees earn a spot on the team, either via an unpaid co-op or a lowpaying probationary period.  Both are relatively long, too - our latest was four months.
Some reasons this is not universally applicable (I'm sure you have heard it all, Phibian. Accept my apology in advance):

Nobody on the candidate end will really want this. Experienced, "good" candidates will consider it beneath them, and will only consider it if it's the only applicable job they can find.

If anyone other than those entry level have ever considered low or unpaid non-portable apprenticeship to a small private employer to be a good idea, I'd be interested to know who they are.

In fact, it almost sounds like a mechanism to select only entry level and/or desperate people. Remember the comments above re: other professions teaching that only an idiot works for free?

I am NOT slamming your workplace, Phibian. It's just such an unusual practice that I can't wrap my brain around it.

I won't speak to "apprenticeship" (diminished duties & pay to prove competency)  on the basic of my own preferences.

But I know of a place that has a similar overall practice. The result is worth examining. 

The owner  (an accountant, not even a technical graduate) mandates a paper and pencil test for all programmers. The owner has strict 'rules': no internet use on personal PCs, game playing == immediate dismissal,  overtime at certain periods (product releases) is mandatory, and I've know people there who will work all day Sunday - we're talking seven days a week w/o complaint. Yes, in the US. Yes, in the late 1990s to present date.  And the employer mandates tab stops, comments, file and variable naming conventions, etc.

The people at this place are all as nice as can be. Everyone shares, everyone cooperates.

And the management practices re: employees  is like a small company macro model of 1984 crossed with the Soviet Union.

I kind of like the idea of dues, apprenticeship, ritual, and in fact kicking someone HARD in the nuts (figuratively) to see if they have guts and character and will work with others and will hold to standards of professional behavior.  But if this is to be, I'd like to see it at a global level, not controlled by individual small businesses.  I am opposed to private employer attempts to re-enact this pattern on a non portable, non-standard local level. 

The fact is, MANY employers treat programmers semi-abusively in this sort of spirit, but those "dues" mean absolutely nothing to any other employer when it's time for the person to move on.  You become just another unwashed programmer  on the slag heap of bulk, commodity candidates...

Bored Bystander
Monday, May 26, 2003

Great thread this guys. I agree with a lot of the comments about lack of 'shared experience'.

One of the things that backs this up, I think, is that we are a very diverse group. A 'programmer' could produce web pages, database apps, assembler device drivers or legacy COBOL. It's also possible to become highly regarded, within your immediate circle, knowing a lot about just one tiny part of these areas. Consequently it's easy to start to look down on 'those idiots who don't even know Java/Delphi/JCL/whatever'. Lawyers and doctors don't seem to have this problem. Even if you spend all your lawyering time doing company taxes, you were at least trained in the basics of prosecuting murderers, and less likely to think people who do it are idiots.

David Clayworth
Monday, May 26, 2003

Bored:

Well, I disagree with the "disciplinarian" approach to management.  I've been through a combination of that _and_ the apprenticeship approach; my impression is that it's simultaneously great for small companies, and part of the reason those companies are small.

My point is, of course, that growth is a function of excellence, and excellence is a function of freedom.  Of course everyone will behave when they're under threat of being fired, but they'll be more afraid to take risks (ie, innovate), too.

The Soviet Union reference is particularly apt in this respect.  They did a fine job of keeping the peace (and then some!) within their own populace, but it was no accident that they collapsed economically, too.

Really, solving these problems just boils down to solving all the problems with the industry.  Our collective insistence on "release date over quality," the generally low barriers to entry during boom times, and of course the lacking social graces of geeks--all of these are interrelated.  The lack of focus on quality promotes a culture of bullshit, because in many organizations, any release that makes money is a success (and therefore cause for hubris).  The low barriers to entry (ie, the tight labor market) have eroded our human resources expertise.  And the social aspects have made the industry unpalatable to dynamic people.

Actually, I think the last aspect--about attracting the socially inept--is particularly important.  It's one of the reasons we don't have many women.  And women can bring a lot of real empathy and bonding to teams.

(that's not meant to stereotype women as emotional, non-technical people, but just to point out that they do have some advantages over the testosterone-crazed)

But I might accept your idea, anyway.  It has some practical value; keeping in mind, however, that those organizations that don't need rules or nut-kicking are the ones that will ultimately last.  For you particularly, the solution is to weather the recession and go work for a "classy" organization, or better yet, start your own and set an example. :)

smkr4
Monday, May 26, 2003

it's kinda funny.  i have an insider at a big low-prices retail chain, and a lot of the arguments we see here against unions are the same ones that this chain espouses in it's videos.

- a union takes away your rights.
- you can negotiate for yourself.
- you get to be the judge of your worth.
- etc...

what's funny about it is when cashiers & stockers actually buy into it.  yep, some of those stockers do negotiate a better deal than the rest of the 'herd'.  comedy of absurdity.

victim, jr.
Monday, May 26, 2003

You should check out Nickel and Dimed by Barbara Ehrenreich. Interesting read about what wage workers really make and how they really get buy. Kinda scary... Here's a writer for the New Yorker working in a wage slave job, and you kind of have to wonder how she would get out of it if she were really in that situation.

www.MarkTAW.com
Tuesday, May 27, 2003

Hmm - interesting.  I guess I've been lucky so far in my first programming job.  (2 years in the profession as of this month.)  My experience has been that my team is pretty consistently supportive of each other.  Perhaps it's because we're aware that most of us are junior programmers and we're all striving hard to get better.  (Only one of us has a CS degree, although several of us are working on one.)  We know that each of us has written crap code and we're trying to continously improve, with each others help.  We're also aware that each of us also has some good strengths, which complement each other, so we can be respectful of where each other is at.  Anyway, I haven't yet experienced the kind of backbiting, as a programmer, that others are griping about.

On the other hand, I worked in the corporate world for a number of years before my current job, and I can testify that stupidity, backbiting and politics are everywhere out there if you go looking.  It's nothing special about programmers.

Tony
Tuesday, May 27, 2003

Perhaps this is advocacy for pair programming?  You take away the ability of people to conceal and withold information, and force them to be part of the team.  Hard to practice antisocial tendencies when someone's sharing a keyboard with you.

Jim Rankin
Wednesday, May 28, 2003

I hear of the described behavior in *all* professions.

My aunt is a nurse.  It's her experience that doctors are incredibly elitist, exhibiting just the behavior described.

My Dad worked for the United States Department of Agriculture, Meat and Poultry Division.  There was constant backbiting and personal attacks.

I think this is extremely common.  You just don't hear about it.  We're in the profession, so we see it here.

Brent P. Newhall
Wednesday, May 28, 2003

> But the similar latitudes that software developers might
> wish to take, or might display, tend to be tramped on and
> dismissed as failures to be a team-player, or social
> clumsiness, or something. Yet artists, writers, actors
> exhibit various strange behaviours which are more or less
> accepted.

I'd like to add a couple of comments to reinforce this idea.

I have a friend that works on a radio. Loosely speaking, he's a sound tech. Before this, he worked in the radio's account dept.

While he was an "accountant", he had to follow a dress code. One day, he remarked that the people from the technical depts had no dress code, so why did the "administrative" depts had to follow one? The answer was that "those guys are artists".

My point? I agree that we (developers) tend to engage in an anti-social behaviour - I'm just as guilty as the next developer. However, there are other "prima donas" out there, in other industries. Why is their insane behaviour put up with?

1) Money. Why are the Rolling Stones allowed to destroy an entire hotel floor? Because they're filling up the pockets of an awful lot of people. How could Axle Rose be such an asshole? For that exact same reason.

2) It's part of the job description. As in my friend's case, the radio techs are supposed to wear long hair, and go to work in T-shirt + shorts (and sandals and a beach towel, in the summer).

Summing up, if some developers can be a gigantic PITA and get away with it, it's because whoever is paying them is getting some advantage from the deal, and lets them behave like rock stars.

Re unions, associations, etc - in Portugal, it's very hard to get a doctor punished for incompetence (malpractice?). Whenever a case like this comes to public, our "AMA" comes to the rescue, and defends the doctor. Of the many times I discussed the subject, we always reached the same conclusion - by protecting the incompetent, they are labelling all their members as incompetent.

--
"Suravye ninto manshima taishite (Peace favor your sword)" (Shienaran salute)
"Life is a dream from which we all must wake before we can dream again" (Amys, Aiel Wise One)

Paulo Caetano
Wednesday, May 28, 2003

Backstabbing goes on in all professions, but one difference is that programmer backstabbing is more at the macro level, while other professions backbite at the micro level but band together at the macro level.

So doctors or lawyers who work within the same building may backstab each other, but they'll join together at the statewide or nationwide level to tackle major issues such as fighting against legislation that threatens them or introducing legislation that serves their interests.

T. Norman
Thursday, May 29, 2003

Dear T. Norman,
                          You are right about the macro and micro levels.

                          One of the reasons that teachers, doctors or lawyers defend each other against the outside is the "there but for the Grace of God go I" syndrome. Every teacher knows he will have a certain proportion of students who's general attitude and behaviour is such that they learn nothing, so he will defend all but the terminally incompetent because,  however icompetent he himself is, he knows he may be next in line. Every doctor knows how easy it is to miss the tell-tale symptom, and every lawyer will have a bad day in court, and anyway lawyers always get bad-mouthed. Programmers on the other hand seem to have the Teflon touch; they are never held responsible by the consumer or public, even if their software is mind-bogglingly unsuitable.

                        Two other things to bear in mind are that JOS is a developers forum so you will see the attacks here (go to a teachers forum and you will see attacks on other teachers everywhere) and the competent software developer is often picking up the tab for his incompetent colleague, whereas with teachers, doctors and lawyers it is the the student, patient or client who suffers (indeed in the case of lawyers the good lawyer directly profits from the incompetence of his adversary).

Stephen Jones
Thursday, May 29, 2003

I don't disagree in general, but I'm reminded of an odd experience with a former colleague where just the opposite applied.

I don't usually feel that I'm in a position to assess the competence of my fellow programmers; there's too much going on that just isn't visible to me. The guy I'm talking about is the exception to the rule. He had minimal training in programming, having graduated in another, tenuously-related field. Programming was not his job of choice; he fell into it by chance, straight out of university. I don't think it was a secret that he really had no interest in programming at all and would rather have been doing almost anything else.

He was the one programmer I've met who was demonstrably, incontrovertibly incompetent; it got to a point where the poor quality of his work could not be explained by anything else, except deliberate sabotage (which I would not necessarily rule out either).

The business, of course, loved him, because he would meet any demand, no matter how unreasonable. Also, instead of setting up systems that would facilitate their work, he would quite often just *not* design a system and simply do their work for them, by hand - no programming involved. Of course, when he left, there were tons of jobs nobody knew how to do, which only increased his value in the eyes of the business.

Less explicable is the fact that his fan club included, not only besuited business types, but other programmers as well. To this day. I run into other programmers who worked with him, guys who normally shoot as soon as they see the whites of your eyes, and yet they constantly and unequivocally describe him as a good programmer whose efforts were blocked by impossible demands from the business.

Partly true, but it does not explain why, after two years of designing database after database, he was asked to list the primary keys and responded "what's a primary key?" Apparently, one of the other programmers (one of the very few people who shares my opinion of him) had tried to offer him advice now and then (such as "try putting primary keys in your tables"), but this guy never took it, always dismissing it as unimportant.

It's a turvy-topsy world.

Fernanda Stickpot
Thursday, May 29, 2003

An Access programmer by chance?

The thing is that Access is a superb tool, but most "real programmers" won;t touch it out of reverse snobbism.

So the guy who gets to use it is the one who can't be trusted with"proper languages".

And because Access increases productivity in designing simple solutions by a factor of two or three at least he is actually being more "productive" than anybody else.

Eventually the odd one of his apps will need to be scaled up and a "true programmer" will see the code. He will throw his hands up in horror, and announce it is a kludge and that Access produces sloppy unstructured code.

So nobody but the guy who can't do anyting else will want to use Access and so the whole process will start all over again.

Stephen Jones
Thursday, May 29, 2003

An Access programmer, yes - but so am I at the moment. That's the only database tool we're allowed to use. We don't get a choice of "here's your project, what tools do you think would be best?" It's a matter of "here are the tools you have to work with, and here are the projects you have to do."

Also, everyone starting to work with Access here gets a reasonable amount of training in it - not developer-level, but enough to know what a primary key is.

If I refused to work in Access, I'd be unemployed... especially since alternative employers probably look at my CV and go "Access! Bleurgh! She must have a really low IQ!" Which is unfair, because as you point out, Access is *fine* if you use it appropriately.

Fernanda Stickpot
Thursday, May 29, 2003

I don't really see that Access is a "lowbie" tool. I think it's the best local file-based database available for Windows, because it has almost zero installation impact (they may need MDAC, but as likely as not, they already have it) and installation ease (database is one file).

Brad Wilson (dotnetguy.techieswithcats.com)
Thursday, May 29, 2003

> If I refused to work in Access, I'd be unemployed...
> especially since alternative employers probably look at my
> CV and go "Access! Bleurgh! She must have a really low
> IQ!" Which is unfair, because as you point out, Access is
> *fine* if you use it appropriately.

For DB-based apps, nothing beats Access as far as productivity is concerned. I've built apps using Jet, and using SQL Server and Informix. Worked like a charm all the time.

You do have to be careful about how you access the data (e.g., avoid the "let's-get-all-the-rows-in-the-table" syndrome). However, you have to take this in consideration any other tool I can think of.

IMHO, Access has one major weakness, acquired in Office 2K - the deployment wizard. Access 97 had a good deployment wizard. Then MS decided to rewrite it, to integrate it with MSI. Apparently, it wasn't ready by the time Office 2K hit the shelves, so MS, following its "good practices", released a near-useless piece of junk, requiring workarounds for stuff as simple as creating a custom shortcut. I have no idea if this was corrected in Office XP.

So, while Delphi is my favorite tool, it doesn't get even close to Access in productivity when building DB apps.
--

"Suravye ninto manshima taishite (Peace favor your sword)" (Shienaran salute)
"Life is a dream from which we all must wake before we can dream again" (Amys, Aiel Wise One)

Paulo Caetano
Thursday, May 29, 2003

Brad,
          Access has two uses. The first is as a local database, which it appears to do quite well.

          The second is as a development tool for any database you want, including SQL server - for which tools and support are already built in - but also Oracle or MySQL or DB2. It is also an excellent tool for providing a mock up, with the added advantage that you save money on a specific UML program and often find that your mcickup is a fully working database.

Fernanda,
              If the guy never provides a primary key then it is a conscious decision because as you are well aware Access prompts you for a primary key and doing without is one of three altenatives.

                  He might have been stung with lookup tables however. The Access ten commandments consider lookup tables to be evil, and recommend that you link to the required field directly. Their effect on mail merge is only one of the documented problems.

                  The thing with Access is as you know you can do many things without knowing too much. But if you haven't got a solid training in relational database design then things are going to go wrong because that design is independent of the implementation. Add a lack of knowledge of why you should do some things in VBA and you do get databases which look like buckets of data stuck together with higgeldy-piggeldy like some kind of nightmarishly untalented primary school pupil's  art project.

Stephen Jones
Thursday, May 29, 2003

"If the guy never provides a primary key then it is a conscious decision because as you are well aware Access prompts you for a primary key and doing without is one of three altenatives."

Oh, sure. My point was not that he didn't use them, it was that he didn't even know what they were, and was quite unabashed about showing it in a meeting with a couple of managers.

I would never conclude that someone was incompetent because of one thing they did; I just mentioned that as an example.

Fernanda Stickpot
Thursday, May 29, 2003

*  Recent Topics

*  Fog Creek Home