Lee Semel

Archive for the 'Internet & Tech Industry' Category

Q&A Startups and The Value of Governance

TechCrunch covers another online question & answer startup, Tinbag, which follows in the footsteps of many others that have failed to tackle this market, including Google.

In my experience, the best community for getting anything answered online is Ask Metafilter. Since it started around 1999, it has grown organically but not explosively, and now has several hundred new questions a day. It’s loaded with interesting questions and intelligent, thoughtful responses. The membership skews toward, smart, hip, tech-savvy people. This is the place where Adam Savage of Mythbusters asks fans for show ideas. But the questions cover all areas. Unlike recent Q&A startups, AskMeFi doesn’t charge you per post, and you can’t make any money by answering questions. Membership is $5, and like buying a gun, requires a one-week waiting period. The fee alone prevents a lot of spam and abuse, but it’s also due to the high degree of trust as well as community input through the MetaTalk forum.

AskMeFi is a great example of the value of governance that Fred Wilson talks about as being next on the value stack for technology businesses. Any startup could take this site and clone it, but it wouldn’t be the same. It’s the community and the governance, not the technology, that account for its success.

Startups & Offshore Outsourcing

Should you outsource your development offshore? This is a question I get asked often both by entrepreneurs and consulting clients. Serial entrepreneur Darren Herman has an excellent post today on when to use internal and offshore development teams, and I’d like to add my own perspective. I’ve had great success outsourcing for projects large and small, but the success really depends on the specifics of the project, your ability to oversee it, and the quality of the offshore outsourcing firm. Ask yourself these questions before outsourcing a project:

Can this project be completely specified in a detailed design document? You need to prepare detailed use cases, wireframes, designs, and software specifications that the offshore firm can follow. Don’t outsource projects unless you know precisely what you want, upfront, down to the last detail. If your project is not the type that can be completely specified in writing, it’s not a good candidate for offshore outsourcing.

Do you have the knowledge to oversee software development? I’ve seen too many non-technical people try to outsource a project on their own, only to get useless, buggy garbage back because they don’t know how to evaluate the work provided. Make sure you have the expertise to review and test the work, or have a local CTO or technically-savvy project manager who can oversee the project on your behalf. If you’re a business guy and you can’t tell which offshore programmers are good, find a technical person to help you.

Is technology the key value driver of this project? Or just an enabler? If the technology or user experience is part of the core value that your project delivers, develop it locally. If the technology is just an enabler for some other business opportunity, it’s a good candidate for outsourcing.

If you’re in the software business itself, including all types of web-based software, technology is absolutely key to your product. You won’t see a 37signals or Fog Creek throwing a spec over to an offshore firm. Great software requires more than just implementation, it requires passion and craftsmanship. These can only come from a star programmer who’s fired up about your project.

You won’t get that when you outsource, because you’re basically hiring a body shop. You never really know who’ll be put on your project. Joel Spolsky makes many good points in his article Hitting the High Notes. Basically, he explains that the added quality a great programmer adds to your product greatly outweighs the added costs, because software (including web based software) can be distributed at next to zero marginal cost. It’s the same as hiring a star for a movie. Brad Pitt may cost millions of dollars, but he increases the movie’s appeal, and his cost is distributed over the millions of people who see the movie.

How often will the project change? If you’ll need to provide constant updates, whether to keep up with the competition in a startup environment, or to handle customer requests, develop locally. If your project doesn’t require constant iteration, and you can deal with longer development cycles, outsource it.

Are you innovating or merely implementing? To innovate quickly you need to iterate, experiment, and learn from your mistakes. Ideally you want the most talented software engineers, sitting in the same room with you, using an agile, iterative development process. You’ll also want them in touch with users, to get direct feedback that can influence product development. In these situations, local developers are a must.

What is the size and capabilities of the offshore firm? You can outsource to individual freelancers, small firms, or large consultancies. Will they provide comprehensive project management, or will you have to micromanage them? Do they have proven capabilities in the technologies and platforms you’re using, or are they just saying ‘yes’ to win your business? Does their pricing seem realistic, or is it unrealistically low?

Are there conflicting interests? Compared with passionate developers, a third party offshore consulting company will never be as committed or motivated to see your project succeed. They may have many other clients to satisfy, and billable hour quotas to fill. Any consulting firm makes money one of three ways: 1) by billing hourly, 2) by setting a fixed project price and executing the project for less than that price or 3) on change orders. If you’re on fixed price, there’s an incentive for them to do as little as possible to make the greatest profit, or to underbid and issue change order after change order once they have your business.

Make sure your interests are aligned by choosing the proper payment model. If your project is more open-ended, choose to pay hourly. If your project is extremely well defined, with a clear functional spec, user flows, wireframes and designs, choose fixed price. Don’t choose the lowest price. You won’t be doing yourself any favors by getting an unrealistically low bid. Go over your project with them to make sure they understand its true scope.

Once you answer these questions for yourself, the best way to find an offshore firm is to look on eLance, RentACoder.com, GetAFreelancer.com, or similar sites. Offer a small test project, such as coding a basic script, to a number of companies, and compare the quality of the results you get back, as well as the experience working with them. And if you decide not to go the offshore route, there are a number of niche job boards, such as 37signals, TechCrunch, or NextNY to help find the star that will help make your project rock.

What happened to “don’t be evil”?

A friend of mine, who shall remain nameless, was banned from advertising on Google. His egregious infraction consisted of accidentally linking his ad to a redirect, because he’d moved his site from one domain to another. In the meantime, Google’s been supporting websites that sell pirated movies, going so far as to assign them an account representative to suggest better keywords. These fraudsters spent more than $800,000 on Google ads. That’s a real double standard: banning the small guy for an honest mistake while actively supporting the big spender in their illicit activity. I expect better from Google.

Everything Old is Cool Again

There’s a lot of buzz about how the way we interact and socialize is changing thanks to innovations in social websites – virtual worlds, avatars, social networking. But it only seems like these ideas are new. Having been involved with computers since I was a kid, I’ve realized that there’s very little that’s actually new. Even some of the coolest trends of 2006, virtual worlds and avatars, are rehashes of things that have come before. The only difference now is that computers have more power and better connectivity, but more importantly, that the general public is much more receptive and open to the Internet as part of their social lives.

In 2006 there was a lot of buzz about Second Life. But in the 1980’s, Lucasfilm launched one of the first online multi-user games, called Habitat, which was part of QuantumLink (now known as AOL). It was a 2D world with blocky graphics, but had most of the elements of today’s virtual worlds. You got to create your own avatar, walk around the virtual landscape, and interact with the other members. I vaguely remember playing this as a kid on my Commodore 64, but my use was severely limited because it took about 5 minutes of loading time to even start the program, and at $6 an hour, my parents weren’t about to let me run up the bill.

Yesterday, I found out about a cool new site called Webkinz, where you can adopt a virtual stuffed animal, an on-screen representation of physical stuffed animals you buy in the store, and set up online via entering a code printed on its tag. Like Neopets and The Sims before it, this is the latest recreation of the Activision game Little Computer People. You’d adopt a virtual person, who would take up residence in a house on your computer screen. You’d be responsible for feeding him, and keeping him healthy and happy. Sound familiar?

This also shows how long it takes, and how difficult it can be, to get any kind of software really right. How many unsuccessful virtual worlds have been developed through the years before Second Life came along?

So if you’re looking for a new idea, try flipping through the pages of old computer magazines and see what’s been tried already. Maybe you can execute better. What was once confined to a small slice of computer-savvy kids is now commonplace and cool.

Mashups: Feature Not A Company?

Last night there was a NextNY discussion on the role of business development for Web 2.0 focusing on the opportunities for bringing in traffic and revenues through crawling, APIs, widgets, mashups, and the like. The conclusion was that, while you still need to schmooze and make deals, these new tools are a powerful way to get others to use your service.

Among the topics discussed were mashup sites, sites that combine these features in new and creative ways, and whether they could ever be standalone businesses. Right now, they’re mainly “FNAC — Feature Not a Company”. Things like the New York City Subway Smell Map. Cool, but not businesses.

But there’s something to be said for building a new product out of other people’s code. It’s done all the time: the applications you run on your Windows desktop are basically just ‘mashups’ of the Windows APIs. Why can’t we do the same thing on the Web? What would it take to allow you to put together parts of other companies’ businesses, to create something more than the sum of its parts? And what do you need to pay attention to now if you’re a startup using APIs as part of your business development strategy?

  • Reliability. When you call the sprintf function, you can be pretty sure it’s going to be there, ready and able to sprintf for you. It won’t be down for maintenance, hacked, or gone out of business. All of which can happen if you’re making an API call to another website.
  • Trust. Developers must have faith they won’t be kicked off or blocked from the API, as MySpace has done.
  • A not-free option. If you’re going to rely on a web service to run your business, you’ll want some kind of contract or subscription. Free services are fine for experimenting, but not when you’re using a service in a serious way. You’ll need some kind of service level guarantee and a real person you can call up when something goes wrong.
  • Predictable charges. Right now, you can buy an ActiveX control or PHP script and pretty much know how much it’ll cost. It’s usually a flat upfront chanrge. But charging for web services can be unpredictable. What happens once your site takes off, and the service provider figures out you’re making a lot of money? Up goes the subscription fee!
  • Predictable upgrades. If you’re mashing up another site’s API and they decide to upgrade, it could break your site. This isn’t as much of a problem with desktop operating systems, because upgrades are fewer and announced far ahead of time, and vendors usually take great pains not to break old applications. Not so with Web APIs. It’s best if the old versions of the API remain available for a while for sites that can’t adjust immediately.
  • Speed. HTTP is not fast. It takes a long time to make multiple HTTP API calls in the background.

If you’re creating a site with an API, you have control over some of these issues. Will you offer your users a Pro version of the API, predictable upgrades, a real person to talk to, and a guarantee that you won’t kick them off, or will you offer only a free API, make it impossible to talk to a real person, and kick off developers whenever you feel like it? , Companies like Microsoft need to treat developers well to get them to write for their platform. The same goes for companies create ecosystems around their Web APIs.

If you want to use APIs, mashups and widgets as part of your business development strategy, treat your developers well.

Does The Language Matter?

Thanks to this new Web 2.0 bubble, nearly ever week or so I get contacted by a startup or small company looking for someone like me to join up. I’m always happy to give them advice. Inevitably, one of their biggest worries is what programming language to use. “Should I use PHP, Python or Ruby?” they ask, as if their choice of programming platform is the sole factor that determines the ultimate outcome of their business.

Well, I’m going to give the definitive answer to the question, “Does the programming language matter?” Yes and No.

  • Yes, because some languages are much more productive than others. What could take days to program in a strongly-typed, compiled language like Java or C# could be done in an afternoon in Ruby or PHP. Don’t get me going about J2EE, which you shouldn’t be using unless you know exactly why you need it.
  • Yes, because different languages promote different work styles and cultures, and will make it easier or more difficult for you to work together and find additional programmers. As an example, PHP is designed with minimal restrictions, promotes a free-for-all programming style, and everyone in every country around the world seems to know it. Ruby, especially with Rails, has more structure and elegance, making it easier to write maintainable code, but it’s harder to find people.
  • Yes, because some languages make it easy to make quick updates in response to your customers, and some languages require a lot more work, planning, and ceremony to do anything new.
  • Yes, because some programming environments are still evolving while others are more mature, and you may want to use a less cutting-edge language just so you can worry less about the technology and spend more time on the business side. For example, Lisp can be extremely cool and productive, but getting it connected to a webserver and getting set up with wide array of libraries isn’t an easy, out-of-the-box process the way it is with C# or PHP, so you may end up spending a lot of time on low-level tech issues, rather than working on areas that matter more.
  • Yes, if it’s an enterprise product you plan to sell to businesses to install on their servers. In this case, code it in the language your target market’s iT departments require (usually Java or C#).
  • No, because there’s so much more to making your business a success than whipping up some code. You’ve got to have a good business model. You’ve got to find good people. You’ve got to do marketing, customer service, and create a well-designed product. The initial build of the site is going to be just a small percentage of all the things you need to do right.
  • No, because bad programmers can produce bad code in any language. There’s no silver bullet that prevents untalented or indifferent people from generating garbage.
  • No, because the system architecture matters more. If you design an overly complex architecture, or one that’s unwieldy, or slow, you’ll produce an unmaintainable, unwieldy, slow site. Look at Friendster as an example. The initial build of Friendster was done in Java, and was incredibly slow. Could Java have handled a site like Friendster? Sure. I don’t have first hand access to what was under the hood at Friendster, but I can’t imagine it was clean, elegant, or well-thought-out. The language that a system design is expressed in doesn’t make a difference if the overall design is poor.

Ultimately, none of your customers care what’s under the hood, as long as it works and does a good job for them. So choose what works best for your particular situation, and entrust it to the most talented and motivated people you can.

The NextNY Blog

Today marks the kickoff of the NextNY blog, dedicated to the technology industry in New York. This blog was started by a group of dedicated people I’m proud to be a part of, called NextNY, that’s dedicated to the technology and internet industry in New York. So much of the press seems to focus on what’s going on in Silicon Valley, when there are a lot of interesting things going on right here: new startups, interesting people, and emerging ideas. If you’re in the New York area, check it out, and if you have something to say, become a contributor. Like all aspects of NextNY, this is a group effort, and you can do something just by doing it.

Keeping Up With The Blogs

I can’t keep track of all the postings on all the blogs I read. There has to be a blog reader that will take all my feeds, and figure out which are the best posts, by scouring sites like Reddit, Digg or Technorati, or checking the number of comments or links to the item, or some other method, and show you what’s worth reading. This would be like having a personal Digg with just the feeds I want. If you know of anything like this, let me know!

Improving the Online Dating Experience

Researchers at Harvard Business School have figured out what most users of online dating know — it doesn’t work. Online dating turns what should be social experience between two people into an artificial experience that feels like online shopping. It is insane how many roadblocks the sites put in place before you can really interact as human beings. Finding someone online feels more like searching for a book on Amazon.com test than any known form of social interaction. Fill in some forms, do a search, get a list of “products” to browse, send a bunch of emails and spend hours in chat. After days or weeks of this activity, if you’re lucky you’ll eventually get to meet someone for coffee.

The Harvard researchers have designed a new system called “Virtual Dates”, where the standard chat interface is replaced by a richer client that [provides] ” pictures around which people can socially interact, as if the couple is going to a museum together and chatting about the art work.” and has “a cute interface for people to converse, gesture, and even ‘chase each other.’”

This sounds interesting, but it’s only one part of the picture. You’ll still have to go through the whole searching, marketing and emailing process before you can initiate the “virtual date”. There needs to be a better way, that’s inspired by how people initiate social interaction in real life.

It remains a challenge for researchers and entrepreneurs to come up with a better version of online dating.  Someone can make a lot of money if they solve this problem well.

New York City Tech Events

In order to help promote and grow the tech community in New York, I’ve launched NYCTechEvents.com, a super-simple calendar site for posting technology events in the city.