Small projects, big rewards
I have always liked small projects.
Small projects in my opinion:
- Small, focused idea, no junk/waste.
- Small team, no extras, all team members have leading roles.
- Time constraints: couple of hours, 24h, 48h, up to a maximum of 1-2 weeks.
Why do I like them so much? Because you get down to the bare essentials and try to eliminate any kind of waste (in terms of code, people, features) so that you can actually finish something in the alloted time period. Small projects force you to deliver quick results and the quicker the results the quicker the satisfaction you get from being able to say: “I did this”.
The best thing that happened to me at work some times is that I was working on some long-term projects since some months. Then at some point a “small project”, “proof-of-concept” or something similar came around. “Projects” that from a high-level view contained the same “modules” as projects I had been working on for months. But they had a deadline of “yesterday”.
Personally I love these kinds of things. I start work, I go through a lot of things I go through with normal long-term projects and then something surprising happens: The thing actually works, and is finished within the deadline.
Parkinson’s Law ( “Work expands so as to fill the time available for its completion.” ) works every time in my experience, mostly to the detriment of software projects.
But enough of that…coming back to why in my opinion every developer should have some small projects from time to time:
- They motivate you. The chances to prove yourself are much better in a small project, a small team and with a very good focus on what is to be done.
- They give you the possibility to learn something new. These kinds of projects are great to test and deepen your knowledge of a new language, some minimal framework, a new method of development. (If you fail, you fail fast and don’t waste time since you don’t have a lot of time).
- They bring the team together and take out any poisonous people.
- It’s even preferred to do some small/personal projects with people/ideas/tools outside of usual work. You get to see/do something different, and maybe bring some good things back into normal work.
- Big rewards: You always get a good feeling when finishing something. The feeling is kind of skewed if you had to wait a few months/years to finish the project but after only a few hours/days of work the rewarding feeling is much better.
So, to eat my own dog food and to learn some new tools guess what I’ll be doing some time between Christmas and the New Year? I’m going to gather with a couple of friends and we’re going to work on a project. Hopefully it will be from zero code to finished and published product in 24 hours. Maybe more news as we find out too
To all developers: Do projects, do code-camps, coding dojos, code katas. Just enjoy doing something outside of work and different from your normal way of doing things.