As the present contest app is a rewrite of the Cubicforest-java project, I would like to write about my thoughts, why it wasn’t finished. Nonetheless, I’m happy with the results: what I’ve learned is mine. It wasn’t only a software development lesson, because writing a project requires also other skills.
Write small (not)
I think it’s a quite common reason of failure in finishing any vision. Not adjusting the available resources to the project’s requirments. And by that I mean mostly the number of developers, which in case of a home projects is one. That, plus the available time and patience. How long will You endure, writing the same project on and on, after hours and during the limited time on weekends? Will the desire of implementing Your vision be enough?
We’re starting too big, dreaming about creating something original and recognizable. Risking not finishing anything. Not realizing that finishing something smaller will give us enough satisfaction and fun to start something new very soon.
So yes: Cubicforest turned out to be too big to finish before burnout. I would say it’s finished in 60%.
Still learning and always will.
I’ve read somewhere, that rewriting projects could be a good exercise. The best way to learn is to write, write, write. We’re learning new things, getting back to our old source code and rolling our eyes, thinking ‘how could I ever write something like that’. And that’s the thing: the bigger the project, the harder is to perform the desired refactoring. Of course if it’s an extremely important project, we’re agreeing on compromises by doing only some of the needed changes: generally because of the lack of time. Or motivation.
And one more time: that’s why writing smaller hobby projects is better. We can start over without the luggage of bad assumptions. I wasn’t completely dissatisfied with my code. Once I even wanted to continue the project. But right now I’m too tempted to write it better. With the new language I’m learning, new blog posts read, new practice. I want to use experience from that project and mix it with new things I’ve learned lately.
Not doing it fast.
Hm. I thought this post will be longer, but I’m finding only two mentioned reasons.
Too big project.
Want to and will write it better.
I will add another one, pretty similar to the first. Don’t let yourself to work on something too long. You’re losing impetus.
written in Emacs with org2blog mode