70 cosas que todo programador pragmático debería tener en cuenta

desarrollo, libros Deja un comentario

Acabo de leer The Pragmatic Programmer: From Journeyman to Master, todo un clásico sobre el desarrollo ágil, y me ha parecido bastante interesante. Muy recomendable si quieres huir de la metodogía tradicional en cascada o si no sigues ninguna metodología. Si eres de los que lleva tiempo en el mundo Rails, los temas tratados te resultarán de sentido común, pero recuerda que el sentido común es el menos habitual de los sentidos.

El libro nos va resaltando las cosas que todo programador pragmático debería tener en cuenta. Os las enumero aquí para que os hagáis una idea de los temas tratados en el libro. Muchos de los puntos se entienden por sí sólos. Para entender otros será necesario que leáis el libro.

  1. Mima tu obra
  2. ¡Piensa!, sobre tu trabajo
  3. Proporciona opciones, no excusas
  4. No vivas con ventanas rotas
  5. Sé un catalizador del cambio
  6. Ten perspectiva
  7. Haz de la calidad un requisito
  8. Invierte regularmente en tu conocimiento
  9. Analiza críticamente lo que lees y oyes
  10. Importa lo que dices y cómo lo dices
  11. No te repitas
  12. Haz que sea fácil la reutilización
  13. Elimina las interacciones entre cosas no relacionadas
  14. No hay decisiones finales
  15. Utiliza balas trazadoras para encontrar el objetivo
  16. Prototipa para aprender
  17. Programa cerca del dominio del problema
  18. Estima para evitar sorpresas
  19. Replanifica según codificas
  20. Mantén el conocimiento en texto plano
  21. Utiliza el poder de los comandos de la shell
  22. Aprende a utilizar un editor a fondo
  23. Utiliza siempre control del código fuente
  24. Arregla el problema, no busques culpables
  25. Evita el pánico
  26. “select” no se ha roto
  27. No lo asumas, pruébalo
  28. Aprende un lenguaje de manipulación de textos
  29. Escribe código que escriba código
  30. No puedes escribir software perfecto
  31. Diseña con contratos
  32. Haz que los errores aparezcan pronto
  33. Si no puede ocurrir, asegúrate de que no ocurra
  34. Utiliza excepciones para problemas excepcionales
  35. Acaba lo que empieces
  36. Minimiza el acoplamiento entre módulos
  37. Configura, no integres
  38. Pon las abstracciones del código en metadatos
  39. Analiza el flujo de trabajo para mejorar la concurrencia
  40. Diseña utilizando servicios
  41. Diseña siempre pensando en la concurrencia
  42. Separa las vistas de los modelos
  43. Utiliza el patrón pizarra para coordinar los flujos de trabajo
  44. No programes por coincidencia
  45. Estima el orden de magnitud de tus algoritmos
  46. Comprueba tus estimaciones
  47. Refactoriza pronto, refactoriza a menudo
  48. Diseña para testear
  49. Testea tu software, ya que si no lo harán tus usuarios
  50. No utilices asistentes de código que no entiendas
  51. No recojas requerimientos, escava para encontrarlos
  52. Trabaja con un usuario para pensar como un usuario
  53. Las abstracciones viven más que los detalles
  54. Utiliza un glosario en tus proyectos
  55. No pienses fuera de la caja, encuentra la caja
  56. Escucha a tus dudas persistentes — Empieza cuando estés preparado
  57. Algunas cosas se hacen mejor que se describen
  58. No seas un esclavo de los métodos formales
  59. Las herramientas caras no producen mejores diseños
  60. Organiza alrededor de la funcionalidad, no de los puestos de trabajo
  61. No utilices prodedimientos manuales
  62. Testea pronto, testea a menudo, testea automáticamente
  63. La codificación no termina hasta que todos los tests hayan pasado
  64. Utiliza saboteadores para testear tus tests
  65. Testea pensando en los estados de tu aplicación, no en las líneas de código
  66. Busca los bugs sólo una vez
  67. Utiliza tu lengua como otro lenguaje de programación (documenta)
  68. Genera tu documentación de la manera más automática posible
  69. Excede las expectativas de tus usuarios
  70. Firma tu trabajo

Deja un comentario