Backward Compatibility in Software Development: What and Why
Photo by Frederick Tubiermont on Unsplash

Backward Compatibility in Software Development: What and Why

Backward compatibility in software development is an important concept that is often overlooked, especially in legacy systems. This leads to stressful software updates and regression bugs. But it's usually not so difficult to avoid these horror scenarios. What If you're unfamiliar with the concept, backward compatibility means making sure a new version of software keeps working with the current version of an external system. Backward compatibility is important when you're going to update your software. In this day and age, it's very likely that your software integrates with other systems like a database or a service from…

0 Comments
New Bugs on Every Release?
Photo by Yoal Desurmont on Unsplash

New Bugs on Every Release?

Are you afraid of your next software release? Were the previous releases plagued with bugs? Even for features that worked previously? There are ways to avoid this, but they're often counter-intuitive. Let's look at what causes these bugs, and how we can break out of this destructive cycle. Regression Bugs What you're experiencing are regression bugs. These are bugs in pieces of the software that weren't there previously. The cause can be anything from code that has been changed to a system upgrade. If this is happening continuously, this is very frustrating for everyone involved: users, developers…

0 Comments
Avoiding Technical Debt
Photo by Franck V. on Unsplash

Avoiding Technical Debt

Is it possible to avoid technical debt when starting a new project? And if not, should we just give up? Or can we find a way of maintaining quality projects while delivering business value at a constant pace? On Technical Debt If you're unfamiliar with the concept, you can read about technical debt first. In short, it's the cost that you will have to pay later because you're choosing a technical solution that is cheaper to implement now. It's like you're taking a loan that you will pay off later. Planned Technical Debt Technical debt can be…

0 Comments

Real Question: Which UI Tech for Personal Tools

I recently received an email from reader Don Potts, asking which UI technology to use for a pet project on Windows. As usual, the answer is "it depends". But the decision isn't as hard as that answer makes it seem. And the rationale used for a pet project can be extended to business projects. The Project The question is a reaction to an article I wrote for the SubMain blog on WinForms. It's geared towards developers, but the core of it is that WinForms can still be a good option for projects, even though the arguments in…

0 Comments
When Not to Refactor
Photo by Christoffer Engström on Unsplash

When Not to Refactor

There are cases where it makes sense not to touch a legacy codebase with lots of technical debt. Unlike real debt that must always be repaid, technical debt doesn't always need to be. But the use cases are more exception than rule. No Need For Change A piece of software that runs fine without the need for any change can be left to run just fine. If there are no (blocking) bugs, there is still support for the platform, maybe you're monitoring it closely and all is OK, then you have little business reason to touch it.…

0 Comments
When Should A Startup Refactor?
Photo by Braden Collum on Unsplash

When Should A Startup Refactor?

If you're working at a startup, chances are things need to go very fast. Faster than business that have a steady income. A product needs to get out the door as fast as possible, so it can be OK to incur some technical debt and create legacy code. But when do you start to clean up the technical mess that is the result? Don't Wait Too Long Industry experts agree on the fact that technical debt and legacy code will slow you down in the long run. In fact, many believe that it already starts to slow…

0 Comments
How Much Refactoring Should I Be Doing?
Photo by You X Ventures on Unsplash

How Much Refactoring Should I Be Doing?

So you have a working piece of software but you know the quality needs to improve. The team might be saying alarming things like "we need to rewrite this entirely." Should you halt feature development for weeks or months? Probably not. Keep Producing Features Features are what makes your product attractive to your customers. It's why they choose your product in the first place. And hopefully, it's why they're paying you as well. So stopping the development of new and requested features isn't a decision taken lightly. Some companies have done so, and successfully. A notable example…

0 Comments
The TIOBE Index: Is Visual Basic .NET Dead?
Official VB.NET logo, taken from Wikipedia, sourced from the official documentation (https://docs.microsoft.com/en-us/dotnet/)

The TIOBE Index: Is Visual Basic .NET Dead?

The TIOBE index is an index that rates the popularity of programming languages. It recently created a bit of a hubbub when it listed Visual Basic .NET on the fifth position. This was a step up from the sixth position in June 2018. This is in contrast to the perception and gut feeling of many programmers out there. However, there can be several explanations to this phenomenon. But there are also some concerns with the TIOBE index. And should we even care? The TIOBE index I recently tweeted this (partial) graph of the TIOBE index: https://twitter.com/petermorlion/status/1143412393441157120 The…

0 Comments
Legacy Technology Examples
Photo by Glenn Carstens-Peters on Unsplash

Legacy Technology Examples

I've previously answered a specific question about whether or not .NET 4.6.2 is legacy technology. Let's broaden the scope and have a look at some examples of legacy technology. This will allow us to distill some common properties of why certain technology can be regarded as legacy technology, and what our options are. Some Specific Examples Creating a full list of legacy technology would be an impossible task. We could list hardware, operating systems, code libraries, applications, and services across a variety of eco-systems. The list would be endless. But here are some well-known examples of what…

0 Comments
Refactor or Rebuild
Photo by Claude Piché on Unsplash

Refactor or Rebuild

In the land of legacy code, many teams discuss whether they should refactor the existing application or rebuild it from scratch. But the answer to this problem is more nuanced than many would like to admit. What is Refactoring? I've previously written about what refactoring is and why it is a valuable investment. In short, refactoring is where code is changed so that it has a higher quality, but without changing any functionality. This higher quality usually allows teams to pay off technical debt, prepare for new features or adhere to new standards for example. What is…

0 Comments

End of content

No more pages to load