Vous êtes sur la page 1sur 7

Reporte de lectura

Desarrollo, Pruebas, refactoring (todo va en el mismo paquete)

Es sorprendente lo que puede ocurrir si descuidas el desarrollo del software que


empezaste tiempo atrás el libro menciona que en ocasiones el desarrollo de un
software termina siendo un “Jardín abandonado” esto a mi parecer es muy cierto
debido a que como lo menciona muchos programadores al desarrollar una solución
el primer instinto que les surge es el de teclear líneas de código hasta conseguir
algo funcionando sin siquiera asegurarse de que aquello esté funcionando
correctamente. Una vez teniendo algo de código funcionando se gana la confianza
de solo corregir mínimos y al abandonar dicho proyecto todos esos errores
minúsculos así como duplicidades y cosas por simplificar terminan siendo horrores
terribles que no sabes si quiera como llegaste a eso en meses posteriores lo que te
lleva a un punto en el que por obligación tienes que dedicar horas y horas tratando
de corregir todo ese desastre solo para volver a la situación en la que te
encontrabas en un principio ya que nunca miramos el coste oculto de no hacer
algo. Realizar pruebas o “test” es algo muy fundamental en este aspecto pues es
aquello que nos ayuda a comprobar que nuestro código esté funcionando
correctamente y empieza a ganar calidad en su estructura. En el caso de que se
abandone la implementación de pruebas el proyecto podría terminar arruinado. El
uso del refactoring también ayuda en este sentido pues nos permite mirar atrás
para poder seguir avanzando ya que consta fundamentalmente de una pregunta
“¿En qué puedo mejorar esto o aquello?” esto nos ayuda más que nada a que
nuestro proyecto tenga un diseño más simple y más limpio, así como que sea más
testeable.

Que es tener éxito en un proyecto de software

El éxito en un proyecto de software no consiste en entregarlo a tiempo exacto o en


fechas específicas porque aun cumpliendo con esto el proyecto puede terminar
siendo un completo fracaso. Aun teniendo un tiempo y recursos suficientes un
proyecto de software no puede terminar bien si se trabaja en un ambiente
sumergido en el síndrome del quemado o “burnout” en donde un ambiente hostil
por parte del equipo de desarrolladores impide el progreso y baja la calidad del
proyecto aunque no sea visible en ese momento, los condicionantes psicológicos
importan mucho en el trabajo de un programador, ninguno desarrollara un buen
software con la presión encima de tiempos de entrega cortos ni mucho menos con
los altos mandos encima en todo momento, para poder desarrollar un buen
software se es necesario un ambiente relajado y tranquilo donde se pueda liberar la
creatividad de cada uno, de lo contrario lo único que se entregaría sería una
herencia envenenada en donde el software es frágil y no es apto a evolucionar ya
que al más mínimo cambio este colapsara debido a que fue diseñado en un
ambiente en donde no se realizaron los test necesarios ni se comprobó la calidad
de este, en otras palabras se había entregado un producto no evolucionable.

Todo es cuestión de principios

Al parecer el querer lucirse haciendo soluciones complejas a problemas complejos


no sirve de nada ya que no solo haces incomprensible tu código para los demás si
no que dificultas la evolución de tu proyecto y eso significaría un gasto inútil de
tiempo y dinero además de que deja en claro tu falta de profesionalidad en este
aspecto. Algo para aplaudir es una solución simple y sencilla ante problemas
difíciles y complejos ya que así permites que aquellos que hereden tu trabajo y
deban añadirle alguna función les sea sencillo comprender el proyecto que
realizaste. Siempre procura evitar dejar tu código “sucio”, es decir, lleno de
incógnitas que solo tú puedas entender.

Una vuelta de tuerca a la ley del cambio

La ley de cambio siempre será aplicada en cualquier software ya que tarde o


temprano este necesita cambiar y actualizarse ya sea por errores o bugs que no
habían sido ubicados con anterioridad o para agregarle alguna funcionalidad o
simplemente porque es popular y se le exigen cambios. Aunque este es el menor
de los problemas la ley de cambio afecta también a las librerías o módulos en los
que se basa el software y al hacer eso se debe cuidar que al actualizarse dichas
librerías el software siga funcionando correctamente ya que podrían quedar
algunas funciones quedar obsoletas con la nueva versión y resulte que dicha
función era fundamental para el software, este tipo de problema generalmente pasa
cuando la librería es popular y está en constante cambio a un ritmo que el software
no puede seguir.

Atreverse a eliminar lo implementado

Todo software en algún momento tiene que ser modificado, modificar significa en
ocasiones eliminar piezas de código aunque resulta difícil hacerlo ya que es código
que requirió horas de esfuerzo para que solo con un par de clics desaparezca en
un instante, cuando se modifica o se le añade una funcionalidad al software este
debe ser adaptado para que cumpla con los requerimientos y por lo tanto
significaría modificar código existente lo cual no se debería dudar en hacerlo si es
para mejorar el diseño del software o incluso para hacerlo más simple y legible.
Cuando incorporar más gente es desastre asegurado

A mi parecer para que un proyecto de software sea optimo el equipo que comienza
a desarrollarlo debe ser el mismo que lo termina, ya que si ingresan más miembros
durante el proceso de desarrollo lo único que se ocasionara será un retraso en la
rutina del equipo debido a que ellos perderán valioso tiempo explicándole como se
trabaja, en que consiste el proyecto que se está desarrollando además de
resolverle todas sus dudas y preguntas en lo que se acostumbra al nuevo ambiente
de trabajo, todo esto es un coste sumamente caro, más si se cuenta con tiempos
de entrega muy apretados y los integrantes del equipo están al borde de entrar en
el síndrome “burnout” sin mencionar que esto provocara que el fracaso del proyecto
este a la vuelta de la esquina.

Cuando el gestor de un proyecto es su mayor enemigo

Nunca falta el supervisor que no sabe hacer su trabajo y lo peor es que las
consecuencias de esto influyen demasiado en el trabajo del equipo de desarrollo
debido a la incompetencia de este. El peor tipo de estos gestores son los que
cuentan con poca o incluso ninguna experiencia en el ámbito del software, conocer
las metodologías de desarrollo así como los riesgos de evolución y modificación ya
que ellos piensan que no entran en sus funciones, le dan más importancia a las
reuniones improvisadas que sin pensarlo solo causa una inestabilidad laboral entre
los programadores al desconcentrarlos tan seguidamente de su trabajo así como
no preocuparse por mejorar el ambiente laboral cuando encuentra un ambiente
tenso y hostil, un gestor de este tipo no desprende ni la más mínima autoridad para
que sus decisiones sean respetadas.

El día a día de un buen desarrollador

Un buen desarrollador no es aquel que trabaja arduamente en todo momento ya


que esto solo ocasionara que te sientas cansado y la calidad de tu proyecto bajara
considerablemente, un buen desarrollador es aquel que es constante y disciplinado
día a día esto le ayudara a llevar las cosas de manera relajada sin descuidar la
calidad de su trabajo y todo con limpieza y orden así como la comodidad de
entregar a tiempo en las fechas previstas.

El éxito siempre viene de la unión entre Talento, Tecnología y Metodología

El éxito así como el fracaso de un proyecto está ligado con la mala combinación o
buen equilibrio de estos tres conceptos. El principal problema en esto es que
cuando se presenta mucha presión en el proyecto lo primero que muere es la
metodología y estos es fatal para el desarrollo del software pues si se elige una
metodología siempre debe de respetarse durante todo el proceso de creación
siguiéndola al pie de la letra ya que de nada nos sirve tener talento natural en
resolver problemas si no se domina bien la tecnología que se usa.

El mal entendido rol de arquitecto de software

Para que un miembro del equipo de desarrollo pueda ser merecedor de ser el
“arquitecto de software” debe ser un profesional extremadamente capacitado en
todos los aspectos pues por él se decidirá el rumbo que llevara el proyecto, su
diseño, su arquitectura, prácticamente se encarga de llevar al éxito al equipo por lo
que no solo debe ser un gran líder y saber dirigir al equipo de desarrollo si no que
este también debe de tener un total manejo de las tecnologías así como años de
experiencia como programador, haber participado en infinidad de trabajos y pasar
por todos los roles posibles asignados, a pesar de sonar algo exagerado son
características que de cumplirlas inspiraran confianza de que hará correctamente
su trabajo.

La rentabilidad metodológica

La rentabilidad metodológica por lo que entendí es seguir e implementar la


metodología en cada parte del proyecto para avanzar con orden y que una vez
terminada y entregada la solución, el sistema pueda ser reutilizado, mantenido y
evolucionado, multiplicando los resultados, el hecho de dejar de lado el uso de las
metodologías es un error fatal ya que esta nos indica cuando y como avanzar en el
proyecto, sin metodología costará muchísimo más saber qué está funcionando bien
y qué mal, no sabremos si se está desviando del objetivo y fechas de entrega o si
se va al ritmo adecuado, el esfuerzo dedicado a implantar y seguir
disciplinadamente una metodología redundará proporcionalmente en una mayor
rentabilidad técnica en el software que desarrollamos.

Todo está en la UI

La interfaz de usuario es reconocida principalmente por su apariencia aunque


igualmente debe ser de buena calidad aplicaría más que nada la expresión “no solo
hay que ser bueno si no parecerlo” es prácticamente lo mismo ya que un usuario o
cliente se deja llevar principalmente por el aspecto externo de la interfaz que por lo
que realmente importa, su funcionamiento, debemos dedicar mucho esfuerzo a una
interfaz de usuario ágil, sencilla de usar y con muy buen diseño. En muchas
ocasiones vamos a obtener mucha más rentabilidad por este aspecto que por
detalles internos, algunos aspectos sobre los que proyecta su funcionamiento seria:
Una interfaz de usuario ágil, simple de usar y con atractivo, rapidez en el
funcionamiento, funcionalidad para aportar valor al cliente no para hacer más
complicado su trabajo.

Diletantismo tecnológico

La actualización de las tecnologías aumenta de manera sofocante tanto para las


personas comunes como para los desarrolladores de software pues ya que estos
trabajan con dichas tecnologías como herramientas, aplicaciones y utilidades que
están en constante cambio no tienen más alternativa que adaptarse ya que de no
hacerlo quedaran fuera del mercado en menos de un año por lo que ningún
desarrollador de software tiene una zona de confort por mucho tiempo ya que se ve
obligado a adentrarse en las desconocidas actualizaciones tecnológicas que se le
presentan, el diletantismo tecnológico tiene más que ver con una vanidad tonta que
con querer conocer tecnologías para innovar y resolver problemas. Es agotador
saber que muchas de las tecnologías que se usan ahora mismo cuentan con una
obsolescencia programada, pero esto forma parte de esta profesión y si esta idea
no la asimilan bien, quedaran fuera del mercado antes de tiempo.

No se trata de trabajar más horas, si no de trabajar mejor

Siempre hay una ligera confusión entre que es más productivo trabajar una mayor
cantidad de horas que el trabajar de manera constante y disciplinada respetando
tiempos de trabajo en donde no hay presiones al respecto y te permite construir un
proyecto con una calidad elevada y ordenada, lo cual quiere decir invertir menos
recursos y obtener mayores resultados a diferencia de los “calienta sillas” rodeados
de un ambiente hostil e interrupciones continuas lidiando con el estrés y el
cansancio que no hace más que bajar la productividad y la calidad del trabajo
desarrollador. Si se busca obtener un buena calidad debería plantearse mejor si
realizar largas jornadas intensas de trabajo seguidas o marcarse tiempos de trabajo
con descansos intermedios.

Sobre Frameworks, Librerías y como reinventamos la rueda

Un problema puede dividirse en problemas más simples y estos a su vez en otros


aún más hasta formar un montón de pequeños problemas que son fáciles de digerir
y resolver, un desarrollador de software debe tener esto bien en claro en el aspecto
de las funcionalidades del software, algunos al no tener esta facilidad de
desacoplar las partes funcionales, buscan innovar aunque la mayoría de las
ocasiones muchas utilidades ya han sido creadas y puestas a disposición de la
comunidad de desarrolladores con licencias abiertas que permiten reutilizarlas. Si
no se sabe afrontar una funcionalidad muy específica, mejor investiga sobre ella en
un proyecto aparte, en un proyecto serio se debe reutilizar al máximo librerías y
Frameworks bien conocidos, maduros y consolidados.

Los buenos desarrolladores escriben código depurable

Ser programador o desarrollador de software no consta solamente de programar,


de sentarse en una silla y comenzar a teclear código de producción sin ningún otro
proceso realizado anteriormente, cada pieza de código tiene su motivo, su
estructura y diseño con anterioridad sin mencionar que debe pasar por una serie de
pruebas para ver su funcionalidad y calidad, la mejor manera de tener un código
funcionable con un alto nivel de calidad es haciendo código depurable ya que no
solo basta con resolver el problema si no que también tiene que ser depurable,
entonces el mayor esfuerzo y tiempo que invierte un desarrollador de software es
en la detección y corrección de errores.

Esclavo de tu propia solución o cómo querer ser imprescindible

Es un error a medio plazo para un desarrollador de software que busca progresar el


dominar una tecnología ya que te hacen cautivo de esa área en la cual tendrás que
trabajar en lo mismo por un tiempo ya que cuando se trate de algo relacionado con
dicha tecnología te buscaran esperando tus respuestas y te impiden el intentar
realizar nuevos proyectos y retos, sólo cambiando periódicamente de proyectos
encontraras mejores oportunidades. Un desarrollador de software no puede buscar
en ningún momento la zona de confort que se obtiene cuando se conoce
perfectamente una tecnología o producto que tarde o temprano terminará en una
completa obsolescencia.

Aprendemos de otros (o cómo no ser un desarrollador perezoso)

Para un desarrollador es fundamental aprender de los trabajos de otros


desarrolladores ya que la profesión consta de eso leer y aprender más sin embargo
se pueden entender a la perfección las funciones y códigos de cualquier proyecto
no obstante al momento de aplicarlo se desconocerá por completo la manera de
utilizarlo, esto es debido a que se requiere de práctica, experimentación e
implementación de los conocimientos aprendidos ya que no sirve de nada el
conocer acerca de una tecnología si nunca la has utilizado. Aunque si bien el leer
proyectos de otros desarrolladores podrían incluso a ayudar a corregir problemas
que presentes con tu propio proyecto en particular. En ocasiones aprender sobre
otras tecnologías distintas nos permite conocer otros modos y técnicas de hacer las
cosas.
Potenciando la productividad con la gestión de la configuración e integración
continúa

Un desarrollador de software no es productivo por trabajar muchas horas, si no por


hacer el mismo trabajo y con la misma o mayor calidad en menos tiempo. El
presentismo ósea la creencia de que únicamente existe el presente, mientras que
futuro y pasado están fuera de lugar en el trabajo es un problema, pero como
desarrolladores profesionales sólo debemos buscar trabajar eficientemente y
buscar los mejores resultados. Un desarrollador de software es aún más
profesional si se siente cómodo y sabe trabajar bajo una correcta gestión de la
configuración e integración continua. Si aterrizamos en un nuevo equipo de trabajo
en el cual no están bien especificadas sus tareas es necesario hacérselos saber
para que no haya choques de ideales.

La era del emprendimiento

Los tiempos cambian así como las oportunidades de empleo con el constante y
vigoroso avance de la tecnología muchos empleos que antes no existían ahora son
los más demandados y posiblemente en un futuro cercano abran muchos más que
se incluirán lo que nos pone a pensar que todos aquellos que no se adapten a esta
nueva demanda quedaran fuera del sistema por así decirlo aunque la mayoría de
este cambio en las tecnologías se deba a los desarrolladores de software ellos
también presentan problemas por las constantes actualizaciones como ya había
sido mencionado anteriormente aunque así como hay quienes les alarma cada vez
que las cosas cambian para otros lo ven como una maravillosa oportunidad para la
que el talento, la creatividad y la profesionalidad son esenciales.

Vous aimerez peut-être aussi