Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

JavaWorld Daily Brew

Thoughts on my first Startup Weekend

 

Startup Weekend came to Redmond this
weekend, and as I write this it is all of three hours over. In the spirit of capturing
post-mortem thoughts as quickly as possible, I thought I’d blog my reactions and thoughts
from it, both as a reference for myself for the next one, and as a guide/warning/data
point for others considering doing it.

A few weeks ago, emails started crossing the Seattle Tech Startup mailing list about
this thing called “Startup Weekend”. I didn’t do a whole lot of research around it—just
glanced at the website, and asked a few questions of the organizer in an email. Specifically,
I wanted to know that as a tech guy, with no specific startup ideas, I would find
something to do. I was reassured immediately that, in fact, as a tech guy, I would
be “heavily recruited” by others at the event who were business types.

First takeaway: I can’t speak for all the events, this being my first, but it
was a surprise, nay, a shock, to me just how many “business” and/or “marketing” types
were at this event. I seriously expected that tech folks would outnumber the non-tech
folks by a substantial margin, but it was exactly the opposite, probably on the order
of 2 to 1. As a developer, I was definitely being courted, rather than hunting for
a team to find a way to make room for me. It was refreshing, exciting and a little
overwhelming at the same time.

The format of the event is interesting: anybody can pitch an idea, then everybody
in the room is free to “attach” themselves to that idea to form a team to implement
it somehow, sort of a “Law of Two Feet” applied to team-building.

Second takeaway: Have a pretty clear idea of what you want to do here. The ideas
initially all sound pretty good, and choosing between them can actually be quite painful
and difficult. Have a clear goal for yourself what you want out of the weekend—to
socialize, to stretch yourself, to build a business, whatever. Mine were (1) just
to be here and experience the event, (2) to socialize and network more deeply with
the startup scene, (3) to hack on some code and try to ship something, and (4) to
learn some new tech that I hadn’t had the chance to use beyond a “Hello World” demo
before. There was always the chance I wouldn’t get any of those things, in which case
I accepted a consolation prize of simply watching how the event was structured and
run, since it operates in many ways on the same basic concept that  GiveCamp
does, which is something I want to see done in Seattle sooner rather than later. So
just by going and watching the event as a uninvolved observer was worth the price
of admission, so once I’d walked through the door, I’d already met my #1 win condition.

I realized as I was choosing which team to join that I didn’t want to be paired alone
with the project-pitching person (whomever that would be), since I had no idea how
this event worked or what we were going for, so I deliberately turned away from a
few projects that sounded interesting. I ended up as part of a team that was pretty
well spread-out in terms of skillsets/interests (Chris, developer and “original idea
guy”, Libby, business development, Maizer, also business development, Mohammed, small
businessman, and Aaron, graphic designer), working on an idea around “social bar gaming”.
In other words, we had a nebulous fuzzy idea about using games on a mobile device
to help people in bars connect to other people in bars via some kind of “scavenger
hunt” or similar social-engagement game. I had suggested that maybe one feature or
idea would be to help groups of hard-drinking souls chart their path between bars
(something like a Traveling Saleman’s Problem meets a PubCrawl), and Chris thought
that was definitely something to consider. We laid out a brief idea of what it was
we wanted to build, then parted ways Friday night about midnight or so, except for
Chris and myself, who headed out to Denny’s to mull over some technology ideas for
a while, until about 3 AM in the morning.

Third takeaway: Hoard the nighttime hours on Friday, to spend them working on
the app the rest of the weekend. Even though you’re full of energy Friday night, rarin’
to go, bank it because you’ll need to be well-rested for the marathon that is Saturday
and Sunday.

Chris and I briefly discussed the technology approaches we could use, and settled
in on using Azure for the backplane, mostly because I felt it would be the quickest
way to get us provisioned on a server, and it was an excuse for me to play with Azure,
something I haven’t had much of a chance to do beyond simple demos. We also thought
that having some kind of Facebook integration would be a good idea, depending on what
we actually wanted to do with the idea. I thought to myself, “OK, so this is going
to be interesting for me—I’m going to be actually ‘stretching’ on three things simultaneously:
Azure, Facebook, and whatever Web framework we use to build this”, since I haven’t
done much Web work in .NET in many, many years, and don’t consider myself “up to speed”
on either ASP.NET or ASP.NET MVC. Chris was a “front to middle tier” guy, though,
so I figured I’d focus on the Azure back-end parts—storage, queueing, etc—and maybe
the Facebook integration, and we’d be good.

By Saturday morning, thanks to a few other things I had to do after Chris left, I
got there a bit late—about 10:30—fully expecting that the team had a pretty clear
app vision laid out and ready for Chris and I to execute on. Alas, not quite—we were
still sort of thrashing on what exactly we wanted to build—specifically, we kept bouncing
back and forth between what the game would be and how it would be monetized. If we
wanted to sell to bars as a way to get more bodies in the door, then we needed some
kind of “check-in” game where people earned points for bringing friends to the bar.
Or we could sell to bars by creating a game that was a kind of “scavenger hunt”, forcing
patrons to discover things about the bar or about new drinks the bar sells, and so
on. But we also wanted a game that was intrinsically social, forcing peoples’ eyes
away from the screens and up towards the other patrons—otherwise why play the game?

Aaron, a two-time veteran of Startup Weekend, suggested that we finalize our vision
by 11 AM so we could start hacking. By 11 AM, we had a vision… until about an hour
later, when I realized that Libby, Chris, Maizer, and Mohammed were changing the game
to suit new monetization ideas. We set another deadline for 2 PM, at which point we
had a vision…. until about an hour later again, when I looked up again and found them
discussing again what kind of game we wanted to build. In the end, it wasn’t until
7 or 8 PM Saturday when we finally nailed down some kind of game app idea—and then
only because Aaron came out of his shell a little and politely yelled at the group
for wasting all of our time.

Fourth takeaway: Know what’s clear and unclear about your vision/idea. I think
we didn’t realize how nebulous our ideas were until we started trying to put game
mechanics around it, and that was what led to all the thrashing on ideas.

Fifth takeaway: Put somebody in charge. Have a dictator in place. Yes, everybody
wants to be polite and yes, choosing a leader can be a bit uncomfortable, but having
that final unambiguous deciding vote—a leader—who can make decisions and isn’t afraid
to do so would have saved us a lot of headache and gotten us much more quickly down
the path. Libby said it best in our little post-mortem at the bar afterwards: Don’t
you dare leave Friday night until everybody is 100% clear on what you’re building.

Meanwhile, on the technical front, another warm front was meeting another cold front
and developing into a storm. When we’d decided to use Azure, I had suggested it over
Google App Engine because Chris had said he’d done some development with it before,
so I figured he was comfortable with it and ready to go. As we started pulling out
laptops to start working, though, Chris mentioned that he needed to spin up a virtual
machine with Windows 7, Visual Studio, and the Azure tools in it. No worries—I needed
some time to read up on Azure provisioning, data storage, and so on.

Unfortunately, setting up the VM took until about 8 PM Saturday night, meaning we
lost 11 of our 15 hours (9 AM to midnight) for that day.

Sixth takeaway: Have your tools ready to go before you get there. Find a hosting
provider—come on, everybody is going to need a hosting provider, even if you build
a mobile app—and have a virtual machine or laptop configured with every dev tool you
can think of, ready to go. Getting stuff downloaded and installed is burning a very
precious commodity that you don’t have nearly enough of: time.

Seventh takeaway: Be clear about your personal motivation/win conditions for the
weekend. Yes, I wanted to explore a new tech, but Chris took that to mean that I wasn’t
going to succeed if we abandoned Azure, and as a result, we burned close to 50% of
our development cycles prepping a VM just so I could put Azure on my resume. I would’ve
happily redacted that line on my resume in exchange for getting us up and running
by 11 AM Saturday morning, particularly because it became clear to me that others
in the group were running with win conditions of “spin up a legitimate business startup
idea”, and I had already met most of my win conditions for the weekend by this point.
I should’ve mentioned this much earlier, but didn’t realize what was happening until
a chance comment Chris made in passing Saturday night when we left for the night.

Sunday I got in about noonish, owing to a long day, short night, and forgotten cell
phone (alarm clock) in the car. By the time I got there, tempers were starting to
flare because we were clearly well behind the curve. Chris had been up all night working
on HTML forms for the game, Aaron had been up all night creating some (amazing!) graphics
for the game, I had been up a significant part of the night diving into Facebook APIs,
and I think we all sensed that this was in real danger of falling apart. Unfortunately,
we couldn’t even split the work between Chris and I, because we had (foolishly) not
bothered to get some kind of source-control server going for the code so we could
work in parallel.

See the sixth takeaway. It applies to source-control servers, too. And source-control
clients, while we’re at it.

We were slotted to present our app and business idea first, as it turned out, which
was my preference—I figured that if we went first, we might set a high bar that other
groups would have a hard time matching. (That turned out to be a really false hope—the
other groups’ work was amazing.) The group asked me to make the pitch, which was fine
with me—when have I ever turned down the chance to work a crowd?

But our big concern was the demo—we’d originally called for a “feature freeze” at
4PM, so we would have time to put the app on the server and test it, but by 4:15 Chris
was still stitching pages together and putting images on pages. In fact, the push
to the Azure server for v0.1 of our app happened about about 5:15, a full 30 seconds
before I started the pitch.

The pitch itself was deliberately simple: we put Libby on a bar stool facing the crowd,
Mohammed standing against a wall, and said, “Ever been in a bar, wanting to strike
up a conversation with that cute girl at the far table? With Pubbn, we give you an
excuse—a social scavenger hunt—to strike up a conversation with her, or earn some
points, or win a discount from the bar, or more. We want to take the usual social
networking premise—pushing socialization into the network—and instead flip it on its
ear—using the network to make it easier to socialize.” It was a nice pitch, but I
forgot to tell people to download the app and try it during the demo, which left some
people thinking we never actually finished anything. ACK.

Pubbn, by the way, was our app name, derived (obviously) from “going pubbing”,
as in, going out to drink and socialize. I loved this name. It’s up at http://www.pubbn.com,
but I’ll warn you now, it’s a static mockup and a far cry from what we wanted to end
up with—in fact, I’ll go out on a limb and say that of all the projects, ours was
by far the weakest technical achievement, and I lay the blame for that at my feet.
I should’ve stepped up and taken more firm control of the development so Chris could
focus more on the overall picture.

The eventual winners for the weekend were “Doodle-A-Doodle”, a fantastic learn-to-draw
app for kids on the iPad; “Hold It!”, a game about standing in line in the mens’ room;
and “CamBadge”, a brilliant little iPhone app for creating a conference badge on your
phone, hanging your phone around your neck, and snapping a picture of the person standing
in front of you with a single touch to the screen (assuming, of course, you have an
iPhone 4 with its front-facing camera).

“CamBadge” was one of the apps I thought about working on, but passed on it because
it didn’t seem challenging enough technologically. Clearly that was a foolish choice
from a business perspective, but this is why knowing what your win conditions for
the weekend are so important—I didn’t necessarily want to build a new business out
of this weekend, and, to me, the more important “win” was to make a social connection
with the people who looked like good folks to know in this space—and the “CamBadge”
principal, Adam, clearly fit that bill. Drinking with him was far more important—to
me—than building an app with him. Next Startup Weekend, my win conditions might be
different, and if so, I’d make an entirely different decision.

In the end, Startup Weekend was a blast, and something I thoroughly recommend every
developer who’s ever thought of going independent do. The cost is well, well worth
the experience, and if you fail miserably, well, better to do that here, with so little
invested, than to fail later in a “real” startup with millions attached.

By the way, Startup Weekend Redmond was/is #swred on Twitter, if you want to see the
buzz that came out of it. Particularly good reading are the Tweets starting at about
5 PM tonight, because that’s when the presentations started.

Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. Contact
me for details
.