I read a very depressing story in the Gray Lady this morning about an untold number of children are dying of malnutrition, if not outright starvation under socialist Maduro regime in Venezuela. I have published a number of critical, if not outright hostile segments, comments and tweets on Venezuela and the Chavez/Maduro legacy; in part, this interest is based on a nearly 10-year friendship I've had with a former Venezuelan-American client.
To explain, I have to go back to a job I had back in 2008 (some readers seem to like some of my autobiographical stories; this will also reflect on some of my experiences as an IT contractor/consultant). I'll try to make this as readable as possible. I got a job with the leading ERP software published in the university marketplace. (ERP is an enterprise-wide integrated application system which can handle everything from transactions to financial statements; obviously the nature and extent will differ by the industrial context.) In particular, the publisher had outlined a progression from their production environment to a data warehouse, which you can think of as a type of archive of organization data. An intermediate bridge environment was an Operational Data Store (ODS). You can think of an ODS as basically a (typically) day-old copy of the production database, which basically provide end users and developers with a more usable version of data without burdening the production database itself. My employer had a backlog of clients who wanted to implement ODS. In my case, I was doing anything from creating an Oracle database for ODS (many clients had DBA's who would set these up in advance of an engagement) to running various installation scripts and setting up the web-based administration server; a second aspect was training clients (typically in-person) in running the administrative layer. (The first part of the job was often done remotely: customers could save by not having to pay travel expenses. So quite often I was able to work from home via a VPN connection over the Internet.)
I had gotten into a help desk hassle (I hate organizational politics). It turned out that when I set up the notebook computer the company issued to me, it ran into some internal network issue trying to complete registration of my company copy of Microsoft Office. I initiated a trouble ticket, which I regretted almost immediately; his response to the problem was to demand that I return the PC to have it reimaged (like shooting a peanut with a cannonball). They tried to blame my ISP, which was nonsense. I would later discover using an alternative VPN connection resolved my issue and tried to close the ticket. But it was like trying to take back a bone to a dog. They were in a state of denial, insisting there was no difference between the 2 VPN's, and demanded I ship them back the PC. I wasn't about to do that, because I needed the PC to do training in Memphis the next week. This jerk's supervisor personally escalated the issue with my supervisor, who didn't even bother to question me or back me up.
I was given some really bad clients (I'm not going to discuss client or individual names in a blog post). One problem client was a community college on Long Island, NY. I ran into an issue involving software design and this college's policies. In essence, the college did not expire student status until he or she graduated. Our application would issue records in the database until the student's status was expired. That meant, for instance, if the student took a single course in 1982 and never came back, we were still generating records for them in 2008. This resulted in a database maybe 5 times the size I had expected. In the meanwhile, there was a NY state team of DBA's (full-time or contracted) handling related backups. And now all of a sudden I'm dealing with some idiot Procrustean DBA who is insisting I need to resize my database from something like 110 vs. 128 GB, because they could only accommodate 110 GB. That's like telling parents they only have room for 3 of their 5 kids and the parents need to decide which 3 will go. And as for getting Development to change product design: that's a form of organizational inertia which will never happen in the short term. (I think the college ended up expiring a large number of former students.) On top of that, I'm conducting training, and the key client who will be administering the interface had some sort of sleeping illness (now granted, I wasn't teaching the most exciting stuff, but it included interactive exercises). This guy slept through 40-60% of the time in class and basically used any pretext to get out of training. I'm not passing judgment here on the college, but what did annoy me one of my functional colleagues dropped by the college a few weeks later, saying that the same dude told her that I had never created an account for him. That was a lie; I created all the training registrants accounts so they could do the hands-on training.
Another client was a private university in the Wichita, KS area. This was a case where the client was a known problem, because my team lead had done an implementation with them some point earlier. Whatever happened there, he nor anyone at the company ever told me what happened and why a second engagement was going on. Now to explain: our implementation or training assignments were roughly a week long. I had a vested interest to make sure the gigs kept on schedule so I was free for a new assignment the next week. The female college DBA twas miserable to work with; she had an inflated ego (claimed to be formerly employed with Boeing), wouldn't give me access to the application server (where I needed to install the admin level). Keep in mind each client know a set of things that needed to be done and/or made available before I started the engage, including an "empty" database ready to go. She had literally done nothing to prepare, plus she wanted to use a volume manager in building the database. It took her literally 2 man-days (unreasonable--I've done builds in less than an hour). This basically reduced my window to 3 days. I make up for lost time--and then we get to the application server. I've got an idiot-proof step-by-step document; I've done this myself several times: it should be 15 minutes. Well, this client REFUSED the document, finding the suggestion condescending, saying she knew all about setting up html servers. After 2 days and her admission she couldn't do it, I once again argued for giving me access to the server, saying I could do it in 15 minutes. She escalated this to her boss, who called my boss to rant about my "rude" behavior to his personnel.
My final client was with a Catholic university in the Los Angeles area. This was not a usual engagement; from a big picture perspective, the job to update the ODS with the daily transactions against production overnight usually took an hour. It was taking 24 hours or so. Apparently the tech support people hadn't been able to resolve the issue over 6 months. It's not like I had training in the product design or development; I basically had been focusing on installation and training. I did have indirect contact with a developer; I tried to gather his thoughts in how it was possible; he basically said he didn't know. He said there was a performance patch they had released some time back, but the clients told Support that they had applied the patch.
So when I got to the client location I met with the DBA manager, who is a Venezuelan-American (and at last contact still has relatives in the country). The first day was very frustrating; the manager's boss scheduled a late afternoon and was very unhappy to hear I hadn't found the source of the problem yet; I had no idea what unrealistic expectations they had, but I was pretty sure that negative feedback from this client wouldn't go well with my boss, even though I had been booked for a week, not a day. It was some point a day or two later where I found that the performance patch dll file had been renamed and the old dll file was back in production, what I call a "say what?" moment.. Effectively, the client had backed out the performance patch, something that was totally unexpected. So I immediately informed the clients, who were in a state of denial of how the patch got backed out. I'm recommending we flip the files back (after quiescing the system); sure enough, the refresh job was down to a normal 1-hour-plus. I think they made me stick around an extra day to ensure the fix stuck. No apology from the hothead senior manager, and I had bad news waiting for me after returning on a redeye flight.
My Venezuelan-American friend has introduced me to the taste of spicy chocolate; I usually email him every few months or so. We don't focus on the politics so much as the hardships and how his extended family back there is coping.
The NY Times story breaks my heart; I love children. I don't know how this tragedy will be resolved. I think the best hope is if the military stages a coup. I don't trust the corrupt Maduro regime with humanitarian efforts. Trump should stay out of it.