Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

The Drama of Being a Developer I - Heroism, Specifications, and testing with the right mice.

by cacharbe (Curate)
on Oct 01, 2001 at 22:15 UTC ( #115929=perlmeditation: print w/ replies, xml ) Need Help??

After reading Ovid's piece on specifications, I thought it might be appropriate to follow up with a rant/horror story on specifications, testing (Beta, and other) and quality assurance. I will begin with a true (and currently ongoing) situation (textual color added for the sanity of the writer).

Chapter One


- In which our hero gets sucked in


Allow me to take you back two months, nay three, to a day where we find our intrepid adventurer (that's me) sucked into a new and exciting application (that is already in stage two WITHOUT written specifications..Ovid, I feel your pain). Weary and worn from years of battle, our illustrious hero stalks hesitantly into a council meeting with those of the elite white collar class. Lacking any knowledge of the arcane or warrior arts, yet wielding staggering decision making abilities, these white collars were on a mission to wreak havoc on our hero's production schedule in the guise of "streaminlining" a current business process.

Reluctant to continue without a specification, but being confronted by those who "needed no specification to continue", our hero plods through the meeting, all the while wondering as to the origin of his next paycheck. The project, it would seem, will deal with a Word document that is currently being emailed around the globe each morning to the inboxes of executives and their assistants. It contains news articles regarding the empire and it's interests, and is apparently important to all involved. This document, however, although important and well read, is large and taking up exchange server space, and must be dealt with. The imperial white collars wish a process to be put in place where the lackey who creates this document can merely upload the document to the web, with the result being an email with a link to the contents of said document.

Our hero suggests a method whereby a server application could pull the document apart after upload, load the seperate articles into a database, and offer an interface via the web through an .asp or /cgi/ application and email a link to said interface. The white collars are both intrigued and, well, confused by the level of technical and arcane vocabulary whirling through the room, and ask..."Yes, but, will it do what we asked?"

Noticing, not for the first time, the confused looks, knit brows and blank stares he sighs and nods, "Yes," he says. "Yes it will, but can I have your request in writing for my files?" By then, however, it was too late, as he has been dismissed with a subtle nod and a changing of the subject to the Executives' respective children, power boats, vacation plans, and other important business topics. Our hero leaves the council meeting regretting leaving his cube, and heads back to it's relative safety, ready to harness the arcane and begin the code, yet again without a specification document, written request, or whiskey stained bar-nap with bleeding doodles as a guide.

Chapter Two


- In which our hero codes, loads and prepares


A month has passed, and our hero has been hard at work in the deep, dark, depths of the cube warren creating exactly what was asked for...or so he thought.

As the development phase of the application neared an end our hero approched an underling of the white collars, more specifically the person whose idea this arcane cluge was, and asked that she compile a list of test subjects on which the code could be tested. Preferrably a list of those whose screams of distaste, fear, loathing and ululating joy would be loud, profound and DETAILED. She returned with a list of names ranging in power and stature from the emporer's advisor to the emporer himself. Our hero blanched, and asked that she humbly rethink her choices, as the list she had chosen would prove to be one of closed mouthed and distracted users, untested in the art of beta, and probably unwilling to try something new. She declined, and sent an email to everyone on this new document distribution list, stating that a new process would be put in place over the next month in tandem with th ecurrent process, and could the users please provide feedback.

By this time, the application has gone onto a live server, and is ready to beta test. Our hero has created a web interface using .asp per request, and implemented a fairly robust yet specialized parser for Word documents in perl and Win32::OLE. The parser receives a file, parses it based on certain formatting guidelines specified by the document author, inserts the articles into a database and emails a link to the table of contents .asp listing the articles in the document of said date. The front end as mentioned, is accessed through a series of .asp pages that retrieve articles, table of contents, etc, based on date. Everytime afore mentioned underling uploads a days document, a new email is automatically gerenated and sent to the list...or so our hero thought.

Chapter Three


- In which our hero finds that to make God laugh, tell God what you are planning for tomorrow


Our hero created a tidy little text file with all of the names for the distribution list on the server so that it could be easily maintained by the underling until a distribution list could be created on the exchange server (something that is technically out of our hero 's control). This file was gerenated from a list of names given to him by the lackey.

Technical Note #1: Exchange saves a users email prefix in a field called ALIAS, in the following form: <CCharbeneau> Please take careful note of the CASE of the letters. That's first letter of first name, and last name. In my case Chuck Charbeneau. HOWEVER, it will not accept it in the form of CCharbeneau@lear.com from a remote connection...You have to force lowercase...This I did not find out, to my chagrin, until later.

Early on in the beta process, our hero received an email from the lackey's boss (the original requestor of this little gem of an application) saying that she did not get an email. As she had a difficult and easily misspelled name, and other people WERE receiving the email (but not EVERYONE, we would find later...), it was copied and pasted from an email into the list again, but still without results. Mumbling something regarding "Line feeds and the like..." Our hero re-types her name into the file by hand, this time producing the desired results. In response to her email, our hero asked if anyone else was likewise not receiving the email, and received no response.

A few more weeks passed, and another email is received from the 'Requestor', asking if our hero has received any feedback. He replies to the negative, referencing their earlier conversation regarding the usefulness of the chosen test subjects, to whit she responded, "No news is good news". This was, in the end, bad news for our hero.

A few weeks passed, and no feed back is received, so the CIO, our hero's master's master's master's master, enters into a meeting of the minds with a number of the members on that beta test list, mentions the application, and finds that none of them had ever received an email with a link in it. No mention of the application what-so-ever since the initial email suggesting that a beta was going to happen. Needless to say, a panic ensued. Buttons were pushed, phone calls were made, lights and alarms sounded, and our hero was yanked before a group of "concerned" white collars. With a small amount of investigation (and a few "I told you so's to those in power")our hero discoverd the root of the problem (cf. Technical Note #1) and made the necessary code changes, and all was well...or so he thought.

The White Collars decide that instead of a beta test, that the project will now just have to go live, and our hero is told to "just make sure there aren't any more screw ups"...

PROBABLY NOT THE END...

Isn't that what beta testing is for??

The moral of the story, you ask?? Always get specifications...Always communicate with the project requestors (PR), and always, always DEMAND feedback from a beta test group, even if you have to force someone's lackey to do it. That was my BIGGEST fault in all this. I trusted the PR to get feedback. However uncomfortable it may seem, I should have had some interface with the user base, whether or not they could blink me into non-existance.

The story actually has a couple more twists and turns, including a feature request 2 hours into my mad dash to fix the email SNAFU, and a question from the Chairman of the Board as to why the process had changed, he liked it better the old way, and could he still get the Word Doc emailed to him in the morning....

*Sigh*

C-.

update: For part II see this

Comment on The Drama of Being a Developer I - Heroism, Specifications, and testing with the right mice.
Re: Heroism, Specifications, and testing with the right mice.
by greywolf (Priest) on Oct 01, 2001 at 23:03 UTC
    At least you seem to have kept your sense of humour about whole thing. Very entertaining story by the way.

    mr greywolf
      Heh. Well, it was either learn to laugh about it, or start slashing people's tires in the executive lot, and seeing as the industry is kinda tight, looking for a new job is off the books for the moment.

      C-.

        Yeah, but if the tires are Firestone, you'd be doing them a favor...

        hsm

Re: Heroism, Specifications, and testing with the right mice.
by t'mo (Pilgrim) on Oct 02, 2001 at 22:04 UTC
    ...the CIO, our hero's master's master's master's master...

    Interesting; that's how low down on the totem pole I am too. Anyone else in this position? :-)

    (I wonder if there is some ratio we could discover that would relate the number of bureaucratic layers in a company to that company's effectiveness/profatibility/fun/etc. ...)

      And get this...This should bring a wince and a chuckle from you...

      The CIO reports to the head of finance, since IT is an expense.

      I found this interesting. I suggested that I shut off my servers for a day, and let the engineers do all their RFQ's, and Finance all the PO's by hand and fax for day just to find out how much of an EXPENSE we are, but it was suggested that I had a bad attitude.

      Who??!? Me??!?

      C-.

      I like Heinlein's word for all those layers..
      A flapper, he writes, is someone whose job it is "to flap the mouth and ears of his master whenever, in the opinion of the servant, it is desirable for his master to speak or listen."

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://115929]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (16)
As of 2014-07-14 17:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (269 votes), past polls