Sunday, September 18, 2011

Building small things

Due to the nature of things we build in our day to day job, writing software can wear out even the most fit of us.

Most software jobs make you constantly deal with complexity. The amount of things which can lead to a complex software project are immense. A poor first design, and failure to redesign. External dependencies, which seem to behave different every time around. Or just the complexity of the problems itself.
You are almost always working in a team, which can be exhausting as well. If the team doesn't share your passion and you have a hard time getting your ideas across, you will get frustrated, real soon. Add some coroporate politics to the mix and you'll be on your way to Paranoia.

It feels like I'm turning this into a rant, but I'll stop right here, you get where I'm going at. Building software in the real world can be hard. Very hard.

I like to think building something small on your own once in a while can be extremely liberating. It can help you keep your sanity and not lose your passion towards software. You pick what to build. Something small. Something new. Something built with your favorite tools, on your favorite platform. Something that can be shipped. Something which takes only you and your machine.

Having problems finding something meaningful to make? Look around you, the most trivial problem can lead to a satisfying little sideproject. Look for things that bother you, and try making them bother you less. Listen to others, maybe you can help solve their problems. Who cares if it already exists in one way or the other? Look for something that looks fun. And just build it.


  1. Also a great way to learn new skills.

    Side projects have certainly kept me sane all these years. I particularly like this idea of using software to solve some small, real-world problem you face. That is satisfying, and vendors won't be able to hit such a niche market.

  2. Small and useful mobile apps are just right for your description of "small things".

  3. Small projects allow you to be creative and teaches you to build models that you can use to make a larger project.

  4. Why spend your entire life working for someone else? Turn your small project(s) into your day job and you can have the best of both worlds!

  5. Yeah... I tend to avoid working in teams. NQ/T=c, where N is the number of people in the team; Q is the quality of what's produced, T is the time it takes and c is a constant. Sutton's zeroth law of teamwork...

  6. I have just done something as you say.
    The standard runtime is 229 KB (idle03.dll) and the exe 25 KB.
    Thanks to Thomas Lauer for the mix of LUA and Win32.
    It is as fun as Python, it has a lot of batteries included and the execution environment is just the above dll.
    Too nice to be true.
    And indeed, it is true!

  7. Following up on Dan's comment is the observation, "Quick, cheap, and good -- pick two."

  8. Thank you for your comments. I'm glad most of you agree.