I love working on side projects, and have found a new love for product development, specifically solving interesting and unique problems for myself and others.
I've noticed that these projects often have a very short lifetime, usually failing within a year. While failure shouldn't be taken too seriously when working on hobby projects, my goal is often to create something that solves a real problem for real users, and if the project fails before getting any real users then I've just wasted my time. I now take the time to perform post mortem analyses to find the patterns that lead to success.
Here are the patterns I value in my day to day work:
Before committing to an idea, market research is a great way to validate an idea, begin defining goals and get connected with potential initial users!
Well defined goals Taking the time to think about the high level goals you aim to solve helps tremendously when trying to compile requirements for software.
Reanalysis and re-implementation when goals change
Changed goals should not be taken lightly. When this happens we should re analyze the software we have currently developed and decide if it still fits the needs.
I don't mean to prevent goals changing, just that they should trickle all the way down.
Develop for the future
Lengthy and tedious builds and deploys don't just take time, they require energy, burn motivation and lead to burnout. Automation should be just as important and receive just as much focus as developing the software itself.