

Ask HN: How do you wrap your head around large, existing projects? - blparker

I'm a new member on an existing team. While the project is a relatively new endeavor (~8 months or so), it has grown massively in scale. It is a large Java project and there are about a dozen active members submitting code changes. There are many moving parts and many layers of abstraction including programmatically creating jobs in Hadoop (using Apache libs and Pig), a built in DSL translator, wrapping native libraries with JNI, and many more. In all, the project workspace is comprised of 80 projects with many projects containing multiple packages. Unfortunately, documentation is lacking and/or out of date and the code is sparsely documented. To make matters worse, there isn't a comprehensive test suite that I can leverage to get an idea of how the code is being used. I'm sure many of you have jumped in on an existing project, so I'm curious how you all handle getting a grasp on the overall code and architecture. Thanks.
======
mcrittenden
My (very subjective and not at all scientific) advice is to take it one thing
at a time. Find a ticket that looks like a low hanging fruit, fix it, and now
you understand what that part of the code is doing. After a few months of
this, you'll find yourself with a decent understanding of the project as a
whole.

I would also try to push hard for more/better documentation along the way.

