Sep 29, 2013

12 days 12 apps - an experiment in building and teaming

What is 12 days of coding?

It is 12 projects in 12 days. Each project would be started, finished, and shipped in a given October day.

It is an experiment in coding and learning. It is an experiment in teaming and creating a culture of doing. I will be blogging about our experience in my blog, starting with reflections about attitude over aptitude and critique of learn it quick mentality.

Appy days are Happy days

Why 12 days of coding?

Josh and I both had time to kill. But, not too much. We wanted to do something fun, build up our coding skills, and our portfolios. (The project will not always take place over consecutive days - but basically we are saying a half a month is low-risk enough to invest in an experiment ... whatever may come of it.)

And we wanted to learn: learn to be better coders, learn to be better builders, learn more about our interests. And that was it. We don't want to get ahead of ourselves.

We thought a good way to do this would be to create a set of constraints around our efforts. Constraints are key to discipline and focus.

  • One of the first choices we made was to keep it short and simple (KISS principle).
  • We are devoting around 2-weeks to this experiment.
  • We are keeping this to 2-person engineering team.
  • We are doing projects we can reasonably finish in a day.


What about the process? No ground-breaking principles here:
  1. Build on strength - for speed, use familiar technology (for us, mostly Ruby on Rails)
  2. Prepare - for new technologies (e.g. a Node app), do some advance reading/tinkering
  3. DRY - Do not repeat yourself - look for gems wherever possible
  4. Best practices - we will use TDD; red-green-refactor; frequent commits
  5. Pragmatism - product should work; function over form (i.e. it doesn’t need to be pretty)
  6. Modularity - we will try to build templates we can reuse on subsequent days
A lot of these ideas are well-known to software engineers from works like Rework and The Pragmatic Programmer.

How you can get involved

You should join with your own mini-rapid-project(s). Do it solo. Do it as a pair. What would you like to get out of a process like this? How would you structure your efforts? Write about it and send us a link to your post or project.
Project & resources

You can find full-project page/link here - 12 appy days!

Please let me know your thoughts about attitude over aptitude and the get-rich-quick mentality that makes one-month-rails type of marketing so tempting.

No comments: