Software Evolution Storylines, Inspired By XKCD
jamie tips this mind-blowing data visualization concept from (naturally) data visualization researcher Michael Ogawa, who explains that it was inspired by "this XKCD comic. It represents characters as lines that converge in time as they share scenes. Could this technique be adapted for software developers who work on the same code?"
A data visualisation researcher hasn't seen this method of visualising data before xkcd? Really?
The obligatory XKCD comic.
Very often it is difficult to see at a glance whether a project is mature and stable or just dead. It would be interesting to see whether this type of visualisation can tell you at a glance how healthy the project is. If so it would be nice to have this view on sourceforge, etc.
Or Across projects. So you can see which developer / client / manager is the most destructive to projects. Or how projects are given to others (like the One Ring in the XKCD example) before ending up in /mnt/doom.
Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
We've got a CVS repository of about half a million lines of C++ code, running back at least 5 years. I'm almost afraid to run code_swarm on it.
The XCKD comic was a great example of visualization because after a brief time acclimatizing to the layout, I could immediately comprehend it and draw conclusions out of it. Doing the same with a software project would be interesting, but right now all I see is a bunch of tangled lines -- they don't mean anything to me.
Anyone who has worked on this project -- do they mean anything to you? Anyone else -- what do you see in these graphs?
I bet the Windows timeline looks like the one for Primer.
"Mature and stable" is just a euphemism for "dead". If your project REALLY has no bugs, and all its users are fully satisfied with the current feature-set, that just means you don't have any new users. It is far more likely that all your current users have long-since learned to live with bugs you don't feel like fixing, or have built ad-hoc work-arounds for bugs and missing features since your project is too "stable" (read: dead) to accept patches or proposals.
-- 'The' Lord and Master Bitman On High, Master Of All
Sure; we've tried every other fad that's come along, might as well try this one also.
Am I part of the core demographic for Swedish Fish?
Oh wait... :)
Thankfully, SoftVis 2010 (the ACM symposium where his paper is going to be presented) does not take into account reviews from anonymous cowards on slashdot.
Say what you want, these graphs look like some evil worms from below, kind of parasites that prey on the Deep Ones... Scary.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
...but XKCD pretty clearly was inspired by http://en.wikipedia.org/wiki/The_Wallchart_of_World_History (first version 1890).
It's a pretty cool visualization, illustrating in a very superficial way how each state mutates and evolves politically into its descendants.
-Styopa
I think the parent post was referring to this image: http://www.freeweb.hu/neuwanstein/primer_timeline.jpg. The original URL gives a 404, but I managed to locate the actual link by searching for the proper Blog article on that site for the date specified in the original URL.
That's simply false; some programs do something, do it well, and know where responsibility is best handed off to another program. When was the last time ls needed an update?
I am trolling
Even with SVG!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
Not the way I understand (or my organisation uses) swimlanes.
As is implied by the word swimlane, the diagram shows several horizontal 'lanes', these represent individual people or organisations. Then a flowchart is overlayed onto the swimlanes. Whenever an action is performed by a organisation, the flowchart box for that action is in their lane.
This shows for instance who is responsible for what in a process.
I believe that if, say, LOTR was to be shown as a swimlane. You could have the characters that come into contact with The Ring as lanes across the diagram. And a line moving from one lane to the next as the ring passes ownership but going from left to right as it stays in their grasp.
The diagrans in the article show, in many ways, the opposite. The lanes come together and separate over time showing who is in contact rather than who is doing what.
If this were really happening, what would you think?
Mature and Stable can mean that the new functionality is being add in a layer above ....
When you stop adding features to the core and abstract them away into another level then the core can stabilize
The reason most stable projects are dead is because new features are no longer added at all ....
Puteulanus fenestra mortis
Am I the only one who thinks this looks suspiciously like a git commit graph, as represented in gitk/qgit/etc.? Like, a really, really badly managed graph?
TFA says he'll open source it anyway, but this would be a great addition to the line up of code metrics at Ohloh.
Most of the time. I'd say you are right but there are exceptions. One example is Privoxy. It'a been nearly the same since the 3.0 release in 2002, but there's been constantly tiny little fixes so it's not abandoned and has had an average 175000 downloads/year not including Linux distros etc. so obviously many people find it useful.
So they're not taking over the world. But is there any point to try to be another jack-of-all-trades software? It does one thing and it does it well, or if you'd want to do it differently you probably need to do it in the browser. Either way there's really no reason to make it part of the same application, this one is "done".
Live today, because you never know what tomorrow brings
Bite your tongue. "Swimlanes" and "rice bowls" are probably the cause of half of the problems in my office. I understand that it's necessisary to break down an organization into subcomponents in order to make it managable (to avoid a Brooksian catastrophe), but we haven't implemented anything to allow people to easily change lanes (turn signals?). So the only time people come into your "swimlane" is when upper management has decreed it, which means that project is more favored than yours, which means you are going to get dicked over. If we made it easier for lane changes to happen, such that it happened enough that it became commonplace, people wouldn't be so dangerously backstabbing and paranoid.
http://xkcd.com/657/large/
*shrug* Had to try it.
I completely agree, but anyway, does somebody around here want to volunteer to support GNU truefalse? It simply didn't keep up with the users needs recently.
Rethinking email
Try to graph that one for me batman.
Timelines are a key part of Montessori at the elementary level. Had the researcher attended Montessori school, he would not have had to rely on xkcd :-) See photo of group of students working with a large timeline on Bergamo Academy's home page.
According to this there are 5 files that start with "ls".
Except for ls.c, all those files have only one entry on their history. The "initial revision" on 1993-06-16.
On the other hand, you can check the history of ls by yourself. Ignoring a "build" commit done on 2010-09-18 (and by the same guy who did the "initial revision" ones), the last commit is from 2010-07-01 with the message header of "ls: use the POSIX date style when the locale does not specify one".
While not extremely important, it does show that ls keeps receiving updates to this day.
Okay seriously I've just run out of pointless things to say.
Or qmail for that matter.
this is hilarious, awesome, not so untrue, just as cynic as I like it to be
thanks
ls is boring, they should add a feature "ls --im-feeling-lucky" to list a random directory to add some spice back into it.
Apparently, my comment looks too much like ascii art without this statement. It also needs fewer junk characters without this statement. No wonder nobody else drew you such a simple timeline. These characters are not junk, stupid filter! This is a new, exciting visualization method.
It's a chaotic mess. If a data visualization technique doesn't bring clarity to a subject, but instead just results in a Jackson Pollock jumble, what exactly is it?
Is it art? If this is its primary goal, I have no argument.
If it, however, is meant to clarify the history and relationships of principals involved with the creation and maintenance of a program's codebase, it's a complete failure. There is no clarity here, less so than even a simple table would provide.
prior art:
Charles Joseph Minard, a french civil servant drew a fantastic line/statistical diagram showing data from Napoleon's March to Russia on the 20th November 1869. This combines many data points and also shows the horrific losses sustained by Napoleon during the winter (and river crossings) and is actually far more complex than examples in TFA.
1. invent new idea ... ... (think about profit and all round cleverness) .... .....
2. write about it on interwebs
3.
4.
5.
6. errr?
7.
8. !profit
8a. because lots of slightly older nerds have seen it all before.
8b. and see you for the young whipper-snapper that you are, wee laddie.
I have to concur. They look very nice and all, but what question is anyone likely to ask that can be answered by looking at them.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Very often it is difficult to see at a glance whether a project is mature and stable or just dead. It would be interesting to see whether this type of visualisation can tell you at a glance how healthy the project is. If so it would be nice to have this view on sourceforge, etc.
Hmm... Would someone mind attempting to apply this view to Team Gizka's TSLRP for Knights of the Old Republic II?
I'd be curious to see how *that* turns out.
>> Standing on head makes smile of frown, but rest of face also upside down.
Just because the movie is out of order doesn't make the storyline graph particularly hard. In fact, after watching the movie once or twice you're already picturing the graph in your head.
Instead, try doing something like the "Back To The Future" series; characters meetings change based on the revision of history, characters loop back to see themselves, the same encounters happen with different generations of the same family.
Now you're thinking with portals.
Huh, thanks. Original link still works for me, but probably someone trying to break the internets with URL referral checks or something. .. Or just trying to break hotlinking ^_^
If only I could go back in time and make things right... there must be some movie about that or something...
I agree that it was well executed, but a few issues leapt out at me so fast that it kind of killed the humor of the thing. Saruman's path ends at Isengard. Ugh. Yes, I know the movie only vaguely resembled the books, but it still irks me every time I'm reminded of it.