Ben Sandofsky is a mobile engineer on Twitter. He has published a four-minute video called Twitter Code Swarm that is really quite intriguing. It took a few viewings of this video before I started to appreciate what’s going on, so let me share.
Straight off, with everything that’s going on and all the detail, you have to view it full screen. And turn on the sound, he’s selected a lively and dramatic score, Undercurrent, by cellist Jami Sieber from her 1994 release Lush Mechanique.
As explained in the introduction and the information posted on Vimeo, the video chronicles development of key Twitter codelines from 4/2006 to 1/2010: the main Ruby application, Flock, the streaming API, and a mobile site.
The round disc icons represent developers and the particles represent source files being created or changed. When another developer changes a file, the particle zooms from the previous committer to an orbit around the new developer’s icon. I am guessing that the size of the particle is related to the size of the file or the size of the changeset that was committed. It seems that come time after the commit, if there is no further commit the particle fades out, but my reading of that might be off.
In the upper left corner is a legend which explains, for instance, that HTML/CSS is blue, tests are green, Ruby is red (nice choice there), Scala is yellow, and so on. In the picture above, the developer slightly higher than the center of the frame is working a lot with tests at that moment. Often the Ruby files don’t seem to get all of the way to their intended target before they change course, headed for another developer; at times the swarm seem constant. Once in a while there is a Ruby file that seems to just oscillate in the space between developers for a period of time, suggesting a lot of collaboration or a particular resource that has a high degree of contention.
The date ticks off in the lower right corner, and in the lower left corner is a rolling timeline of the volume of commits of different types of files. Periods of frenetic particle movement have a corresponding high volume of commits. Notice the big drop off in all activity in December 2007 through January 2008. Perhaps that was a time for retrospection or maybe a well-deserved holiday. Then the pace really picks up and goes through some rather distinct phase shifts. After one or two viewings, you may find it interesting to read some of Twitter’s history on Wikipedia and look for connections with the development.
Thanks for this visual feast, Ben. What can they tell various stakeholders about development of applications? And how do we make our own code swarm videos?