I woke up today to find out that Windows Vista is no longer supported by Microsoft as of today. Even though it adds up to less than a single percent of all users on the Internet, and effectively zero percent of all my 5 readers, it has garnered enough attention to become news.
I wish I could laugh at it as a joke, but the reason why it has become news is that we, as IT professionals, allowed a murder of conservative, change-averse crows to control and manage our computers. We allowed these people's laziness to prevent us from doing meaningful work. And that's why, in what are likely to be thousands of companies out there in the world, entire systems will lose official security support tomorrow.
In several online communities, where most of those professionals spend their off-work time (sometimes, most of their work time, too), it is usual to see them laughing and rejoicing at all those users trying to do actual work. In many of their threads, they will admit preventing developers and data scientists from installing their much needed tools just because they don't feel like it.
Of course, this rant is mostly fueled by the experiences I had at this one company I worked for, whose name will not be mentioned, but anyone who knows me is aware of. I used to say that the IT department was the actual high management there. It decided who was going to work on what, and when. Most of my team's weekly meetings had to dance around all those IT-imposed limitations, planning ways to achieve the same results without using the technological resources the company had previously paid for. It was one of the reasons that drove me away from there, as it was becoming detrimental to my health.
One of those situations was particularly stressful:
We were working on a real-time big data project that required scraping, processing and storing millions of web pages a day, weekends included. I was hired several months into the project and, unlike my previous experiences, I quickly learnt that innovations were unwelcome to the company culture. Innovation cannot stand in the way of productivity, told us my manager in one of our early meetings. As such, understanding the ways of the project took a higher priority than trying to reimagine procedures.
Eventually, we stumbled upon an obstacle that required an innovation. The previous engineer at the job, when designing the system in place under the constraints imposed by the manager, did not foresee the implications of using a filesystem database (SQLite3). I can't blame on him: knowing him personally, I am sure he would have refused himself, had he known the software would escalate to such an extent. At some point, requirements must have scaled out of scope and, with his contract nearing the end, he opted to leave the decision to the next engineer aboard, which happened to be me.
Don't get me wrong: SQLite3 is a great tool. Its limitations are exactly what makes it so fantastic: by abstracting complex data management rules, programmers can focus on designing and honing better systems, while maintaining cohesion and independence between data and business logic. And, by writing to the filesystem, he managed to overcome several IT-imposed limitations. However, once several users had started having to access the same file at the same time, and each table quickly had grown over several million rows long, system faults suddenly exploded, both in quantity and in severity. Backups of several GBs had become part of our daily workflow, as data corruption had become more and more common. After just a month into the project, my patience was gone: I hit the table and told them we needed to change, or else I would have to leave. The ultimatum, to my surprise, actually had the effect of prompting them to change - I was expecting them not to bother.
It was, then, decided that I would have to design, document, build, and code an interface to the whole database, using whatever technologies I felt like using. I also had to overtake the role of streamlining the access to the data: while it was still in the filesystem, no one but me was allowed to access it directly, and I would have to provide them with individual, local copies that had to be updated nightly. And, of course, I still had to uphold my productivity! 12-hour long work days (on unpaid overtime, since I was hired as an independent contractor) became the norm, rather than the exception. It didn't bother me as much, since a lot of that time I would have spent working anyway, so I'd better do it at the workplace, where I'd find less distractions, free coffee and air conditioning.
What really killed it for me was, of course, interacting with IT. I had decided to build a PostgreSQL database: it's fast, reliable, open-source (acquiring software licenses there would be too painful for me to handle), and already had community-driven bindings for the tools we were going to use. I built test cases (at home) to assess its performance for the tasks at hand, and it worked out well enough. I would have to dive deep into its docs and study it hard, but already had some familiarity with it. The dreaded weekly meeting finally happened and, after hours of pointlessly explaining technical decisions to laymen that unfortunately held the veto power, the team unanimously agreed (something quite unusual, honestly).
Problem solved, right? I wish. In fact, it was just the very beginning. I could not install anything on my machine because I did not have local admin privileges. I asked IT for permission and, after 3 days of analysis, it was denied based on the most stupid of technicalities: I was an independent contractor and, as such, my job description did not include that specific application. It took me a day to get HR to update my job description, but the IT operator (not the first one) had closed my ticket, so I had to submit another. Another 3 days of analysis, and it was denied again, because my manager was the one supposed to ask permission, not me (the one who'd do the work). I asked him to attach my manager's credentials so he could provide whatever info IT deemed necessary, but, instead, he closed the ticket.
I had to explain to my coworkers at our weekly meeting the troubles I was facing with IT and was met with strong empathy. All of them - no exceptions! - had had at least one terrible experience with the IT department. Our manager, berated, decided he, from there on, would be the one to handle all communications with IT. On the next day, I was notified that he'd opened another ticket, similar to my previous ones, requiring PostgreSQL to be installed in my machine. This one was answered in the next day, but requiring a thorough description of what I needed it for, and what alternatives I had in mind. I sent the required info, but I knew beforehand where this was going. Unfortunately, I was right: the reply was sent at the end of the day (after commercial time), telling us to use SQLite3 (the very same tool we wished to deprecate) and closing the ticket to avoid further discussion.
Over the course of the next couple months, every alternative I tried was eventually shut down by IT: cloud servers, running a server from home, running a mobile server, acquiring a dedicated server, virtual machines, everything. My drive was gradually going down the drain: I would not arrive in time any more; I would no longer work overtime; I started taking longer lunch breaks; and my health deteriorated along with my motivation. Eventually, I hit a dead-end: there was absolutely no progress whatsoever to be made without a proper database management system installed and in operation.
As the end of my contract approached, the situation had escalated to the CEO, who commanded IT to install everything I needed in my computer. We scheduled a time frame, but the operator did not show up. I left for lunch and returned to find out that it was remotely installed during my break. I felt satisfied for the first time in a while, but I was only paving the way for further disappointment: no server was installed (although listed in the request), and, as such, no one but me would be able to access the data. I told the manager and he opened a new ticket. I was in shambles. There were other issues, of course, health issues included, but that was it. I couldn't take it any longer.
I waited until the evening and silently dragged my way into HR, communicated my intention to leave, and asked for my notice to be exempted. The lady working there was diligent and approved my request. At the end of the week, my contract was completed and I left. My coworkers asked me to stay, but I claimed some health conditions and they seemed to let go.
It's been years since then, and the product we were building still has not shipped. Sometimes, I wonder if they are still working on it, or if, like myself, they decided it was just not worth their time.
I wish this story was an isolated case, but seeing Windows Vista trending today made me realize the opposite. It's not a matter of technology, but culture, and we're in deep into the social dynamics of Mediocrity, Impunity, and Neglect.Tweet