“Los Pecados Capitales del Desarrollador”
está dirigida a las personas del área de TI que ejecutan alguna actividad de
carácter técnico que servirá finalmente para la producción de algún Software
(análisis, diseño, codificación, pruebas o administración de proyectos).
Primero debemos entender el concepto de la
analogía (que no es religiosa, aclaro), un pecado es una desviación a un objetivo o una omisión
de algo que se requiere para lograr un objetivo, y el calificativo capital
se refiere a lo principal o al Origen de, por tanto aquí hablaremos de
los Pecados Capitales o Desviaciones Principales que puede
cometer un Desarrollador de Software y con los cuales se pueden, en mayor o
menor medida, afectar los objetivos de un proyecto siendo el origen de la
mayoría de problemas que se presentarán en el proyecto mismo, podemos a su vez
hacer una analogía con el principio de Pareto indicando de forma no exacta que
el 20% de las desviaciones en un proyecto (pecados) generarán el 80% de los
problemas más graves del Proyecto. Trataré de alguna manera exponer lo que
llamaré “Pecados Capitales del Desarrollador”, para conocerlos y
entender sus efectos en un proyecto así como las virtudes con que se
pueden atacar para tener una conciencia más orientada a objetivos al momento de
desarrollar un Software y comprender entonces que, lograr el Objetivo de un Proyecto es lo más
importante aun cuando las Tentaciones
de los Pecados sean muy poderosas.
Cada quince días publicaremos un pecado
capital hasta exponer los siete pecados capitales del desarrollador.
SOBERBIA
La soberbia se refiere en sí, al sentimiento de superioridad que uno mismo puede tener sobre los demás. Un desarrollador que actúa con soberbia, puede poner en riesgo el cumplimiento de sus compromisos en las diferentes circunstancias que vive un proyecto, la más común se presenta con los retos.
Algo que agrada a los desarrolladores son los retos y lograrlos no sólo satisface la necesidad constante de todo desarrollador por auto-superarse, sino que alimenta su soberbia al haber “incrementado su nivel” con un reto logrado. La situación es común, el reto se presenta y de inmediato se libera una sensación de vacío que debe ser satisfecha -¿Cómo es posible que no sepa hacer esto?- pero –No debe ser tan difícil, no para mí al menos– y se inicia un proceso intelectual difícil de contener, el tiempo se detiene y lo único importante es encontrar la solución al reto, superarlo, a como dé lugar, -No puede ganarme, no a mi–
Lo cierto es que en algún
momento, el Desarrollador superará el Reto y lo hará muy bien y se sentirá
satisfecho y quizá se sienta aún más superior que antes. Pero algo pasó durante
este proceso: el Desarrollador sin darse cuenta se perdió en su propio mundo
lógico y finalmente regresó al mundo real con su reto superado. Lo que se perdió
fue el tiempo transcurrido; sin darse cuenta pasaron horas y horas, quizá días,
quizá semanas, y lo único que logró fue pasar un obstáculo, uno sólo de muchos
en una larga carrera por concluir el proyecto. Y lo peor es que no se tomó la
molestia de preguntar si era necesario pasar por ese obstáculo, porque quizá
alguien más ya había invertido el tiempo para resolver el reto, no se dio
cuenta que el reto no era sólo para él, su soberbia no le permitió darse cuenta
que para otros no era un reto, ni siquiera un problema, quizá sólo algo de
rutina que se resuelve en 5 minutos.
La soberbia aleja al Desarrollador de
la realidad de una empresa de Desarrollo a la Medida, y más aún cuando dicha
Empresa tiene muchos años superando todo tipo de retos y obstáculos. El remedio
entonces es adquirir la virtud de la humildad ante el equipo de trabajo, siempre que se presente un problema, un reto o un
obstáculo, cuando a su mente llegue el no deseado pero sí muy común pensamiento
de “¿¿¿Y cómo rayos voy a hacer esto???”.
Lo primero que deben hacer es preguntar si alguien más ya lo ha hecho antes, y
si es así, con humildad, aprender de él. En caso de que no haya nadie que
conozca la solución, lo siguiente por hacer, y muy importante, es comunicarlo
al respectivo Administrador de Proyectos
o al Líder del Proyecto para que la
situación se administre como un Riesgo
del Proyecto y se le dé el trato, tiempo y seguimiento correspondiente.
Los problemas derivados de
no aceptar responsablemente que alguna tarea asignada, está fuera de las
capacidades y conocimientos que poseemos en ese momento, son varios y
mencionaré algunos:
- Consumir tiempo no estimado del proyecto.
- No lograr cumplir compromisos.
- Agotamiento del recurso (es común dedicar mucho tiempo extra con el reto atorado en la cabeza).
- Desviaciones a las normas o reglas de codificación definidos (durante el proceso creativo del desarrollador todo parece estar fuera de lugar y comienza a fabricar sus propias reglas y normas).
- Complicaciones innecesarias en el diseño (cuando un problema se presenta la primera vez que se resuelve suele utilizarse una solución mucho más compleja de lo requerido, si el problema es común lo más seguro es que ya se tenga una solución más acotada).
- Omisión de atributos de calidad requeridos (cuando se enfoca demasiado en el reto, suelen perderse de vista conceptos como performance, portabilidad, manejo de volumen, etc., que podrían ser requerimientos específicos del proyecto).
En conclusión, hay que darnos cuenta si estamos actuando con soberbia y por difícil que pueda ser intentar ser humildes, trabajar enfocado en los objetivos del proyecto, y no en los retos que éste pueda darnos, pero no se pongan tristes, si lo que están buscando son retos, siempre habrá alguno y existe una fase en todo proyecto que se enfoca en diseñar lo “diseñable”, prototipar lo “prototipable” y simular lo “simulable”, si su inquietud es resolver problemas sólo hay que enfocarlo en la Fase correcta del Proyecto, o en su defecto, en el Área correcta de la Empresa.
Avaricia…Ira…
Gula… Envidia… Pereza…? Lujuria???
Aún quedan varios pecados
capitales que analizar, tendremos que esperar la próxima publicación para
continuar, ¡Hasta la próxima!
Armando Olmos
Director de Producción
Dawcons
gracias
ResponderEliminar