Professional Documents
Culture Documents
NO hacer programas
MCs Javier Gonzlez Snchez
Introduccin:
www.javiergs.com
javiergs@acm.org
Introduccin:
o como esto:
www.javiergs.com
javiergs@acm.org
Introduccin:
www.javiergs.com
javiergs@acm.org
Tcnica 1:
Lava Flow
Consecuencias: Definicin:
construir grandes cantidades de cdigo de manera desordenada, con poca documentacin y poca claridad de su funcin en el sistema. Conforme el sistema avanza en su desarrollo y crece, se dice que estos flujos de lava se solidifican, es decir, se vuelve mucho ms complicado corregir los problemas originados por estos, y el desorden va creciendo geomtricamente. o Si el cdigo de flujo de lava no es removido del cdigo puedo seguir proliferando cuando el cdigo es reusado en otras reas. Si el proceso que sufre de flujo de lava no es revisado, puede haber un crecimiento geomtrico de estos flujos, ya que muchas veces los programadores que continan trabajando con la versin original trabajan alrededor del flujo original Conforme los flujos se endurecen y solidifican, rpidamente se vuelve imposible documentar el cdigo o entender su arquitectura lo suficientemente bien como para hacer mejoras
www.javiergs.com
javiergs@acm.org
Tcnica 2:
The God
Consecuencias:
o o o Dependencia total de esa clase Cdigo desorganizado Fuerte interdependencia
Definicin:
Una sola clase modulo hace todo Tu programa es un SOLO archivo de muuuuuchas lneas
www.javiergs.com
javiergs@acm.org
Tcnica 3:
Golden Hammer
o o o
Consecuencias: Definicin:
Es un vicio referente a aferrarse a un paradigma para solucionar todos los problemas que se nos presenten al desarrollar sistemas, como por ejemplo siempre querer usar el mismo lenguaje de programacin para todos los desarrollos sea o no conveniente. o Consumir mucho ms esfuerzo para resolver un problema
www.javiergs.com
javiergs@acm.org
Tcnica 4:
reinventar la rueda
eso reinventar la rueda
Sntomas:
o o o Poco nivel de reuso en el cdigo Constantemente se reescriben fragmentos de cdigo Hay pocos mtodos procedimientos o funciones
Consecuencias:
o El software se vuelve innecesariamente ms denso Se pierde tiempo e reimplementar cosas que ya estaban hechas Se puede perder consistencia
Definicin:
Se refiere a reimplementar componentes prefabricados de antemano y hacer poco reuso en el cdigo. Querer hacer todo uno mismo
o o
www.javiergs.com
javiergs@acm.org
Tcnica 5:
Vendor lock-in
o casarse con el diablo
Sntomas:
o o Poco conocimiento del trabajo ya existente Se buscan soluciones a problemas ya solucionados
Consecuencias:
o Se depende completamente de lo que el vendedor haga La calidad de los productos del proveedor nos comprometen El vendedor nos tiene agarrados
Definicin:
Crear una dependencia hacia un fabricante que nos provee de alguna solucin (componentes).
o o
www.javiergs.com
javiergs@acm.org
Tcnica 6:
Se trata de corregir retraso asignando ms personal No importa cuanto personal se aumente, el proyecto sigue sin avanzar
Consecuencias:
o
Definicin:
Consiste en la creencia de que asignar ms personal a un proyecto acotar el tiempo de entrega.
www.javiergs.com
javiergs@acm.org
Tcnica 7:
Spaghetti Code
Definicin:
Spaghetti: dicese de una pieza de cdigo fuente no documentado, dnde cualquier pequeo movimiento convulsiona la estructura completa del sistema. Nota: Si mezclamos ms de un lenguaje de programacin en el mismo archivo el Spaghetti es ms sabroso. Ej. PHP con HTML sazonado con JavaScript, es delicioso!
Consecuencias:
o Tienes problemas, muchos problemas, disfrtalos.
www.javiergs.com
javiergs@acm.org
Tcnica 8:
Poltergeist
fantasmas
Sntomas:
o o o o El modelo de anlisis y/o diseo es inestable El diseo no coincide con la implementacin El rendimiento del sistema es pobre Imposible hacer extensiones al sistema, entre tanto fantasma encontrar los elementos relevantes se imposibilita.
Definicin:
Demasiadas clases en un programa o tablas en una base de datos. Muchas clases o tablas con mnimas responsabilidades.
Consecuencias:
o Sigues teniendo problemas, pero no te asustes solo chale la culpa al programador que estaba antes en tu lugar.
www.javiergs.com
javiergs@acm.org
Tcnica 9:
Stovepipe
cocinado en caliente
Sntomas:
o o o o o o Falta de estrategia tecnolgica de la empresa. Falta de estndares. Falta de perfil de sistema. Falta de incentivos para la cooperacin en el desarrollo de sistemas. Falta de comunicacin Falta de conocimiento sobre los estndares tecnolgicos. Falta de interafaces para la integracin de sistemas
Consecuencias: Definicin:
En la empresa se desarrollan varios sistemas de manera independiente y a distintos niveles. Esto dificulta interoperabilidad, reuso e incrementa costos. Se crean islas automatizadas dentro de la misma empresa.
o o o o o o
Tecnologas incompatibles dentro de la misma empresa Arquitecturas monolticas y no documentadas Falta de posibilidad de extender los sistemas para satisfacer las necesidades de negocio Falta de estndares Falta de reuso Falta de interoperabilidad
www.javiergs.com
javiergs@acm.org
Ms tcnicas:
www.javiergs.com
javiergs@acm.org
1. 2. 3.
www.javiergs.com
javiergs@acm.org
Estrategia 1:
Project Miss-management
la jefa o el jefe que no sabe mandar
Sntomas:
o Retrasos en las fechas de entrega. reas incompletas.
Consecuencias:
o No se cumplen con las fechas de entrega
Definicin:
EL proyecto se descuida y no se monitorea de manera adecuada, es muy difcil de detectar en etapas iniciales pero repentinamente emerge de golpe y suele voltear de cabeza negativamente la situacin del proyecto.
www.javiergs.com
javiergs@acm.org
Estrategia 2:
Corncob
Consecuencias:
o El proyecto puede fallar por causas completamente ajenas a l.
Definicin:
Personas conflictivas o difciles de tratar que forman parte del equipo de desarrollo desvan u obstaculizan el proceso de produccin porque transfieren sus problemas personales o diferencias con otros miembros del equipo al proyecto.
www.javiergs.com
javiergs@acm.org
Ms estrategias:
www.javiergs.com
javiergs@acm.org
Conclusiones:
www.javiergs.com
javiergs@acm.org