How can we apply machine learning (and visualization) to aid software development - specifically, software developers? While there is some work in this field, until recently most of it has been devoted to metrics and estimates. Metrics are shadows of snowflakes, and thus not particularly informative when seeking to understand the purpose of a system or the behavior of a component. Improving estimation, while an interesting application and a laudable goal, likewise does not directly help developers create better software faster, nor manage the growing complexity of real-world systems. Can we apply ML in ways that help guide development, inform software archeology, and reduce effort for developers? If so, can these things help us take on the systems-of-systems-of-systems of the future, where million-line code bases will be considered "quaint"? After a brief survey of existing/past work in the area, we'll investigate the question of "what does software look like", examine the more interesting question of "what does good software look like", and use these insights to explore how we can enable developers to create and manage ever-larger software systems. No ML experience or math required. Lots of pretty pictures.