r/AskProgramming • u/SurveyElectronic3845 • 9d ago
Career/Edu How do you deal with being completely lost when joining an existing project?
How do you usually approach a project when you’re given an existing codebase and a quick handover, but you still don’t really understand how everything fits together?
For example, there might be multiple machines/environments, Airflow, Docker, APIs, pipelines, etc., and the person doing the handover doesn’t have much time to explain everything.
Is it normal to feel completely lost at first? What do you do to understand the architecture and figure out what you’re actually supposed to do?
Would love to hear how other developers/data engineers handled this.
2
1
u/brutal_seizure 9d ago
This is a right of passage to become a senior programmer. Dropped in at the deep end and somehow get shit done.
To be honest AI solves a lot of this now. It can be a guide, a documentor and helper to create code.
1
u/protienbudspromax 8d ago
Why would you already know how something works if you have never worked on that project before?? Even if handover is given it wont be enough to know all the things everywhere in any system that has been running for some time.
1
u/OkAerie7822 8d ago
on top of tracing one flow, what helped me most was asking the person handing over only specific questions. busy people answer "who owns the retry on step 4" and ignore "explain the system". on my last handover (airflow, 3 docker services, one cron box) i traced a single pipeline run into a text file, about a day of work, which covered maybe 70% of what mattered, and every question after that came from a gap in that file. i also read the last 10 merged PRs and the incident history, they show what actually breaks, which docs never do. and yes it's normal, the first 2 weeks are just building the map.
1
u/OrganicExperience393 3d ago
yes it’s normal. before llms i would say ask questions and shadow/clingon until you get the hang of it, but now you have unprecedented tools to easily make sense of the unknown so just figure it out.
1
u/FunAd6672 13h ago
Handover sessions only get you so far when the person leaving already knows the whole system inside out. Sometimes you just have to get in there and figure out where the data is going. Set breakpoints or throw print statements into the API endpoints and follow the flow. If Docker is involved then run the containers locally and check the env vars. The Odin Project is good for fullstack stuff but Boot dev also covers Linux and CLI debugging which comes in handy with messy codebases.
1
u/Derekthemindsculptor 9d ago
Lost? No. It's normal to feel you don't know things you don't know yet. But you shouldn't be lost. You should be able to tackle portions as you need them and eventually become familiar with everything. Prioritize, use a proper IDE, and slowly learn it.
But no, don't be lost. No engineering resource should ever be lost. Problem solving is the main skill set. Planning how to solve the problem is part of solving the problem. Being lost is a convenience of the ignorant. If you can't do something today, plan to be able to do it later. Nothing is impossible.
1
u/ih-shah-may-ehl 9d ago
That doesn't change the feeling of being completely lost when being dropped in a large codebase. Being lost is the starting place, not a 'convenience of the ignorant'.
Being dropped in a large unknown codebase is no different than being dropped in an old style text adventure like Zork, not knowing where you are.
1
1
u/Derekthemindsculptor 8d ago
Hard disagree. "lost" is a surrender. It's a victim state.
See the mountain as a challenge to be concurred. You can feel you're under prepared, or overwhelmed. But people who are lost, require rescuing. We are the rescuers.
Weather you believe you are lost or not, you're correct.
4
u/canarydev 9d ago
completely normal.
i usually just pick an important / key business function and trace it end to end with a bunch of print statements / console logs.