It's hard for me to admit, but I haven't finished a personal web application I have set out to do, since I started programming. I've had ideas, I've started coding, but then I always hit some road block, then life happens, then I forget about the project all together. If I didn't forget about the project, I questioned why I was doing it and then just stopped. I don't want to do that again. I want to complete a project. I decided 10 hours a week is reasonable.
Why 10 hours a week?
I arrived at the 10 hour pace, because of a guy named David Heinemeier Hansson. He's a software developer who's very outspoken on Twitter and has some strong opinions about not killing yourself in order to create your own business. There are companies that talk about programming being your only passion and doing whatever it takes to get the job done, because that's what good programmers do, even if you have consistently harm your own health. He's against that. He lays out business reasons as to why this is counter-productive and not sustainable. This is mainly because studies show that having at least 8 hours of sleep is the only healthy way to keep your brain functioning optimally. This is necessary for knowledge work, which is what software development is.
Anyways, I like the stuff that he says and he has an interesting story about how he got started with his own startups. The one thing that struck me was that he was working full time and working on his side project, so he didn't have much time left during the week. He said he committed himself to 10 hours a week, because it was a sustainable pace for him. He said it forced him to make the best use of his time and really cut out things that he didn't absolutely need to do. That's similar to my situation, except mine is a little tighter. I'm working full-time and I have a young family. The young family part takes a lot of time, so I'm very careful with how I spend my time. My family always comes first for me, so I don't take time away from that. I strike a good balance, where a good balance is my own definition of what is acceptable for myself, my wife, and my kids. I can make 10 hours work.
How will I make 10 hours work?
Ten hours doesn't seem like a lot of time, so I'm approaching specific things differently with my project this time around:
Whenever possible and practical, I'm using technology that I'm already familiar with. I once started learning how to write an application with Node on the backend. I only used this once professionally and it wasn't even that long. Yes, I can do it, but I'm most familiar with ASP.NET. I'm using that this time around.
If I have to learn something new, then I will try to stick with something in the same ecosystem if possible. I'm currently using Angular for my frontend, because that's what I know. The new thing I needed to know was using an existing authentication system. I was looking at Amazon Cognito and I liked the pricing, but then as I was trying to get it to work, I had to jump through some hoops, do five jumping jacks and clap my hands three times every afternoon at 2 PM for three days to get it work. That' what it felt like. Then I remembered, that I once used Firebase Authentication for a project (I never finished). I remember I didn't feel that frustrated with it. I didn't wonder why I had to install a bunch of stuff and change things in places that I shouldn't have to. Anyways, Angular and Firebase are both by Google, so they should work well together. Also, Google usually has good documentation, which it does for Firebase Authentication.
I will spend at least an hour a night and the rest on the weekend. There will be some nights where I can dedicate more time, but for now that should sustain my momentum. This is really about momentum. I don't count this blog as my 10 hours. I'm trying to keep each post between an hour and an hour and a half. Which means I should stop now.
Will this work?
I'll find out. I'll try to keep posting every week. We are in crazy times right now, so who knows. All I can do is keep trying.