Bad Dinosaur!

You Should Check This Out

CollegeJobConnect | Better Undergraduate Recruiting

Tuesday, May 25, 2010

Minimal Viable Product

Aside from the usage of expletives, there are several other similarities in Jonathan Wegener's Minimal Viable Product (MVP) article to my "Kevin Costner is Full of Sh*t" posting (more on the title below).

A little background: an Minimal Viable Product is the 1.0 version of your software, service, product, whatever, that you can go to market with. It is called minimally viable because it is just that: it is the quickest thing you can whip up that demonstrates your core thesis or offering, with little room for much else. Reid Hoffman, founder of LinkedIn, famously said: “If you’re not embarrassed by the first version of your product, you’ve launched too late.”

This principle can be difficult to follow. Jonathan Wegener, author of Back of the Envelope, points out:
"Manhattan is full of gorgeous skyscrapers. No self-respecting person walks around thinking to themselves “Gosh, if I were going to build a skyscraper, I’d want mine to look like sh*t.” That just doesn’t happen! Instead, we have a natural tendency to want to ‘one up’ the status quo: “I’m going to build a skyscraper out of gold!”"
I was guilty of giving into this line of thinking when I was building myBusinessTies in 2005 (a Facebook for Wall Street back when Facebook was just for college kids). I was following the Kevin Costner "build it and they will come" mantra. I developed a fully featured and stylistically beautiful networking platform, but had no customers and no idea how to acquire them, or even if they wanted what I was peddling. My result: long development time and significant effort invested, full product, but no idea if anyone wanted to use it, and no user marketing strategies.

If following the MVP strategy is the way to go, you might wonder why you don't see more of them out there. The answer that Jonathan offers up is:
"the heart of the issue is that very few of these minimal viable products exist in the real world. Why? They rarely stick around! Customer feedback quickly drives additional improvements and features. Soon, memories of the mediocre original product completely fade away!"
Bingo. MVP either guides your product forward quickly or advises you to cut your losses, avoiding over investment into a less-than-promising venture. What I should have done with myBusinessTies was spend less time developing and more time reaching out to my potential customer-base, demonstrating the core offering of the platform, gathering feedback, and then iterating my product appropriately (or realizing that Wall Street didn't want an exclusive web-based network). Either way, better than marching blindly forward.

If it helps, realize your product only has to be an MVP for a short time. After you gather feedback and have a better idea where to push your product next, you'll step out of that category towards a Viable Product that is polished and professional.

The key is this: don't blindly over develop and over invest, but rather practice customer discovery and development and don't hesitate to get out in front of potential customers and clients as early as possible. It will make you a happier entrepreneur.

Monday, May 17, 2010

Solving the "Marketplace" Business Model

I came across an interesting article today about how to solve the "marketplace" business model issue. The article was posted on A Smart Bear and you can read the full text here. I wanted to share it with the Good Dinosaur collective, perhaps a rousing entrepreneurial discussion will ensue.

There are several inherent difficulties in establishing a market place:

  • You have a double-sided market that you must capture. This is also known as the chicken and egg problem.

  • Your venture itself must be two companies in one, appealing to both sides independently to win adoption.

  • Size can matter. You often can't bootstrap your way to success when it comes to market place establishment. It can be a go big (and spend big!), or go home situation.

The article discusses several viable ways to persever over these challenges, such as attempting to build up the supply side of your market first by offering incentives or targeting a specific niche so you can carve out a space for yourself.

At CollegeJobConnect, we've experienced the challenges in establishing a market place, so this article rings especially true. We are currently pursuing several campaigns to build our roster of companies that want to leverage us for undergraduate recruitment come the fall (attack the supply side). We are also setting up several student affiliate programs at our target schools to increase undergraduate adoption (win both sides in parallel, carve out our niche, scale up quickly).

I'd be more than happy to discuss at length with anyone that is interested. And if you know enterprising undergraduates that are interested in working with our startup, please let me know. Exciting stuff!

Monday, March 22, 2010

What Will Be Facebook's Adwords?


In the summer of 2004 I was interning at an NYC investment bank. We were all handed a booklet that contained the resumes of everyone in the program. Eduardo Saverin was part of our group and stuck around for about 2 days, deciding to abandon the corporate world in favor of his startup. On his resume, he had listed "Co-founder of The Facebook (thefacebook.com), an social network for Ivy league undergraduates that currently has 11 thousand members and is valued at over 6 million dollars. (I can't remember exactly so those numbers might be a bit off, but they are "ball park" close).

A few short years later, Facebook is now open to the masses, recently surpassed 400 million members, and eclipsed Google to become the most visited site in the United States.

Facebook did a great job to popularize itself. Mark Zuckerberg pitched his social graph thesis to gain interest and the creation of a developer's platform was an ingenious move. Facebook has made it in a big way. It has a larger user population than all of the United States by more than 100 million people. Think about that for a minute. If every man, woman, and child in the United States had a Facebook account (which most do), we'd still be short another 100 million people (so throw in another 12.5 NYC's and we are even stevens). Even more powerful, of those 400 million users, a large portion checks their account at least once a month, at a minimum. It is a large and sticky service.

The company is reportedly on pace to produce between $1-$2 bn in revenue for 2010, which is fantastic, but I wonder what will be Facebook's money maker that puts their revenue engine in line with their customer and product achievements. A similar story was seen with Google. The search engine was beloved by all that used it, but it's monetization method was not easily found. Larry and Sergey reportedly attempted to sell it to Yahoo! for a few million dollars as this seemed like the most lucrative exit. It wasn't until their flagship advertising platform, AdWords, was conceptualized and implemented that the cash started to really flow in. Facebook is clearly beyond this point, but what will take them from a $1-2 bn dollar company to the place they should be for a service with their size and integration into our world. What will be Facebook's AdWords?

Update: An article on TechCrunch points to a patent the company recently filed, which features a very global-esque looking virtual currency icon. If all money continues to go digital, could Facebook become the banking or transaction platform of choice for the web? It is already the platform that many use to share pictures, plan events, and communicate.

Friday, March 5, 2010

Thoughts: The Marriage Ref


Everyone's family is crazy. We all argue about the stupidest things. We get into heated arguments over things that are absolutely trivial.

To this day, my mother still hounds me about a head board that I used (and lost) freshman year of college to prevent my head from touching a stupidly unsafe in-wall heater positioned directly above my bed. I can tell you this for sure, that piece of furniture is long, long gone. It has been 9 years since our tragic loss. But yet, my mom will sling a "Jeff, have you figured out where it is?" or a "can you go back to your old dorm and check for it?" every now and again. Once we get going down this road, the discussion quickly devolves into how careless I am and how insane she is. I guarantee you, if she reads this posting, I will get a call. It will start off with some laughing and banter (Mom: "Oh ha ha, you are funny, I don't care about that stuff, I don't act like that ha ha") and will end along the lines of "Well Jeff, don't come back up to Vermont until you find that damn head board. You ruined your bed and don't even care" (hangs up the phone).

Seeking to capitalize on everyday squabbles such as these, the NBC braintrust unleashed a new show called "The Marriage Ref" where a panel of hosts reviews a family's fight and then declares a winner (and, more importantly, a loser). The first show had a star-studded line up, featuring funny woman Tina Fay, funny man Jerry Seinfeld, and all around beauty, Eva Longoria. Jerry Seinfield is also the shows executive producer, so it has to be good, right? Nope. I'm not a buyer.

Why not? I couldn't put my figure on it initially. My family gets into fights that are equally, if not more, stupid, silly, and annoying than the ones presented. And I certainly don't have Mr. Seinfeld or Mrs. Fay providing witty commentary or funny insights. But I just couldn't watch this show. I wanted to break my TV. Then I realized why.

Even though my family gets into its fair share of absolutely inane arguments that would fit in nicely with the ones presented by the show, I love my family and can thus deal with the complaining, the fighting, the absurd whatevers that inevitably take place. I don't love the families presented. Not at all. I can look back at past personal family feuds and smile and laugh. Our problems seem funny. But, without my love for the individuals involved, there is nothing keeping my inner Hulk from becoming immensely angered and annoyed, so I really don't see this show ever agreeing with me. Anyone else watch this show and have opinions?

Hi Mom!

Monday, March 1, 2010

Kevin Costner is Full of Sh*t

Kevin Costner is full of sh*t ... when it comes to startups at least. Build it and they will come. I implore you, do not listen to this man! This line of thinking is out in left field (har har).

I have to admit, I used to subscribe to this tag line. A few years back, I felt that if the idea was there, all that was barring a venture from success was time, effort, and determination. As a result, several of my early projects were drastically over engineered and tragically under utilized.

Case in point, in a 2005 project a friend and I wrote an entire professional network platform. It was Facebook meets LinkedIn (this was back when FB was still only for college kids and LinkedIn was lame). We were going to make the professional network that young professionals wanted and needed to join. We would monetize it somehow, but with the eyes and ears of tomorrow's top earners, we felt this would "fall into place" (don't follow this either). We wrote over 50,000 LoC. It did everything: secure login, password reset, profile creation, group formation, group messaging, secret groups, public groups, photo upload, friend requests, etc. etc. etc. We saw about 150 members over the next few months with few "sticky members." The issue wasn't that we had built a bad product / service, but more that we hadn't done our homework and gathered real world data before setting up shop.

What could we have done differently? We should have given a big middle finger to Kevin Costner and incrementally tested our thesis: young professionals (especially those in major urban environments a la New York City, Boston, DC, and so on) need a better way to network in the work place. At the very least, before we wrote a single script, we should have sent out an email to our friends (we probably could have gotten 500+ addresses, all in our target demographic) and asked if this perceived pain point (them: "we need better networking capabilities!") was a reality. If yes, did our proposed solution solve the problem? Make it worse? After passing these first sanity checks and receiving some initial buy in, we then could have produced a vastly trimmed down initial service (minimally viable product) to test actual adoption and utilization and gone from there. These would have been intelligent, no brainer steps to have taken. But as developers we often don't do this. We get into the groove and let the code fly. Projects like this burn you out both emotionally and entrepreneurially. You only have so much fuel in the furnace and hours in the day, so choose wisely.

This insight sprung up in my head over the past week when discussing a friend's startup idea. (No, not Bad Dinosaur). He had built a great product and wanted me to test it out. I told him I'm not going to be one of his likely early adopters and to go to XX [a popular blog dedicated to people he'd likely want to start off with] and start recruiting people (could even do this before any coding whatsoever). See if they are interested. If so, why? If not, why not? Which of the first features did they think were absolutely necessary, which were nice-to-haves, and which were unnecessary?

When giving a startup a go, you certainly have to have that optimistic dedication and drive to succeed as Kevin Costner demonstrated in "Field of Dreams." But rather than going whole hog right out of the gate, leveling his entire farm, and hoping for the best, Mr. Costner likely should have only hashed out a pitchers mound, picked up a few bats, and laid down some old shirts as bases. Then he could see if a any corn stalks began to rustle at night, or if that voice in his head starts to whisper further instructions ("now add bench seating, we want bench seating" || "no, I meant build a basketball court, dummy!").

Saturday, January 30, 2010

Don't Be A Fatty (Rails Controller)

WYMC
(why you might care is my effort to help you make your decision to read this posting more efficient. WYMC is a quick summary and the high level questions I pose so you can determine if you'd like to read the whole article or not)
---
During a project's build, I decided to use the ApplicationController / session store to implement a high level, expandable filtering system. Design decision allowed quick development, but fattened up the ApplicationController and feels more like "The PHP Way" rather than "The Rails Way". Critiques of the currently implemented system and viable alternatives requested.

As some of you know, I accidentally bid on a consulting project a month or so ago and was awarded the mandate. Oops. One of the major requirements for this application was a filtering system that was user specific and semi-persistent (filters needed to hang around while the user was logged in, despite jumping around to different views). The filtering system needed to be easily added to a model / view as per the client's request and adding / removing which criteria were "filterable" needed to be immensely flexible (as it was not set in stone what dimensions we would want to filter upon for any of the given models). The number of total users using this application at any one time would be very low. Oh yeah, and all this needed to be built super fast.

With an eye on speed of initial development and ease to quickly and seamlessly expand / extend down the line I set off down the coding road. I ended up with the following work flow for the filtering system. I look to you, internet, for feedback.

I leveraged the ApplicationController and a before_filter to scan for any new filters being added or removed via the params hash on each page load (ApplicationController#handle_filters). This method either adds or removes a specified filter to or from the session hash, for example:

session["#{controller_name.downcase.singularize}_filters"].push( params[:filter_to_add] )

I thought about associating the filters with the currently logged in User, but this seemed a bit overkill, especially given my time constraint. The session, while somewhat bush league, seemed like a good fit.

Next I created a shared/filter_controls partial that can be dropped into any model's view, which renders a standard filter control with a pre-populated list of acceptable filters for the current controller / model.

Now filters can be added / removed from the session and a nice UI component is readily available. How do they actually trim down the items returned? To make a model "filterable" I added a #find_all_matching method and pass it the model-specific session key (Dinosaur.find_all_matching(session[:dinosaur_filters]). This method finds all if the passed filter hash is blank, otherwise it processes the filters and sets up the appropriate set of conditions to apply to the query.

Positives: quick build; dead simple to add a filter; ApplicationController handles where to put the specified filter based upon the current controller; filters are semi-persistent; making a model "filterable" just requires adding a custom method to process any associated filters.

Negatives: Feels more like "The PHP Way" rather than "The Rails Way"; Fat ApplicationController:

Gross. Look at all that meat.

Given the current system, where are areas of improvement? Given more time to develop, what would be a superior set up?

Tuesday, January 26, 2010

Listen To Me (and PowerPoint), Damnit!


I used to hate PowerPoint. I previously worked at an investment bank in NYC and putting together presentations were a major responsibility for us analysts. It was a task I dreaded. How dry! How dull! What a waste of time! What's the point?!

Well, my opinion has since shifted. About a month and a half ago I was catching up with a friend of mine (no, not Bad Dinosaur) when he asked if he could run something by me. We discussed a problem his company was having and the current solutions they were considering. I thought about the options they had on the table and told him that none sounded like very solid solutions, especially for the attached price tags. I was then asked if I would be interested in building a custom solution, to which I responded "yes" - hooray, now I'm an independent contractor!

A month later, I sat at my desk composing a PowerPoint presentation detailing the work I'd done. I was spinning the tale of how the application solved their problem, how it worked and, more importantly, why my "client" should subscribe to (or outright buy) this software from me. I started thinking, I used to hate this stuff. PowerPoint Presentations suck. Why am I not having any of these thoughts ripping through my head right now? It hit me: tomorrow morning I will have a captive audience of decision makers (those that control the purse-strings) for 45 minutes to an hour! I get to sell them for a full hour! I get to hand them a document that details the value proposition of what I'm peddling and they have to listen to me! Why do I think this is a big deal?

At my other venture, CollegeJobConnect, it is a constant battle to get people to give you even just 5-10 seconds of their time. Whether it's trying to spark interest from a group of students, sell our concept to a company that is looking to hire or just "recruit better," or gain the ear of a potential investor / advisor, getting them to listen and care is a constant battle. The venture's other co-founder (#your link here, when you get a blog!) and I are constantly discussing marketing principles, customer conversation rates, A/B testing, funnels, and all that good stuff to help improve our "attention grabbing"-ness.

So what's the point to all this? There are a few. The first is pretty obvious, but harder to put into practice then you'd think. Whatever you are making, selling, or providing, make sure you have an audience to market to and make sure you can reach them effectively. An audience with existing demand is even better as you will be their potential savior and have to do less convincing of why they should a) hear what you have to say, b) use or do whatever you are asking them to do. Complete strangers are hard to acquire as customers and unveiling some web-service (or any new product) that fills everyone that lay eyes on it with joy and happiness and compels them to share it with their friends is damn near impossible.

I truly thought that once CollegeJobConnect's website was up and we emailed out to various on-campus newspapers about our venture there would be a tidal wave of support and interest solely based on our concept. Not so much. Again, getting people's attention is extremely difficult, especially when a) they don't know you, b) they have no perceived need for your product / service, or they don't understand it.

Secondly, Get Involved. Broadcast what you are working on, what you're interested in, and what your specialties are. Build stuff and learn by doing. The only reason I fell ass-backwards into this job was because my friend remembered that I was "working on some web-thing that helped kids find jobs or something" (this is unfortunately his understanding of CollegeJobConnect, and he's a close friend!). Put a lot of pokers in the fire, you never know which ones will get hot. Furthermore, do you think I would have learned RoR, Capistrano, HAML, etc. without this new project? I don't like to swear, but no f*ing way. So don't be shy, jump into the deep end. Your efforts will yield benefits in one way or another, I promise you that.

Finally, all work is cumulative, so treat it as such. Looking back, yeah, I didn't like PowerPoint Presentation composition, but I should have attacked it with a bit more drive. I'm now spending time learning things I should have already had under my belt. If what you are doing is not too fun or seems dull (but pays the bills right now), take a step back and think about how it is preparing you for future projects and how it is making you a more skilled and valuable individual. Hone your skills and take pride in your work.

All in all, I now look at creating a PowerPoint presentation as a reward for hard work. It is my time to shine and convince you to do what I'm pitching. And I'll probably get more than a few seconds to do so :)