CrapScape
Three years was a long time to work at
one company, especially a place like BodgeCo. Luckily John only stayed
at CrapScape for ten months. He started his new position just too late
for their Christmas party, but later heard that he had not missed very
much: it had been a "non-contributary" affair (i.e. the employees
were expected to pay for their own meals, drinks, transport, accomodation
etc.), and less than ten of the company's forty employees had bothered
to turn up at the chosen venue (a nearby pub). This very much set the
tone for John's time at CrapScape. It was a company of very little.
John joined CrapScape as a senior programmer. His
boss, Ginger, was a strange character. He seemed extremely closed to
suggestions for improvements to the company's main product, "Dodoware".
Dodoware was a surprisingly small product, its main function being to
provide a bridge between one set of products and another set of products.
It didn't really do anything itself that a good "import/export"
routine in either set of products could not have provided. Therefore,
its main sales drive was the ignorance of its users. They just did not
realise that they were buying something which they already possessed.
With Dodoware's limited functionality, it seemed surprising to John
that the product should sell many thousands of copies, especially with
its limited market size. Eventually, the market had to reach saturation
point: there could only be so many gullible bankers out there. Surely
then, the company must be working hard to break new ground in new markets,
or to add functionality to Dodoware and maybe even turn it into a real
product. Alas, no. CrapScape was content merely to sit back and let
the seemingly endless flow of cash roll in and wash all over them. The
staff turnover in their support department was phenomenal, as the employees
swiftly became bored with having to deal with the same old issues for
the same non-product day in, day out. In fact, staff turnover for the
near-year that John was there was exactly a hundred percent. Exactly
the same number of people that had been hired actually left the company.
Morale was lower than BodgeCo, simply because everyone at CrapScape
was so mind-numbingly bored for so much of the time.
John's job consisted mainly of making tinkering little changes to the
Dodoware inner workings. As some governing body or other made changes
to their requirements, so the Dodoware "in" or "out"
functions would need to change. Unfortunately - and especially amazing
for such a small product - the 'C' code was virtually unmaintainable.
The code had originally been written in Cobol, and had been converted
to 'C' using an automatic code converter. The converter used was not
a very good one, and the resultant source code was a spaghetti-like
mish-mash of "goto" statements. As far as John could see,
"goto" was the only control statement used throughout the
entire product. In addition, every single statement was preceded by
a mandatory comment which took up three lines. For example:
/*
*** Add 1 to sub
*/
sub++;
The main module in Dodoware consisted of a ten-thousand line program, mostly crammed into the same function.
For one particular amendment, John's strange boss Ginger insisted that
John test the product using the "brute force" approach - i.e.
test every possible permutation of everything (no matter that in reality
this would take 2.23E+24 years, or therabouts, to complete). John attempted
to produce the test scripts for this strange request, but soon realised
the futility of this, and refused to continue. At this point Ginger
mumbled something about having a better car than John's, and stomped
out of the room. Later, John read a book about QA and software testing,
and was horrified to realise that there are real, tried and tested methods
of software testing which actually work. He was horrified because, a)
three years at BodgeCo had possibly taught him nothing if he had only
just learned this, and b) Dodoware, a product which deals with people's
money, had evidently been produced without any such formal testing.
Ginger had been with CrapScape from day one - therefore acceptance testing
for Dodoware must have taken the form: "set out to test as much
as we possibly can, realise this is impossible, give up, hope the software
works, release it."
Ginger's Database
Ginger had written his own database engine,
of which he was extremely proud. The trouble was, the database just
wasn't very good. It didn't cut it: each table-file could only have
one index attached. The index had to be string-based: numeric indexes
were "allowed", but simply didn't work. There was no way of
setting up relationships between tables: this was about as basic a database
as it is possible to have. As for querying the table with SQL statements
- forget it!
In itself, this was not really so bad: John had to congratulate Ginger
for being technically able enough to write his own database engine.
It was still crap though. And to top it all, Ginger was so, so proud
of his database, and insisted that all programs must make use of it.
When the company uncharacteristically began development on a new product
(a Windows clone of Dodoware), Ginger made sure that the product made
"full use" of his DOS-based database. To this end, John had
to write a Windows API to connect Visual Basic function calls to the
DOS engine. He did this massively under protest, and several times almost
came to blows with Ginger as he presented an almost endless list of
possible solutions which either did not involve Ginger's database, or
which put a decent wrapper around the database so it could be queried
using SQL. All to no avail, of course.
Clash of the Titans: Stinky Stan vs Foisty
Fred
One important revelation which soon hit
John was that every company has at least one Stinky Stan. CrapScape
was no exception. Foisty Fred, like Stan, was a junior programmer. Fred's
(lack of) hygeine, however, made Stan seem like a Glade air freshener.
Fred used to (in fact probably still does) ride to work on a bycicle,
and would arrive in the office dripping with perspiration. There were
no showering facilities at the office, so he would grab the same old
work shirt from its same old storage area - stuffed unceremoniously
into his desk drawer from the day before - then he would disappear into
the toilet for five minutes, and (apparently) "towel himself down"
and get changed. Somehow he managed to render the toilets unusable for
the rest of the morning: the stench was truly intolerable. John soon
began to suspect that Foisty Fred never bathed, or even cleaned his teeth. The numerous bits
of food and tobacco weed lodged between his blackened teeth were a testimony
to his values of hygiene and cleanliness.
Tanya, an ex-employee of CrapScape, left the company in disgust after
being positioned next to Fred for over six months. Following a series
of extremely non-subtle hints, she became desperate and surrounded his
desk with air fresheners. She also bought some dental floss, toothpaste
and a toothbrush which she gift-wrapped and placed on his desk ready
for his stinky arrival that morning. It was his birthday, after all.
Somehow, she had to make him understand the overwhelming power of his
magical aura.
Her last desperate attempt barely made a dent in Fred's fudge-like armour.
He apparently took his shirt home to be washed that evening - but predictably
enough, he soon returned to his wicked ways. Tanya complained regularly
to management, but was made to feel like a troublemaker for her pains.
So, when she realised that she was trapped in a nightmare world of foisty
armpits and weak managers, she went to work for a less backbone-challenged
company - and CrapScape lost yet another valuable employee.
When John came to CrapScape, about three months later, Fred had apparently
cleaned up his act somewhat. He found this difficult to believe, however,
as Fred's smell was still overwhelming. Fred regularly talked about how
he could "hold his own with squaddies". Innuendos aside, John
soon understood what had driven Tanya to leave. He was only glad that
his desk was on the opposite side of the room to Foisty Fred's.
Fred's Pay Review
Interestingly, Ginger handled Fred's pay
review by taking Fred into the conference room and saying, "Sorry
Fred, your code is always full of bugs so you're not going to get a
pay rise." (He was only earning £12K anyway). Fred responded
by storming out of the conference room, throwing a fantasy book across
the room (for some reason he had carried a Stephen Donaldson fantasy
book into his pay review), shouting "Bastard!" at the top
of his voice, and storming out of the office. He returned an hour later,
somewhat meekly, to grab his cycling gear, then paused to get changed
in the toilet, and stomped out again. He returned the next morning as
if nothing had happened.
He later confided to John: "Well, I suppose Ginger does have a
point. I'm a crap programmer. I don't really feel worth more than twelve
thousand."
"Why don't you leave?" asked John, perhaps not altogether
selflessly. "You shouldn't let CrapScape mess you around. Remember
that Ginger did promise that you were going to get a pay rise. He just
tells you what you want to hear, until it's time to deliver, then the
truth comes out."
"Well, perhaps," Fred replied. "But I feel safe here.
The people here seem to like me."
The Web Page
John made friends with CrapScape's marketing
manager, Folly. Folly was convinced that the company needed a web page,
if she could only convince the company's fragile managing director,
Terence Fromage-Perkins. Terence would not hear of it, however. Folly
suspected that this was because it had not been his idea. She was deeply
frustrated, as she had a very clear picture of how an on-line presence
could benefit the company.
After discussing with Folly what the web site should contain, John put
together a "proof-of-usefulness" example site in his spare
time (he did not have a girlfriend at the time). He was keen to learn
more about web publishing for himself, so this seemed like a fairly
harmless way to do it. Once the site had been given the "o.k.",
he could then write the proper, fully functioning site in company time
as a bona fide project.
When the prototype site was complete, Folly went to Terence to arrange
a meeting so she and John could present the web site and demonstrate
what it could do for the company. Terence's response was to lose his
temper and scream at her about how this was his
company, he was the one who made
the decisions. Folly rose to his anger, and the resultant near-physical
argument could be heard throughout the office. Employees cowered behind
their desks while World War Three raged inside Terence's plush, leather-clad
office.
The furious argument culminated in the swift departure of Folly. Terence
sent a company-wide e-mail announcing that on no account was anyone
to allow Folly back into the building.
Oops, thought John. Oh, well: at least he had learned about CGI programming.
It was round about this time that he started looking for another job.
He later spoke to Folly, and discovered that she had very quickly found
a job as the marketing manager for a multi-national company, on almost
twice the salary.
The E-Mails
During his time at CrapScape, John kept
in contact with Malcolm (the thankfully experienced software developer
from BodgeCo) via e-mail. These e-mails capture the spirit of CrapScape
quite well - so here they are, in all their (highly edited) gory detail...
>>>The CrapScape E-Mails
Back to True Stories
|