There are many excuses given for why a developer or organization can’t start automation. While most have some truth to them, you cannot expect for it to ‘magically’ happen. You must be proactive. Determining what that means basically boils down into where to start.
If you or someone else is not proactive to make it happen, it won’t. Stop making excuses and just do it!
Forget the excuses. Here are seven ways you can get started with automation.
Start with a very simple unit test
- Perhaps it doesn’t even exercise any of your code at all.
- It does establish a unit testing framework to be used and how to run the unit test.
- Over time, unit tests that actually exercise the source code more and more can be added.
Make tests run automatically on commits/on a regular basis
- This should involve some sort of build server.
- I recommend Jenkins, but there are many more out there.
- If you have a unit test, make it run this unit test every time code is committed to a repo.
Add code coverage
- Measure how much code is getting hit by your tests. Try it locally first.
- Once you have it working locally, put it on a build server.
Use a system testing framework
- Although I haven’t used any frameworks, I know other smart people have used Robot Framework.
- Again – this doesn’t have to be a real test. Just having the framework in place answers a lot of questions.
- Real tests can be added over time.
Get team buy-in
- Do not wait until the end to do this. You can do some of the above steps just as a prototype proof-of-concept, then get team feedback.
- Quality has to be owned by the team – no one person can own everything. It’s not scalable, and it makes other team members not focus on good code quality practices.
Don’t ask for permission, ask for forgiveness
- Far too many developers think they have to have permission from their boss to work on these things.
- Just don’t. Your boss doesn’t have to be involved with the nitty-gritty details of what you do. Just work on it as an additional few steps in getting some other work done. For example, while adding feature X, add a unit test for it.
- This helps prevent you from playing the victim card. You need to be in control of your destiny. Don’t blame a manager or schedule pressure for not adding quality. Build it in. Push back deadlines (without telling why) if you must.
Use the Above Automation to Make You Faster
- Keep in mind, unit tests, system tests, and so on are going to make your test burden much lighter. This will give you back more time for other features.
- Use that time to develop more features or enhance the existing tests and software automation.
Now it’s in your hands. Don’t use excuses for not using automation in your daily process. Add it to your existing workflow. Make it a part of the definition of done (even if it is a ‘secret’ DoD).
When you rely on others’ permission to make things better, you are putting your fate in another person’s hands. Don’t do that.
Be proactive. Automate the crap out of your stuff. After a while, you are going to be the rockstar engineer because you can do way more than others (with your automation). And go the extra step – get others to adopt that automation and you just leveled up your entire team.