When you start work as a software engineer on a new team, you might be told to ramp up in any of these ways:
I've tried all of these, and both succeeded and failed at actually ramping up. I'm now convinced that the best way to ramp up is to prioritize learning your team's system, and to do that by learning your team's data and how it flows through the system.
Your team probably processes and stores data, and this data is probably the core of what your team does. (Sometimes--e.g., for some R&D teams--this isn't true, but if you're in any kind of "normal" software engineering job, it probably is.) Figure out what it is.
This usually means figuring out which database holds that data, and how. Actually go look at the data. (Good luck with permissions, which are almost never both correctly managed and readily intelligible for a new team member.) Make sure you're looking at the real data, not an obsolete or redundant store.
Understand how every important aspect of the data is stored in the database. On the happy path, there is a single database table, and every feature of the data is stored in an intelligible and consistent way in a well-named field on that table. This happy path is rarely achieved--your job is to figure out how the data actually looks in storage.
Find the answers to these questions:
If there is a most common input source for this data, track the code from its origin to the persistence layer. If you can actually generate data in a test environment and verify that you are correct (by, e.g., inserting log lines or making trivial changes to a checked-out version of the code), that's even better.
At this point, you should know the very happiest path your team's data can take: the most important data, from its commonest input source, to its main data store, to its most important outputs. Think of it as the best possible skeleton. Now, build it out:
This approach overlaps with, but is very different from, most standard advice.
To be clear: doing starter tasks is great, especially as a way to learn unfamiliar tooling for writing, submitting, and incorporating code. I recommend it. But they're overrated as a way to learn about the system you're working on, and it's deceptively easy to complete starter tickets without getting much closer to being a fully productive team member.
This is a great thing to do! But:
My second-favorite ramp-up method, which can be done in parallel with the above, is to read every single pull request (or whatever your analogue of a pull request is) on your team. Figure out basically what is going on in the PR and why it is necessary. Knowing a little bit about where the current work is (and where the current problems are!) is likely to help you far out of proportion to the time this takes.
12/23/2024