This is what we're trying to address at Sourcegraph (https://sourcegraph.com/). 80% of programming is about reading and understanding code, not writing code.
Why don't existing tools focus more on helping people read and understand code--and, more broadly, collaborate on a development team? Things like:
* seeing everywhere a function or class is used, in context (like https://sourcegraph.com/github.com/joyent/node/.CommonJSPack... on the right side)
* seeing who at your company knows the most about an area of your codebase
* seeing the history of changes, in terms of functions/modules added, not just lines (like https://sourcegraph.com/github.com/fsouza/go-dockerclient/.c...)
* having a long-lived discussion about a module/class/function that doesn't vanish after a commit is merged or the file's lines shift around
So far, most of the innovation in programming tools has been in editors or frameworks, not in collaboration and search tools for programmers.
While there are great editors and frameworks, the lopsidedness is unfortunate because making it easier for programmers to learn and reuse existing code and techniques, and to collaborate on projects, can have a much bigger impact than those other kinds of tools. That's because, in my experience, the limiting factors on a solo developer's productivity are the editors and frameworks she uses, but the limiting factor on a development team's productivity is communication (misunderstanding how to use things, reinventing the wheel, creating conflicting systems, not syncing release timelines, etc.).