Year In Review
So, it's not exactly the end of the year, but this is when I have the time I have to write this; and it's near the end of the year.
For many years, one year is not a lot different than the last. This year has been different... and it changed right at the start of the year. I think most people were aware that I've been a long-standing employee of the local municipal government. Anyone who's paid any attention to my Linked In profile may have noticed a change. On January 8th of 2019, I was voted off the island.
After nearly 21 years, it was a bit of a shock to the system. It had been a few years coming, however. The seeds of how things have turned out were started in 2014-2015... Somewhere in there. A reorganization that resulted in a new manager for me. And then a new CIO for the entire IT department. I now had a manager who didn't particularly like me and had no interest inn my career progression. With whom I clashed stylistically. And later, new CIO who believed that we should end all internal software development (concerning, when you're the key software developer in the room).
It's always been only a portion of my responsibilities, but for most of my career there, I've been involved with developing software for the Provincial Offences Courts. It started with software for our court and then progressed to sharing with other municipal courts around the province. Specifically, I have been developing a management system (starting in 2006) that has expanded to encompass most of the court functions and by 2014 was used in 41 of 52 municipal courts across Ontario. In return, the municipalities paid a small maintenance fee (a cost recovery). This "cost recovery" amounted to a few thousand over my total compensation (even though I seldom worked more than 30-50% of my time on the system).
The system encompassed collections of unpaid fines, administration of the court and prosecution. The province has a centrally operated system for the courts, but it's terrible to use and has VERY limited functionality (AS400 based, and the user interface is IBM terminal screens). My system is designed to operate in co-operation with the province's system and does all the things that it does not.
My manager hated that I was always working on the system. The idea that the system should expand and incorporate new features and abilities was lost on her. Her entire ethos seems to be, do only what the business unit asked for, pump it into production and then never touch it again... And give them a hard time about her staff's capacity, whenever they ask for changes. Fix it if we must, but there was no interest in chasing opportunity or innovation.
With a CIO who wanted to shut down development, and a management who didn't like me or what I was doing; they made it progressively impossible for me to work on the system (without direct approval) in 2017-2018. This was frustrating to all the users that I supported and who were paying for me to work on it. While they were shutting down all my development (and progressively taking away other work and responsibilities)... eventually I had little to do. My manager would talk a good game about how busy her staff was and how we could not take on any large projects. For the last 6-8 months I worked there, I worked on personal projects and watched YouTube most of the day; and many of my colleagues on our team were similarly unoccupied).
Things came to a bit of a head in November 2018, when my management structure held a 2-day workshop, with a selected group of court managers from around the province (and specifically not me). The goal of this workshop was to announce that all support for my system would stop at the end of 2019. The group was going to form a committee to both identify a short-term solution to maintaining the system and then a long-term plan for replacement. As justification for this, they proclaimed my system as "old" and "on an unsupported platform" and "eminently going to collapse". When asked about continuing to use it, my manager suggested, "why would you want a Chevette, when you could get a Cadillac". It was bullshit so thick, you'd need heavy equipment to deal with it. The only legitimate criticism was the system targets the Microsoft .NET Framework 4.0; for which Microsoft has ended support. Because no one in the room understood the implications, people came away from the workshop believing that it could take a year of re-writing to update the application. The truth is, it takes less than 30 minutes to re-target the project to the latest version of the .NET Framework.
The system is a client-server based application, using Microsoft SQL Server and a desktop client. Each municipal court operates their own instance of the system on their own infrastructure. Sure, it's not flashy, it doesn't use the latest wiz-bang microserviced web technology. It doesn't need to! The speed of development and supportability of a WinForms application is what made it possible for me to single-handedly develop a large and responsive piece of software. To develop a web-based replacement, with all the features and functionality would cost several million dollars. Not only is that unnecessary, the courts do not have that kind of money to invest in the effort.
Following the workshop, I was incensed to hear all the bullshit that they spun, to justify abandoning and redoing my system. An opinion I shared (confidentially) with a few of my contacts in a few of the municipal courts in the province. Eventually it leaked out, and got back to my manager... who then showed me the door... on January 8th.