Mostrando las entradas con la etiqueta Desarrollo Ágil. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Desarrollo Ágil. Mostrar todas las entradas

Recursos para #programadores...

Comparto un excelente repositorio de documentos y enlaces a páginas Web, con buena información para los que desean profundizar en temas de programación y diseño Web. Algunos documentos están en PDF, listos para ser descargados.

Software Educativo

Se define de forma genérica, como aquellas aplicaciones o programas computacionales que facilitan el proceso "enseñanza-aprendizaje". Para algunos, se trata de cualquier software cuyas características estructurales y funcionales sirven de apoyo al proceso de enseñar y aprender, o que está destinado al autoaprendizaje, permitiendo el desarrollo de ciertas habilidades cognitivas. El software educativo incorpora elementos multimedia para la presentación y transmisión del contenido. Con el desarrollo de la tecnología Web, seguramente se replantearán nuevos desarrollos tecnológicos y mayor capacidad de interacción. 
Para profundizar recomiendo esta selección de artículos:
  • Ingeniería de Software Educativo >>
  • Dos conceptos tecnológicos: Software y Software Educativo >>
  • Calidad Sistémica del Software Educativo >>
  • Desarrollo de Software Educativo bajo Plataforma Web >>
  • Modelo de Evaluación de Software Educativo - cuatro dimensiones >> 

Métodos y Modelos (software)

En la lámina que les dejo, se muestra una lista de métodos conocidos para el desarrollo de software, junto con otra lista de modelos internacionales orientados a asegurar que el software sea de calidad. Con herramientas de búsqueda en la Web pueden conocer detalles de cada propuesta (ver lámina).

¿Elicitación de requisitos?

En Ingeniería de Software, la “elicitación” es el proceso aplicado para descubrir los requisitos que debe satisfacer una aplicación o sistema, utilizando técnicas para comunicarse con los clientes, usuarios y otras personas que tengan interés en el desarrollo del producto.

Este proceso demanda trabajo colaborativo entre ingenieros, analistas y usuarios expertos en el dominio del problema, para descubrir las necesidades reales y llegar a un acuerdo en cuanto a la visión y objetivos del producto a desarrollar. La intervención de un analista experto en el negocio es una buena práctica, para asegurar la definición y especificación de requisitos con alta calidad.

Algunas fuentes de información que sirven como insumo en el proceso de 
elicitación son:
  • Stakeholders: conformados por clientes, usuarios, expertos del dominio, además de grupos formales e informales. Incluye a todos los interesados e impactados con la implantación de una solución basada en software.
  • Documentos del negocio: constituido por actas de reunión, políticas, procedimientos, instrucciones de trabajo, formatos, etc.; relacionados con el área de negocio que demanda el producto software.
  • Documentos externos: formado por manuales de otro software similar, libros y artículos sobre temas relacionados, regulaciones y normativa legal, entre otros.
Al ejecutar el proceso de elicitación se obtienen los requisitos del negocio, del sistema, de usuarios; así como las reglas del negocio, las restricciones y los atributos de calidad esperados. Todos estos requisitos deben expresarse, en definitiva, en un documento de especificación de requisitos funcionales y no funcionales, que son la base para iniciar las etapas de diseño y construcción del producto.

¿Qué técnicas de elicitación de requisitos son las más comunes?


Entrevistas, encuestas/cuestionarios, JAD (Joint Application Development), brainstorming, casos de uso, historias de usuarios y prototipos. Estos últimos son esenciales para especificar y acordar el comportamiento visible del sistema (interfaz de usuario), por lo que pueden ser prototipos de baja fidelidad (mockups) o de alta fidelidad (funcionales).

Nota: el diccionario de la RAE no registra la palabra “elicitar”. En el campo de la Ingeniería de Software el término es común. En http://lema.rae.es/dpd/srv/search?key=elicitar dice: 
*elicitar. Adaptación innecesaria del verbo inglés to elicit, que aparece a veces en textos de psicología con el sentido que corresponde a los verbos españoles provocar, suscitar u obtener...

Desarrollo Ágil con KanBan

Una opción para configurar la forma de desarrollar software, es utilizar Kanban. Kanban es un método de desarrollo ágil que viene de la filosofía Lean Software Development (esta a su vez proviene del Lean Manufacturing).  Comparte con otras metodologías como Feature Driven Development o SCRUM la idea de crear un Backlog del producto que tenga una serie de items (user stories, feature) priorizados. Pero la principal diferencia con otras aproximaciones ágiles, es que en Kanban no existen las iteraciones.
En su lugar, Kanban se centra en controlar el WIP (Work In Progress). Es decir, cuando hay poco WIP, se añade el item más prioritario del Product Backlog, y se controla que nunca se supere una cierta cantidad de WIP. Dadas sus características, no se adapta a un desarrollo basado en entregas parciales; actualmente se utiliza en entornos de mantenimiento. Ver más sobre desarrollo ágil en http://es.wikipedia.org/wiki/Desarrollo_ágil_de_software