Did you ever ask yourself a question that was so interesting that finding the answer sort of turned into a mini-obsession?
For me, that question was “What does software look like?”
Not what can it look like, because obviously software has no predetermined visual form, but what would it look like if it had a natural, organic, 3D structure? A structure that was the same regardless of scale, from a simple Hello World to a multi-million line production system?
And what could we learn from such visualizations?
Drawing on data science as well as more traditional software analysis techniques, I began to explore this interesting visual world. The initial intent was to simply find ways of looking at software systems where anomalies would be easily spotted, as easily as you might notice a broken branch on a tree in a forest.
Slowly, connections between software visualization, software archaeology, latent semantic analysis, software refactoring, and domain-driven design began to form… along with some hints at Much Larger Problems, and study of Deep Learning.
This research is ongoing.
- The first talk was “Deep Learning for Software Development”, given at DeveloperWeek 2017 in San Francisco, CA. Siddhartha Agarwal tweeted the scary bits, and George Lawton posted an article on the talk at How deep learning and AI techniques accelerate domain-driven design after chatting over lunch.
- A more in-depth talk on this topic was given at SATURN 2017 in Denver, CO. Watch Deep Learning for Software Development on YouTube