Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 52
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 53
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 54
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 55
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 56
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 57
Warning: A non-numeric value encountered in /homepages/12/d477519918/htdocs/odstudioswp/wp-content/themes/gonzo/single.php on line 58
Published on October 21st, 2013 | by Matt Haberfeld0
“We’ve already wasted enough time on this project.” –My boss
My boss is a prophet…a SAGE I tell you. If only he knew how right he was.
We have been running this research study for just over two years and it is time for the final datacut. This datacut is the most important part of the entire study and, afterwards, closing out the rest of the study is smooth sailing.
What happens is we take all the information that we’ve gathered in the database and generate output files for the Sponsor. We also cut a CD to every clinical site that participated in the study with their patients’ information. It sounds easy. It is easy. With this process starting in February and the study shutting down in April, we had two months to make this happen. More than enough time to do things properly. Even enough time to make a few mistakes and still stay on track. Definitely enough time to waste thousands of company dollars.
The first part of this process is drafting the functional requirements for the export program. What this means is one of the developers writes a program that takes the information in the database, and exports it to the format that the Sponsor requested, hence, export program. This is the Sponsor’s first study, so they asked us to recommend a format , considering we’re “experts” in this field. My boss, being the shining beacon of rational thought that they think he is, tells them that HTML would be the best format.
Now, when you’re talking about patient information that is regulated by the Food and Drug Administration, giving data in a format that can be edited in Notepad is not the brightest idea. But, hey, he’s the boss. He knows what he’s talking about, right? So the Sponsor accepts the recommendation and approves the HTML output format.
At this point, I would normally draft a functional requirements document that would explain, in writing, exactly what the export program was supposed to do, which fields it’s supposed to export, what the export file is going to look like, etc. However, my boss decides to exclude me from this portion of the project project and tells the developer verbally how he wants the export to look.
Now, having drafted no document that explains how the export works, I am unable to perform the second important task, validation of the export program. What this means is that I write a test script that ensures, in writing, that the export program does exactly what it is supposed to do. No more, no less. This is a big deal. The FDA does not mess around, if the project is audited they are going to want to look at this. However, we did not validate the export program because my boss decided not to.
We Need to Manage the Sponsor’s Expectations
Up to this point in the story, my boss has already made two crippling mistakes. First, he chose a very poor format for the export file which will cause nothing but issues in the future. However, I don’t care if we give the Sponsor a 200 page document written in crayon, as long as they get the information in a format they approved, it’s fine.
The real killer is that he didn’t give the developer a written functional requirement, and here’s why it’s a big deal. My boss is not…empathetic. That’s the business friendly way of saying that he could never step into your shoes and understand a situation from your point of view. What ends up happening, more often than not, is he thinks about what he wants and then sends you some incomprehensibly vague e-mail about what to do and you’re missing all the little details that he, presumably, thought about in his head. Now, I can’t verify this for sure, but I’m willing to bet a year’s salary that this is what happened. My boss called our developer in India and over the phone explained what he wanted the export to do, minus all the important details that actually make the program work. The result of which is the worst export program I’ve ever seen. Furthermore, no testing was done on this application because there were no requirements to test it against. My boss did not budget any time for me to even look at the program. A mistake this early in the process is going to cost us big time.
The Sponsor may be new at this, but they’re not entirely clueless. They did ask us for for the validation documentation. My boss said that we would substitute a 10% patient QC as proof that the export program works. The Sponsor said that would be acceptable. (Despite their better judgement, I’m sure) So my boss tells me to use the export application on 10% of the patients, print out their case report forms and match them to the electronic system. This is when I get my first taste of the export program.
It’s two selectable fields and 10 buttons. Each button is a different case report form for the same patient. So you pick the clinical site, the patient and then you press a button and save the HTML file to your computer. Press another button and save the HTML file to your desktop. Repeat 8 more times, then go to the next patient.
My heart skips a beat. My palms begin to sweat. Dread seeps into my mind like a rolling fog. I do some quick math:
selectable field = 2 mouse clicks
button = 3 mouse clicks +1
So (2×2) + (10×3) + 1 = 35 mouse clicks per person
35 x 450 patients = 15,750 mouse clicks for the entire process
Somewhere in a previous life, I must have been a bad human being, because now I’m paying the price. I immediately go to my boss to make sure that this really is the export tool I’m supposed to be using. When he confirms my deepest fears, I beg him to make the developer in India write some code to generate all the patients at the same time. His response is, “We’ve already wasted enough time on this project.” Oh if only he knew…
Psychologically and emotionally crushed, I begin manually downloading the database via mouse click, literally. Sixteen business hours later, the dirty deed is done. Words cannot convey the insanity that is clicking the mouse 1,000 times per hour for 8 hours straight for two days. After two hours, my mind began to play tricks on me. “Did I already download patient 1246? I don’t know, did you? What was the patient before that? Oh, well you definitely did patient 1173, just download this patient again to be sure.” Hearing voices is not the first sign of insanity, it’s responding to those voices that is.
After four hours my eyes lost focus and I stopped seeing the screen. I was still looking at the screen, but my eyes were so tired that I was just looking “through” the screen. My body was completely on autopilot, my mind trapped inside itself screaming for release. “Just 325 more patients to go,” I said. As if that is some kind of comfort. By the 6th hour, even death was laughing at me. Not even The Devil herself would take me into her fiery embrace, knowing full well that nothing in Hell could rival the living nightmare before me. And that was just Monday.
Is It Done Yet?
At this point, the 10% QC that had been promised had not even begun, I had only generated the files to be printed. I still had to print them and compare the paper copies to the electronic system. So after slaughtering a small forest (about 750 pages), I actually began my QC. It took me no less than 4 seconds to find the first problem. Certain patient values were not being recorded in the exported version and the fields were being left blank. So, I took this problem to my boss and without even acknowledging it he asked, “Well, are the values that show up correct?” I told him that the values that were displayed were correct and he said, “Well don’t worry about it, just make sure that the values that show up are right.” How’s that for a quality answer?
I knew that everything from this point on was guaranteed to fail. There was no chance of things turning out all right, and I had to mentally steel myself for the horror to come in the next few weeks. I spent the 2nd week in March devoted entirely to QC’ing a completely broken form, which basically amounted to busy work.
Quality is our #1 Priority
After my mockery of a QC was finished, my boss decided to go ahead and burn the data to CDs to be sent to the sites. This required two people to work for about a week, because we don’t have the proper equipment to do this efficiently. After all the CDs were burned, I took them to the Project Manager and she asked me how everything looked. I wished her luck and returned to my cubicle to await further mouse clicking. She had the foresight of sending the Sponsor one patient as a sample so they could see the finished export. A few days passed before the Sponsor reviewed the QC, but finally they responded. Their response was, of course, “Hey, some of the fields on the lab pages are missing. Can you tell us what’s going on?” My boss told them it’s no big deal and told me to do another 10% QC, but only the lab pages this time. (Lab pages are 50% of the patient info) Lovely! I reminded him that:
1) The developer should write a program to generate the HTML pages
2) QCing the lab pages does not fix the problem of the fields not showing up (but the data that does show up is correct)
His response was that no programs will be written at this time, and make sure that the data that is showing up is correct. So basically, I’m just repeating the previous QC with new patients, but only half the pages. The Sponsor’s concerns were not even remotely being addressed and I had to manually download the database again. This time Death only snickered at me, and the Devil decided that even though she could flay my skin with rusty hooks dipped in iodine and inject snake venom directly into my eyes, there was no reason to grant me such sweet release when obviously I had more suffering to do.
After downloading about 75% of the pages I needed to do the QC, my boss informed me that he found problems on all the pages, not just the lab pages, and that I needed to QC everything. This is a common tactic at my office, where my boss tells his bosses that I screwed up but he found out about it and he’s going to “take care of everything.” That way, he looks like the hero at my expense, as he knows that his bosses are never going to talk to me about it because he already assured them that he’s going to “take care of everything.” So in his twisted, little mind, no harm was done. Personally, I know this happens, but there’s nothing I can do about it, so I just don’t really care. But what really pissed me off was the fact that I had to generate 50% more case report forms than I originally had to, and for no reason at all, since we still weren’t addressing the Sponsor’s issue with the data fields being missing.
Putting Out Fires
So after printing out another 750 pages of scrap paper, I waited about a week and finally the Sponsor got the point across that certain fields are not being displayed on the form. Everyone on the project started to panic, (at least this was fun to watch) and when my boss finally had the epiphany that I had informed him of this issue three weeks ago, he needed to quickly find someone to blame. He couldn’t blame me, because he knew that I would call his bluff and he’d be pinpointed as the reason for everything going to hell. So he decided to be the bigger man and blame the developer in India, who could not possibly defend himself from thousands of miles away. As my boss angrily took CDs out of the sleeves and threw them in the trash, he told everyone who would listen what a bad programmer this person is and how he messed everything up, making sure to let everyone know that my boss was going to “take care of everything”. What a hero. My new task was to find every field that was not displaying, and inform our developer in India so that he could fix the export. This is why you validate the software that your write. This is also why my company continues to fail.
Of course, I had already found all the fields that were not working three weeks ago, so the next week was mostly internet surfing for me. I reported the issues, they were fixed and I checked to make ensure they were fixed. Fixing problems is much more fulfilling than finding problems and knowing they won’t be fixed. I’d even go so far as to say that the week was halfway enjoyable. The guy I worked with was…empathetic. He’d been screwed over by my boss just like I had countless times before. When I told him what the problem was, he actually listened. We got the issues fixed pretty quickly. It was almost like a real job.
Apathy gets me everywhere I want to go…which is nowhere. Because I don’t care.
However, the damage had been done. After we got the form fixed up, my boss informed me that the Sponsor had “lost faith in us” and we had to do a 100% QC. Every patient. That was too much for me, I told him that he needed a way to generate all of the patients or it was not getting done. He told me that the developer in India messed up, but he’d “take care of everything.” So literally fifteen minutes later, I had a “Generate All” button that generated all the pages for 1 patient. But that’s not what I asked for, I wanted to generate all the pages for all the patients. I went back to my boss and his response was, “We’ve already wasted enough time on this project. Just do it.” That’s fine, I can take a hint.
Even without the ability to generate all of the patients, the Generate all button reduced the number of mouse clicks from 35 to 5. This gave me ample time to surf the internet and only download patients when my boss was around asking for status. Meanwhile, behind closed doors the other executives were yelling at my boss while he blamed the developer in India and myself, all the while saying he’ll take care of everything. Obviously the executives weren’t buying it. They invented “I’ll take care of everything”. Nice try though. As a result, my boss was frequently in a bad mood, and he frequently took it out on me. I was as passive-aggressive as I could be, nodding and smiling, whatever it took to get him off my back. The internet does not surf itself, thank you very much.
Now, seeing as it’s the first week of June, the April deadline is a distant memory. We are still generating patients and cutting CDs to the sites, for the third time. At last count, I had billed over 200 hours to this project.
So how much do these kinds of mistakes cost the company? I personally have billed over $8000 in hours to just this task. The developer in India makes more than I do, so let’s add another $9000. The guys that cut the CDs twice make about $20/hour each so that’s $8000. The paper, CDs, and other physical supplies are almost nothing in comparison, only about $300. So all together this project took roughly $25-27k. If I had gotten a generate all button when I asked for it, the company would have saved about $4000 from just my labor. If we had QCed the CDs before burning them, that would have been about $4000. If we had written a functional requirements document and validated the export, we’d have saved about $15,000.
This is why my company fails. Do not for a second believe that this is an isolated incident. This is my job. I watch my boss do this on every study. When you read articles in magazines about people that save their company $1 million or more, believe it. Because for every guy out there that saves his company money, there are 3 that, just like my boss, are slowly killing the company he works for $4000 at a time.