January 22, 2021

It's all Legacy Code

The truth is that 99% of a professional software engineer’s job is refactoring other people’s code (AKA “Legacy Code”).

Given this fact, an engineer seeking success should study methodologies for working with legacy code.

There are a few methodologies (or tools) that the community has developed that ought to be reviewed:

1. Test-driven development, or TDD

TDD

2. Types of automated tests

Types of automated software tests

3. Mocking behaviors where your software interacts with the “outside” world

These include:

  • third party APIs
  • network I/O
  • hardware I/O (meatspace)

Mocks, stubs, spies

These methodologies are inherited from physical engineering (mechanical/civil/aeronautical/etc.), and have a track record longer than any of us reading this have been alive.

A software engineer that is deeply-versed in these methodology will be successful in their role as an operator.