I’ve ran into an issue recently that hopefully can help you. I’ve been freelancing for a non-profit that has several products that have been in development for years. One of these codebases in particular is pretty huge and verbose, with many different developers touching it over several years.
The biggest issue we’ve all faced with onboarding to this project has been converting what the business stakeholders are asking for, into scoped requirements and code that handles all of the edges and complexity presented by this large (mostly undocumented) codebase.
We’ve implemented a process, that I’ve used successfully in the past when I was onboarding freelancers for my projects, and it’s going pretty well. What I’m doing is first developing a rough, minimal, implementation of the feature that’s requested and then submitting that for review to technical and business stakeholders to review and then discuss. This is often an intermediate pull request as soon as enough code to cover the basics of the implementation is ready.
This gives us all an example to review together to be sure we’re on the same page. Then once we work out the correct scope, based on this example, I’ll develop the full feature.
Reach out if you’d like to discuss this more, I’d love to hear your thoughts.