Agustín Ramos

Director of Academy at Bunsan

I’m a professional software developer with 20+ years of experience in different roles. Nominally I have worked as a programmer, technical leader, architect and coach in the development of strategic services, product lines and product families for world wide organizations, mainly in the entertainment, healthcare and national security domains. I’m a frequent speaker at local conferences and developer groups, advocating and showcasing topics as varied as effective modularization techniques, software craftsmanship, software archaeology, functional programming, intelligent and automated testing, product line development and designing for system’s scalability.

Exploring Elixir Codebases with Archeometer

Audience: Intermediate

Legacy code is a liability, or so they say. Nevertheless legacy code is at least a part of most software projects. If you work on a system with legacy code, you better have a nice map that clearly marks where the dragons roam. On the other hand, as software developers, most of us switch between projects every once in a while and many times we arrive at humongous codebases. How to deal effectively and efficiently with so much code? The usual mantra is “read the code!”, but it’s not easy at all to quickly understand tens (or even hundreds) of thousands of lines of code.

What if we could obtain metadata that describes a software system from another perspective instead of just raw code? And better yet, what if this data was queryable? This is the goal of Archeometer: to gather different kinds of useful information about the system and make it available for your exploration.

Think of Archeometer as a device you can use to get an understanding of the overall design and quality of an Elixir based system, a lab in which you can interactively tune parameters and adjust zoom levels to get a pretty good grasp of a perhaps huge and not so pretty code base, an oracle for answering questions like: which are the core modules of the system? which are the parts of the system most difficult to understand? which are the ones I must be most careful dealing with? which parts are nice, safe and green?+K3