Many legacy applications are difficult to run locally, on the developer’s machine. I always recommend teams make it possible to run their code locally. After automated tests, it’s a powerful enabler for developers to improve the code quality. Here’s why.
In the past, internet connections weren’t always reliable or, when commuting, not available at all. Which was why being able to run your application offline was important. This reason has become a bit outdated, with the increased reliability of networks, mobile phone hotspots and free wifi in so many locations. However, it’s still very frustrating to not be able to continue your work when something goes offline.
Another reason why it’s important to be able to run your project on your own machine is that it makes testing and debugging your code more easy. When you run your project locally, you can spin it up more quickly, set breakpoints to investigate what path the application is taking through the code, etc. You can also make change to the environment to test certain edge cases.
If you have to commit your code to source control, wait for a build to finish and deploy the application before you can even start to test, this wastes a lot of time. If the code doesn’t do what you want and you have to make a minor change, you have to repeat the whole waiting process again. This increases frustration and is just a waste of time and money.
Developers need to be able to try out new things:
- A different approach to a piece of logic
- Refactoring a complicated block of code
- Trying out different user experiences
- Experimenting with different implementations of a feature
If they can’t run the application locally, experimenting becomes a hassle and they will be less inclined to do so. But this experimenting has the power of improving the quality and stability of your code.
Small, But Powerful
These are two reason that may seem small and insignificant but can have powerful effects. You developers will be less frustrated and more productive. Even though there may be challenges, investing time to enable local execution is valuable.