Background
About 2 weeks ago, my boss gave junior developers in the team a task.
It's about making a tool not only for us bur for other teams such as QA, sales, and so on.
Why the task? It's too long to describe in detail. To put it simply, there were some problems in our workflow.
There are three main teams related to this situation. My team(Firmware development), QA, and sales.
The overall workflow seems like this.
- Once we release a firmware, the QA team starts testing.
- During the test, the QA checks what issues are solved and what new features are added to the given firmware.
- After the test, the QA lets our team know what issues are not solved, happened, etc.
Looks simple? Of course it does.
All my team has to do is just keep writing down about solved issues and added features into a shared doc so the QA can follow up and make them easy to test.
Real Problem
BUT, the real problem is that our targets and OEMs are too various, making my teammates hard to write down about effects the code they write will have on which OEMs, target products, and so on.(I know. It's just an excuse.)
So on behalf of the QA, it's not surprising that they have trouble with tracking issues and features. For exmaple, without the doc I've mentioned, they must check version, related issues, requested features and target products at the same time, all on their own. But since only my team can see the git log, there's no way for the QA to check them at the same time. So they always have to ask my team about that.
TL;DR
My team(Firmware team) : "It's too hard for us to keep writing the shared doc! We're busy dealing with our tasks!"
QA team : "How can we check the firmware without proper information? We need that!"
And don't forget that I've mentioned 'Sales team' above.
They always run to our team and ask 'Hey, has the feature we requested before been added to the firmware? At which version?'
Of course, it's not a big deal for us to reply. But repetitive situation is really tiring, you know. My boss might have felt that feeling a way earlier than me.
No One to Do The Task But Me
So the task had been given to the juniors.
The task was to make a simple webpage where we can share our git log with other teams(Of course, only pre-filtered logs.)as fast as possible.
Unfortunately, other juniors were working on other important tasks. So I was the only one who could deal with this task.
If I were to have enough time, I would have done this task all on my own. But the deadline was too short and I still had other tasks, meaning I didn't have enough bandwidth.
That's why I decided to do this task only using an AI agent. To be honest, I thought that the task was the best timing to experiment an AI agent at work.
Three Personal Criteria to Use AI at Work
I use AI agents a lot for my 'personal' projects.
But I don't use that much at work, since there are three main criteria.
1. The task must be clear and pinpointed.
2. The task must be irrelevant to our base code. (I don't want AI agents mess up with the huge code base!)
3. The task must be done on my own(So that I can fix problem later on.)
Fortunately, the task I was given met all the criteria. It was clear(Making a website to share information), irrelevant to our base code, could be done all on my own(I had personally learned a bit about Django and React before.)
Dive into The Task
So once I decided to use an AI agent for the task, I immediately opened Gemini-CLI(My favorite tool!).
The overall workflow was really simple.
- Ask Gemini-CLI to implement an exact feature.
- Accept the output.
- Run the code and check issues.
- If any issues found, then let Gemini-CLI know the issues and let it fix the issues.
- If Gemini-CLI keeps failing in finding the issues, then I fix them.
- ???
- PROFIT!!
So I repetitively asked Gemini-CLI to implement features-getting logs from existing repositories, parsing them, filtering them, showing them, etc.
(Example prompt: Add a dropbox to limit shown logs on each page. The range is from 10 to 100 and gap is 10. The dropbox must be located next to filter box.)
And I sometimes asked Gemini-CLI to think about the project itself during the process.
'Is the project really going well?'
'Are there any other ways to make it better?'
After many repetition of this flow, I finally got a decent result.
Here's a trick I love to use: When you start a project with an AI agent, tell it make a file to write down about what it has done(To track.) and check it after every single task. I think this strategy works really well. Already know this trick? Sorry.
Output
The final output met all the requirements.
Let me describe the website to you.
- You can select repository and branche to search.
- You can filter target product(It's possible since we write about target product in commit message.)
- You can search based on git commit message, which contains a lot of information such as version, date, tags, what the commit is about and so on.
- You can paginate.
- It looks cute!(it's a shame that I can't put an image of it.)
Conclusion
Anyway, it was successful. Not only my boss satisfied with it but also both the QA and the Sales satisfied.
And for me, it was a fresh experience as well. I learned a bit more about how to assign tasks to AI agents and supervising it. To put it simply, it was fun!
The one thing I've learned over the task is that ability to divide a task into small steps will be essential for developers, regarless of whether they're juniors or not.
Let's think about this together! : How can we build this kind of skills? What other abilities will become important?
At least I think, developers who don't stop thinking will survive, no matter what happens in the future.
Thank you for reading this article.