Keeping Your Skills Current With the One Hour Build
Staying up to date with the latest technologies can seem overwhelming. The One Hour Build can help make staying up to date a little easier.
What is the One Hour Build?
The One Hour Build is a software project that teaches you a new technology and only takes an hour to complete. But, don’t confuse this with casual research or hobbyist tinkering. The One Hour Build is a scoped, documented, and most importantly, complete project.
Why 1 Hour?
One of the biggest problems with side projects is that they often end up unfinished. Limiting the project to 1 hour gives it focus. It’s enough time develop something meaningful but not enough time to lose focus.
Setting up the Project
The One Hour Build is broken down into five main steps:
Decide on a Goal
The purpose of the One Hour Build is to learn a new skill. So, when deciding what to build, aim for something with easily defined parameters. For example, “learn Ruby” is way too broad. “Learn how to accept user input from the terminal in Ruby” is much clearer and easier to design a program around. A good rule is: if you can’t describe the program’s scope in a couple of sentences, it’s too broad of a project.
Here’s an example project description:
Create a Spec Document
After you’ve decided on a project, it’s time to write the spec document. Writing a spec doc, even for a small project small project, will help keep you focused as you work. Plus, writing spec docs is a good skill that a lot of developers don’t often get to practice.
The spec document should cover:
- The purpose of the application
- Happy path user flow
- Negative path user flow
- Error handling
You should write the spec doc as if you’re going to hand it off to another developer to work on. Here’s an example:
Build the Prerequisites
Not every One Hour Build can be developed in complete isolation. Sometimes, there are requirements that are necessary for the project but out of scope. For example, to build the Ruby command line application, you’ll need to have Ruby installed. The goal of the project is not to learn how to install Ruby. The same thing also applies to web development. If you’re trying to learn about WebRTC and your application requires a web form, build the form ahead of time. Unless of course “learn how to build a web form” is one of the goals of the project.
Now that everything is clearly defined and set up, it’s time to start coding. The time scale for this project is one uninterrupted hour. Not five or ten minutes here and there until you run out of time. One solid hour. Make sure you’re in a place with minimal distractions where you can stay completely focused. Set a timer. Code.
Write the Post Mortem
Once the project is finished, document the SLOC (Source Lines of Code) and how long it took you. Then, describe your overall experience with the project. Mention any issues you ran into. Here’s an example post mortem:
If the project went over one hour or took drastically less than one hour, make sure you document why. Were some requirements more or less difficult to implement than expected? Why? You don’t need to write a book here, this isn’t meant be be a Root Cause Analysis. The purpose of the post mortem is to get you thinking about the project as a whole.
The Benefits of a One Hour Build
There are a lot of benefits of the One Hour Build that go far beyond improving your coding. The One Hour Build also helps you improve your writing and analysis skills. The spec doc gets you to thinking about a project from start to finish, at a high level. The time constraint forces you to focus on a project’s purpose and nail down a Definition of Done. Most importantly, the One Hour Build gives you a better understanding of what you are capable of in an hour. In turn, you’ll become better at planning and estimating projects in the future.
To see more examples of One Hour Build projects, head over to my One Hour Build repo.