Great People lead to great things
By sam | February 6, 2009
Editor’s note: this blog is another account of the LW 5 Post Mortem.
Some things That Went Right
The LimeWire client team has some amazing people on it. Every single person on the team cares about the quality of the product, code, and the other people. It’s easy to find someone who just cares about one of those three things — but it’s incredibly hard to build a team of people who care about all of them.
There’s no way that LimeWire 5 could exist without the work that every person on the team put forward. I think back to what each individual worked on, how hard they worked, and I can’t help but be bewildered at the incredibly ease with which LimeWire 5 came together. What follows are just small tidbits of what each person worked on, but they highlight how a distributed effort came together seamlessly.
David worked on rewriting the “search” logic so that a keyword search could apply to all metadata. That single piece of code enabled a simple single search box. Tim worked on integrating XMPP code. Once 5 took shape, the XMPP code became the fundamental basis for all friend features. Felix started using event listeners in a new way … suddenly the entire UI and much of the core became event-based and loosely coupled in a way that pushed development at a faster pace. I spent a weekend and wrote the frame & code framework for the new UI and another weekend giving it some rudimentary paint, shortly afterward progress on the UI skyrocketed. Peter tackled every odd & end you can imagine, getting drag & drop working, fixing file associations, adding system notifications, and much more. Matt was the first person actively start working on 5. He located and integrated the MozSwing browser, which is why LimeWire can integrate so nicely with webpages. Mario figured out how to do crazy tricks so that search results can be shown in a highly interactive list view. Dan worked tirelessly to reproduce bugs and QA our fixes. Mike E rewrote the way LimeWire handles file management, creating multiple “file lists” instead of a single “shared with gnutella” list, ultimately paving the way for sharing with friends. Michael R dove into the XMPP code and made sure it worked with arbitrary servers, letting us add an “Other” option that actually works. Michael T became our “master painter” and learned all about ways to make Swing look pretty. Mike S spent insane amounts of time writing UI specifications and gauging user feedback. Ernie spent his first week here writing the advanced panels, so people can still get the look and feel of the old LimeWire. Peng continued studying the DHT to see if there were ways to improve LimeWire’s use of it. Anthony designed mock screenshot after mock screenshot as templates for the developers. Jorge developed a ton of new icons to keep the look and feel fresh.
Every single person worked on things so disparate, all with a common purpose. We had a few things going for us: the code was designed so that UI developers could work against interfaces instead of directly against the core and for rapid development, we created a “mock core” and reused it during usability tests.
Still, the best code design in the world is nothing without great people. I’m proud of the team, and proud that we worked together and in an amazing display of cooperation.
LW 5 Needs Fixing tasks
10/16:

11/12:

12/29:


Comments and Trackbacks
No one has commented on this article yet.