In [ ]:
"""
IPython Notebook v4.0 para python 2.7
Librerías adicionales: Ninguna.
Contenido bajo licencia CC-BY 4.0. Código bajo licencia MIT. (c) Sebastian Flores.
"""

# Configuracion para recargar módulos y librerías 
%reload_ext autoreload
%autoreload 2

from IPython.core.display import HTML

HTML(open("style/mat281.css", "r").read())






MAT281

Aplicaciones de la Matemática en la Ingeniería

Sebastián Flores

https://www.github.com/usantamaria/mat281

Clases anteriores

  • Visualización
  • Lab01 - Python Numérico

¿Qué contenido aprenderemos?

  • Relaciones interpersonales
  • Metodologías de desarrollo

¿Porqué aprenderemos ese contenido?

  • Relaciones interpersonales

La parte más difícil y conflictiva de un proyecto suele ser la parte humana. Aprender a manejar situaciones laborales y relaciones humanas es parte central del trabajo como ingeniero, sin embargo, ¡no se enseña!

  • Metodologías de desarrollo

Existen metodologías conocidas de desarrollo de proyectos que resulta conveniente conocer y utilizar.

Principio de Incompetencia de Peter

Principio de Hanlon

Ley de Parkinson

Principio de Incompetencia de Peter

En una jerarquía, todo empleado tiende a ascender hasta su nivel de incompetencia: la nata sube hasta cortarse.

Principio de Hanlon

Nunca atribuyas a la maldad lo que puede ser explicado por la estupidez.

Ley de Parkinson

El trabajo se expande hasta llenar el tiempo disponible para su realización.

Relaciones Interpersonales

Disclaimar

Copyright de contenido e imágenes: Dr. Tony Alessandra, creador de "The Platinium Rule".

Silver Rule

One should not treat others in ways that one would not like to be treated: No trates a otros en una forma que no quieras ser tratado.

Golden Rule

One should treat others as one would like others to treat oneself: Trata a otros en la misma forma que quieras ser tratado.

Platinium Rule

Treat others the way they want to be treated: Trata a otros en la forma que ellos quieren ser tratados

Relaciones Interpersonales - Platinium Rule

Enfoque reduccionista y simplista, pero sencillo de recordar y aplicar.

Hay 4 tipos básicos de personalidad:

  1. Pensador (Thinker)
  2. Director (Director)
  3. Relacionador (Relater)
  4. Sociabilizador (Socializer)

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

El "cliché":

  1. Pensador (Thinker): científico/contador.
  2. Director (Director): gerente/sargento.
  3. Relacionador (Relater): enfermero/sicólogo.
  4. Sociabilizador (Socializer): vendedor de autos/publicista.

Relaciones Interpersonales: Platinium Rule

1. Pensador - Thinker

¿Qué hacen bien?

  • Organizar y planificar.
  • Rápido para pensar, pero lento para hablar y actuar.
  • Trabajar individualmente.

¿Qué les cuesta?

  • Trabajar con gente desorganizada o en ambientes caóticos.
  • Hablar de temas personales.
  • Trabajar en grupo.
  • Instrucciones incompletas o confusas.

Relaciones Interpersonales: Platinium Rule

2. Director

¿Qué hacen bien?

  • Tomar el control.
  • Realizar decisiones bajo riesgo.
  • Sobreponerse a obstáculos.

¿Qué les cuesta?

  • Tareas repetitivas.
  • Ser diplomáticos.
  • Reglas y regulaciones.
  • No son tímidos, pero sí reservados de temas personales.

Relaciones Interpersonales: Platinium Rule

3. Relater - Relacionador

¿Qué hacen bien?

  • Amigables y sensibles: buenos oyentes.
  • Construir redes de amigos.
  • Coordinar y cooperar con otros.

¿Qué les cuesta?

  • Competir.
  • Trabajar con gente dictatorial o poco amigable.
  • Tomar decisiones grandes, propensos a rechazar los cambios.
  • Emitir opiniones contrarias.

Relaciones Interpersonales: Platinium Rule

4. Socializer - Sociabilizador

¿Qué hacen bien?

  • Inspirar a otros a tomar acción.
  • Pensar rápido: intuitivos, optimistas, creativos.
  • Llenos de ideas, pero impulsivos.

¿Qué les cuesta?

  • Restricciones.
  • Reportes formales o contabilidad.
  • Rutina.
  • Repetir acciones.

Ejercicio

Piensen en alguien (familiar, amigo, conocido, profesor, etc.) para cada tipo de personalidad.

Para relacionarse con cada tipo de personalidad hay que entregar lo que a la otra personalidad le parece importante.

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

Como enfrentar cada tipo de personalidad:

  1. Con Pensadores, sé detallado, bien preparado y paciente.
  2. Con Directores, sé eficiente y competente.
  3. Con Relacionadores, sé sincero y no amenazante.
  4. Con Sociabilizadores, interésate por ellos y sus historias.

Relaciones Interpersonales: Platinium Rule

Y ahora, el test.

Evaluación del test

  • Preguntas $4 \ i + 1$: Multiplicar por $+i$
  • Preguntas $4 \ i + 2$: Multiplicar por $-1$
  • Preguntas $4 \ i + 3$: Multiplicar por $-i$
  • Preguntas $4 \ i + 0$: Multiplicar por $+1$
  • Sumar puntajes de preguntas.
  • ¿Qué número complejo obtuvo?
  • ¿En qué parte del plano complejo se sitúa?

Relaciones Interpersonales: Platinium Rule

Relaciones Interpersonales: Platinium Rule

  • La personalidad que uno cree/quiere tener es distinta de la que los demás perciben de uno mismo.
  • Una misma persona puede presentar diversas personalidades: familia, trabajo, amigos.

Metodologías de Trabajo

  • Waterfall Develpment
  • Agile Development

Metodologías de Trabajo

Cascada (Waterfall):

  • Cliente define requerimientos al inicio y empresa cumple, etapa a etapa, con desarrollo especificado.
  • Orientado a proyectos de alta complejidad, con horizontes de tiempo de años.

Desarrollo Ágil (Agile):

  • Trabajo codo a codo con cliente mediante iteraciones constantes.
  • Orientado a proyectos de alta variabilidad, con horizontes de tiempo de semanas/meses.

Metodologías de Trabajo

Waterfall

Enfoque metodológico que ordena rigurosa4ente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.

Metodologías de Trabajo: Waterfall

Ventajas

  • Promueve análisis sobre improvisación: Definir antes que diseñar, diseñar antes de codificar.
  • Modelo tradicional: ampliamente conocido y utilizado con frecuencia.
  • Fácil de implementar, entender y dirigir.
  • Requiere de menos capital y herramientas para hacerlo funcionar de manera óptima.

Metodologías de Trabajo: Waterfall

Desventajas

  • Proyectos en el mundo real no son lineales; el cliente siempre tiene ideas adicionales. Involucrar tardíamente al cliente conlleva disconformidad y fracaso del proyecto.
  • Secuencialismo: etapa $i+1$ no se puede llevar a cabo a menos que se haya culminado la etapa $i$.
  • Demoras: No es posible paralelizar etapas y el software sólo puede validarse una vez que todas las etapas anteriores han finalizado.
  • Propenso a costos adicionales: errores no detectados en etapa $i$ conducen a cambios en todas las etapas posteriores ya realizadas.
  • Promueve respeto y obediencia sobre innovación y creatividad.

Relaciones Interpersonales: Platinium Rule

Metodologías de Trabajo

Agile

Enfoque metodológico que promueve el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan mediante la colaboración de grupos auto-organizados y multidisciplinarios.

Metodologías de Trabajo

Agile

Enfoque metodológico que promueve el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan mediante la colaboración de grupos auto-organizados y multidisciplinarios.

Metodologías de Trabajo: Ágil

Manifesto for Agile Software Development, 2001

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Metodologías de Trabajo: Ágil

  • Al individuo y las interacciones del equipo de desarrollo porsobre el proceso y las herramientas.

La gente es el principal factor de exito de un proyecto software.

Es más importante construir un buen equipo que construir el entorno de trabajo.

  • Desarrollar software que funciona por sobre que generar documentación extensiva.

La regla a seguir es no producir documentos a menos que sean necesarios de forma inmediata para tomar un decisión importante.

Estos documentos deben ser cortos y centrarse en lo fundamental.

Metodologías de Trabajo: Ágil

  • La colaboración con el cliente por sobre la negociación de un contrato.

Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo.

Esta colaboración será crucial para el éxito del proyecto.

  • Responder a los cambios por sobre seguir estrictamente un plan.

La habilidad de responder a los cambios que surgirán durante del proyecto (cambios en los requisitos, en la tecnología, en el equipo humano, etc.) determina el éxito o fracaso del proyecto.

Metodologías de Trabajo: Ágil

Principios básicos

  • La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor.
  • Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
  • Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
  • La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto. El cliente es un aliado, no un enemigo.

Metodologías de Trabajo: Ágil

Principios básicos

  • Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
  • El diálogo cara a cara es el mejor método para comunicar información dentro de un equipo de desarrollo.
  • El software que funciona es la medida principal de progreso. La simplicidad es esencial.

Metodologías de Trabajo: Ágil

Ventajas

  • Respuesta rápida a cambios de requisitos, minimizando costos, tiempo y frustración.
  • Efecto IKEA: el cliente se involucra y tiene una mejor satisfacción sobre el resultado final.
  • Al privilegiar la simplicidad se eliminan trabajos innecesarios/superfluos.
  • Permite paralelizar requerimientos y validar implementaciones por separado.
  • Puesto que el software es siempre “casi funcional” permite mantener proyecto en costo acordado. Siempre es posible parar el proyecto en la iteración actual.
  • Promueve innovación y creatividad sobre respeto y obediencia.

Metodologías de Trabajo: Ágil

Desventajas

  • Falta de documentación del diseño.
  • Problemas derivados de la comunicación oral: ambiguedad y futilidad.
  • Alta dependencia a las personas del equipo.
  • Restricciones en cuanto al tamaño y la complejidad de los proyectos.

Metodologías de Trabajo

Agil versus Cascada

  • Adaptividad vs. Predictibilidad
  • Iterativo vs. Secuencial
  • Código vs. Documentación

Metodologías de Trabajo

Interpretación del éxito de metodología ágil

La Metodología Agil puede interpretarse como una aplicación del principio de Pareto (ley del 80-20), que dice que, para muchos eventos, aproximadamente 80 % de los efectos proviene del 20 % de las causas.

Reuniones tempranas con el cliente permite determinar cuáles son las causas de mayor impacto y establecer una ruta óptima de construcción en función de los requerimientos cambiantes del cliente.

Metodologías de Trabajo

Aplicacion en Ingeniería

  • Tener reuniones pequeñas reuniones semanales es mejor que una gran reunión mensual.
  • Mejorar incrementalmente informe e implementación numérica.
  • El cliente tiene derecho cambiar de opinión: ¡Está pagando por ello!

Metodologías de Trabajo

Aplicacion en Vida Universitaria

En tareas y proyectos:

  • Tener lo antes posible un entregable que garantice el 50-70 % de la nota.
  • Mejorar incrementalmente el entregable, en función del tiempo disponible y del esfuerzo requerido.
  • Si se requiere código numérico, preocuparse del código hasta que funcione, luego documentar.
  • El profesor es el cliente: preguntar con tiempo y hasta clarificar. Lo esencial es cumplir los requerimientos.