Hacker News new | ask | show | jobs
by nchuhoai 4497 days ago
Pretty interesting that according to him, Airbnb didn't really have a functioning testing infrastructure only a year ago. So you really can hit a billion dollars in valuation without testing :)
4 comments

Google didn't really have a culture of testing until around 2005-2006. At that point they were public and had a $100B+ market cap. I'm sure there are other public companies out there who don't do automated testing at all.

The technical infrastructure and code quality of a company are secondary factors in its success. The biggest influence they have is in the ability to attract and retain brilliant engineers, because most brilliant engineers don't want to work in a place where they're just treading water with bugfixes (which is the situation you eventually get into without automated testing). But the mechanism is that brilliant engineers write features that your competitors can't match, not that testing itself will make you successful.

What does a brilliant engineer have to do with success? You don't need a brilliant engineer to have a successful company. Some companies do lean heavily on their engineering department, while others simply have better direction and leadership to execute with.

Google's success was largely focused around an engineering solution to a problem - giving people search results that are more relevant than before. But other companies like Uber aren't solving engineering problems, they're solving multi-dimensional problems without relying solely on brilliant engineers for success.

Uber attempts to reduce friction in locating, requesting, and being updated on their transportation, reducing cost, and improving the quality of the service - all of which are not engineering-bound problems. Sure, being updated on the location on a map is a significant feature, but overlaying gps coordinates on a map does not require engineering genius. What does take considerable effort, though, are the varying logistics going into managing the drivers, the payment systems, the regulations, the customer service, etc that are the heart of the business.

Their apps and mobile site (at least while i've been using it) have been unreliable or limited in terms of what would be the most useful capability for its users. It's not a stretch to say the technology involved in Uber has been weak compared to the great lengths they've gone in managing real-world resources to get their product to market. I'll take 5 regular engineers and 1 really good leader over 5 brilliant engineers any day.

I think the advantage of having really good engineers is that you can then go after adjacent markets that take some technical prowess to serve, and you can defend your core market quickly against upstarts who take what you've learned but don't have the curse of legacy code and users.

Google, Facebook, and DropBox all took the strategy of "hire the very top, and try to build a really strong engineering organization even though it doesn't look like you need it." For Google, it was obvious that it was a hard problem (or maybe not - why didn't Infoseek and Lycos do this?). But for Facebook and DropBox, the problem initially seemed like it was just a simple utility, but because they hired really good engineers they made it challenging and impressive. And empirically, their trajectories seem to have worked out better than, say, MySpace and YouSendIt, two competitors that had first-mover advantage on them but didn't make engineering hiring a priority.

Obviously this doesn't apply to all markets, but I do wonder if sharing-economy companies like Uber and Lyft will eventually be displaced by a company that does hire for technical ability.

Having both good leadership and good engineers is more likely to provide success than just good leadership. That said, having only good engineers without good leadership will lead to failure. But the companies you mention require different amounts of net engineering effort to achieve their respective goals.

Hiring the best engineers doesn't seem to be as big a factor for companies like Facebook, for example. Facebook found means to connect people in ways that kept them engaged with the site, which was more of a social programming [psychology] problem, which while still an interesting engineering project (from a web-design standpoint) is more of a question of designing features people want to use.

Google wanted to provide more relevant search results, and so engineering was a key component in solving a complex problem. DropBox was similar in that they were providing a way to reduce friction in a basic user experience: synchronizing file copies. But DropBox's solution is nearly all engineering, because the problem they're solving is almost entirely based on managing logical resources (which is something engineering is great at).

However, if you leverage technology poorly, your company will suffer. Myspace ended up developing quicker with less engineers in Coldfusion than Friendster's greater number of engineers using JSP. Years later, Facebook gained great success using php - but was it because they used php, or because the goals they were focused on were different, or their execution more deliberate?

Despite of what developers like to think, success is not linked to technical competence. Achieving the former allows you to address the latter.
This should be said on HN more often. No text editor, package manager, or library is going to make you a success.
I didn't know HN was about success.
You're right it's not, but we talk about it a lot.
This is one reason I'm moving back to the LAMP stack. It's ugly, boring, and cheap. Great for prototyping.
It's a major reason I still use something similar, although I've been using HHVM instead. Amazing for prototyping, and years of experience makes it easy to work with personally :)
I assume you mean HipHop Virtual Machine?
Yep, running side by side with PHP 5.5! I highly suggest trying it, it's an awesome implementation.
Or, more accurately, achieving the former allows you to hire 20 engineers to achieve the latter.
unless you are MtGox
A public service announcement: There’s still a lot of pretty good programmers who don’t write tests… and programmers who write tests are not necessarily any good - http://blog.choonkeat.com/weblog/2012/06/tdd-for-those-who-d...
or worse, you can only hit a billion dollars in valuation without testing.

(might be a true statement.)

I disagree with this pretty strongly. Somebody posed a similar question in the blog comments, and I think I did a decent job of answering it: http://nerds.airbnb.com/testing-at-airbnb/#comment-13289
you did. Thanks for answering! I'm definitely the one leading the (small) group of devs who test here. Your article was great motivation for our cause.