The timeline for the project is something like:
- September'07 - faced with a problem I decided to come up with a generic solution that a few of my coworkers can use
- October '07 - Priorities/focus shift and the problem I am faced with is no longer urgent. I put this on the back-burner and drift off to several other side projects
- Oct'07 - March '08 - a few code contributions here and there. The project is overengineered to the point where the focus is kind of lost
- Febuary '08 - talks with another co-worker from a different group spark some interest and I do a 30 minute presentation for about 15people from 3 different offices
- after the presentation I realize exactly that this project is way to ambitious and over-engineered to be feasable, useable and stable so spent some time ripping out bad features
- March '08 - I hold an office-wide naming contest to come up with a name for what I'm doing
- July '08 - more refactoring, test cases, and narrowing of focus
- August '08 - the problem from Sept '07 comes back into focus but is assigned to an employee on my team. Since I am able to dictate the terms of the project, my side-project comes into play
- August '08 - Another employee is confronted with the same problem and succumbs to using my work as well
- October '08 - I woo yet another potential user
- release into production a working version as soon as possible
- leverage the oodles of existing code that others have written for similar tasks
- elicit as much feed back as possible
- advertize the product - entice more users
- keep the design flexilbe and robust