My to-do list for faster changes in a new company
I have a few things that I like to try after joining a new team or company, to quickly help bring value to the team as a developer.
🧪 Introduce some level of automated testing.
Some high level system smoke tests could be a good start. Adding integration and unit tests are great next steps. Always make sure relevant tests run after code changes and give a clear indication whenever there is a problem.
📐 Suggest and agree on an existing code style, with linting rules and formatting, and start using it.
Make sure style checks run automatically and gives a clear indication of any potential problem. This will both save the team time, by avoiding pointless discussions about stylistic decisions, but also potentially prevent real bugs.
🚀 Set up some kind of automation for the build, deploy, and release steps.
This includes making sure code style checks and tests are always passing. Sometimes that is as far as you can get quickly, but anything is a step in the right direction.
📡 Make it possible to observe the application in production.
To understand how your code is doing after leaving your development environment you must have access to logs, metrics, and performance data in a simple way. Otherwise it much harder to reason about whether some piece of code is actually working and valuable, or problematic and redundant.
Just pick somewhere to start.
Focus on one improvement at a time.
Adjust the plan based on the feedback and insights you get in the process.
But what is the point of doing all of this?
As soon as possible after you make a change to the product you want to know what impact it has. That makes it possible to focus on the things that actually matter, so you can iterate and change the product faster and easier.
Because how quickly you can change is most likely the most important aspect to improve in digital product development.