Before the Industrial Revolution, people used to work repeating a series of same steps every day. Even nowadays, we are used to repeating steps when working. In development, Agile methodologies and metrics help us got better, but there is still mechanical work to do.
What is Mechanical Work?
Mechanical work is when, to carry out a task, you will need to repeat the same steps every time. Thinking about mechanical work leads us to see that if the same steps are repeated every time, we should automate it. Doing so, we will reduce mistakes and focus on what is really important.
How we can reduce the Mechanical Work?
We have countless tools that will help us to reduce it. I will explain the three we consider most relevant at Lateral View.
Gulp.js is a Streaming Build Tool
Gulp, is a tool where you can use to set “tasks” that will run with a command, the best perk is that there are a lot of plugins that it will let you connect with any other tools and applications.
It is used widely by Web UI Developers because it allows you to compile SASS, Optimize Images, Minify Code, but is also great for set up the Test Environment, Deploy, and even open a HTTP Server.
Eslint is a Pluggable JavaScript Linter
Even if you do Pull requests or not, Eslint will help you, it’s a really flexiblelinter, you can set up with common anti-patterns and bad-habits that you do not want to have in your code and they will notify you. Also it detects a lot of Common Javascript pitfalls, so you will be really covered. It stands out among the others linters because it is fully customizable and it has a great integration with almost every IDE and Text Editors.
Yeoman is one of the best scaffolding tool
Yeoman is a scaffolding tool, you can use it to generate first the boilerplate of your application, and every time that is needed to create a new file, yeoman will generate the basic template, saving you time to write it. This way, you can focus on the code that is really important and not about how to create a new service on the selected framework, for example.
The Greatest Solution: Continuous Integration & Delivery.
Even using tools that will work for you on certain moments, there is still a big hole that only can be covered with Continuous Integration andContinuous Delivery. All the mechanical work for building, reviewing the build and branches, and, if is ready, deploy to a server will be directly resolved by tools.
Before I used to implement these handy solutions, to review a feature I needed to waste 40 Minutes of my time. This means that for a middle size team of 8 developers that could finish 8 features by day, we would need more than 5 hours to review them.
As you can see, it’s a huge amount of time, but if that can be automated, the only thing that we need to do is check if the build and test pass, only review it from the client’s perspective (if there are no E2E Tests) and Merge. The Continuous Delivery will do the rest of the work. Amazing!