I just completed the second and final weekend of a two-weekend hackathon with a 3 month gap in-between the weekends.

I was joined by an old friend turned developer in the interest of creating a small project together. Our requirements included project self sufficiency and limited future maintenance. We had little interest in curating social networks or dealing with custom requests.

It was important to set goals that we could actually achieve. To do that, we had a few ground rules:

The (10) Rules

  1. Above all: complete the project
  2. Enjoy the time in-person. I live in New York, he lives in DC. That means one of us will be traveling. This is still and always preferable to remote work
  3. Ample coffee available
  4. Ample beer available
  5. Don’t shy away from great food, but do stay conscious of time
  6. Learn new things, but don’t force new things (see rule #1)
  7. Confine the necessary work to the weekend. This was especially important given the time between our weekends
  8. Wake up early
  9. Lean on each other’s strengths and trust the other person to do their job
  10. Repeat rule #1

We did hit our release, but I didn’t want to make this about self promotion. So if you’re really interested you can hit me up on Twitter.

The more important goal here is to dissect the good and bad aspects of these micro product releases. I’ve learned a lot about technology, my relationships, my increasingly-limited time, my risk tolerance, and some of my other interests.

Photo from Dan Carlson

Defining a micro product

Stage one of our process was to choose the direction we would go and aggressively limit our scope. We definitely noticed that common knowledge is anything but common. Every product sector has layers of hard-earned knowledge. This is why it’s hard to beat subject-matter experts as co-founders.

Our highest depth of knowledge is software development. This inevitably means that we suffer from a slight lack of substance on most other things. This is to be expected. It is also something I wish more people understood about developers.

The Good

The Bad

The technology that made the cut

The greatness of most technology is very context dependent. If speed and minimal effort is a goal, then Get Up and Running, Quickly is my slogan to win the day. This is not to say some of the tools in the bad section are not good in other contexts.

The Good

The Bad

Supplement resources for the win

We engaged in some education. Aside from the standard Stack Overflow and frantic solution searching, there were a couple other things that helped us through the process:

Why Therapy?

In four days of work and good community, we managed to release a client/server application with reliable connections to 5+ APIs. It serves a basic need for customers. It has viral marketing built into the checkout process. It processes payments via stripe. It has a detailed, thorough AdWords campaign behind it. It works well on desktops, mobile, and tablet devices. We don’t hate the code and we don’t hate ourselves.

It feels good to say that.

That’s the therapy part.

What I’ve Learned

My desire to create and release products is a disease. My cure is not in sight.

The conclusion of the project was bittersweet. We can no longer focus on the next developer milestone. We have to see if customers are actually interested. That is the biggest test of all.

I do believe that the ability to create things with little cost pushes developers to write a line of code before it’s necessary. My future attempts will likely undergo a greater degree of market testing. Given that, I think we have learned a great deal and should be able to apply it more surgically when the next thing comes around.

Photo from Artem Sapegin