This code base is not even two years old, and I'm already concerned about its long-term viability. The colleagues that worked on it are extremely helpful, but details are fading from their memories over time. Its one saving grace is the fairly extensive test suite, so at least I have some degree of confidence that I won't be breaking things whenever I look at it the wrong way.
I have been wondering the same thing fairly frequently of late. I see a few different potential benefits to something like this:
1) I communicate with relatively low friction face-to-face, but writing is like pulling teeth. Being able to outsource the formalization of knowledge would allow me to spend my time doing what I'm good at. I would hazard a guess that I am not alone in this matter.
2) There have been numerous times in the past when, despite my best efforts, some key subtlety of code that I had written was not communicated effectively until someone essentially comsumed my communications and regurgitated their own understanding of it. Having this process be the default would yield documentation that was a lot more effective at educating rather than simply being a reference to those that already know.
3) There is a surprising segment of developers that do not value clarity over volume, and most interactions with non-trivial quantities of their code result in having to engage in what is essentially a guided re-write. Having every long-term artifcat subject to a professional bringer-of-clarity would significantly reduce friction in the medium, allowing for much bolder and more effective trade-offs when reconciling a new requirement to an existing system.
4) Having well-archived, clear documentation would significantly increase the speed at which new members become effective, while also lowering the overhead imposed on existing team members.
Private Q&A like this from Stackoverflow would be perfect for my team. It would boost our institutional memory so that when questions are asked they're stored in SO, searchable, maintainable, etc. instead of stored in a Slack archive.
Whoever is responsible for the idea that comments are code smell deserves to receive all future vitriolic emails from anyone who ever stumbles into a complex nest of undocumented code and has to figure out what the hell they're looking at.
###############################################################################
# #
# DAS IST CODE #
# #
###############################################################################
# #
# Das macht Dinge. Ja, ich habe diesen Übersetzer eingegeben, nur um etwas #
# einfügen zu können. Hoffentlich ist dies nach einer doppelten Übersetzung #
# noch lesbar. Wenn nicht, dann fick es einfach. Nett, es geht gut zurück. #
# #
# Natürlich wurde Interpunktion und Rechtschreibung gebrochen. Es war um das #
# Jahr 11, als der Übersetzer nicht über die gesamte Politur der künstlichen #
# Intelligenz verfügte, so dass eins von acht Wörtern nicht übersetzt wurde. #
# Zum Glück funktionierte es sogar mit Code, obwohl es nicht zu kompliziert #
# war. Andererseits sind Deutsche ziemlich zurückhaltend (oder waren, als #
# diese besondere Monstrosität gemacht wurde), um Englisch zu lernen, so dass #
# selbst Variablen in der Muttersprache sein mussten. Ich verließ das #
# Unternehmen rund 3 Monate, weil ich eine Legacy Monstrocity (es war nur ein #
# gehacktes Addon-Skript, das von einem Plugin-System in einem #
# Unternehmens-CMS lief) reparierte, war nicht meine Sache. #
# #
###############################################################################I have read to many comments stating the obvious or that are just plain wrong.
No comments are better than comments with errors. The code is the only true fact.
I think that's fine. I only comment code that is not obvious, breaks common idioms used in the code base or stuff that seems stupid but is actually needed because of legacy code or systems.
Version control?
Part of CMM level 5 process was things like 'Knowledge teams' which did exactly that.
Agile eat CMM for lunch though.
But, alas, the pendulum swings. I think it's swinging back toward "I sure wish we didn't have to depend on finding skilled people, and our process was so bulletproof we could plug in any old schmuck and we can just continue to print money".
Damn, the business man is greedy.