El código completo cubre muchos conceptos atemporales como:
- cohesión fuerte
- acoplamiento suelto
- buenos nombres de rutina
- programación defensiva
- código de auto-documentación
- revisiones de software
- pruebas unitarias
que son ciertamente relevantes hoy.
Algunos de los conceptos defendidos en CC ahora se aplican de manera sintáctica en lenguajes más nuevos, por ejemplo, C # no permite que la variable en sub-ámbitos se defina de una manera que oculte una definición de ámbito amplio.
Otros conceptos, como la notación húngara para nombres de variables, se han quedado en el camino de la programación general (aunque cualquiera que aún esté trabajando con la API de Win32 argumentará con vehemencia que está vivo y en buena forma). Sin embargo, el concepto real detrás de la convención de nomenclatura de variables es transmitir el significado necesario y aclarar el código, conceptos que diría que también son atemporales.
Todo lo dicho, por lo que puedo recordar (y un vistazo rápido dentro de mi venerable copia de CC), diría que ciertamente vale la pena revisar.
Sin embargo, no creo que se convierta en la verdadera naturaleza eterna del Mes del Hombre Mítico. MMM aborda los problemas de quién está haciendo el trabajo, cómo y por qué lo están haciendo; así como los costos y la complejidad de las comunicaciones (humanas). MMM aborda cuestiones que son fundamentales para todo lo que hacemos. CC, en comparación, se centra en cuestiones prácticas y pragmáticas de cómo lo hacemos. Dicho de otra manera, si un proyecto está retrasado y un gerente decide agregar 100 personas al equipo, escribir un código comprensible realmente no hará una diferencia.
CC no aborda realmente los problemas importantes que afectan a nuestra industria; pero proporciona una buena base para luchar por el mejor resultado en una situación a menudo imposible.
Sin duda, consideraría que ambos requieren lectura para cualquiera que se preocupe por el desarrollo de software; y recomendaría releer MM cuando necesites un repaso. Vale la pena volver a leer CC si está liderando un equipo de desarrollo, estableciendo estándares de grupo o capacitando a nuevos desarrolladores; fuera de eso, personalmente encuentro que hace mucho tiempo que internalicé el material en CC y lo practiqué a diario.
Espera que ayude. Sin duda son dos de mis favoritos.