Software Agility or Facebook, Did You Break My App Again?

Last Thursday night, Bacon heard from a top3Clicks user that our app was broken and provided some specifics repro cases. We checked them out, and sure enough the user was correct. Our app on Facebook was actually unusable, a true high priority situation.

Thanks to our easy roll-forward/roll-back deployment mechanisms, I was able to quickly run through the last 4 builds, diff all the JS (in the actual cloud and in SVN) and determine that *we* didn’t break anything.

So I started searching the FB dev forums.

A few minutes later, I found it: an FB deployment on Thursday contained a critical bug. The particular bug was disastrous for our app and many others as it broke any use of Javascript EventListeners. Other developers posted repro cases, eventually getting down to this simple case:

Just wanted to add that simply calling purgeEventListeners on an element is enough to notice that it doesn't work

A case this simple provides ample evidence that Facebook is doing a poor job of unit testing their changes. There are a number of ways to unit test Javascript in general, including JsUnit.

In this day and age, there is no excuse for not requiring developers to create/maintain an adequate level of unit tests. In fact, the absence of unit tests is a reason *to not ship*. The challenge of quick iterative cycles should not include a culture where having your end-users function as your QA is standard operating procedure. There is a wealth of information available on how to be nimble while producing high-quality output.

If anyone has links to FB presentations about Developer quality processes/metrics, please send them my way.

Update:
The fix is now broken again. Guess they rolled back the change. Sheesh

And You Thought Twitter Jumped the Shark When Oprah Signed Up

So many of us thought Twitter had truly jumped the shark a few weeks ago.

Was it the Ashton Kutcher race with CNN to get to a million followers? Or the very high profile Oprah sign-up/usage on national TV. Maybe it was all the follow-up stories about how 60% of new Twitter users quit after a month.

Perhaps.

Yesterday though, it became official. The other shark-jumping signs were just head fakes compared to this one: Steve Gillmor (of Attention Xml fame – yeah, remember that one?) posted on TechCrunch that RSS is dead (“Rest in Peace, RSS”). Who exactly killed RSS? Why Twitter of course.

Yes, those 140 characters of wonder have replaced any and all value that RSS brings. Steve argues that the real-time nature of Twitter is so superior that Fred Wilson’s latest Boxee post just smokes in Twitter but sucks in RSS.

Steve, get real.

Twitter is great. RSS ain’t dead. Long live RSS (and Atom :-))

Secondary Marketplace for Private Stock

Fred Wilson has an interesting post up on the soon-to-arrive market for selling non-public company stock. He’s written about this previously; overall it is a very interesting idea. Fred has some interesting data on the secondary market for Facebook stock (which is still private)

VCs need some type of exit to invest. Entrepreneurs need VCs for funding. No exits ends up meaning no ecosystem. Great quote:

Entrepreneurs won’t start companies and investors won’t invest in them if there is no path to liquidity on the company stock. A secondary market for private company stock can fill the gap that the lack of an I.P.O. market has created.

This does bring to the fore a number of issues around retention and keeping the early-in employees motivated (in my experience, the early-in employees are highly motivated people that are “smart and gets things done”). It’ll be interesting to see how it all plays out.

How to Reduce Team Friction/Improve Team Dynamics

I was recently asked to produce a two-slide deck, discussing some easy ways to reduce team friction and encourage management-level collaboration.

My findings won’t knock your socks off.

Seriously though, I’m continually amazed how many teams I’ve encountered that don’t do what I’d consider "the basics" of managing team deliverables and expectations. They stumble along, can't understand why each project is so stressful, are shocked at team attrition levels and seem to think "last minute heroics" are a good thing (instead of realizing that many times this is just an indicator of poor planning).

My slides were as follows:

Part One: Project Management

• What/Why – state the goals/objectives of the project

• Who – list out the specific tasks and resources for each task

• How – produce peer-reviewed specifications

• When – create/maintain/publish delivery schedules. Hold individuals accountable.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Part Two - Collaboration

• Hold a weekly meeting consisting of the leadership team (varies by project/team). Each person should discuss current projects, status, set expectations

• Produce a weekly project status to the entire team. Stress accountability

• Ensure product, design and test specifications are peer-reviewed.

• Broadcast any changes to the plan

If you're team isn't doing the above, give it a shot. You'll be amazed at the improvement in team dynamics.

Gear 6 – Memcached Appliance

GigaOm has an interesting post up today about Gear 6, a company that is now selling an optimized memcached appliance.

Great quote about distributed caching to finish off the article:

Clearly the folks running large web infrastructures understand the importance of memcached, but whether the general web population will stop overlooking the data caching layer remains to be seen

The Death of Print, Part IX

I’ve read a zillion stories about the death of print, specifically newspapers, over the last year or so.

My local paper, the San Jose Mercury News, has gotten so small that on Monday’s I’m afraid a gust of wind will blow the paper down the street.

Today comes the latest strategy to “save” print, courtesy of the Associated Press. The A.P. has decided to sue “web aggregators” like Google who use their content without their permission.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

First, this amazing quote:

In a speech at The A.P.’s annual meeting in San Diego, William Dean Singleton, chairman of the group, said, “We can no longer stand by and watch others walk off with our work under misguided legal theories.”

which is odd given the actual implementation by Google:

Google News shows headlines and a sentence or two of an article, but to read the entire piece, the user has to click through to the news organization’s own site. The company has argued that that limited use is allowed without permission.

I’m not lawyer, but sounds pretty legal to me.

The kicker is this money quote:

In a statement, The A.P. said it would develop a system to track news articles online and determine whether they were being used legally.

So, instead of spending R&D money on creating products that will drive users, they are going to create systems that provide defensive mechanisms? We’ve seen this movie before (starring the RIAA) – this must be the sequel.

Bet it has the same ending.

Boxee/Hulu Battle

I’ve seen a number of articles in the last week or so, detailing the game that Boxee is playing with Hulu (Hulu keeps blocking Boxee, Boxee makes a change to get around this blockade, rinse, repeat).

I don’t know the Boxee architecture in any depth, but it seems like the answer is to simply set the User-Agent to appear as if it is MSIE, etc and then have the client (i.e. end-user) fetch the actual video. Hulu then immediately has no way to identify who is a user coming to their site via a browser vs a Boxee user.

Or it is more complicated than that?

 

 

 

 

 

 

Also, Fred Wilson tweeted the link for the Windows Alpha of Boxee the other day. You can get it here (requires sign-up)

Sharing Videos on top3Clicks

Bacon has a post up about the latest top3Clicks release – video sharing.

Users have been able to create channels for their favorites (The Clash channel has been a particular favorite of mine. More of users seem to have American Idol for some reason…) and were able to share a channel with a friend. Now top3Clickers can go one further and recommend a specific video to a friend.

There were a number of challenges getting the sharing/video functionality working properly. A heavy combination of FBJS, FBML and elbow grease were *almost* enough to get it working. We did hit one roadblock with the fb:swf tag not working in a certain use case. Jerry Cain of Facebook was extremely diligent in tracking down and fixing this issue (he is now an official member of the BaconMarathon Hall of Fame). Thanks Jerry!

Check it out and let us know what you think.

Facebook Copies Another Feature from Friendfeed

Mark Zuckerberg has a new post up detailing a host of new features that Facebook is rolling out.

One that caught my eye were the changes to the news feed – specifically, the news feed will show updates in real-time:

We're also going to make some changes to the home page. The new home page will let you see everything that's shared by your friends and connections as it happens.

Last month, Facebook copied the “Like” feature from Friendfeed. This month, they show news in real-time, which Friendfeed added last October. I guess sometimes “innovation” really means “watch what the competition is doing and emulate it”