Before going to consider whether comments are really needed, let’s consider few other things that already became “rivals” of it. Unit Tests: Having well written unit tests are smarter and useful solution, than detailed comments. Unit tests not only can check for the quality (and better architectural design in case of TDD), but also serves as a documentation regarding how the API should be used. Advanced IDE Features: With the advanced features, such as conditional debugging, call stack, dependency ......