Battling with yourself
I have been building a very simple project that should off taken me 2 weeks max to build, for nearly 2 months.
Every time starting to work on this project has felt like torture because it meant that I had to trial and error and google every single problem I had.
How I forced myself to keep going
I have a daily task that I need to do, that involves pushing a commit each day. As long as I did one, the task is complete.
When I was making this website for the blog that you are reading, it was straightforward to do, and I had 5-6 big commits daily. As soon as I opened my code editor, I would know what to change and do and how to do it. I was working productively, and every day I improved something.
This project is different. I have no idea what I need to do, and there is no particular vision that I have for it. One thing I know is that it needs to be done and be out in the open as soon as possible. The problem is, I have to spend 5 hours getting a single foreign key field to display.
I had no idea how to deal with this hard project before I started going through the daily notes that I write from the time I was coding this blog. One thing was transparent. I was hating working on this blog at that time as well. I also couldn’t figure out things and had to spend too much time on things that seemed too easy to spend even 10 minutes on.
Huh? Why do I remember it differently then?
Once you have submitted a ready product that is working steadily and is solving some other peoples problems you automatically start focusing on other things, things that are not the core functionality or the structure of your project, but the usability and the UI/UX.
The part after the main release is very different from the main building phase. It requires you to understand and tweak the project in the ways to improve already existing experience, not invent what this experience should be in the begging.
What has solved all of my problems:
Trello kanban board.
It might seem stupid that I didn’t create one earlier, but I have around 100 Trello boards that I am in already! I thought that I didn’t need another board that just tracked nothing and did nothing. I thought that I could store everything in my head and each time gets on with it.
How hard could it be? I need to display the button in changing light after a delay, and I don’t need to get a board just for that… Welp, I should have started it as soon as I created my project.
As soon as I put all of my ideas and projects into this board, I somehow had clarity on what I was going to do. It was as if I had a clear goal for the project, and I just needed to tweak things here and there.
I think that my underestimation of the hole Planning process as well as having a structure to what my app should do is what really forced me into a corner. You can’t have a clear image of the full project in your head. You need to draw or separate them into blocks to make sure that it makes sense.
I have really been fortunate to realise this at some point as I was very close to scraping the project fully due to things just not working. Guess some hard work pays off.
I think that this taught me a lot and in future, I won't make the same mistake (who am I kidding).
Start now. Get perfect later.