Debugging Dan

Tech enthusiast, avid side project builder. 🚀

E4: Completing a Project

07/01/2024, duration: 14:25

category: Podcast
/

E4: Completing a Project

Completing a Project

In this episode I discuss the challenges of completing a side project. Adding gamification to Observalyze is used as an example, as is starting this podcast.


Antoine his article I mentioned: Side Projects: 10 Tips for being successful.

Stay connected! Follow me on X at @debuggingdan for the latest updates, and subscribe to my YouTube channel @debuggingdan for the podcast and other interesting videos!

My active side projects are:

  1. observalyze.com: Enhance user engagement, satisfaction, and overall experience for your application by applying Gamification
  2. teletron.me: Build personal dashboards. Visualize and make your most important information available at a glance. Your dashboards will be accessible, privacy-first, non-technical and available on multiple devices.
  3. datasthor.com: The hassle-free solution for seamless remote data storage for you or your application, making data management a breeze.
  4. supersave: Open Source: Bootstrap your project with a simple database abstraction and automatically generated REST API

Video

Transcript

Welcome to Debugging Dan, where I share weekly my journey, balancing life, a full-time job and side projects. I'm Dan, your host. Let's dive in.

Today, I'd like to talk about completing projects and completing things. So, my current side project that I'm actively working on is ObserverLize. I'm in the process of having a pivot for that project that used to be only about app insight and analytics, focused on SaaS platforms and getting real insight into user activity. And I pivoted and changed it to a gamification platform that also has apps, app insights.

What I noticed is that I was having trouble completing it. So for context, it's a side project for me. I have a full-time job during the day. I have a family. I don't really have other hobbies than doing fun stuff with my family and I do side projects, but no really other hobbies. So I get to spend like five to 10 hours a week on side projects and making a pivot for gamification was a pretty big change, which then will take me several weeks.

At some point in April, I started and then I was already having some issues, motivating myself, getting it done. Because in the beginning, I was really inspired by the idea and really making progress, but at some point, it became more monotonous, monotonous, so mototone. When I did all the fun stuff, like doing the socket implementation in real-time to do the CRUD, create update stuff, building the SDK, stuff that was already working, but building on top of that. I was having trouble getting motivated.

What works for me is when I start to write down a really detailed to-do list. So activities that might take 15 minutes to half an hour. For me, that really works because sometimes I only have 15 minutes or half an hour to work on something. So that doing it really detailed gives me a very specific part on what I need to do to get some big item done in this case, gamification for ServerLize.

But it will also help me when I sit down and I figure, “Hey, I have time now. What was I doing?” I can see very detailed what I was doing and what I need to do to move on to the next item. So that really worked for me. I even have a tablet where I can take notes digitally. So I use that to really create detailed lists and I created a high-level list of items.

Then for the more complex ones, I just created the new page and I created all the to-do items to do that specific item. That really worked for me and what I figured is what will also help me is if I create a deadline. So in the beginning of May, there was Easter at the end of April, my kids were having a two-day holiday. I often have more time to work on side projects because I don't have to get them ready for school in the morning.

But those were all items that helped me getting a bit more time. I figured, “Hey, Pentecost is the last vacation day, mandatory vacation day that we have in May.” In the months after that, let me set a deadline for Pentecost to have everything done. When I set the deadline, I knew it was very challenging. I didn't really know whether I was able to make it, but I figured now that I had a deadline, a dot on the horizon, that's something that I can work through.

It also kind of helped because it helped me remove features that I figured at the beginning, “Ooh, that needs to be in there.” But as Pentecost came closer, it turned out that if I had to do that, which was a big item, I wouldn't be able to be done on the deadline that I set. So, the deadline was yesterday. Point on alert. I wasn't able to meet the deadline. I'm almost there, but I didn't meet the deadline. That's kind of the introduction topic of today: completing.

So I already told you, one of the methods that I use is to make a really detailed planning. For me, that helps because I have only small iterations of time. I have some time on the weekends, Sunday morning, Saturday morning. During the day, I wake up at like, I try to wake up at 6:15. Often I'm up at 6:30, and then I try to do some side project work between 6:30 and 7. Sometimes it works, sometimes I'm not able to get up and sit behind the laptop, and I just read some other stuff.

So that differs. But if I'm motivated, I'm often able to also get some work done in the morning. For ObservableLize, I was on a good track. The planning was proper. If I had been able to really focus for the last few days on it, I would have been able to complete it, I guess. The reason that I didn't, I think it's kinda twofold.

Of course, having a couple of extra days off doesn't mean I can spend all that time on side projects. It also means that I have time off with the family, so I did fun stuff with the family. We went to the theater, went grocery shopping together. We did other fun stuff, and I'm not a machine. So I'm not able to do fun stuff and then get home, and then I dive immediately behind my laptop. No, I also played some board games.

I had kind of, it was difficult for me to get my head into the zone to say to my family, “Hey, I'm not going to be participating actively in family life for a couple of hours,” even though that would have been fine. I would have accepted it and also said, “Hey, it's okay if you do that, just tell us how long and we'll know what to expect.” But I find it difficult for myself to really take that time and step out of that family life and then do stuff for myself.

I'm also able to do some side project work in the evening sometimes, but in the past few days, I had trouble. I did less work during those off days than I expected, and one of that was family time. The other one was that kind of also meant that it was completed. I said to myself before, when it is completed, I'm not going to immediately start working on a different project. No, I completed ObservableLize gamification, and then I'm going to have to work on marketing.

So I already upgraded my Twitter account to premium. I started Debugging Dan. I registered accounts in the lanes a couple of weeks ago. So I also need to start figuring out how I'm going to do that. How am I going to do the marketing? Of course, you could argue that should be something that you already have figured out, but that's not the way that it works for me. I focused on completing ObserverLize because that's development work, and that's what I'm good at.

I'm always a bit hesitant to start work that I'm not that good at, like marketing, for example. Development is done on ObservableLize. Hopefully today, when I have some time to work on it this evening, I have to do more marketing. So I plan to do some stream or recording or adding ObservableLize gamification to one of my other projects and seeing where we go from there.

It's not going to be something that goes fast or viral, but I need to start working on a CR. Start working on getting more content out. That's the goal. So let's even this podcast. I haven't, when I'm recording this, I haven't put out the first episode yet. I first need to figure out how to do the editing. I'm going to, how the process works. I've never really done, I've never done a podcast before.

So that's something that I still have to figure out, and that's also something that because I haven't done it before, I really need to sit to figure it out, to do it, and to make sure that the quality is good enough. Because I've already accepted that by doing it from the car, the audio quality isn't that great. I've already accepted that because I don't have a lot of time. I can't really do a lot of editing because that takes a lot of time. I don't have any budget to hire an editor, so I need to do that myself.

I hope to do everything in one take. So I think that's already also stopping me from really completing ObservableLize. Because when I've completed ObservableLize, I need to get into that big, great unknown. As I'm telling you this, I think I already have the answer for this. I need to create a detailed to-do list for the next steps. Sometimes that's easily done or moments I really need to sit down and focus on doing that and find the time because I need to get into the proper mindset to be able to figure that all out.

But now I hadn't really realized yet that I just need to start writing down the stuff that I want to do, so that I can also reorder it. When I see it before me, more ideas will start coming, and I will just have a better grasp of what I need to do. Of course, as I already mentioned, prioritization. What is most important after completing ObservableLize to continue with? Is it getting this podcast out? Is it doing the branding? Getting designs out for thumbnails or for my YouTube banner?

Or do we want to change things more for Debugging Dan? Do we also rename my NPM account or GitHub, or can that be done later? That kind of stuff. So yeah, I think those are the two things that really stopped me from completing ObservableLize. I had a lot of fun with my family this weekend, so I don't feel bad about not completing ObservableLize. I do feel bad about the second reason, but now that I've talked it through in the podcast, basically, and you were just a witness of that, I kind of figured, okay, I had to take some time somewhere in between while also working on ObservableLize to write things down.

I want to do next so that I get a proper idea of what can be changed and what needs to be done next time. So that might be something that I do probably not tonight because I did some work this morning and I was able to end up on a high note, which I will go into later in a few minutes, perhaps tomorrow morning, because to-do list is sometimes I need to be in the proper mindset. Sometimes I can also do it in between and just write things down, and then later on, when I have some more focus, I can iterate on what I've already written down.

Yeah, so this morning I ended on a high note, and that's something that was verbalized by an old colleague of mine, one who mentioned that when doing side projects, there comes a time to stop working on it. You need to end your work on a high note. So try not to end it in the middle of a debugging session when you don't know what's going on and why it's not working. Because that will make it harder to pick up what you were working on the next time.

There's some kind of mental barrier that you know, okay, I was in this mental state and I felt pretty bad because I wasn't able to find the problem. If you just created that awesome feature or function component or visualization and at that point you figure out, “Hey, I'm very happy about how this is going,” then you should try to end it or stop and do something else. So that next time when you decide, “Hey, I want to continue,” you have the positive feeling of, “Hey, I ended up and I did something awesome.”

So the next thing I'm going to do is also going to be awesome. So that's the thing of ending on a high note, which is very important. This morning I ended on a high note. Yesterday, I had some stuff that wasn't working because I had published new version packages for the SDKs. It wasn't really working properly. I needed something to connect to the local system instead of the live ObserverLize system, and I hadn't built a way to configure that yet in the boilerplate that I'm using.

So I needed to update the boilerplate package that I'm using. All kind of small things that piled up together and just flew up a barrier that told me, okay, maybe you're not going to finish it. So I grabbed my Steam Deck and I started playing a game because I figured, “Hey, my mind is currently not in the mood. I can force it, but then I won't really make any progress. I'll still feel bad about it.” So I was watching TV and also playing on Steam Deck at the same time. I had fun on the Steam Deck.

But of course, I would have preferred to complete ObserverLize and meet the deadline and was able to share that I completed it and see how the production release went and probably do another production release because there are some bugs that only surface when you do a production release. That also would have been okay because that's something that I expect because I don't really, I do everything myself, so there's not somebody else doing a validation. What I build, there's no acceptance environment, so that's okay.

So I guess what I learned from talking to this podcast is that next time it's not enough to create a detailed to-do list for the current project. Well, maybe a detailed to-do list would be enough, but I also need to organize my to-do list so that I have a proper visibility of what I also need to do for the next item. Yeah, so that's what I learned today. Hopefully you've benefited a little bit from me explaining how I approach completing projects. Maybe some of my tips helped.

And then I say, thanks for tuning in to Debugging Dan. If you enjoyed this episode, please subscribe and leave a review. Stay curious and see you next week.