Hackathon #2 Recap

Much like our app, this story is by no means complete. But, I promised a post, and today is my only day off this week, so today is when I’m writing it.

On Friday night, before the hackathon even started, the guys and I got together to whiteboard some ideas about the way our project would work. Before things devolved into a case of “these folks should not be allowed to have markers,” we actually did get a nice plan together. We even got a start on planning our UI/UX.

Saturday morning, our teacher Matt delivered an awesomely helpful talk to the class about creating “personas and user stories” as a way to plan out an app. It’s important to think about not just who will use your app, but also just what each might do with it and how they’ll feel about it while they use it.

After spending an hour talking about this, creating a handful of personas and stories for each of them as they navigated through our app, it became apparent that 1, the scope of our MVP was too wide, and 2, we were pointed in the wrong direction anyway. By pivoting our plan, we were able to get started on something that will be far more useful to the users we’d most like to get and retain.

All that said, between planning all that UI/UX stuff, pivoting, and having to rework the ways our models would associate based on that pivot, I think it was probably around 4pm before we got a single line of code written. This was incredibly frustrating for all of us, but I kept reminding myself (and sometimes the guys) that with the amount of planning we put in, things would move very quickly after these first few steps. Personally, I’m glad we did that “extra” planning; I would have been far more aggravated had we worked on writing code for those first six hours and then realized that we had to change the plan up. Refactoring is not my favorite part of coding, particularly while I’m still sorting out what I’m doing in the first place. So, planning, hooray! (I know we’ll still have to refactor code on this project, but I’m also sure it will be less annoying because we made a plan first.)

And there were still victories on Saturday. The final count of database created and in use for our project right now is nine. Even counting the join tables, that’s still a pretty intense amount of data compared to anything we’ve done before in class. (Join tables exist to associate other tables to each other and allow things to have more than one of each other–for example, bananas can have many desserts they are used in, and desserts can have many ingredients besides bananas; join tables make this work when you need to keep track of all of that, without having to create and log a separate instance of bananas every time.)

I didn’t count the authentication-related tables there, by the way, because I’m still working on all of that. Last night when we presented the current state of our project to our classmates, I was grumbly because I had to take a break from learning about using OAuth to allow our users to log in to our app with their Facebook accounts.

In any case, after the presentations, I was pretty much done. “Nope, sorry, can’t brain anymore, I’m all out for the day.” So, it was time to party at the DevHouse for a bit. I got tired early and was about to head home, but Nick ended up convincing me to stay out for a little bit longer and we spent the next couple of hours at pretty much my favorite bar in Austin.

Which brings us to today. My only day off this week, and my first in over two weeks (Justin and I spent all of last weekend coding too, trying to make sure we were up to speed on ActiveRecord::Associations… if only we knew then what these last couple of days would hold). This will be the last thing I do on my computer all day. Tomorrow, I’m back to work, but the only things I plan on looking at on a glowing screen today are cartoons.

If you’re interested in following our progress as Justin and Nick and I work on this final project over the next few weeks, feel free to watch our GitHub repo.