The Art of the Small (Programming) Victories
I was a bit hesitant to write this article since it could potentially boil down to “just write a list”, but then I thought: it is more than just writing a list and it proved helpful to me, so why not.
Listening to a podcast, an ultramarathon runner explained her method of mentally splitting the race into smaller chunks of 10–12kms (an ultramarathon can be around 100–130kms), in order to be able to have those “mini-goals” in between before making it through the finish line.
Approaching the race in smaller chunks better prepared her mentally for this challenge, rather than looking at the full 130kms in one go.
And this is exactly what I have been doing but applied to programming, so I took that as my sent-from-heaven sign to complete this article ⛅
So this 2022 seemed to have on more big lesson for me in store 💡
During the last months I have been given the opportunity of developing bigger features on my own. During a mentoring session, a woman told me: “the more you know, the more complex tasks you are going to get”, and I guess I’ve hit that point where my work starts to be more intricate (having worked as a developer for 1 year and 9 months, I would assume that comes naturally 🙈).
Around two weeks ago I released a quite big feature which definitely taught me some more about tackling big tasks.
Picture a sort of statistics table with progress statuses and filtering capabilities 📈. As you can imagine, this involved a lot of data handling: fetching correctly, structuring and displaying properly — both Frontend and Backend work, which had to be managed by yours truly.
Oh my god, yes, this felt like a super fun challenge! I get to build my own feature and I have a clear picture of what needs to be done and I know I can do it. It was not lack of knowledge which felt overwhelming about this task, but its ✨ m a g n i t u d e ✨.
Taming the beast 🦁: Breaking down the task into smaller ones in order to make it less overwhelming and more approachable.
After a couple of meetings with my project lead, we came to the conclusion we needed to break things down into smaller goals. We had a good picture of what the final feature should look like and all its functionality, but where to even start in order to get all of that done? 🤔 This is where the art of making lists comes into play.
I am the type who will go for the Backend first. So my approach was to fix whatever endpoint it is I needed to fix and get the correct data showing in the Frontend: this would mark my first small victory!
Once I got all the necessary data in the Frontend, I could focus on starting with displaying it on the table. This could also be divided into smaller tasks: show the first column and headers, then generate statuses, and so on: second victory!
Filtering functionality was left for last and the finish line is in sight: third victory!
There were probably other smaller victories in between, but you get the picture. A good round of testing later and the feature is approved to go live! BIG victory now! 🥳
Having this plan of action, not only made the big task more approachable, but it also helped create those breathing moments in between. I think I have written about this before: having some small victories in the middle of the process is SO important! These little milestones where you can allow yourself a short downtime are what are going to allow you to keep going and complete the task. There’s no way I could have written all that code in one go.
💌 Summarizing, I can list some tips and thoughts:
- Allow yourself the time to plan ahead and make a smaller goals list: this time is as valuable as the time you spend coding.
- Break down the task into smaller, more approachable ones. Know your own workflow, so you can determine what a task is composed of.
- Include in the flow those moments in which you can take a step back after finishing a smaller task, take a breather before jumping into the next one.
- Celebrate the small victories! Make room to celebrate milestones in between and not only when crossing the finish line: this is what will help you keep going.
Now when writing this, I realize how you can basically apply this approach to just about anything 😋, but I did it with programming and it was great 💪👩💻.
You’ve also probably already heard of someone else doing the same, so at least let this article work as a reminder.
This is definitely something I am putting into practice now when I’ve become a “more complex tasks” kind of developer and it helps me keep my Zen and reduce any anxiety that might come along a new feature I am requested.
Let me know if you apply some similar approaches and how it has helped you out 💕
Quite happy to share these thoughts right before we are going on Christmas break 🎄 So I take this opportunity to wish you Happy Holidays!~~