I get up every morning determined to both change the world and to have one hell of a good time. Sometimes, this makes planning the day difficult.
— E.B. White
So you are considering starting your own open source software project? If you are doing this project on your spare time, there will be several time risks to consider. One risk is the open source development time multiplier. Sure, you’re a highly productive developer at your job. Then again, most developers typically work 40 or more hours per week. How much time will you be able to invest in your new project?
Let’s say you work 3 hours each for two evenings during the weekdays and another 4 hours on the weekend. That’s 10 programming hours. We’ll assume that you will be consistent in how much time you work on the project. It’s difficult to do with family and friends tempting you to spend time elsewhere. And, besides, finding balance in how we spend our is also important.
In this scenario is will take about 400% more calendar time to implement the same code for your open source project as at work. Given our time multiplier, a task that might take a week to complete during a day job will take about a month on our open source project. This is only an estimate since most people don’t actually program 40 hours week at their day job due to interruptions like meetings, code reviews and design discussions. Interruptions will also occur in your open source development: children, spouses, roommates, happy hours, dinner. It’s sometimes difficult to maintain a high level of enthusiasm when progress feels so slow relative to your normal development pace. At the same time, you must maintain a sustainable pace to avoid problems like burnout or damaged personal relationships. For me, relatively slow and steady progress has worked best although there are times I will expend intense bursts of energy on my side projects for short periods of time.
These are a few possible reasons why so many open source projects never deliver any software.
What can be done about it? Learning time management skills can help (see resources). Agile software development techniques, applied ruthlessly, can also to maintain focus and make the best use of limited time. Implement essential functionality and understand which features will provide the most value to your users. Many projects flounder attempting to implement a grand vision instead of a simple, useful product.
Guard well your spare moments. They are like uncut diamonds. Discard them and their value will never be known. Improve them and they will become the brightest gems in a useful life.
— Ralph Waldo Emerson
Time Management Resources