The Twitter guys have been getting a lot of flak over the past few months (and rightly so, in many cases) for the unreliability of their app. But I think they should get some props for opening up and talking about what’s going on over there. Granted, this newfound desire to engage in dialogue (or damage control) should have come a lot earlier, at least in my opinion, but at least they are doing it now. They’ve even managed to foil Mike Arrington’s attempt to start a late-weekend bitchmeme by asking some rather pointed questions of the company.
Although they kind of dance around the specifics a little in their responses, Jack Dorsey and Biz Stone of Twitter seem to more or less confirm many of Mike’s suspicions about their architecture — they admit, for example, that the company is restructuring the way that the system functions, and have brought in some big brains in order to do so:
“We are currently taking a new approach to the way Twitter functions technically with the help of a recently enhanced staff of amazing systems engineers formerly of Google, IBM, and other high-profile technology companies added to our core team.”
I’m not a database guy or a system analyst, but it seems pretty obvious that the structure Twitter has isn’t capable of keeping up with the company’s growth, and may not have been designed properly in the first place to support what has become a gigantic multi-user chat service. In one of the posts on the Twitter dev blog, the company effectively admitted as much. Is that former chief technologist Blaine Cook’s fault? Who knows. But it has to change, and quickly, or Twitter could wind up losing much of the momentum is has gained so far (Michael Krigsman has some good advice on how to proceed).
I was talking with a friend of mine (who is a systems and database expert) about Twitter on the weekend, and he made the point that while startups shouldn’t try to forecast all the ways in which people might use their service — a point that Daniel Burka of Digg made during his recent design presentation at meshU — they still need to pick the right architecture early, or they will be in for a world of pain. In other words, remaining flexible is a good way to approach user-interface design, but not necessarily a good way to approach the design of the actual system structure that makes your service work.