9 ms·
Google Wave and the mythical man month
- Hitchhiker 15y agoGreat post. Reminded me of the following for some curious reason : " If the land mechanism as a whole is good, then every part is good, whether we understand it or not. If the biota, in the course of aeons, has built something we like but do not understand, then who but a fool would discard seemingly useless parts? To keep every cog and wheel is the first precaution of intelligent tinkering. " - Aldo Leopold
- deleted 15y ago[deleted]
- robfig 15y ago"Now, I don't mean to imply that Wave did not have some very smart engineers working on the UI, we certainly did. But talent is different from experience. The latter is a guard against 3.5MB of compressed, minified, inlined Javascript. Against 6 minute compiles to see CSS changes in browser. Against giving up on IE support (at the time, over 60% of browser market share) because it was simply too difficult. Against Safari running out of memory as soon as Wave was opened on an iPad." I wonder how much of the failure was this sort of thing vs just having a product that people didn't understand. (I definitely agree that if the UI had been simple and snappy it would have been better) On the bright side, I feel pretty confident that some real startup will take the open sourced Wave technology and do something good...
- bigiain 15y ago"The latter is a guard against 3.5MB of compressed, minified, inlined Javascript. " So _that's_ where the Dart team came from?
- josephg 15y ago> On the bright side, I feel pretty confident that some real startup will take the open sourced Wave technology and do something good... I don't share your confidence. Making even trivial changes to the 350k lines of opensourced java takes a lot of time and a lot of skill. There are only ~5 part time developers working on it. I doubt that it will be useful anytime soon. [Disclaimer: Some of that code is mine]
- bane 15y agoSounds like it would almost be easier to start from scratch with the protocol spec and build something lighter weight and not Java. Then in the client only expose a subset of features until they are really good, then another, then another. Keeping the client codebase small as well.
- josephg 15y agoI agree, although if I had the chance I would change the protocol spec too. The client-server protocol uses protobufs encoded over JSON, and the federation protocol uses protobufs encoded over XML, via an XMPP extension. As others have said, there weren't accepted standards for this stuff just a few years ago. Today, you could build whip something together reasonably easily using JSON and socket.io or something.
- acak 15y agoThe 20% time policy that Google allows for one's own projects has probably served as a nice way to experience those "small wins" he is referring too (though the win may not be in the main line of work). I wish I had a similar policy at the place I work - I feel I could have avoided a burnout phase. I'd be curious to know if Google revokes that policy for focus teams like the ones that worked on Wave and Google+.
- mathattack 15y agoGreat post but I don't follow the connection to the Mythical Man Month which is about having the wisdom to avoid tossing bodies at a late project. The article seems to be more about making sure you have experience on the GUI. All this said, i shouldn't complain about the title - rather i should just be happy the author shared hills lessons.
- shaggyfrog 15y agoI don't see the connection, either. Nor to how having small wins is like deus ex machina.
- Volpe 15y agoMaybe it's in reference to the fact this "startup in a startup" scaled people to a point of disfunction, which is kind of what Mythical Man Month is getting at as well. But you are right, it isn't really the primary point he is making.
- rdouble 15y agoOne of the deeper messages of the Mythical Man Month is that large teams in software don't work. The author of the post mentions that he should have known the project was doomed when the hiring manager didn't think 26 employees on a "startup" project was too many.
- frossie 15y agoYeah. According to the Mythical Man Month (or was it Peopleware?), when someone gives you 100 software engineers to do a project, what are you supposed to do? Set up 10 teams of 10 people, don't tell them about each other and make them all do the same project. The argument is that you are going to be better off doing that and picking the best one at the end, than you are running the project with 100 engineers in the first place. The OP reads totally true to me.
- snth 15y agoI don't remember that from the Mythical Man Month.
- yuhong 15y agoI wonder if Google Wave inspired creation of Chrome Frame, and if IE9 would had enough HTML5 features to support Google Wave.
- josephg 15y ago<ex-wave team engineer> Early versions of wave ran on IE7. The problem wasn't HTML feature support, it was a lack of engineering time. In the leadup to the IO announcement, the client team dropped IE support in order to get wave ready for the demo. Dropping IE support was supposed to be temporary, but everybody was too busy to fix it. "Just tell people to install Chrome frame" was the regular excuse. It was being worked on when wave was finally cancelled.
- heat_miser 15y agoFantastically generous post. I wish more engineers were as publicly honest about their own, and their team's failures so that other engineers and engineering teams can learn from the experience.
- hello_moto 15y ago.. will happen only if the society appreciate and give a bit reward to such situation... These days we have plenty business bullies that sing the song "Win big or go home in shame" or "Second place is the first place loser"...
- jamieb 15y agoUI is hard hear hear. ui is harder than back-end stuff in my opinion.
- hello_moto 15y agoWhy do you think many companies/organizations are giving UI work to interns or fresh grads? UI is hard UI sometime is "boring/tedious" work UI sometime is "just that, if it breaks, so what..." Meanwhile back-end stuff usually gets the hype: BigTable, MapReduce, billions load! Yet at the end of the day... if the user finds it hard...
- mechanical_fish 15y agoWhy do you think many companies/organizations are giving UI work to interns or fresh grads? There are many difficulties with UI, but the most relevant one here is that UI is a bike shed. Everyone's a critic. If you work in a big company you'll learn to dread the UI projects because you're going to have to sit in a room with fifteen people, at least fourteen of whom will dislike something about your approach and all of whom will offer suggestions. There will be 23 revisions and lots of compromises and turf battles and possibly blood, and usually the result will be the legendary horse that was designed by committee. This is why the author's primary complaint is the team was too big, not we didn't have the best UI people. Without mindful management the big team will squash your UI people no matter how good they are. Esoteric technical problems don't suffer from as much bikeshedding. Just as in the original parable of the bike shed, nobody wants to suggest changes to the nuclear reactor shielding. If you're the expert on reactor shielding you can basically run your part of the show. So the author's argument is: build a giant team that is prone to endless meetings, and you will select for traits that help people avoid endless meetings. People will retire into shells. They become narrow technical experts whom nobody wants to gainsay. They will focus on problems that your company already understands well, to take advantage of the cultural consensus which precludes endless argument. And only the young and naive will step forward to do something like UI, where every move is weighted down by bureaucracy and politics.
- 15y ago
- cletus 15y agoIt's an interesting post and raises several cogent points but it misses the biggest problem with Wave: it was a solution in search of a problem. I say this simply as someone who was, at the time, outside looking in. I know little more than that but it had all the hallmarks of what happens when engineers are running the asylum. Here's this communication medium in which basically all other communication media can be implemented (Email, IM, forum posts, Twitter, etc). It's the kind of general solution that engineers come up with it. I read a post from someone else (can't find it now but I think it was on Quora) who was familiar with the matter and they were saying the risk-reward thing (which this poster mentions in passing) was all messed up. Basically the incentive structure rewarded mediocrity. I can't speak with any knowledge of those matters but I can believe it. After all, in a startup what happens if the startup fails? You find a new job. There is a strong incentive to make your runway last and get to your next funding round (or, Heaven forbid, profitability). Inside somewhere as cashed up as Google, those incentives (IMHO) disappear. If the "startup" fails, what happens? You just move to another part of Google. What do you think the odds were that with Wave going away, any extra Wave incentives became worthless (as would happen in a startup)? Basically zero (IMHO).
- bigiain 15y agohttp://www.quora.com/Google-Wave/Why-did-Google-feel-that-Google-Wave-was-a-good-product http://www.quora.com/Google-Wave/Why-did-Google-feel-that-Go... "Part of the deal initially was that Wave would be compensated much like a startup, base salaries were supposed to be low but with heavy performance linked bonuses which would have made the Wave team rich upon Wave's success. During the course of negotiations and building the Wave product, the "heavily reward for success" part of the equation remained but the "punish upon failure" got gradually watered down into irrelevance, making the entire project a win-win bigger proposition."
- moonlighter 15y agoI totally agree. Running a 'startup' in a company like Google compared to a REAL startup is like having your own room in your parents home versus sleeping in a tent under the Brooklyn bridge. One has serious ramifications, the other is a walk in the park: Putting your life on the line or not.
- nostrademons 15y agoI really wish Larry would read this, and the Mythical Man Month in general.
- dilap 15y agoYou need the same mix of experienced talent working in the UI as you do with traditional "serious" stuff. This is where Apple is simply ahead of everyone else. Not only does Apple not shunt n00bs at the UI, it actively hires extremely brilliant people to do UI invention/R&D. E.g., consider the CV of the (obviously brilliant, IMO) "Up and Down the Ladders of Abstraction" guy, Bret Victor (1). That's about two lightyears removed from "UI is boring and easy; make the junior programmers work on it while we do the algorithmically hard stuff on the backend." (As an aside, Holy Shit is BV impressive and refreshing -- incredible tech chops combined with awesome aesthetic/design sensibilities, all wrapped up in a humanistic focus on usability...just, damn.) (1) http://news.ycombinator.com/item?id=3099595 http://news.ycombinator.com/item?id=3099595, http://worrydream.com/#!/cv/bret_victor_resume.pdf http://worrydream.com/#!/cv/bret_victor_resume.pdf, and http://worrydream.com/Bio/ http://worrydream.com/Bio/
- sceptre 15y agoImpressive.... but damn, why do i feel like a junkie
- brok3nmachine 15y agoI really appreciate this post. I'm going through a very similar experience myself. Was at a startup, which was recently acquired by a larger corporation. Since I've previously worked at both small(and fast growing) and large companies in the past, I thought I possibly had the experience to make the new larger team I would be working with more "agile". But taking months to do what I normally accomplish in a week or two definitely is hurting personal morale. I'll try to achieve some daily small wins though=)
- johnfn 15y ago> And this is the essential broader point--as a programmer you must have a series of wins, every single day. It is the Deus Ex Machina of hacker success. It is what makes you eager for the next feature, and the next after that. I liked the whole article, but this paragraph really stood out to me. It's something I've never thought to put into words, but is so true. Going for days and weeks and not seeing any success in what you're doing is horribly demoralizing. It's happened to me only once, and that was enough to reconsider my appreciation of programming entirely. It's because the real appeal of programming is, like he said, the incremental gains, the constant moving forward, the iterative process. It's why small side projects are so much fun, because there's nothing getting in the way of your next small accomplishment. It's what draws people (like myself) to programming in the first place. And in its lack, it's the slow killer of large projects. Thanks for the article.
- patrickk 15y agoIt stood out for me also. Right now I'm going through a period devoid of 'wins'. Amazing what the lack of (small, visible) progress can do to one's morale and confidence in one's programming ability.
- SkyMarshal 15y agoWhile true, I suspect the reason is that it creates that dopamine release we all find so pleasing and addictive. It's why people also do drugs, have sex, play MMO's, etc. Our built-in carrot. >And in its lack, it's the slow killer of large projects. It's interesting that one reason for large project failure may be failure to stimulate dopamine release in its programmers.
- vegai 15y agoOne of the lessons: Do not use Java for production applications.
- wmf 15y agoDo not use Java for production applications if you don't know how to use Java.
- rryan 15y agoYou're implying that Wave engineers don't know how to use Java. But Wave engineers are Google engineers. Google engineers are hired somewhere in a high 90th percentile of programming ability and experience. You've proven the GP's point -- don't use Java because the only people who know how to "use it" are 1% of programming experts that you probably don't have working for you.
- maximusprime 15y agoOnly in the bubble of language fashion that is Hacker News, could the failure of Google Wave be attributed to their language choice. Billions of successful projects run on Java.
- vegai 15y ago>Billions of successful projects run on Java. I will give you billion dollars if you can prove that. My personal guess (using my personal metrics) is that there are 10^3 to 10^4 successful Java projects and 10^9 failed ones.
- maximusprime 15y agoIn any event, the failed ones don't mean anything useful. Successful ones mean "You can succeed using this". The failed ones mean "This failed, could have been for a ton of reasons".
- catch23 15y ago
- gunz_rozez 15y agoLike most acquisitions a great concept gets stuck in neutral....not sure why....wave fundamentally is a fantastic idea....but a complex problem to solve....the fact that no one else has solved what wave attempted to solve is in itself a testament....but having said that I don't think it was an issue of programmers coming up with a problem and then trying to solve it....I think virtual communication as we know it is still pretty bad....and this post gives you a good insight into how complex problems cannot be solved by adding more people to the team....that just adds more complexity to an already complex problem.
- xbryanx 15y agoPlease stop trying to reinvent the browser scrollbar on your blog. Can't page down with this junk.
- rachelbythebay 15y agoWorse than that, there's no content if you have Javascript off. Talk about tedious!
- spydum 15y agoAt some point, people are going to have to admit the web is not as interactive without javascript, and will need to stop complaining when they choose to disable it. Those people are welcome to revive gopher if that is what they are after.
- rachelbythebay 15y agoI was there when "Walkabout" started being bandied about. It irked me to no end that I could jump through all of the hoops and finally get behind the NDA curtain by being hired and then be told "nope, you can't hear about that". That was a severe jolt to the internal culture of the whole company. There had been other projects which had been kept under wraps successfully. Chrome and V8 were demoed in Seville long before anyone on the outside heard about it. They said keep it quiet, and we did. Google TV had been knowable for ages before it went anywhere externally. There was no reason to think someone would leak Wave. Instead, they started playing the "we're special and you are not" card, and that started a sense of resentment growing. Not even the infrastructure teams which were going to provide services to them were let in on what was really going to happen in there. Then after far too long, demo day of Wave arrived. I only stayed long enough to see them hit backspace and have it echo out to everyone else who was connected. I remember my exact comment at the time: "packets". As in, lots and lots and lots of packets flying around to generate RPCs for all of those deltas. Then those turn into XML or whatever going out to web browser clients, and ... yeah. SO many packets. That right there worried me greatly. So then I see this thing about it not scaling properly and choking JVMs and suddenly it all makes sense. Oh well. All of the secret code depots and restricted access areas must have been practice for what is now happening with Plus. Entire floors of buildings you can't open as a full-time employee? Yep. More code depots being locked down? Yep.
- hyperrail 15y ago> All of the secret code depots DepotS ? So I assume Google finally gave up on making their one Perforce server scale, then? (Unless Google is crazy enough to actually do multiple depots on a single p4d instance...)
- rachelbythebay 15y agoJust like I used to tell candidates when they asked if we used Solaris, or Windows, or whatever you can think of: if you can think of a technology, the place is big enough to where there's probably an install of it somewhere. Along those lines, I doubt there's one of anything in there any more. It's just too big.
- johnx123-up 15y agoAt the end we were close to 60 engineers I guess, this is the reason for the failure. Probably 2-7 would be ideal for this kind of experimental projects.
- bane 15y agoStart small, grow organically, don't use Java.
- schiptsov 15y agoThe Java VMs could not handle the load, they were running out of memory, crashing or spending more time paused for garbage collection than serving. Priceless.
- perfunctory 15y ago> I don't regret a single moment of being associated with it This is a human nature. It's very hard to admit you just waisted your time.
- j_baker 15y agoWith apologies to jwz: Some people, when confronted with a problem, think "I know, I'll hire more engineers." Now they have two problems.