Ad Libbing in my Dreams
Somehow I was working for pro wrestling magnate Vince McMahon (no, not as a body-slamming wrestler but in IT). I was jogging past him talking to a group of people, and he pointed at me, saying I was working on a contract paying 11 cents an hour. I shouted back, "When did I get the raise?"
I still get routine nightmares about school, never mind work. The details vary, but a common theme is sitting for a final exam completely unprepared, never having attended class or cracked open a book. I still remember after passing my oral PhD comprehensive exam in my 20's, thinking that I was done taking exams. As a professor I would be the one giving vs taking exams. In hindsight that was naive; I've undergone scores of technical interviews, passed certification exams for Oracle and CompTia, and taken dozens of mandatory training courses, in-person or online.
I'm probably never going to gain much sympathy arguing I've had more than my fair share of crappy jobs and petty, incompetent bosses, unfair, over-politicized circumstances. I have an unambiguous track record of success (project turnarounds, revamped operations, productive development and documentation with unusually effective communication skills), a phenomenal work ethic, etc. PC, a co-founder of Market Knowledge, later acquired by Equifax, called hiring me one of the best management decisions he ever made and recommended me to be his replacement when he resigned from the company. RN, who became an IT manager for a chip-testing company on the West Coast, wrote an email a couple of years after I left, gushing about an Oracle EBS customization that basically needed only trivial adjustments during an EBS upgrade. I did an app server install/upgrade after two failed installs, including by a major defense contractor holding the operations contract. I created a script to resolve an issue that Oracle quoted $10K to fix and 2 weeks of downtime foe our ERP system. I had a client in east LA who said he learned more from me in 2 days than from 6 months of local consultants.; moreover I built a customization for him that gave him exactly what he needed in about 4 hours that Oracle was trying to sell him a $30K EDI application. On a Chicago city project, I literally did more in one weekend than a team of 3 project DBAs had done over 6 weeks. I could cite dozens of other things, but I've made my point.
So why have I had issues in my academic and professional career?Some of it has to do with professional jealousy and insecurity of others, part of it has to do with differences in personal style I think some of it had to do with people who underestimated my contribution; most of my managers weren't capable of doing what I did. Let me give a concrete example. It was estimated on a National Archives operation than an outage of the database cost $10K an hour. We would occasionally have network disruptions. Prior DBAs dealt with stale connections by bouncing the database, which might take 20 minutes or longer. I developed a script which cleaned up connections in seconds (if that) without bouncing the database. As Bastiat would say, it's a question of things seen vs. unseen, a question of opportunity costs. In the case of the Chicago project, I became a scapegoat for a mismanaged project. The clients wanted a 6-month project done in half the time, and the project manager and his DBAs squandered over 6 weeks of that. We were contractually obligated to do 2 dry runs. I as an operational DBA did not report to the contract project manager.
More background is necessary to understand the context. In a buyer's market, I had agreed to a deeply discounted (40% off) my usual rate, I subcontracted to an outsourcing unit of UC, primarily because I had plenty of pre-, post-Oracle EBS upgrade experience. I also worked several upgrades, but another (business consulting) unit of UC had won the bid to do an upgrade. The city wanted to go live with the upgrade by mid-November 2002, an aggressive 3-month schedule; they needed 6 weeks to do year-end processing.
UC Consulting was hiring subcontractors off the bench and passing them off as internal hires to the city. The UC project manager, BK, supposedly also a PhD, was grossly incompetent in hiring contractors and in scheduling. Let me give one telling example. The payroll process involving Vertex required acquisition of a Microsoft C++ compiler. To the best of my knowledge, the city had not put in a requisition for a license 2 weeks prior to target go-live, never mind installing and testing Vertex functionality. The PM, with up to 5 project DBAs, not only failed to produce one upgraded test database, but they weren't close to launching the key upgrade patch for the database. I was finally brought into the process after 6 weeks (the lead DBA caused his database to crash and his backups were unusable). The PM, emboldened by my success over the first weekend, started drawing up plans we could do our 2 test upgrades concurrently, but refused my request to schedule his DBA's around the clock (I was limited to 8 hours a day; in fact, my boss TG was pissed the consulting unit wasn't transferring funds for my utilization.
TG was playing politics; he realized the project was failing, but he was giving BK all the rope he needed to hang himself. He didn't want BK pointing his finger at me, his "control freak" hostile DBA, for why the project crashed and burned. No, I was more concerned about picking up the pieces after a fucked-up upgrade. I had zero faith in these guys, and I'll list 2 key reasons (this post will be extremely long if I went into detail over each example of incompetence). TG read my reaction politically and I started seeing job ads for my position. He kept a pile of DBA resumes on his desk so I could see them.
The first key kerfuffle involved when to do a database upgrade ax part of the process. Normally the process was to close out the database for the upgrade, upgrade the database and then to run the EBS driver patch. Some key big clients want to standardize on a version of Oracle RDBMS, in that context 8i. Here's the key point:you typically have to apply interoperability patches to run EBS on a different database version. In essence, you're splitting up the upgrade into a database upgrade and the EBS upgrade. This never made sense in our context. Category 1 to the regular database upgrade had at most 2-4 hours of closeout tasks, none of which benefited from an 8i upgrade.But doing the database first meant opening up Pandora's box of interoperability patching, never mind the time and effort. Furthermore, the city would never agree to 2 outages. BK and his DBAs never understood the point, and I had to shove it down their throats.
The second kerfuffle requires an understanding of Microsoft's operating system and its registry. Oracle used a utility called RapidWiz to install EBS 11i software. There was a prominent large-type warning about installing RapidWiz on a Windows server (the city ran Oracle on a Wintel platform) on which Oracle software was already installed. Among other things, RapidWiz would provide the closeout scripts in preparing the EBS database for the upgrade. Now Oracle did a poor job fleshing out the big picture/strategy for the upgrade (I would have separately published the closeout scripts and had the RapidWiz process run after the EBS database was closed out for upgrade). The point is they ran it on one of my Oracle test servers. After running RapidWiz and the server was bounced, they couldn't bring up the database and listener because the environment was expecting an 8i configured environment (plus the version 8 database would need to be upgraded). The (second) lead DBA didn't have a clue what to do. So I do some registry work which reverted things to pointing to the Oracle 8 infrastructure, enabling bringing up the test clone database. The lead bonehead said, "I'm not working with that! He hacked the registry!" I told the dude I could have run RapidWiz on another non-Oracle server and made accessible the closeout scripts available to him. He responds something like "Show me where Oracle says to do that!" Don't have me explain Oracle's fuzzy documentation; dude, you explicitly did what Oracle said you couldn't do in plain text. He tried to come up with some Alice in Wonderland interpretation of the warning, and the managers seemed to buy into the bullshit/ TG told me to file an iTAR with Oracle, asking me to confirm what the warning meant. The Oracle Support analyst said, "Didn't you tell the clients if they act against warnings, we won't support their issues?"
The first lead DBA left after 2 weeks. He had opposed me on the timing of the database upgrade issue described above, plus I twice caught him trying to hack into our production server, violating city security policy. Moreover, he had never done Oracle on Wintel. He attacked me on his way out, arguing I was impossible to work with. No, I was willing to escort him on the production server and to meet with him on upgrade issues.
There is an Arabic saying I love to quote, to the effect that the tyrant was vanquished and we rejoiced--only to find ourselves facing an even more insufferable successor. The guy (CB) was off-the-charts incompetent, not to mention bizarre idiosyncrasies like walking around on occasion barefoot and in one staff meeting pointed at the underarm sweat stains of his unlaundered shirt, repeating "Stinky!" (This happened in real life!) I first got introduced to him over speakerphone at lunch with BK and TG. They asked him what's the first thing he was going to do, and he said to do an adclone of the production database. I knew immediately he was incompetent and told BK ant TG after the call. Why? Adclone was an 11i utility. For our 11.0.3 environment, we had to manually clone the database and infrastructure; it would take me about 3.5 hours including copies from backups and numerous edits. Moreover I had done clone refreshes for my own test and dev environments numerous times, including the setups for the upgrade team. It's not a matter of being defensive, but there was nothing wrong with my clones. He spent the first 3 or 4 weeks, first trying to get Oracle to backport adclone to 11.0.3 (which was never going to happen) and then trying to get the city to license a third-party solution (which was never going to happen). This was nuts, there were stages of an upgrade; for example, closeout steps were done in categories 1-3, but I never heard BK give a status on the categories. Our morning status meetings were dominated by things like a request for remote software licenses because they didn't want to work in cold server rooms. So they burned through 6 weeks of a 12-week schedule dealing with peripheral bullshit.
I once wrote a 7-page single-spaced memo of mistakes I personally witnessed CB make in only anecdotal encounters. I asked BK why he had hired CB; he responded, "I had to. He's worked 18 years at Oracle." "AS WHAT? THEIR JANITOR?" (My adlibbing at work.) I saw him do utterly crazy shit. One morning I found my training database down before a class for city personnel. Someone had brought down the database without first shutting down the concurrent managers, leaving statuses in a dirty state. That alone was incompetent, but why the hell did CB do it? After CB caused his database to fail (he had also ignored my advice to put the database in archivelog mode), he called Oracle Support and he said Support told him to find another database with a system04.dbf file to replace the one he insanely manually deleted (not even Oracle Support is that stupid; you can't mix and match files from different databases). It took all my self-restraint not to laugh in his face at what he was saying; this is milk-squirting-out-your-nose funny to experienced DBA's.
I could go on. I did get through one upgrade cycle but something political happened a couple of weeks before go-live target, and I was scapegoated. I blame both the city and their contractors for mismanaging the project. For one thing, the branch IT manager never met with me once over several months.
Other examples of bad bosses (this is not comprehensive):
- I had been a paperboy during high school, but my first paid job was working for OLL's cafeteria vendors. Most of what I did was unload trays from the chute, scrub plates, and load/unload items from the dishwasher conveyor belt. My clothes would reek going back to the dorms after work. My hard work got me promoted to Rudy's assistant cook, which I enjoyed. At some point my boss decided Rudy didn't need an assistant and I ended up splitting time mopping floors at 6 AM and dishwashing. So during finals week, my boss ordered us to work overtime. Normally I would have eagerly complied, but I had a killer 3 exams scheduled the next day. He wasn't flexible., tore up my time card and fired me as I clocked out. I found myself blacklisted next semester, part of the reason I had to take out a $1600 loan.
- After I left the Navy, I got an offer as an APL programming trainee for a San Antonio-based insurance company working for the property actuary department. My supervisor turned down his offer, I ended up training myself, well enough to get a job offer from the top APL time-sharer in Houston a year later. The supervisor position was filled 3 months later by a computing division employee JC. JC didn't have a college degree (or any APL experience) and here was this 22-year-old kid with 2 math degrees. As he told me to my face, I could only advance through his position, and he wasn't going anywhere. He felt he should have hired the trainee; he made my life hell and eventually got me fired.
- "My 17 years in IT" BB was the manager at the last APL timesharer I worked for before getting admitted as a full-time UH PhD student. The guy was a jerk who probably fired/rehired me 3-4 times. I think the first time involved a co-worker Jeff. Jeff and I had worked at the same timesharer at different times, and he still held a grudge. [Timesharing involved metered mainframe use; we were a bridge solution for companies between purchases of mainframes; in our case we provided an enhanced APL and rapid custom application development, a workaeound to end users facing computing department backlogs.] I had written a program which could take code from a data stream and convert it into a program on our system. So one day he proudly calls me over to his cube. He had brought over a customer from our old employer and had connected there to dump her stuff (at her expense). Only he didn't stop there. He knew about unlocked workspaces and started dumping programs, using my tool, running up like $800 in charges.That was theft, pure and simple. He later told BB and the customer he had underestimated the expense of the legitimate transfer. I was shocked someone used my code to commit a crime and eventually went to BB. BB did not handle it well. The office secretary came in throwing mail at me and screaming at me for finking on Jeff. So BB comes to my cube/office and fires both of us, saying he had clients coming in for training the next day and couldn't deal with the disruption. Dude, you caused it; how the hell did she find out? But the real end was almost like a real-life cartoon. When I joined, the branch was inside the Houston loop. I lived in the nearby SW suburbs. He had a house in the NW suburbs and decided to move the office to a building near his home. He also decided to open his own operations (TCC knew about it); he had a business model of hiring cheap female programmers and profiting from the cost savings. That was necessary context because when he moved the office, he took my office chair for his own programmer staff room and replaced it with some crappy piece of junk he must have have picked up at an auction--with a broken caster! BB caught me retrieving my old chair and fired me on the spot. (I've never heard of anyone being fired over office furniture.) I appealed to his TCC boss in Virginia who liked me; I think BB made some sort of false allegation involving his wife, who I met in passing once, when she brought doughnuts for the office reopening. There was no interaction beyond a polite greeting. But for some reason he kept peppering me with open-ended questions about my interactions with Mrs. BB. He refused to discuss what was motivating the questions.
- More recently I was working on a federal government contract. One of the conditions of working on the contract was doing up to a dozen or so annual refresher courses mostly online, covering everything from sexual harassment to personnel recovery; in addition we had to take an in-person sexual harassment training. I learned the hard way that the refreshers had to be done on the anniversary vs. the fiscal year basis, so I ended up having to retest 3 times in less than 2 years. The important fact is failure to comply by the anniversary date would make you ineligible to work on the contract. One of these courses involved terrorism awareness. Over the past year, the client agency decided to transition TARP to an in-person but they didn't relax the online course obligation. Personally, the hour-long presentation wasn't a big deal; it didn't require a test, but it was inconvenient, fighting parking and a crowded auditorium. My civilian (civil service) manager, though, said that the online training we were forced to do fulfilled the TARP training requirement. Now, from the perspective of the job itself, I really reported to two civilian managers but technically on certain accountability issues I had to report to on site contractor management; the civilians couldn't ask me to do certain things outside the contract. In practice, this was negligible from a practical perspective, except for certain procedural things like modifying my work schedule for a doctor's appointment, employee evaluations and time cards WB was my company's on site program manager, a successor to GZ, an amiable older guy who ended up leaving for a similar position at DHS. PMs are basically bureaucratic parasites, and WB was one of those functionaries with the personality of a turnip and who took himself a little too seriously and liked to push his weight around. He would send out email blasts, nagging us about time cards (mine were never an issue, but his crap was still spamming my inbox), etc. I was in a hard-to-fill position which had gone vacant for 8 months before I was hired and in fact won an employee award under GZ, but WB was a petty bastard who had memorized every petty complaint against me over 2 years (among other things, the company would expire passwords on the time card system without notice and you could find yourself locked out thinking you had typoed your password; the HR person didn't like my reaction to the issue). So anyway WB had latched onto the new TARP in-person cause as a zealot. We had a thread on this issue for weeks, and I made it clear if the government required me to do redundant training and it was billable, I would comply. But an email from my client command in March announcing that month's in-person TARP specifically noted the online training fulfilled compliance requirements. A few days later, WB sent out another email rant, arguing the agency really, really wanted us to do the in-person, that the online course was a workaround for those who couldn't fit the in-person into our schedules. He had no clue that in my case I didn't have an option in taking online TARP (not that I hadn't pointed it out in our thread); he incompetently thought I was taking the course to opt out of in-person. I responded to CP (an interim functionary) (paraphrased), "What the hell is up with WB's obsession with in-person TARP? The command said in writing I was in compliance with TARP training, and that's the only thing he should be concerned with." Apparently that was a step too far; I was discharged 2 hours later for "behavior issues"..
It's a lot easier to list the good bosses I've had, like PC, the co-founder for a private company later acquired by Equifax, and MB, my Coopers & Lybrand management consulting manager. (To an extent, I also include AK, the social work librarian at OLL, who I worked for after the cafeteria kerfuffle discussed above. She thought I might quit under the challenging circumstances, but I was capable of running the library on my own.) I think it's difficult to know how to manage bright people; micromanagement or heavy-handed approaches are counterproductive and demoralizing. You give them space to grow and flourish; you acknowledge and reward their contributions, you back them up and shield them from troublemakers and petty bureaucratic bullshit. Unfortunately in my experience, that's been more the exception than the rule.