Actually, I am a frontend developer and spend most of my time creating forms and graphs. I also dedicate a bit of time to designing systems and communication with other developers and management. However, sometimes I encountered something new and unfamiliar.
In our project, we have a special tool for preparing new releases. It goes through the commits in the main branch since the last release tag, extracts the task code from their commit titles (we have a convention for commit names), and updates each corresponding task in our task management system, It’s a small tool written by one of our developers, and I’ve never looked at the code. Until today.
Today, this little tool suddenly broke - just when my backend coworker and I really needed to make a new release. To make matter worse, the developer who wrote the tool was unavailable. So, I had to figure out why it broke (it turned out the task management system changed its API), find where the tool’s code was stored (in a related project), identify the problem in the code, fix it, and figure out how to release the tool itself since the process wasn’t clear.
After it was all over, I sat down and though about it. It wasn’t just a coding problem. Changing the code was actually the easiest part. It wasn’t really an engineering problem either, since there was nothing complex about it. And it wasn’t a management problem, because no one else was involved except me. So, what kind of problem was it? If felt like an investigation problem. Is the ability to solve these kinds of investigative challenges what makes us developers? What makes us engineers?