So I cancelled the synth project with the idea that I will do something with a little more popular appeal at some point. This was in part because I had been thinking about the scope of projects I take on, see my previous post about time I can spend programming.
One thing I often do is start a project I really want to do, but would be of no interest to anyone else, or one that is way too big. Often a project is both. I would love to write a compiler for a programming language that I designed, it is born out of the want to use graph theory and other interesting stuff. Trouble is the amount of work it takes to get the the point of being useful is just way too much. I would have to commit to working on it non stop for a decade using every ounce of my spare time, but there are so many other things I love to do.
Even knowing that I do this does not seem to stop me starting these really large doomed to fail projects. In some way I am like the guy who is just learning to program and wants to write a mmorpg.
It is December and I am going to be setting some new goals/theme for 2011 soon and with that I am thinking about process. I don't want to spend the year bogged down on some large project. So for 2011 I am going to create a collection of predicates a project has to pass to be started.
Here is the list I am thinking about.
Ok it is only 4 items and I may alter them slightly before the start of the new year. Each serves to remind me of problems I hit on when developing. Knowing when to stop is always something difficult but having a written target will help that.
An idea about a potential user base will give me some hint of how useful it truly is. Is it just for me or will other value from it. This leads directly into marketing. At very least I should have a few websites that might link to the application or game.
The final one is be able to have a usable version in 45hrs. I am thinking something that could be put up on my website or onto the android market place. It does not have to be perfect just usable and solve a problem or provide some fun.
This will be the hardest one to keep to and will require me to do some planning and thinking before I start the project. I accept it is natural to over run any estimate when it comes to software development. However if I cannot reasonably expect a workable version to come together in 5 weeks (I estimate 10hrs a week spare time coding) then it is something I should not be attempting.
Will this mean I am destined to make small apps for the rest of the year. Perhaps yes or perhaps not. The idea is to stop me form investing considerable amount of time in something that does not move me towards my goals. If something is successful it can be expanded with another round of work on it. So bigger projects can happen just I have to start with a small goal that will grow as more iteration occur.
The challenge for me is to find projects I will find fun that pass these predicates.
The check list of predicates is going into my TO DO list document so I see it every time I start to work on something.
One thing I often do is start a project I really want to do, but would be of no interest to anyone else, or one that is way too big. Often a project is both. I would love to write a compiler for a programming language that I designed, it is born out of the want to use graph theory and other interesting stuff. Trouble is the amount of work it takes to get the the point of being useful is just way too much. I would have to commit to working on it non stop for a decade using every ounce of my spare time, but there are so many other things I love to do.
Even knowing that I do this does not seem to stop me starting these really large doomed to fail projects. In some way I am like the guy who is just learning to program and wants to write a mmorpg.
It is December and I am going to be setting some new goals/theme for 2011 soon and with that I am thinking about process. I don't want to spend the year bogged down on some large project. So for 2011 I am going to create a collection of predicates a project has to pass to be started.
Here is the list I am thinking about.
- Clear concise target. Know when I am done.
- Easy to define user base.
- Clear ideas how to market the creation.
- Usable version in 45hrs of starting.
Ok it is only 4 items and I may alter them slightly before the start of the new year. Each serves to remind me of problems I hit on when developing. Knowing when to stop is always something difficult but having a written target will help that.
An idea about a potential user base will give me some hint of how useful it truly is. Is it just for me or will other value from it. This leads directly into marketing. At very least I should have a few websites that might link to the application or game.
The final one is be able to have a usable version in 45hrs. I am thinking something that could be put up on my website or onto the android market place. It does not have to be perfect just usable and solve a problem or provide some fun.
This will be the hardest one to keep to and will require me to do some planning and thinking before I start the project. I accept it is natural to over run any estimate when it comes to software development. However if I cannot reasonably expect a workable version to come together in 5 weeks (I estimate 10hrs a week spare time coding) then it is something I should not be attempting.
Will this mean I am destined to make small apps for the rest of the year. Perhaps yes or perhaps not. The idea is to stop me form investing considerable amount of time in something that does not move me towards my goals. If something is successful it can be expanded with another round of work on it. So bigger projects can happen just I have to start with a small goal that will grow as more iteration occur.
The challenge for me is to find projects I will find fun that pass these predicates.
The check list of predicates is going into my TO DO list document so I see it every time I start to work on something.
No comments:
Post a Comment