I want to take an article to step back from the trenches of programming and reflect on the wonder and power of tools.
In my experience, tools have made me more efficient by many factors (if not magnitudes).
Breadth of tools
In "Develop faster" I covered a lot of tools which encompass tightening developer workflows. They have saved me and my coworkers countless hours and reduced potential frustration at tedium.
On top of that, we have tools that make team collaboration seamless and make "the whole greater than the sum of its parts". When working remotely, the time spent researching pays for itself. The best tools were:
- Trello for making progress visible to everyone while saying nothing
- My standard board format is "Backlog", "In Progress", "Blocked", "In Review", "Merged", and "Deployed"
- Google Docs/Drive for shared plans, notes, and assets
- GitHub for shared repositories, code review workflow, and code-specific documentation (e.g. port reservations, folder structure)
- Jenkins/Travis CI for automated code testing to catch lint errors when the developer forgot to run it
- Slack for expressive and well connected communication
- Appear.in for hassle-free video calls
Tool empowerment
I don't think I would have been able to move as fast as I do either solo or on a small team without tools to push me forward (e.g. "Develop faster") and prevent me from falling behind (e.g. testing/monitoring).
On a similar note, I don't think I would be able to start my company experiment without tools at my side.
Creating your own tools
As developers, we are fortunate that our tools are written in the same format as the output we generate. There are some professions which don't have this luxury (e.g. UI/UX designers, project/product managers).
If you have never written a tool for yourself before, then I suggest trying it out. The benefits will include:
- You will start to see your actions in a new light
- You will start thinking of new solutions for problems
- You will have a new tool and as a result be more efficient
If you would like examples of tools, look at my GitHub:
- File-Watcher was my first tool (outside of tools in Math proofs)
- grunt-spritesmith was my first "big project" tool
- Probably any repository on https://github.com/twolfson was built to solve a problem
Unfortunately, I can't tell you what to build because:
- I don't know the problems you are experiencing
- My problems won't motivate you as well as your own problems
References
A lot of design plays into building tools and solving problems. Although, you don't need to have design experience to do it.
Here are some design topics to get you started at seeing hidden problems and hidden solutions outside of code: