.all nightmare long
70 cosas que todo programador pragmático debería tener en cuenta
Mima tu obra
¡Piensa!, sobre tu trabajo
Proporciona opciones, no excusas
No vivas con ventanas rotas
Sé un catalizador del cambio
Ten perspectiva
Haz de la calidad un requisito
Invierte regularmente en tu conocimiento
Analiza críticamente lo que lees y oyes
Importa lo que dices y cómo lo dices
No te repitas
Haz que sea fácil la reutilización
Elimina las interacciones entre cosas no relacionadas
No hay decisiones finales
Utiliza balas trazadoras para encontrar el objetivo
Prototipa para aprender
Programa cerca del dominio del problema
Estima para evitar sorpresas
Replanifica según codificas
Mantén el conocimiento en texto plano
Utiliza el poder de los comandos de la shell
Aprende a utilizar un editor a fondo
Utiliza siempre control del código fuente
Arregla el problema, no busques culpables
Evita el pánico
“select” no se ha roto
No lo asumas, pruébalo
Aprende un lenguaje de manipulación de textos
Escribe código que escriba código
No puedes escribir software perfecto
Diseña con contratos
Haz que los errores aparezcan pronto
Si no puede ocurrir, asegúrate de que no ocurra
Utiliza excepciones para problemas excepcionales
Acaba lo que empieces
Minimiza el acoplamiento entre módulos
Configura, no integres
Pon las abstracciones del código en metadatos
Analiza el flujo de trabajo para mejorar la concurrencia
Diseña utilizando servicios
Diseña siempre pensando en la concurrencia
Separa las vistas de los modelos
Utiliza el patrón pizarra para coordinar los flujos de trabajo
No programes por coincidencia
Estima el orden de magnitud de tus algoritmos
Comprueba tus estimaciones
Refactoriza pronto, refactoriza a menudo
Diseña para testear
Testea tu software, ya que si no lo harán tus usuarios
No utilices asistentes de código que no entiendas
No recojas requerimientos, escava para encontrarlos
Trabaja con un usuario para pensar como un usuario
Las abstracciones viven más que los detalles
Utiliza un glosario en tus proyectos
No pienses fuera de la caja, encuentra la caja
Escucha a tus dudas persistentes — Empieza cuando estés preparado
Algunas cosas se hacen mejor que se describen
No seas un esclavo de los métodos formales
Las herramientas caras no producen mejores diseños
Organiza alrededor de la funcionalidad, no de los puestos de trabajo
No utilices procedimientos manuales
Testea pronto, testea a menudo, testea automáticamente
La codificación no termina hasta que todos los tests hayan pasado
Utiliza saboteadores para testear tus tests
Testea pensando en los estados de tu aplicación, no en las líneas de código
Busca los bugs sólo una vez
Utiliza tu lengua como otro lenguaje de programación (documenta)
Genera tu documentación de la manera más automática posible
Excede las expectativas de tus usuarios
Firma tu trabajo
(visto aquí)

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

  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 procedimientos 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

(visto aquí)