Sailware

My Software Development Constraints

My recent personal software projects have two main focuses: building for myself, and having fun. I have other obligations in life which do not allow me to spend all day on my projects. When I focus on these two objectives, it maximizes the joy I get out of coding in my spare time. The added benefit is I get a working product that I can use when I am done. There were some realizations along the way. I got constraints.

  • I have a day job that takes up a large part of my day.
  • I have a household which I am part of.
  • I am a team of one.
  • No plans for outside money or funding.
  • Not looking for external expenses such as hosting and other services.
  • To many interests and ideas.

Since I am building for myself, I am on a relaxed schedule. I still want a working deliverables and not be wasting my own money. Most modern practices software would steer me towards building out big software with many layers. That's hard to do by yourself. My time is limited and I don't have that kind of budget.

After some time and thinking about it. Looking back was a good way for a solution. Desktop applications fit the bill. They are self contained so the code is generally in one spot. They can easily be designed for a single user. They don't require access the internet. The list goes on. But most importantly, it fits into my constraints and allows me to focus on building software for myself and having fun doing it.

With desktop applications, I don't have to rent some dedicated server or setup a computer at home to act as a server. This takes a lot of maintenance and upkeep cost off the table. Less setting up servers and then forgetting; more time designing a solution. This checks the boxes for the constraints to respect the limited time and limited expenses.

As for having to many ideas and interests. Some can be combined with the on going project, while other just get added to a journal I carry around. I try to focuses on one project at a time. I pick the project to work on by the idea that solves my biggest pain points in life.

It's has taken some trail and error to discover my constraints. Once I understood them and applied some thought to it, new alternative paths appeared. I feel like I was able to find some additional joy and fun in my software projects in the process. Find your constraints, embrace them and most importantly, have fun.