While it's important to assure the people in group 2 that they do have knowledge worth documenting, there is always a hierarchy, and usually your interns do have more time, and less knowledge than your veteran programmers. Here's a plan to help the situation:
- Pair up people in group 1 with people in group 2. Let's call them the veteran and the intern.
- Let them pick a piece of code that the veteran knows about. This is the code we're going to get documented.
- Give the intern a day to try and figure out the code by himself, with the available documentation. Give the intern some standard tasks, like figuring out the main use cases, what does each method do, what's the starting point etc.
- Now put the veteran and the intern behind the same desk. Let the veteran explain the code, but based on questions by the intern. It's important that the intern drives the conversation.
- Let the intern draft a solid documentation. Give him time to really get this right. Make sure you have examples of what good documentation looks like. Give him something to strive towards.
- Make the veteran review the documentation. The veteran can critique whatever he want, but he's not allowed to make any changes himself. The edits have to go back to the intern.
- Repeat the above two steps a few times.
The benefit of this method is that not only do you end up with proper documentation, your interns start by learning how to document, before they learn how to code. What's more, everybody who puts himself in group 2 will actually work spend their time learning to increase their knowledge (ie. transitioning to group 1), while solving the documentation problem.
Just make sure that this process is properly codified, and that once a pair has been assigned a piece of code, someone will ensure that they finish the job. Perhaps a company-wide documentation manager: his job will be to figure out which parts of the code base are most in need of documentation, pair up a veteran and an intern, and ensure that they finish the job.