Agosto 4, 2017

Gestión de proyectos

 

WATERFALL

 

El proceso Waterfall se produce a través de una secuencia. Cada fase de un ciclo de vida del producto debe lograrse antes de comenzar la siguiente fase y así sucesivamente. El flujo de trabajo del proyecto se dirige constantemente hacia abajo como una cascada.

El proceso Waterfall ha sido heredado por empresas de desarrollo de software de empresas de construcción. Uno siempre comienza con el cimiento y termina por el techo. Sin embargo, el proceso es rigido cuando se desea invertir una secuencia que ya se ha hecho. El proceso Waterfall necesita toda la información sobre los requisitos hechos previamente antes del comienzo de cualquier codificación.

Tradicionalmente, el ciclo de desarrollo y la entrega de un software, siguen pasos secuenciales preestablecidos. Este proceso predefinido otorga a cualquier cliente una visión muy clara y precisa del costo financiero y presupuesto para él para planificar, pero no necesariamente para los equipos de desarrollo o las empresas de externalización de TI.

Los siguientes son los pasos principales del proceso de desarrollo de software en el modelo Waterfall:

1.    Analizar las necesidades del cliente (Requisito).
2.    Definición de entregas y especificaciones funcionales (Diseño).
3.    Establecimiento del presupuesto y calendario (Planificación).
4.    Inicio del ciclo de desarrollo: creación de la primera funcionalidad (Implementación).
5.    Validación y corrección (Verificación).
6.    Mantenimiento de esta funcionalidad (Mantenimiento).

 

 

El proceso reinicia su ciclo entre los pasos 4 a 6, hasta que el software se entrega completamente al cliente. Después de la entrega, cada actualización del desarrollo sigue estos pasos. Este proceso es conocido como el modelo Waterfall. Cada componente del software se desarrolla secuencialmente y se completa totalmente antes de que se codifique cualquier otra funcionalidad. Este proceso generalmente se utiliza con mayor frecuencia, pero no podemos negar que esto no tiene ningunas complicaciones.

En general, esta metodología tiene etapas que se ocupan de lo que usted necesita hacer antes de un proyecto, particularmente durante la fase de arranque, la fase de planificación, la fase de ejecución y la fase de cierre. También tienen una serie de procesos para la gestión de paquetes de trabajo, excepciones, informes, riesgos y problemas.

 

Ventajas del método Waterfall:

  • Las preguntas que pueden surgir durante la fase de desarrollo pueden fijarse durante la fase de diseño. Si se advierte, se pueden seleccionar otras soluciones antes del inicio de cualquier codificación.
  • El proceso de desarrollo reúne tantos documentos como sea posible, porque esta metodología está favoreciendo la documentación completa como requisitos, necesidades y diseño.
  • Muchas empresas prefieren este método para implementar y utilizar.
  • El proceso Waterfall es lineal y más fácil de entender para la persona no técnica para el proceso de desarrollo de software y gestión de proyectos.

Inconvenientes del método Waterfall:

  • Muy a menudo, el cliente no sabe exactamente lo que necesita por adelantado y no sabe cuáles son las posibilidades con la tecnología disponible. Debido a estos factores, esto podría generar retrasos y complicaciones.
  • Los proveedores de diseño a menudo no son capaces de anticipar los problemas que surgirán debido a la implementación de sus gráficos y trabajos de diseño.
  • Hacer una modificación de los requisitos (por ejemplo, si desea implementar una nueva tecnología, modificación de los objetivos de negocio o la adaptación a un mercado cambiante) no es realmente apropiado mediante un método Waterfall. Sin embargo, todavía es posible hacer una evaluación de acuerdo con los nuevos requisitos, pero se requiere mucho dinero y tiempo para los nuevos procedimientos.

 

 

AGILE / SCRUM

 

EasyShoring Solutions utiliza prácticas Agile para la gestión de proyectos. Ofrecemos un enfoque pragmático y mantenemos un contacto constante con nuestros clientes durante todo el proceso. La principal fortaleza de la metodología Agile es estimular la actividad de solicitudes constantes de corrección. La máxima prioridad en la metodología Agile es satisfacer al cliente. Un cliente es libre de hacer cualquier número de revisiones que busca en el producto.

 

Agile se basa en 3 pilares:

  • Transparencia
  • Inspección
  • Adaptación

 

Además, Agile se basa en 4 valores:

  • Individuos e interacciones sobre procesos y herramientas
  • Software funcionando sobre documentación extensiva
  • Colaboración con el cliente sobre negociación contractual
  • Respuesta ante el cambio sobre seguir un plan

 


Fuente: Manifiesto de Agile

El desarrollo de Agile se basa en procesos iteractivos e incrementales, donde los requisitos y las soluciones evolucionan a través de la colaboración entre equipos auto-organizadores y multifuncionales.

Estimula una respuesta rápida y flexible a las necesidades cambiantes, un factor vital para que trabajemos tan estrechamente con nuestros clientes.

Trabajamos en nuevas funcionalidades durante un ciclo de interacción llamado “Sprint”, que dura de dos a cuatro semanas.

Mediante la metodología de desarrollo Agile, nuestros clientes obtienen resultados rápidamente. Las peticiones de características específicas se discuten con nuestros clientes en los foros de usuarios. Si se acuerda en el foro y es técnicamente factible, la función es programada para un futuro Sprint.

 

ENFOQUE EN EL PROPIETARIO DEL PRODUCTO

La clave y el principal punto de contacto para que el cliente pueda centralizar las necesidades y los requisitos de las partes interesadas es el Propietario del Producto. Esta persona asume:

  • La rentabilidad del producto (Reenvolso de Inversión).
  • Definición de las características técnicas del backlog.
  • Priorizar características según el valor de negocio.
  • Decidir sobre la fecha de lanzamiento y el contenido.
  • Ajuste de características y prioridad en cada iteración, según sea necesario.
  • Aceptar o rechazar resultados del trabajo.

 

ENFOQUE EN EL SCRUM MASTER

El Scrum Master dentro del equipo de expertos es la persona clave responsable de implementar los valores y prácticas de Scrum:

  • Eliminar los impedimentos y proteger al equipo de desarrollo de las interferencias externas para asegurar que sean completamente funcionales y productivos.
  • Habilitar una estrecha cooperación en todos los roles y funciones.
  • Monitoreo, seguimiento y procesamiento.
  • Reporte y comunicación entre los diferentes colaboradores del proyecto.
  • Resolver conflictos dentro del equipo de desarrollo.
  • Dar retroalimentación del rendimiento.
  • Mejoramiento continuo del Equipo Scrum durante todo el proyecto.

 

El ENFOQUE EN EL EQUIPO DE DESARROLLO

  • Los equipos de desarrollo son el núcleo de la experiencia que ocurre a nuestro alrededor aquí. Son interfuncionales (Business Analyst, programadores, probadores, interfaz de usuario, diseñadores), y son responsables de desarrollar el producto.
  • Por lo general, nuestros equipos están compuestos por 5 a 9 personas, autoorganizados y altamente disciplinados para realizar el trabajo, a menudo deciden entre sí sobre sus roles y responsabilidades para el nuevo producto.
  • Nuestros socios y miembros del equipo son expertos en todas las últimas tecnologías y productos de software, combinados con sus conocimientos en muchos lenguajes de programación como: C, C ++, JAVA, Python, Ruby, Shellscript, Visual Basic, HTML, CSS, Swift C, Objective C junto con la experiencia en áreas como Android, iOS, Oracle, MySQL, Sybase, etc por nombrar algunos.

 

 

LA COMPARATIVA DE AMBOS METODOS