Small internal tools that change everyday work
Alexandre Jeffroy
Software Engineer
When people talk about automation, they immediately think of large systems. What I see on the ground is far more modest: small internal tools, sometimes just a few dozen lines, that save time for an entire team.
Spot the task that always comes back
The good candidate for automation is the tedious task you keep redoing. Renaming files, checking a format, pulling a piece of information out of a log: the kind of thing you repeat without even noticing. As soon as a task comes back more than two or three times, I wonder whether a script could do the job in my place.
Example: an automated check in Python
Here is a small script that verifies each source file carries its header.
1#!/usr/bin/env python3
2"""Check for the license header in the sources."""
3from pathlib import Path
4
5HEADER = "// Copyright"
6
7def files_without_header(root: str):
8 for path in Path(root).rglob("*.cpp"):
9 text = path.read_text(encoding="utf-8", errors="ignore")
10 if HEADER not in text:
11 yield path
12
13if __name__ == "__main__":
14 import sys
15 missing = list(files_without_header("src"))
16 for path in missing:
17 print(f"[missing] {path}")
18 sys.exit(1 if missing else 0)Wired into continuous integration, this check becomes automatic and drops out of the developers' heads entirely.
A tool does not need to be perfect
An internal tool is not a product. It simply has to be useful. An imperfect script that saves ten minutes a day will always beat a perfect tool you never finish.
The knock-on effect
When a tool proves useful, colleagues pick it up. They improve it, adapt it to their own needs, and often end up proposing others. Bit by bit, the team automates its routine gestures and frees up time for the topics that truly add value.
A matter of habit
Tooling your work means taking care of the team as much as the product. For me it is no longer really a decision: it is a reflex I carry from one assignment to the next.
Other articles
Workbench: my Swiss Army knife for killing repetitive tasks
Workbench is the tool at the foundation of my whole internal-tooling approach. A single graphical interface that gathers the day-to-day repetitive actions and replaces a handful of tedious commands with a few clicks.
SonarQube: Mastering Quality and Technical Debt
In sectors where reliability isn't negotiable, how do you make sure hundreds of thousands of lines of code meet the highest standards? SonarQube has become an essential ally on my projects.