| I spent about a year alone building a fairly complex server tool. Some days were great. Many were hard. I'm 40 now, and have enough experience with myself and software that I got it done and enjoyed almost all of it. Here some things that worked for me. * Kept the initial push of code very simple, and doing something useful from day one. The software needed to always "work" so that I could be adding features, tuning or bug fixing. If it wasn't working, I was UNHAPPY. * Tried to ship every day * Which meant I was disciplined about drilling features down into coding efforts of about a day. * I kept a notes.txt file, and wrote down any ideas and thoughts; features would get drilled down into component steps, and I would work through them one by one. * I resisted all urges to 'rewrite the whole codebase', this would have kept me from having working code for weeks, an absolute no go. Overall, I'm happy with what I (and later a friend) built. It took discipline, but the discipline is just there so that I could do mostly the fun stuff -- build something new that people thought couldn't be built. The worst two weeks for me were a terrible bug-hunting expedition that ended with filing a compiler bug. I was tetchy and annoyed the entire time. For me at least, I like having working code that does something useful. :) |
That actually sounds like incredible fun to me. :) And you likely did end up with useful code after the experience, just not in the project you intended to work on. ;)