The Highest Satisfaction for a Programmer: Use Self-Created Tools Daily
Using a helpful tool you created yourself every day feels amazing.
Git is one of the most essential tools in the software industry, now used in nearly every software project. Linus Torvalds, the creator of Linux, developed Git to help his coding.
In 1998, while working as a research scientist at the University of Queensland, I had the opportunity to meet Richard Stallman, the founder of GNU. He gave a speech on free software, which deeply resonated with me. At the time, I was using Emacs, the powerful text editor he created, and hearing his story about its development was truly inspiring.
That same year, at the WWW7 conference — where my company was one of the sponsors — I saw Tim Berners-Lee, the inventor of the World Wide Web, and met James Gosling, the creator of Java, along with Larry Page and Sergey Brin, the founders of Google. While my interactions were brief — mostly a handshake (I received a business card from Larry Page, though I later lost it) — the experience left an impression on me. Looking back, I believe these moments influenced my journey in building large-scale applications like TestWise IDE and BuildWise Continuous Testing Server.
In 2018, I had the honour of receiving the Ruby Award in Japan from Matz, the creator of Ruby. I was deeply impressed by his vision and the elegance of Ruby as a programming language.
These software legends — Torvalds, Stallman, and Matz — each transformed the world by first creating tools that they themselves found useful. This inspired me.
In 2006, I started developing TestWise IDE simply to make running Watir tests easier. I had no grand vision at the time — certainly no idea it would become what it is today.
Now, 18 years later:
I still use TestWise daily.
It was showcased (not by me) at the Agile 2009 conference.
A finalist in the 2010 Ruby International Award
It has dozens of commercial customers, plus an unknown number of free edition users.
It has been invaluable in developing several of my own applications.
It even played a role in helping my daughter land a FAANG job.
What started as a small tool for myself has grown beyond what I ever imagined.
Financially, my investment in developing TestWise would be considered a loss, given the time and effort I put into it. The end-to-end test automation market has been plagued by bad tools, such as record-and-playback (e.g. UFT) or demonstration-oriented solutions (e.g. Cypress). Script-based tools haven’t gained as much traction, and even JetBrains’ Aqua Testing IDE doesn’t seem to be doing well.
Still, I remain hopeful that, one day, the industry will return to common sense — real end-to-end test automation is built on highly productive and flexible scripting.
Regardless, I’m incredibly glad I created TestWise. It has brought me great satisfaction, and I take pride in using my own tool every day.
I remember a government project where nearly every team member, including business analysts, used TestWise. The project manager had set a rule: a user story was only considered “done” after demonstrating an automated end-to-end test to verify it worked — real “Done, Done.”
Naturally, test automation training was part of the onboarding process for new hires. One newly hired software engineer, after about a week, approached me and said with excitement, “I just found out that you created TestWise. I’ve never worked at a company where the team actively uses a tool built by one of its own members.”
His remark made me wonder — shouldn’t it be normal for highly driven programmers to create tools to improve their work?
Software engineers frequently face repetitive tasks at work. Next time, consider building a tool or writing automation scripts to handle it more efficiently. Start simple and enhance gradually. After all, that’s what old-school engineers do.
For those who haven’t experienced this, I can tell you — using a helpful tool you created yourself every day feels amazing!
Related reading: