Nine months later...
The original idea was there for a long time. The start was more promising than I thought it would be; both on the planning and the progress I got some traction. Problems came when I needed to focus and spend some solid time on this to keep progressing.
The missing piece
Time is the basic missing ingredient. I learned quite a lot; my development skills are rusty but I found out that I like polishing them and learning more. However, the learning part should be better aligned with the execution; in a lot of cases, my application of the newly learned skills is being put into practice with too many iterations or with too much detail. Then again, all the stuff I learn is still useful; maybe I just like learning new things more than I like to build stuff?
An experiment is developing in my head more and more. An experiment in time management, focus, and isolation. What would happen if I put myself in a forest home with just this project to work on. No other obligations or distractions. All nice and well, but how do I get to the point where I have no other distractions? 🤓
Distractions on this project come in several types and from several sides. The first distraction is life; I have a (more than full-time job), I have a social life, I have a girlfriend at home, I have books I want to read, things I want to do, sports I want to play, places I want to see and the list goes on and on and on. The second distraction is scope-creep.
Time is the most valuable thing a man can spend
Theophrastus Author
Scope
The thing I probably enjoy the most about development is to build efficient and solid working pieces of a workflow, and at the core, Strackt is a workflow tool. Using the tool myself (at irregular intervals) helps me to finetune the scripts, debug new problems, find better ways, etc. This also introduces the problem of scope creep. At times I spend way too much time on nice to haves because they bug me at that moment. Refocussing on the core elements usually doesn't happen because something else takes up the rest of the afternoon or evening. In my daily life, I am pretty good at preventing scope creep. I do tend to procrastinate on things that I need to do, but when I do sit down to do them I keep to the scope, timing, and deliverables pretty well.
In the things that I like playing with, like this project, my heart and mind go all over the place. Reading an issue inspires me more to expand on it than it does to finish yet that issue, leading to more and more issues on my board. Even with a regular backlog purge, planning session, and epic writing I can't seem to keep it tight.
With an ever-expanding scope, the second problem becomes progress. Sure there is progress; more and more things work, the tool covers more and more tasks, the deployments become faster and faster, more and more features are implemented. But at times the number of issues till we get to a working Minimal Viable Product just keeps growing. And they are not just XS issues.
Managing my time is not a new issue, I keep running into this every day and I still haven't found a good solution. Between procrastination and a wide range of interests I'm always short on time in a day. I've recently started to try and put the ideas from Jake Knapp and John Zeratsky from their book Make Time into practice. Breaking habits is quite hard... 🤯
How to make time
Fabricating more new time is not a viable solution. Letting go of every deadline won't solve my problem either.
To me there are two steps I can take to help myself keep progressing:
- Better document and visualize progress. Every time a new capability is there, finished or not, it should be tracked. That way I can better see the development that is there and it should give me a better insight into where I am spending my time. This includes learning, playing, testing, debugging, using the tools, etc.
- Allocate time. Finding more structural ways to find an hour a day, an afternoon a week, a day of the weekend. Block them, use them, track them.
The Path
So what's next for the upcoming months. First and foremost I need to keep it interesting and feasible; interesting is going to be an exercise of achieving progress. Tangible progress that is tracked and documented so that I can close tasks and see the results. Feasibility is going to focus on scoping and tracking. More working in Linear to plan, scope, and track my progress.
The first task at hand is something I am not particularly good at all the time: starting from scratch. When I started this project, I specifically split my efforts into several repositories, one being the playground. This allowed me to test all kinds of things and slowly build up to a working version. This disadvantage of staying in the playground for a long time is the problem stacking effect; every new idea adds to the problem list of unfinished other parts, ideas, and tasks.
Resetting the playground and using the learned skills and built elements on a clean foundation is the thing a clearly postponed for too long. Destroy everything and let's move forward!