Which Project? When?

It's good to have projects outside of your work time. They can be sources of entertainment as just-for-fun projects. They can aid in career advancement as training projects. They can better the world as open-source projects or tools you make publicly available. But which project should you work on when you only have so much time to work on them and several different projects you want to work on? Here are some things to consider: 1. If you have some idea of what your schedule will look like, it may be a good idea to plan out, well ahead of time, when you're going to work on which projects. If you don't, you could spend valuable time trying to decide what you should work on at the beginning of every session. 2. Try chunking sessions together by project. If you have time two days every week for instance, work on the same project on those two days for that week, then work on a different one the next week. That way, you spend less brain power rearranging data at the beginning of each session. You may take this one step further and just keep returning to work on one project until you're done with it. Although if you start to get stagnant and uninspired working on the same project all the time, maybe then it's time to switch projects. 3. Be aware of your physical constraints. If part of your project time occurs late in the evening and you're likely to be tired, avoid watching training videos that might put you to sleep. Instead, work on something more engaging, like writing actual code. Save the training videos for a time when you're more alert. Or if all of your side project time occurs when you may be tired, try to fit some coding in along with the videos to keep your brain from wearing out. 4. If you're looking to advance your career or get just make yourself more valuable to an employer, consider how measurable your work is. It may be that two things you work on could equally make you a better developer, but a certification looks better on a resume or annual review document than a simple statement that you worked on something. 5. If your side project is something you or someone else actually uses, there's a tradeoff between adding features and improving coding structure or paying down technical debt or changing frameworks. New features are immediately useful, but improving the underlying code or architecture will help with adding features in the future. This is something to consider in any project planning and is not at all specific to side projects. 6. There can also be a tradeoff between urgency and importance. It may be good to put something big off in favor of something small because the small thing is most useful right now and the big thing might not really be useful until later. But don't let the little things keep pushing back the big thing to the point where you lose out on the big thing's value altogether. Try just scheduling a rotation of little things and small bits of the big thing. 7. It can be good to complete an entire project or training course in one big chunk (that is, to continue returning to it every session until it's done). If it's a project, then you have a whole useful product right there, giving value. If it's some kind of training, then you have a complete tool at your disposal, which I believe is easier to wield than bits and pieces of a tool. Example from my current project situation: Today, I'm trying to decide which project to work on during my two hours of training. The Contenders: C# Certification Training Advanced Web Development Course Unity Game Development Course Adding Functionality to Doctors of the Church Site Converting Doctors of the Church Site to Angular (or React) First I need to figure out how much time to spend deciding. I only have two hours, and any time I spend deciding is time I can't spend training. That might mean I should just pick one to maximize my training time. But perhaps there's a better solution, to take advantage of scale. I know that I'm going to be spending an hour to an hour-and-a-half each Thursday night and 2 hours each Saturday on training. Knowing that, I can come up with a schedule for all of my time going into the future. Doing that, I don't have to spend time solving this problem every week. I can just look at the schedule or consult a plan each week and not waste time (and problem-solving brain power) twice every week at the start of each training session. To consider: 1. I fell asleep while trying to watch training videos for C# this past Thursday night. I need to be aware that I might be sleepy on Thursday nights, so make sure I'm doing something engaging in that time slot. 2. Any functionality I add to the Doctors of the Church site now will be immediately useful. 3. Any functionality I add to the Doctors of the Church site now will be functionality I eventually need to switch over to Angular when I do make that transition. 4. The C# certification is something I told my boss I would be working on and may have the greatest affect on my pay at my next annual review. 5. The Game Development Course has the most relation to what I want to do eventually, and probably the least relation to what I'm doing now. If I had struggles with motivation, the fact that it's fun might have been relevant. But I'm going to be spending the same amount of time on training no matter how much I like what I'm doing. 6. The Advanced Web Development Course also may likely have a big affect on how well I do my job now, and so may have a meaningful impact on my pay. Though it is less measurable and so would probably have lesser affect than the C# Certification. 7. It may behoove me to work on the thing I can get done most quickly, because I then have a full concept covered in my head, which I think is more useful. I think it's easier to wield the tool that you fully understand. Also, it would simplify any scheduling decisions I need to make regarding what to train with next. My Plan: I'll have three Week Types. What goes into these different categories will change over time, but I'll continue on with these categories going on indefinitely: 1. Training 2. Doctors of the Church (DOTC) 3. Game Development I'll go in a 5-week pattern, which I will continue indefinitely: Training Training DOTC DOTC Game Development For now, I'll alternate the Training weeks between C# Certification and my Advanced Web Dev Course. For now, I'll alternate the DOTC weeks between adding functionality to DOTC and converting it to Angular (or maybe React? I'll start with actually evaluating which to use). Game Development, I'll just go through my Udemy Game Development course. In the future, I may devote time to actually working on my game, either coding or writing up concepts or storylines.

Comments