Tuesday, February 09, 2010

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.

imageStraight 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?

Tuesday, February 09, 2010 11:11:13 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Friday, October 02, 2009

The Birds-of-a-Feather (BOF) team for PDC09 has had a flurry of proposals for sessions on Agile methodologies. Too many for us to select them all. So we’re seeking your comments on what areas you’d like to discuss over on the PDC BOF blog.

Friday, October 02, 2009 9:18:28 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [3]  | 
 Saturday, June 07, 2008

imageMy friend Patrick Cauldwell will be talking on The Code Is The Easy Part on June 12, 2008 at 7 PM at OGI in Portland. His talk addresses of continuous integration in theory and practice. The talk is free and open to the public, please register at the above link.

The Code Is The Easy Part
Patrick Cauldwell
Sponsored by Rose City Software Process Improvement Network (SPIN)
OGI School of Science and Engineering, Wilson Clark Center
6:00 PM networking and pizza, 7:00 PM seminar

Patrick is also the recent author of Code Leader: Using People, Tools, and Processes to Build Successful Software on Wrox Press. To get a sense of where the book goes, read Patrick's post This I believe... the developer edition. Scott Hanselman wrote the forward to Code Leader and blogged some comments on the book.

Saturday, June 07, 2008 8:57:32 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |