D
E UNA IDEA A UN PROTOTIPO
Gabriela Robiolo1
Facultad de Ingeniería, Universidad Austral
Ejercicio 1. Selección de una idea innovadora Competencias
Identificar oportunidades: estimular la necesidad de presentar una idea innovadora obliga a identificar oportunidades y necesidades de los usuarios no satisfechas tanto de productos existentes como de posibles productos.
Tomar decisiones: en forma individual (selección del grupo) o grupal (aceptación de la idea).
Creatividad e innovación: son necesarias para concebir una idea innovadora, que es propósito de esta actividad.
Trabajo en equipo: los alumnos experimentarán la sinergia de pensar en grupo.
Liderazgo: se construirá a partir de una idea en particular, la persona que logra vender la idea a un grupo suele ser el líder del grupo.
Captación de recursos: para llevar adelante una idea se necesita convencer a otros, de las ventajas del producto a desarrollar y de las condiciones en las cuales se va a trabajar.
En torno a una idea innovadora.
En esta actividad se espera que un grupo de alumnos desarrolle el prototipo de un producto de software partiendo de una idea propuesta por ellos mismos. El objetivo es diseñar un sistema que cumpla con las características del desarrollo de un producto complejo, en el que se puedan vislumbrar las consecuencias y beneficios de un desarrollo de alta complejidad, resuelto desde el punto de vista de la ingeniería de software.
Al mismo tiempo, se pretende desarrollar competencias que luego faciliten al alumno su incorporación a empresas innovadoras, y para crear nuevos productos en un contexto innovador. Las competencias a promover son: identificación de oportunidades, captación de recursos, toma de decisiones, creatividad e innovación, aprendizaje continuo, capacidad de enfocarse, sociabilidad, ejecución, trabajo en equipo y liderazgo. Las actividades están pensadas para ser desarrolladas en un curso completo de 32 semanas.
Los alumnos tienen libertad para exponer a pequeños grupos o a la totalidad de los alumnos del curso las ideas innovadoras y creativas que han pensado. La diferencia entre idea creativa e innovadora radica en que la segunda tiene un posible mercado donde se podría comercializar. Se deberá desarrollar un prototipo de un software nuevo susceptible de ser vendido. Todo producto nuevo tiene que tener al menos un aspecto creativo o diferenciador del resto de los productos que existan en el mercado.
Cada grupo presentará:
1. La idea innovadora seleccionada.
2. Los integrantes del grupo de trabajo (integrado por 3, 4 o 5 alumnos). 3. El líder del grupo (optativo).
Recomendaciones generales para el docente
Promover un ambiente creativo. Pensar un producto nuevo tiene que ser divertido; lo natural es que se capte tiempo ocioso (por ejemplo, los traslados en colectivo, las charlas en el bar). Las mejores ideas surgen en los momentos más imprevistos. Hay que lograr que los alumnos tengan en mente el producto que van a crear.
No imponer el estilo de liderazgo. Cada grupo se comporta en forma diferente y algunos grupos tienen un líder indiscutible ya sea por ser el mejor alumno, ser el de más edad, tener más experiencia o por su personalidad. Otros grupos son más parejos y el líder se va desarrollando naturalmente a lo largo del curso. En algunos grupos, el liderazgo está distribuido: cada uno lidera un aspecto. Al mismo tiempo se aconseja potenciar equipos con un alto nivel de integración y cohesión, alta empatía y ayuda mutua, y liderazgo compartido, que permita la búsqueda de consenso.
Dar margen al equipo para equivocarse. Es natural que esto ocurra mientras se toman decisiones, en la medida que no afecte la aprobación de la materia. Será importante promover la reflexión sobre aciertos y errores cometidos.
Se recomienda no intervenir, a menos que exista algún conflicto. Los alumnos trabajan mejor si se les da libertad para elegir el producto a desarrollar y los integrantes de los equipos. Igualmente, es conveniente que el docente haya previsto algunos productos posibles de ser desarrollados. En general, los grupos son creativos, pero a veces es necesario orientarlos.
Criterio de aprobación de la idea
La idea tiene que ser viable de desarrollarse en el contexto de la materia. No tiene que ser ni demasiado fácil ni demasiado compleja de desarrollar. Tiene que resultar un desafío para el alumno. Les debe permitir aplicar los conocimientos adquiridos en las materias de años anteriores y aplicar los conocimientos relativos a ingeniería de software. Normalmente, esto se resuelve ajustando el alcance del proyecto:
a. Tiene que ser un producto nuevo.
b. Debe dar la posibilidad de usar tecnología de última generación.
Bibliografía sugerida
Ponti, F., Los siete movimientos de la innovación, Grupo Editorial Norma, 2010.
Ejercicio 2. Transformación de una idea innovadora en un producto de software Competencias
Identificar oportunidades: la solución de un problema o alguna necesidad no satisfecha puede ser un buen punto de partida para crear algo interesante. Los puntos b y d de este ejercicio tienen esta finalidad.
Tomar decisiones: los alumnos experimentarán que la definición del producto implica una serie de decisiones encadenadas.
Creatividad e innovación: se solicita al alumno que aprenda de empresas y productos innovadores, teniendo una visión amplia (punto c), y no solamente del entorno informático puesto que un producto de software exitoso debe responder también a tendencias del mercado (punto e). Al mismo tiempo, es posible innovar aplicando en ámbitos o productos distintos aspectos que ya existen o han dado resultado en un ámbito o producto diferente.
Trabajo en equipo: concretan una idea con el aporte de todos.
Liderazgo: los aportes de cada uno y la forma en que deciden irán construyendo el liderazgo.
Definición del producto de software
En esta etapa se solicita la definición del producto de software. a. Breve descripción del producto.
b. Identificación del problema/oportunidad. Complete la siguiente tabla: El problema /
oportunidad Afecta El impacto es
Una solución exitosa sería
c. Empresas innovadoras de Buenos Aires (no necesariamente de software). Complete la siguiente tabla (10 empresas).
Empresa Aspecto innovador Muestre de forma visual el aspecto
Producto, servicio, atención al cliente, carteles
Fotos, entrevistas (video), publicidad, dibujos, etc.
d. Características generales y diferenciales del nuevo producto software. Complete la siguiente tabla:
Para Identificar las personas o entidades para quienes se desarrolla el producto.
Quiénes Caracterizar a los posibles compradores.
Nombre del producto nuevo
Crear un nombre que represente al producto, con la posibilidad de que sea comercializado con ese nombre.
Qué Enunciar la característica más destacada del
nuevo producto.
A diferencia de Mencionar los productos que serían su competencia o tienen características similares, indicar las páginas web de los productos.
Nuestro producto Especificar las características diferenciales.
e. Tendencias. Individualice las tendencias del sector del mercado al que va dirigido el producto. Complete la siguiente tabla:
Tendencias Empresa Producto
Seleccionar productos que
muestren tendencias. Ejemplo: iPod, librería con cafetería, ropa informal, valor al tiempo libre, colores, Apple, los productos a tu casa, accesibilidad a Internet, etc.
f. Usuarios del sistema. Complete la siguiente tabla:
Nombre Descripción Responsabilidades Entorno del usuario
g. Identificación de las necesidades de los usuarios.
Necesidad Prioridad A quién
afecta
Solución actual
Solución propuesta
h. Identificar premisas o supuestos. Describir las premisas o supuestos sobre los cuales se basa la definición del producto.
i. Identificar dependencias. Describir las dependencias con otros productos a usar, tecnologías o personas con las que se debe trabajar. j. Características del producto. Detalle las características que tiene el
producto software.
k. Describa otros requerimientos del producto que no se hayan detallado anteriormente y son importantes para su definición.
Criterio de aprobación del producto
Claridad y completitud del informe.
Bibliografía sugerida
Bittner, K and Spence, I. Use case modeling, Addison-Wesley, 2004; http://www.amazon.com/Use-Case-Modeling-Kurt-Bittner/dp/0201709139.
Ejercicio 3. Selección del ambiente de implementación del producto Competencias
Captar recursos técnicos: este ejercicio tiene como finalidad preparar el ámbito de trabajo, por lo que se focaliza en este aspecto.
Tomar decisiones: es necesario lograr consenso para seleccionar una alternativa.
herramientas necesarias para trabajar en equipo, los recursos son compartidos y se disponen de medios con los que quizás en forma individual no se cuenten.
Sociabilidad: promueve la identificación de foros de usuarios y consulta de referencia de los productos.
Liderazgo técnico: surgirá a partir de la persona con más conocimiento o interés por las herramientas.
Selección de productos de software libre, hardware y dispositivos a ser utilizados en el desarrollo del producto
Se da por supuesto que tanto el hardware a usar están disponibles en los laboratorios de la Facultad o son propiedad de alguno de los integrantes del equipo.
a. Analice alternativas por necesidad. Complete la siguiente tabla:
Necesidad Producto Fortaleza Debilidad Riesgo
b. Valore las alternativas. Puede agregar algún aspecto que considere importante para el desarrollo de su producto. En caso de agregarlo, redefina el peso de cada aspecto de forma tal de que el total sea igual a 1. La mejor alternativa será el producto que tenga el mayor valor total. Complete la siguiente tabla:
Aspecto Peso Alternativa 1
(valores de 1 a 10)
Alternativa 2 (valores de 1 a 10) Facilidad de uso 0,20 Peso x Valor de
alternativa
Peso x Valor de alternativa
Documentación 0,10 Foros de usuarios 0,10
Referencias del producto 0,20 Satisface mis necesidades 0,30 Grado de experiencia ya adquirida 0,10
Total 1 Suma Suma
c. Acciones para administrar el riesgo. Determine las acciones para mitigar, controlar o eliminar el riesgo del producto seleccionado e identifique a la persona responsable de realizarlas. Complete la siguiente tabla:
Riesgos Acciones Responsable
Criterio de aprobación: racionalidad del criterio aplicado.
Ejercicio 4. Selección del método de desarrollo y definición del plan de trabajo Competencias
Tomar decisiones: la decisión del método de desarrollo es muy importante para el éxito del proyecto.
Trabajo en equipo: el ejercicio favorece la búsqueda de consenso.
Liderazgo: la argumentación de cada alumno va construyendo el liderazgo.
Plan y método de desarrollo
a. Selección de la metodología de desarrollo (Unified Process (UP),
Extreme Programming (XP) o Scrum). Justifique la selección del método de desarrollo.
b. Realice la adaptación del cronograma al producto y al equipo de desarrollo.
Metodología UP
Semana Duración de cada clase: 3 horas Primer cuatrimestre
1 Distribución de grupos. Designación de líderes. Selección de ideas. 2 Definición del producto software.
3 Selección de los productos a usar, metodología de desarrollo y plan.
4 Diagramas de actividad, de secuencia (otro diagrama muy útil) y de estado. Diagramas de casos de uso.
5 Especificación de los casos de uso.
6 Descripción de las pantallas. Diseño de interfaces con otros sistemas.
7 Entrega final de requerimientos. 8 Correcciones.
9 Diagramas de secuencia de casos de uso de arquitectura. 10 Diagrama de clases. Modelo de tablas.
11 Casos de prueba de los casos de uso de arquitectura. 12 Consulta.
13 Entrega final del diseño. 14-16 Correcciones.
Segundo cuatrimestre
1 Ambiente de implementación. Planteo del prototipo de arquitectura.
2-7 Codificación.
8 Primera entrega del prototipo. 9-12 Codificación. Testing.
13 Diagrama de arquitectura. 14 Entrega final.
15 Correcciones. 16 Evaluación final. Metodología XP o Scrum
Semana Duración de cada clase: 3 horas Primer cuatrimestre
1 Distribución de equipos. Designación de líderes. Selección de ideas.
2 Definición del producto de software
3 Selección de los productos a usar, metodología de desarrollo y plan de trabajo.
4-9 Comienzo primer sprint. 10-16 Segundo sprint. Segundo cuatrimestre 1-5 Tercer sprint. 6-10 Quinto sprint. 11-15 Sexto sprint. 16 Evaluación final Criterio de aprobación
Racionalidad del criterio aplicado
Bibliografía sugerida
Heumann, Jim., Generating Test Cases From Use Cases. Rational Edge, 2006; http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jun01/Ge neratingTestCasesFromUseCasesJune01.pdf.
Ejercicio 5. Manos a la obra Competencias
Creatividad e innovación: la creatividad e innovación no solamente se desarrollan en la selección y definición de un producto, sino que es una actitud importante para la etapa de ejecución.
Enfocarse: en general, en un proyecto de este tipo es la primera vez que los alumnos sostienen un trabajo conjunto para desarrollar un producto; esto implica la necesidad de enfocarse en unos objetivos concretos a realizarse en un tiempo y forma determinado. Ejecución: completar cada tarea en tiempo y calidad lleva a finalizar el proyecto, con las características deseadas.
Trabajo en equipo: valorar la comunicación, división de tareas y fortalecer el grado de compromiso.
Liderazgo: potenciar el equipo.
Ejecución del cronograma. Desarrollo del producto según las especificaciones establecidas y el tiempo definido
a. Enriquecer el producto. Cada alumno presentará en forma visual tres aspectos que no son esenciales para el producto pero que pueden mejorarlo. Ejemplos: el ícono que más me gusta, la música que más me gusta, el juego más divertido, el color más atrayente, el negocio al que volvería solo por disfrutar el lugar, entre otras posibilidades. Completar la siguiente tabla:
Producto Aspecto Cómo se incorpora al
producto
(al menos tres) Qué se destaca del producto Describir la forma en que ha enriquecido el producto
b. El profesor asumirá el rol del cliente. Puede modificar alguna de las especificaciones establecidas durante la ejecución del proyecto. Los alumnos deberán evaluar el cambio solicitado y negociarán con el cliente un posible cambio en la fecha de entrega o el alcance del sistema. Los cambios solicitados por el cliente y las modificaciones introducidas al plan deben quedar documentadas. Si no se documentan se asume que son válidas las fechas de entrega originales.
c. Los alumnos llevarán un registro de las horas trabajadas. Los grupos de Scrum y XP deben usar la herramienta Scrumy (www.scrumy.com) para la definición de las user stories y sus tareas, la estimación de los tiempos de las tareas y el registro de las horas trabajadas.
d. Análisis de la productividad del grupo. Al finalizar el proyecto se calculará la productividad del equipo. La productividad será calculada como el cociente entre las transacciones implementadas por los
miembros del equipo y las horas trabajadas de los alumnos. Se compararán las productividades alcanzadas por los diferentes grupos y se analizarán las causas de las variaciones en productividad. La productividad no afectará directamente la nota de calificación del trabajo. Interesa que se realice un registro cierto de las horas trabajadas. Se evaluará el análisis de la productividad alcanzada: problemas, circunstancias que afectaron el desarrollo del producto, soluciones planteadas, etc.
Las transacciones implementadas se contarán identificando cada transacción a partir del estímulo del actor al sistema hasta la respuesta del sistema dada al actor. Ejemplo: cada botón que dispara una ejecución del sistema define una transacción, cada intervención del actor que responde a un requerimiento del sistema define una transacción.
Evaluación de la calidad del diseño: Al finalizar el proyecto el profesor propondrá diez cambios a realizar en el diseño y se contarán las clases que son afectadas por estos cambios. No se contarán como clases afectadas por los cambios aquellas clases que se agregan a una jerarquía de clases u otras clases nuevas que se agregan al diseño. Sólo se contarán las clases que son necesarias modificar. Se compararán los resultados de los diferentes proyectos y se determinará el sistema que tiene el mejor diseño. Se considera un mejor diseño el proyecto que tiene menor número de número de clases afectados por los cambios.
Para el docente
Ejecución del cronograma: Las fechas pactadas se deben cumplir. En caso de surgir un inconveniente se negociará con el profesor un cambio. Lo normal tiene que ser que los tiempos se cumplan. Si no se cumplen, se disminuirá la nota de la entrega.
Estilo de conducción: El estilo del profesor dependerá del método de desarrollo que se ha seleccionado. En UP, controlará las entregas y guiará al equipo en la distribución de las tareas. En Scrum y XP, participará en las reuniones de evaluación y definirá prioridades; dará más libertad al equipo para que planifique y estime a riesgo de equivocarse. El error en las estimaciones de los tiempos es parte del aprendizaje.
Es importante crear en los alumnos la conciencia de que el tiempo invertido en el desarrollo tiene un costo que alguien lo tiene que asumir. El hábito de registrar las horas trabajadas ayuda a mejorar las estimaciones. Las estimaciones de tiempo de desarrollo son importantes para estimar el costo del producto. El análisis de la productividad lleva a analizar los aciertos y errores cometidos.
Criterio de aprobación: Grado de completitud del producto (para aprobar debe estar completado al menos un 80% del producto especificado en los puntos 1-4). Incidirán en la nota de la etapa: cumplimiento del cronograma, calidad del producto, motivación, sinergia del equipo, persistencia en el tiempo, criterio al evaluar errores y aciertos.