it normal to be thrown into a sink or swim situation in a new dev job?
Posted by nicheal531@reddit | learnprogramming | View on Reddit | 18 comments
No docs. No KT. No guidance.
Just a legacy codebase and figure it out.
Is this normal
Fajan_@reddit
yeah tbh it’s pretty common, especially in smaller teams or messy projects. doesn’t mean it’s good though. no docs + no guidance just slows everything down. best you can do is take small parts, understand piece by piece, and ask questions when you get stuck. feels overwhelming at first but you get used to navigating it 👍
spinwizard69@reddit
In some cases yes. To an extent it is the right thing to do, as you need to make sure a new developer has the skill to dig into difficult issues. However it can also be indications of a bad work environment. You will only know after working there a bit and how people react to your first serious question.
Here is something you may not want to hear, but there is a good possibility that nobody at this organization knows anything about the code base being shoved at you. You could be replacing one of those individuals that has no idea what documentation is, never communicated with the rest of the staff and was generally miserable.
You didn't mention what language this nightmare is coded in, but the first thing to do is to apply some code analyses tools with the hopes of getting some sort of handle on the code. Don't be afraid to try out a few variants of the public tools out there. Just don't disturb the code, especially the formatting of Python code. One interesting way to look at code new to you is jgrasp. Also the clang tools can really help if the language is supported.
ZombiePleasant1762@reddit
It is unfortunately common but not normal I'd say.
Most companies lack documentations and devs don't care about writing good quality code
dajoAI@reddit
Yep, if you are using AI, you can just asks AI to explain the code
HashDefTrueFalse@reddit
Depends on your level and the task difficulty/scope. Mid/senior? Yes, fairly common. Junior? Minor bugs or updates, pretty common to give to juniors with the expectation that they use it as a vehicle to gain familiarity and come back with questions to ask. Not normal to expect a junior to just figure it out with no help whatsoever.
Rare_Friend_6484@reddit
Pretty much this. When I started as junior PM few years back, got thrown into project with zero documentation and had to reverse-engineer everything from old emails and meeting notes. The expectation wasn't that I'd magically know everything, but that I'd dig around, make sense of what I could, then come with specific questions instead of just "I don't understand anything." Most places will help if you show you've actually tried to figure things out first.
FlatProtrusion@reddit
Such places should just take the time to setup an onboarding process. This just extends the period where the dev is unproductive. Doesn't matter which level you are at, junior, senior or staff.
BigCSFan@reddit
Wonder if that changed as of late with the market getting worse for juniors.
When I was hired as a junior I was thrown right into as the only dev to create a decently complex service.
Pale_Height_1251@reddit
If you are senior and experienced, to a point, yes. You expected to be able self manage and deal with shit.
For a junior, I think this is unfair.
Effective_Promise581@reddit
Use this as an opportunity to become the expert on the code base and then you will be essential and critical to to the success of the company.
luckynucky123@reddit
pretty often from my experience. sometimes its bad onboarding. sometimes even your peers have no clue. sometimes everyone went through the same sink-or-swim and thinks that this is the norm for onboarding. many times everyone is too busy and the project (perception-wise) is behind schedule - see Brook's law and Mythical Man-Month https://en.wikipedia.org/wiki/The_Mythical_Man-Month#:~:text=The%20most%20enduring%20is%20his%20discussion%20of%20Brooks%27s%20law%3A%20Adding%20manpower%20to%20a%20late%20software%20project%20makes%20it%20later.
i also find that while you are being onboarded - its the right time to ask questions. establish your own dev tempo (see OODA loop https://en.wikipedia.org/wiki/OODA_loop) and find ways to align to the team's tempo. gather and hunt for data. try hard to understand the code.
good teams and people will appreciate the effort and struggle. bad teams and selfish people will just watch you struggle. don't get distracted from the office politics. its not your job to fix bad teams. its your job is to take care of yourself and give out the best effort.
if its a bad team - take notes and seek help from outside peers (without disclosing company details). there's always ways to find help.
embrace the suck. adapt and conquer. and if you're at your limit - find allies. you got this!
The-Oldest-Dream1@reddit
Unfortunately yes. The best way to get used to the codbase would be to create your own notes, get the help of AI (By this I mean get it to explain how this and that works). Also, ask questions
zugzwangister@reddit
That sounds pleasant.
Usually they give you some cinder blocks and ask you to transport them to the other shore.
huuaaang@reddit
You mean setting up your dev environment? Yes.
Adventurous_Front939@reddit
Depends what you put on your resume really. If you presented yourself as a senior and aren't then it could feel that way. OR maybe they are quite impressed with your portfolio at your experience level and want to see if you can make a bit of a jump.
Just do your honest best, document things along the way if you feel uncomfortable. Just maybe a talley of tasks you did and the hurdles in the way/consistent issues/how you overcame the issues/how the issues prevented you production.
This way if its truly sink or swim, and you're swimming as hard as you can but still sinking. When they have the talk you can provide them the proof of being set up for failure, they may see their culture is in a bad place and they are sabotaging talent, or they might laugh but its better then having nothing to show for the hoops you jumped thru.
skibbin@reddit
I've had it happen to me many times.
See if you can pair with someone. Two heads are better than one and you're both gaining knowledge.
Take notes. Create Readme files, instructions, add tests and refactor.
dnult@reddit
Yes unfortunately, it's quite common. A grepping tool is your friend - I used BareGrep from Bare Metal daily.
PoMoAnachro@reddit
Pretty normal in my experience.
Part of it is just bad on-boarding in poorly run organizations, but sometimes part of it is a purposeful attempt to separate the wheat from the chaff - reading code and learning from it is a huge part of the job, so may as well figure out if someone can do that early on. In many ways, your initial probationary period really is an extended job interview.
But no excuse for not having some docs at least for their own internal use. But that's not uncommon even if bad practice.
tl;dr: It isn't good but it also isn't rare.