In this edition: I'm feeling pretty stuck with my team's current application. What to do?
Plus: pattern matching; unit tests; "Being Agile"; and better breadcrumbs.
Stuck in the Middle with You
The application I mentioned at the beginning of the edition is not a single app; it is comprised of a bunch of parts, including an internal web app, two distinct APIs, a public-facing web app, and a collection of smaller applications. One of the APIs is written in .NET Core 3.1, but everything else is .NET 4.8 or earlier. .NET 4.8 is the last version of .NET Framework, so no more upgrades are coming to that platform.
Obviously, I cannot speak too much about what exactly this application does, but I can say this: this application is critical to our company. It must be working 24/7, and issues in it cause the company to lose money and customers. There are bugs we must fix, as with any app, and the business team which owns it regularly requests improvements and changes.
These changes and bugs, as frequent as they are, make it difficult for my three-person team to pay down the app's technical debt, which has been accruing for over 10 years, and which we are only now making progress with.
In other words, my team's application is stuck. Stuck, and time-consuming to improve. I'm getting sick of it.
I've brought up this topic before, with three different bosses. This app needs to be moved to .NET 5 or higher if we're going to keep improving it. And each of my bosses has said the same thing: it sounds like a good idea, but not right now; we'll do it when we have time. And we never get time. Bugs and changes keep coming down the pipeline, and the refactoring needed to get the app ready is very slow going. Progress is progress, I know, but it's not going fast enough.
I understand the problem, I really do. This app is huge, with a lot of pieces, and the current refactoring work we're doing on it is really the first of many steps necessary to get it to a point where it even can be ported into .NET 5 or higher. The problem is huge, and from the business's perspective, might be a waste of money and time.
Yet, I'm sick of getting stuck, of being told "we'll do it later" when later never comes. I've been pushing to make certain changes, with moderate success, for a year now. Let's be real: the app is in a much better state than it was even a few months ago. It's much less brittle, meaning it is much easier to modify without causing a bunch of heretofore-unseen bugs.
Because we're using .NET 4.8, we're also stuck on C# 7.3. We're two major versions of C# behind, and by the end of this year, we will be three versions back. Maybe that doesn't matter in the big picture. But to me, it feels like we're falling behind and can't catch up. I know, logically, that's not the truth of it, but emotionally it feels like we're getting left in the dust.
This article is for paying subscribers only
Sign up now and upgrade your account to read the article and get access to the full library of articles for paying subscribers only.