To add onto this, sometimes it’s about getting more specific with your questions to get the more specific answers.
For context of how I would suggest structuring these detail questions, here’s how I think about code I write or debug: The functions and classes my code is made of are meant to get specific inputs to become specific outputs via a defined process; I think of this as inputs->how->outputs. Figuring out what inputs you need to execute the “how” part to get the outputs you want is the puzzle of each function or class I write. The “how” part can even be broken down further into smaller chunks of inputs->how->outputs.
I think asking your engineer friends to frame things in this context would both show your appreciation for the nitty-gritty details you are needing, as well as give you further context to ask more detailed drill-down questions (about deeper levels of inputs->how-> outputs) if needed. For example: “you said to get inputs A and B to result in output C, we need to run the fizzbuzz algorithm on A and B. What roles do those inputs have in that algo? Do we have to do any preprocessing on A or B before we fizzbuzz them, or any post processing of the fizzbuzz’s direct output to get C?” “Oh, yeah, we have a wrapper that takes A and makes it column-major so that fizzbuzz executes faster, but we need output C to be row-major for when it goes into otherFunction(), so we do such-and-such to fizzbuzz’s output to get the C we output.” This gets you a level of detail deeper, and you could ask further questions about the transformations happening to A and the post-processing of fizzbuzz output to get C, as well as get more context for otherFunction to ask more about later.
You could also use this context to ask further questions about what they think the future implementation should look like. “Are there any assumptions we can make about A and B or how C is used that could simplify how we go from the former to the latter? Are there any requirements on the inputs and outputs that would better be either relaxed or made more stringent, and if so, in what way?”
I hope that helps! Best wishes for your work on this project–streamlining processes is hard, especially when working with other people’s code, but your appreciation for the details to get things implemented well is admirable!
I’m glad you found it helpful! And no, I love my current job, but I appreciate the sentiment!