I work on several areas related to information visualization, linked data, computer vision and other stuff, so mainly front-end. I am not really happy with the fact that visualizations take lots of iterations and lots of time from first prototype to production ready code. So here is the question: what can I do to improve that?

Sometimes we do a prototype in few hours, add something, do another prototype, rewrite it to use jQuery instead of Prototype because it's a better fit and so on and so forth, but almost all visualizations go trough 15-20 iterations (sometimes taking up to few months of development time - the code will also go from the 300 lines of the initial prototype to 2000 or 3000 lines due to evolving requirements and iterations). Since I am working at multiple projects, from my point of view the fact that sometimes it can take months is not a problem, just that I am not really happy, as I could do 40 visualizations per year instead of 15 for example, if I would only be able to improve this process by reducing the number of iterations or by any other means.

  • Welcome to the site. Here's a +1 to get you going since you asked a really good question. Jun 28, 2012 at 12:20
  • 1
    I don't see where your case is different from general application programming - nothing specific to visualization. Good software takes lots of iterations and time. Read this article from Joel Spolsky about it: joelonsoftware.com/articles/fog0000000017.html
    – Doc Brown
    Jun 28, 2012 at 13:50
  • thanks for the link :) - here is the problem...before this job, as a normal programmer I had an output of let's say 100k lines per year or even more...as a visualization designer I have an output that is 6 times smaller (say 15-20k lines of code) because we keep rewriting same visualizations several times....
    – paxRoman
    Jun 28, 2012 at 18:06

1 Answer 1


Information is beautiful is a good site to keep reading. It has some truly amazing visualisation of data.

What is vital is to understand what the end users wants and how to display it in an informative way. Using such tools as R, you can mock up some graphs easily and fast to make sure that your users know what they are getting. Having a portfolio of visualisation does help as well as this can serve as a basis for your new project -- in the same way as the above link can.

Finally, start (really) simple and add complexity later on. This does mean you will have to refactor large chunk of your code.

From comment: How do you know at which iteration to stop, provided that your code does not have serious bugs?

  • The mercenary approach: when the money the client gave you runs out.
  • The academic approach: when you can write a paper about it.
  • The pragmatic approach: when all your other projects have trumped this one.
  • The perfectionist approach: My children's children's children will still be working on this.

For myself, it is when the visualisation tells me things I did not know or expect about my data. Once that is done, I either understand the data (thus write a paper) or the data is incomplete in some sense (new hypothesis time).

  • Thanks! I know the website. We do use R, D3, Three.js, jQuery and some other libraries. It's not the tools or the fact that we don't know the tricks of the trade (because we know and we learn fast if we don't), but rather the fact that going through so many iterations (say 20) is painful. You almost don't want to add anything at all after 20 or so iterations. So I guess I should add this: how do you know at which iteration to stop, provided that your code does not have serious bugs?
    – paxRoman
    Jun 28, 2012 at 12:45
  • I like the comment about approaches :) - I would like to read more about such stuff! This way maybe if I understand my client better I will have more clues about when to stop.
    – paxRoman
    Jun 28, 2012 at 18:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.