En este articulo, aprenderemos alguna practicas que pueden reducir considerablemente los tiempos, costos y velocidad de produccion, cuando de un proyecto de desarrollo de software se trata.
Te recomiendo seguir estos consejos si realmente deseas disminuir la tension que por lo regular viene de la mano de un desarrollo.
Introduccion
El desarrollo de software actualmente implica colaboracion, donde se definen roles claros y actividades sobre un equipo de desarrollo. No importa que tan bien se implemente un proceso para el desarrollo de software sobre la organizacion X, o el mucho dinero que al final cuesta la ultima infreestructura en IT y sus herramientas, Continuamente veo los mismos problemas que incrementan el tiempo y agregan tiempo extra (anexando el factor riesgo a el proyecto software), a la ya programada fecha de entrega.
Suelen pasar cosas como estas, considera cuantas veces te ha pasado algo asi:
• Se pierde tiempo esperando a que una solicitud en base de datos sea implementada (..eso lo miraba muy seguido en el tiempo que labore para telefonica movistar mexico..) • Tiempo muerto de medio dia o mas que eso a causal de una desicion de negocios a realizarce. • Se presentan retrasos despues de haber realizado alguna nueva libreria de programacion... y ya no se tiene tiempo para la curva de aprendizaje que viene con respecto a esta. • Tiempo que se pierde al buscar un bug sobre tu reciente Entorno de desarrollo. • El tiempo costoso de entrenamiento que se invierte sobre un nuevo miembro del equipo de desarrollo.
He contribuido en algunos proyectos propios y de diferentes industrias y he visto como importantes organizaciones se enfrentan a los retos de crear complejos proyectos de software. Pude observar que cada proyecto de software por lo regular fue administrado de maneras muy diferentes uno de el otro. Y en base a eso llegue a ciertas conclusiones en base a mis observaciones:
a) Mejorar los procesos de negocio antes de iniciar el desarrollo. b) Crear un solido equipo de desarrollo. c) Mejorar procesos para solicitudes de servicio. d) Minimizar el uso de reportes para la medicion del software realizado. e) Mejorar comunicacion con el equipo de negocios. f) Usar el lenguaje de programacion indicado. g) Usar la interface de desarrollo adecuada.
Como crear un solido equipo de Desarrollo ?
Uno de los mayores exitos de una compania de software es el haber consolidado un equipo de desarrollo con un largo historial de colaboracion. Los dias en que el software era creado por una sola persona han finalizado. La complejidad en los proyectos de software es lo que ahora demanda la industria.. complejidad que solo puede ser abordada mediante el trabajo en equipo.
Nadie deberia de pensar, que el equipo de desarrollo esta compuesto de “solo programadores” que son intercambiables y rotables a otros equipos. Un equipo de desarrollo debera de tener cierto nivel de estabilidad, ya que eso incrementara el nivel de colaboracion entre sus miembros. Entre mas tiempo trabajen juntos los desarrolladores entonces por consecuencia mejor sera su rendimiento. Desarrolladores experimentados no pueden ser remplazados como piezas de Lego con algun nuevo talento. Siempre se debera de buscar la permanencia de los miembros en el equipo.
Es necesario el motivar a los programadores como parte de la organizacion… para esto debes de considerar lo siguiente:
Paga bien
1.- Paga a tus programadores de manera relativa a la medida de tu organizacion y el retorno economico que ofrece el fruto de su trabajo.
2.- Ofrece incrementos salariales por anos basado en mejoras profesionales ofrecidas por la empresa. Recuerda que tus desarrolladores de software no son solo programadores.
Ofrece un claro esquema de carrera
Aun con un buen salario, algunos desarrolladores de software tienden a dejar sus puestos si la empresa para la que laboran no les ofrece un plan de carrera disponible. Por esa razon cuidadosamente se debe investigar los objetivos de cada miembro de tu equipo de desarrollo. Alguna gente desea ser promovida a posiciones administratibasy otros prefieren quedarce dentro del equipo de desarrollo. Cualquiera que sea la causa, el claro esquema de carrera debera de estar presente en la compania como una parte de la cultura de la compania.
Ofrece entrenamiento profesional
Enfoquemos esto al entrenamiento que otorge al equipo de desarrollo una ventaja competitiba en la organizacion.
Mantener un politica de “no tiempo extra o trabajo los fines de semana”
El desarrollo de software esta muy condicionado a la concentracion de los los desarrolladores y sus emociones. Una mala pieza de software puede ser el producto de el trabajo realizado sobre un entorno de trabajo malo, o del producto de trabajar en fin de semana con presiones.
Enfocarce en el progreso mas que en las hors trabajadas
Si una organizacion hace incapie en mantener un enfoque en el tiempo que el desarrollador pasa en la empresa… en lugar de enfocarce en el progreso de su trabajo.. estara cometiendo un error.. que a la larga termina por afecta la productibidad del equipo de trabajo.
Rotando roles sobre cada proyecto
Reta a los desarrolladores a jugar diferentes roles sobre un proyecto. Cada miembro obtendra con esto la oportunidad de adquirir distintos niveles de responsabilidad, logrando con esto una versatilidad que se traduce en el nunca fallar dentro de la rutina. Un ejemplo de esto seria: Retar un desarrollador a liderear un equipo de desarrollo en cierta ocacion, y en la siguiente oportunidad que ese desarrollador realice el diseno del software y finalmente en otra ocasion que este programador ejecute la implementacion, prueba y documentacion de otro proyecto.
Recompensas profesionales en base a conocimientos traidos del exterior
Si un desarrollador de software escribe un articulo tecnico, u obtiene un certificacion profesional este esfuerzo deberara de ser recompensado.
Mejorar los procesos de negocio antes de iniciar el desarrollo
El proceso de negocio en tu organizacion puede tener algunos pasos innecesarios que tal vez no esten estandarizados. Algunos pasos solo pueden ser solo trabajados por personal con experiencia con un cargo que requiere su ejecucion. Por lo general, la gente de los departamentos conoce el como ejecutar tarea que tienen que ver con su rol, pero puede no estar familiariarizado con el resto de procesos fuera de su departamento. Esto hace dificil el colaborar con sugerencias y mejoras hacia los procesos. El desarrollo de software es algo que solo es manejado por requerimientos derivados de procesos de negocio que ya estan implementados. Si el proceso de negocio no ha sido propiamente estandarizado o se hizo reingeniera antes de que el desarrollo de software empezara, algunas preguntas surgiran. Preguntas en base al retraso que representara esto… esto podria representar presiones hacia usted… preciones generadas por aquellos que toman las desiciones de negocios….
El desarrollo de software y la realizacion de reingenieria en los procesos de negocio por lo general no es algo que se pueda hacer en paralelo. La peor que se puede hacer es redefinir los procesos de negocio a la mitad de cualquier desarrollo de software.
