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
Be Prepared For Leavers
Photo by Mantas Hesthaven on Unsplash

Be Prepared For Leavers

A lot has been written about why software developers leave, and how you can avoid it. But you can never avoid it entirely. So you must have a way of reducing the damage you experience when someone leaves. You Can't Keep People My father worked for Philips for 20+ years. Most of my friends and colleagues haven't worked at the same place for more than 10, maybe even 5 years. The current economy demands flexibility from employees. But it goes both ways. Employees have come to expect flexibility from employers: remote work, flexible hours, and also regular…

0 Comments
Documenting Legacy Code
Photo by Samuel Zeller on Unsplash

Documenting Legacy Code

I've previously mentioned that one of the traits of legacy code is that it lacks documentation or the existing documentation is of inferior quality. Let me now provide some guidance on how to document a legacy code project, or any project for that matter. Start With the Overview The minimum amount of documentation a piece of software has must be a description of what the software does. What problem is it trying to solve? A next step would be a high overview of how this problem is solved. Don't document the nitty-gritty details yet. Just a description…

0 Comments

Real Question: Is .NET 4.6.2 Legacy?

I recently received a question from a former colleague regarding the .NET Framework they were using for their application. The question was: should we regard .NET 4.6.2 as legacy? The question that follows from this is: should we make the effort of moving to a newer version or to .NET Core? Even if you're not using .NET, this post may still be relevant to you, because you can apply the thinking to your application and framework. The Support Lifecycle One thing any company should check is the support lifecycle of the framework they're using. This is important…

0 Comments
Refactoring Explained: What and Why
By Tom Cronin, Source: https://commons.wikimedia.org/wiki/File:One_hell_of_a_mess....jpg

Refactoring Explained: What and Why

In any project, there quickly arises a need for what we call refactoring. This is especially true in legacy projects. But what do we mean by refactoring exactly, and why is it so important? Refactoring: New Wine in Old Bottles? Wikipedia defines refactoring as follows: Code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring improves nonfunctional attributes of the software. https://en.wikipedia.org/wiki/Code_refactoring So what this means is that developers change the underlying structure of the code, i.e. change the implementation, of existing features and functionality. But those existing features and…

0 Comments
Releasing Legacy Code Confidently
Photo by Caleb Woods on Unsplash

Releasing Legacy Code Confidently

If you own a piece of legacy code, you might be crossing your fingers every time you release a new version. Silently hoping that nothing will go wrong like last time. I'll tell you it doesn't have to be that way. The way out of this mess can be long and difficult, but the situation can be improved. Here are some tips. Automated Tests How can you know that the latest version of your application works as expected? How are you testing the version that you want to deploy? If the answer is that you're mainly testing…

0 Comments
Am I Using a Legacy Programming Language?
Photo by Mark Rasmuson on Unsplash

Am I Using a Legacy Programming Language?

Things move fast in the software development world. Technologies come and go faster than in most other industries. Programming languages tend to stay a little longer, but at a certain point in time, you might find yourself with a legacy programming language. How can you recognize this, and how should you react? What Is a Programming Language? Software is developed by writing code in a language that humans can understand. This code is then translated into instructions that the computer can understand. Like "normal" languages (e.g. English or French), a programming language evolves and has a community…

0 Comments
Legacy Code and Security
Photo by shotinraww on Unsplash

Legacy Code and Security

One aspect of legacy code that is often forgotten is security. Discussions about legacy code usually center around things like maintainability, testability, cost of development and cost of running. Not so much about the security implications. Yet it is becoming an increasingly important issue that companies shouldn't ignore. If you've missed my article on what legacy code is, let me briefly repeat the four points I made. Legacy code is code: with little automated testswith automated tests of bad qualitythat uses older technologythat is generally of bad quality making it hard for developers to change things without…

0 Comments
Can I Write Tests?
Photo by Harshal S. Hirve on Unsplash

Can I Write Tests?

I've previously established that you need to automate your tests, even (especially!) in legacy projects. I've also covered on how to get your developers to write tests. But maybe you're wondering if you or some other non-technical person can help write the tests. Luckily, there is a way, and I would even recommend it highly. Types of Tests First, let's briefly cover the types of tests again. Broadly speaking, the following type of tests exist: unit tests: to quickly test small pieces of code in isolation, mainly for developersintegration tests: to test the integration between different pieces…

0 Comments
Can I Add Tests To My Legacy Project?
Photo by Samuel Zeller on Unsplash

Can I Add Tests To My Legacy Project?

So you've acknowledged you're stuck with a piece of legacy code. One of the things that might be missing are automated tests. Is it possible to add tests to this application retroactively? That is, write tests for features that have already been implemented? Short answer: yes! Long answer: read on... The Situation There is a Chinese proverb: "The best moment to plant a tree was 20 years ago. The second best moment is now." Keep that in mind as we look at the current situation. Let's say your application has little to no automated tests. I've already…

0 Comments

End of content

No more pages to load