Studying source code is first step. There is difference between "full understanding", and fixing a bug when software crashes under very specific conditions. Modern IDEs (and hopefully unit tests with VCS history) are great, 1+ MLOC is not really a problem.
Good luck with contacting original author, I usually give up after a few weeks.
And even proprietary software can expose enough "source" without compromising its monopoly. Microsoft bundles debugging symbols, so you can debug their software and roughly understand whats going on.
Studying source code is first step. There is difference between "full understanding", and fixing a bug when software crashes under very specific conditions. Modern IDEs (and hopefully unit tests with VCS history) are great, 1+ MLOC is not really a problem.
Good luck with contacting original author, I usually give up after a few weeks.
And even proprietary software can expose enough "source" without compromising its monopoly. Microsoft bundles debugging symbols, so you can debug their software and roughly understand whats going on.