Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


True Stories
Latest Stories
Archive
Your Stories

Submit Your Story
Contribute your own workplace story to our message forum...

Check out our ageing Reviews Section


Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



True Stories - BodgeCo and Friends

Can-IT PLC --> Scatterlogic

Prologue: Arguments, Can-IT PLC

Once upon a time, Bad Managers had a fairly active mailing list called Bad Manager Arguments. It was frequented by many like-minded individuals, long-suffering technical staff who each had (or had a friend who had) a crap manager or two with which to contend.

At the time, John was working for a company called Can-IT PLC, an American catalogue company that loved to can projects. John was employed in the UK "satellite" branch (he had been very excited on first hearing that he would be in a satellite branch, as he had never experienced zero-G before, but was disappointed to find out that this was just a remarkably dull office in a business estate near Watford, just off the M25).

The UK satellite was forever under threat of closure, not for any particular reason, just that its American owners loved to close things. If they were ever to run out of projects to can, they would swiftly start gnawing on their satellites (sounds painful).

Luckily, there were always projects to can, as they also loved to start projects up, without a thought for the viability (business, technical or otherwise) of whatever new venture they were enthusiastically bubbling up in their giggly little think-tanks.

But that's really all that can be said about Can-IT PLC. Well okay, there is more that could be said about them, but as an ex-Can-IT PLC employee myself, I feel it my duty to can their write-up without further ado (and certainly without further explanation!)

Yikes, just goes to prove - if you hang around bad managers for long enough, you inevitably show signs of becoming one. Resist the urge!!

 

First Days at Scatterlogic

To resume our other little thread (yes there was one), at around the time when the Bad Managers mailing list was active, John left Can-IT PLC, and went to work for a start-up technology company called Scatterlogic Ltd. He was rapturous that (as far as he could tell) he had finally, really, found a company that was run by like-minded people - delivery-oriented, with a genuine excitement for technology, and (hurrah) where the employees were all given share options. Okay, so that last one was a bit mercenary, but in a country where most software companies seem to be run by people who hate what they're doing, Scatterlogic's overall enthusiasm, and loyalty to its employees, was a breath of fresh air for John.

In fact he was so excited at this new-found Heaven on Earth, that he told the people on the Bad Managers mailing list (sorry, instructed me to tell them) that he was like a pig in mud, and had finally discovered a company that he thought was sufficiently sane and businesslike (and yet quite fun at the same time) to keep him happy. In short, the Bad Managers storyline had reached an exultant and satisfactory conclusion.

Of course, it was never going to be as easy as that.

 

Doin' it Gorilla Style

Just a couple of days after joining, the first warning sign reared its ugly head: Dirk, the company's in-house boisterous American (every British software company appears to have one), insisted on "thrashing out" with John the technical details of John's proposed architecture for his first proof-of-concept project. This was fine with John: the more constructive feedback he could get the better. However, Dirk quickly started to become angry at John's refusal to consider writing the web-server code in Perl (rather than using the much more suitable Java Server Pages). After an hour of going round in circles over this issue, Dirk leapt up and attempted to grab John's head in a playground-style headlock, whilst bending over and pretending to punch him with a swinging fist, drunk gorilla style. Luckily John was able to dodge out of the way, as Dirk had neither the strength nor speed of an intoxicated gorilla, just the lumbering clumsiness.

So John put this initial experience down to bad luck, as the rest of the company appeared to be pretty sound, going by first impressions. Perhaps he was fooling himself, however: he was, after all, the only Java programmer in a company of Visual Basic coders. He began to suspect that he was being viewed as some sort of "harbinger of doom", a potent augury that drastic changes were on the horizon. These frightened individuals had carved out their VB niches, and were quite content to sail their code ship far out into the Proprietary Sea, until there was no sign of land. (Sorry, I think my metaphor gland has just dried up)…

Perhaps if I just tell it how it happened, instead of dressing it up: These people had written an application server in Visual Basic 6, a non-object-oriented language that encourages bad coding styles, and should never, ever, be used to write a server. For a start, it's very difficult to write multi-threaded code in VB (it's certainly impossible to use it to write efficient multi-threaded code). It's a language which came into existence as a "quick and easy" way to produce GUI client programs (note client, not server). No matter how many FTP or SMTP COM components you throw at it, it's still best suited (and only suited) for quickly producing small-scale client GUI applications. Newer versions (Visual Fred maybe?) may one day change that. However VB6 was definitely not the version to do it.

So why did Scatterlogic decide to write their flagship server product in Visual Basic (snicker snicker)? After some careful probing, John discovered the fairly obvious answer: because the company had only employed cheap (mostly imported, i.e. inexpensive) VB coders. All these coders were desperate not to lose their jobs, so would never speak out if they thought something was being approached in the wrong way. Result: nasty, buggy software, produced under panicky conditions.

So, understandably, these VB coders were a tad nervous that their cushy little ruts were going to be dug up, and that they would have to either learn a new language (in this case Java) or find an entirely new vocation, perhaps digging holes by the side of the road somewhere.

John didn't worry too much about these other employees: he had been brought in to pioneer a "new start" for the company, and to gradually build up a Java code-base. The company's development manager openly described Java as a "necessary evil", something that he "hated, but would probably have to live with". So most of the enthusiasm had to come from John. He didn't mind though: he was sufficiently independent to run his own project, and was glad not to have to get involved with the development of the VB projects. In fact he only really spoke to the other programmers socially, very rarely to do with work things.

 

Increased Company Morale Through Great Policies and Directives

Just like BodgeCo, ten years previously, Scatterlogic apparently had its own set of unwritten rules and objectives. The crazy thing was, its employees appeared to thrive on these values. Only John's morale was in any way decimated:

  • No documentation must be put together in any way, shape or form. If a forthright and right-minded Java employee should purport to introduce specifications, then the move shall be treated with scorn and derision for the first six months, then (when it seems that the company cannot plunge any further into the pits of headless-chicken-like anarchy and confusion), the company management shall suddenly embrace the idea with such energetic passion and boundless enthusiasm that the process is doomed to failure anyway. Everything shall be documented!
  • All bullet points shall generally try to be a bit shorter than that last one.
  • In producing functional specifications, there shall be as many pointless and frustrating arguments as possible, to establish the tiniest of terminology-related trivia. For example, the two development managers may get the entire team of twenty developers into a room together, then forget where they are and argue heatedly between the two of them for at least three hours about the precise meaning of the word "requirements".
  • In gathering all developers into one small, unventilated room together, as outlined in the previous point, all developers (except one) shall have eaten curry the previous evening, and shall proceed to stifle the air with silent, but oh so deadly, noxious fumes.
  • All VB developers must exhibit a vague interest and desire to learn Java, but shall be too pathetic to actually do anything about it of their own volition.

 

Fledgling Software Testers

A couple of months later, John's first project was more or less complete. He had handed his first build over to the fledgling QA department (two junior testers, at the time), and shown them how to install the web server, get it up and running, configure the database connections etc. He also took them through the tests they would need to perform. In retrospect, their silent nodding heads and slightly despairing eyes should have struck him as a warning sign.

Soon their bug reports started to appear, thin and slow: reports like "Some of the colours are a different shade when viewed in Netscape instead of Internet Explorer", and "Some of the button sizes are slightly different". These would have been fine if they had also been finding some "real" bugs, but as it was, these testers were being surprisingly ineffective. John would love to think that this was because there were no bugs to be found, but every system has some bugs, at least at first…

John's personal favourite was: "On the login page, no scroll bar appears so I cannot scroll down." This was logged as a Priority 1 (urgent showstopper, immediate fix required). Slightly concerned, he asked the tester to show him what he meant. The page in question did not have a scroll bar simply because it fitted neatly into the browser window! Trying his best to be patient, John demonstrated that if you resize the browser window so it's smaller than the page being viewed, then hey presto! the scroll bar magically appears. The tester was genuinely impressed.

Meanwhile, the VB team's project was also due for completion, but had hit an iceberg in its proprietary sea: the code was horrible, and absolutely riddled with bugs. It was also one week over its "unmissable" deadline. With this in mind, the coders were instructed to work "all hours" until everything was fixed and the codebase was "rock solid". This advanced bug-fixing process involved getting the pizzas in, staring bleary-eyed at the screen until 4am each morning, bashing their tired heads to try and coax out at least some form of coherent thought. Meanwhile, the project manager scowled at the team each morning, and the development manager howled in despair.

In this professional quality, delivery-oriented environment, with scared, panicked developers stabbing their keyboards in bug-eyed desperation, the error rates soared. Version control became a joke, and bug-fixes (themselves pretty flaky and dubious) were overwritten at random by newly hacked patches and so-called fixes.

Yes, John was glad he was not involved in this debacle. It became an interesting, if frustrating, circus to observe from the safe distance of his one-man Java department, over by the window…

 

Dabbling With the Dodgy

Several weeks after the unmissable deadline, the error rate was still accelerating, and showed no sign of slowing down. Looking very shy, the project manager approached John and asked him if he might, possibly, by any chance, be able to help them sort out some of these VB bugs. As John's own project was long since complete, and he was only about to start his next one, he agreed to pitch in and help out. The sheer horror of that horrible, horrible, hacked-out code was enough to give him bad dreams. He soon realised that this project really was beyond help. It was the most fragile, amateurish, hacked-about server code he had ever seen! He tried to explain this to the project manager, but this did not go down at all well. He was told to think positively, and just to keep on trying.

Realistically, he realised that the only way forward, if there was one, would be to try and instil some good programming practices into these lunatics. He took them through some of their programs, and demonstrated to them how they should have been written, then gently tried to encourage them to proceed in the same way. Surprisingly, they seemed quite receptive to this approach, but (it soon became apparent) they were just doing their nodding-silently act, and meanwhile just carried on in their accustomed cowboyish ways.

Several months later, with still no sign of a working, non-crashing product, and with salespeople clamouring for something, anything to be released, it was decided that enough was enough. They simply released the product. There was a product launch party (great management! Awards should have been given!), and the programmers were each given a "Mission Complete!" T-shirt. As with most failed projects, wishful thinking won them through, and to this day the programmers involved really believe that they did a good job, and released a great product.

After the product release, all the programmers participated in a "mission debriefing", in which they were taken through the highs and lows, and lows, of the project. It was acknowledged that they had suffered from a "lack of experience". Lack of sentience, more like. In particular, they acknowledged that they had not had any form of documentation: no hymn sheet from which to work. Yes, they decided: that must have been the root cause of the problem. Sure, having no specifications is itself unforgivable, but guys! Wake up to it - that wasn't the root cause of the problem...

 

The Relaunch

Meanwhile, the company's sales people and higher echelons of management were painfully aware that the company did not have any real customers, notwithstanding the one or two "token" clients that the desperate sales team had sold their grannies (at a loss) to get.

Whether this lack of customers was due to the sales peoples' ineptitude, or just the lack of any quality product, is still unclear. It's probably both. Nevertheless, the managers decided that the real reason was that the company did not have the right name. And so, with a massively expensive product launch that hardly any journalists bothered to attend, out of the ashes of Scatterlogic, The Hype Machine was born, and continues to this day, scudding along on its big pink cloud of hype and hyperbole.

 

>> Next Chapter: Scatterlogic/Hype Machine Part Two

<< Back to True Stories

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.