|
|
The Correct Approach to Software Development
First published on the PARSE Software Devices website December 3rd, 2005
© Copyright 2005 by Robert Krten, all rights reserved.
In this article, we'll examine the structure of an organization that purports to want to write software, and we'll look at the roles of the individuals in it.
Just like with any kind of organization, be it a religious order, a terrorist cell, or the government, the key thing to keep in mind is, "the more managers the better."
This is because software developers are mad, (anyone who believes that hardware always functions exactly according to some arbitrary set of specifications (to say nothing about
the accuracy of said specifications), is, by definition, mad), so they need to be continually micromanaged to keep them on the right path.
Giving a developer large chunks of unsupervised time is never a good idea and is a sure recipe for disaster.
In fact, several operating systems, languages, and editors have inadvertantly been
written that way.
This frightens and irritates the established corporations (the whole concept of independent thought, and especially the fact that it so often goes unpunished)
so they ejaculate a new, incompatible version of their PARC-ripoff glorified program loader software on a periodic basis as a self-defense mechanism.
Given that management is required, and that management must constantly justify its existence lest it evaporate and disappear, the next question is, how does management
justify itself?
|
The Role of the MBA, a Savant Extraordinaire Par Excellance Vis a Vis Id Est Quid pro Quo Some Cum Loudly
As if by coincidence, or at least by a shear stroke of good luck, our Universities have been carelessly breeding (breading?) Management Busybody Administrators (MBAs).
Let's study the manner in which MBAs help software organizations to run smoothly.
Here's a typical algorithm that's used:
MBA: I need this program done now
Programmer: But I need three months.
MBA: I will simply hire 5 programmers to help you.
Programmer: Then it'll take 6 months.
MBA: You are a moron.
Programmer: Dipshit.
MBA: You're fired.
Vice President: Excellent, according to calculations, with zero programmers the job will take infinitely less time! You get a promotion! Have some stock options!
President: Kill me! Kill me! Kill me!
Here we see the MBA as the ideal foil for the programmer who never wanted to actually be working for the corporation, and as a brilliant interface to the
somewhat suicidal president.
This is known as TCP/IP -- Trained Crazy Programmers / Idiot Programmers, and is a well-known solution to the Cheating On His Wife Salesman problem that only just now
(well, actually, around teatime yesterday) has been solved by that PDP-8 running off of 90V/50Hz (so as to minimize wear and tear on it) in the back closet.
Further laughs can be had by looking at software testing.
|
The Role of the Tester
The role of the tester is to be management's friend.
The tester is supposed to give management a warm, fuzzy feeling about the software -- the warmer and fuzzier, the better.
Yes, there are a few rogue testers who are bad apples -- pointing out bugs, drawing graphs with increasing (rather than decreasing, such idiots!) bug counts,
refusing to simply accept the word of a Most Conceited Engineer that the bug either never existed in the first place or has indeed been fixed; but
let's not focus on the negatives.
(There's even word of a complete department full of these rogue testers! Luckily, management solved this particular one by disbanding the
entire department, and, instead of providing frightening numbers that just served to puzzle senior management, the new group simply provides three colours
indicating how the company should plan its future: red for "ooh, that's
probably very bad, but we don't know just how bad, but, you know, it's bad", yellow for "gosh, something isn't quite right, I think someone should do something about it",
and green for "this is a shippable product that's been fully qualified and has no possible bugs left in it
because we're oh so good at testing it and we did it all in two days". We truly live in a glorious age!)
A good software tester is like your favourite prostitute (I'll leave the details to your imagination).
Sure, for show, and when the Talented Competent Professional / Indigent Programmers are running low on work, they'll come up with some "bugs", but these are
understood to be cosmetic details, like something that's spelled correctly that needs to be spelled incorrectly to satisfy the idiot son of the boss's lack of
basic literacy (plus, it'll get fixed in the next revision anyway, providing more work and thus justifying the high salaries and bonuses of the
programmers).
But, fundamentally, the job of a good software tester is to prove that everything still works.
Annoying deviations from that can be fixed in a number of ways:
- modify the (obviously faulty) test program,
- re-run it again to get a clean pass,
- ignore the problem.
The last one is actually brilliant.
If the problem had not shown up previously, then obviously it means that the previous version should have been shipped instead of this one, and since it had been shipped,
everything is fine.
The customer simply needs to be brought up to speed on how the new software works, and what the customer is doing wrong.
Thus, ignoring the problem is just fine -- it's not a real "software" bug after all!
|
The Role of the Software Developer
Software developers are not entirely without responsibilities!
Constantly shopping for the latest haxx0r fashions, getting the newest T-shirts, and cultivating that special smell can be just some of the challenges required of a Professional
Developer Flunky (PDF).
Sometimes, the l33t c0dER will have to patiently explain to the MBA idiot just exactly what a "flag" is and why you would want to set one.
And then, the l33t PhReAK will have to patiently explain to the MBA idiot exactly why you don't want to just set a flag at any old time, but that it has to be at a special
time, like when the flag actually needs to be set for the particular situation, and not just because the MBA idiot decided that it might be a really cool thing to do
because in his expert extensive 3-day Visual Basic Jump Start with Billy course he was taught how to be a real CODER$ and now knows exactly what the bug is in the first
place that the bastard rogue tester "found" in the code and hence is delaying his shipping bonus with.
In the evening hours, some code is slammed out and it'll all just work -- because that's what primadonna-generated code does, it just fuXXing works!
Pretty much anything that flies out the butt of the l33t haxx0r is extraordinary magic; most mere mortals should feel privileged to just be near the programmer,
let alone see the programmer in action,
let alone actually be there to witness the birthing of a rare and particularly well-formed programming bowel movement (PBM).
Rarest is the PBM that stuns and astounds the irc-friends, the media, and the various three-letter US government agencies all at the same time.
|
|
|
|