Este documento propone una solución para mejorar el ciclo de vida de desarrollo de software en Tracasa utilizando la metodología ágil Scrum y las herramientas de Microsoft .NET. Se describe Scrum, la arquitectura de Microsoft y cómo Team Foundation Server puede satisfacer las necesidades de gestión del ciclo de vida de aplicaciones. También incluye los costos estimados y presenta un ejemplo de prototipo de ascensores desarrollado en 3 semanas usando Scrum.
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Propuesta de metodología ágil y arquitectura .NET para mejorar el ciclo de vida de desarrollo de software en Tracasa
1.
2. 2
INDICE
EMPRESA: TRACASA 3
SITUACIÓN ACTUAL 3
PROBLEMA 4
PROPUESTA / SOLUCIÓN 4
METODOLOGÍA A UTILIZAR 4
SCRUM (METODOLOGÍA ÁGIL) 4
ARQUITECTURA 6
METODOLOGÍA + TECNOLOGÍA 7
COSTOS 8
EJEMPLO: PROTOTIPO SOFTWARE (ASCENSORES) 10
ALCANCE Y LIMITACIONES 10
METODOLOGÍA UTILIZADA 10
DIAGRAMAS 10
CASOS DE USO 10
DE ACTIVIDAD 11
DE CLASES 12
ESTRUCTURA DE LA SOLUCIÓN 13
PANTALLAS DE LA EJECUCIÓN 13
CONCLUSIONES Y/O RECOMENDACIONES 14
3. 3
Tracasa es una empresa pública especializada en la prestación de servicios basados en el uso de la
información territorial y las tecnologías de la información y las telecomunicaciones, tanto para las
administraciones públicas como privadas, contribuyendo a la innovación y el desarrollo del sector.
El acuerdo del Gobierno de Navarra sobre la creación de la nueva sociedad Trabajos Catastrales
S.A. tiene fecha del 25 de marzo de 1982, por lo que Tracasa cuenta ya con 26 años de actividad y
reconocimiento internacional, además de haber alcanzado importantes logros empresariales.
El origen de la empresa fue consecuencia de la falta de iniciativa privada en estas áreas y con el fin
de dar respuesta a una necesidad de la sociedad navarra.
Tracasa desarrolla su actividad con la visión de ser una compañía de referencia en servicios de
información territorial y en el ámbito de servicios y soluciones para la modernización de las
administraciones, mediante el reconocimiento de sus clientes por el valor aportado y por sus
empleados como el mejor lugar para desarrollarse profesionalmente.
SITUACIÓN ACTUAL
Cuenta con una plantilla cercana a los 350 empleados y desarrolla sus actividades en
Europa, África y América.
Las líneas de actividad son las siguientes:
Sistemas de Información Territorial: Proporcionamos soluciones tecnológicas
orientadas a la Gestión Territorial en el ámbito público o privado en diversos sectores:
Medioambiente, Urbanismo y Ordenación Territorial, Agricultura, Forestal, Turismo,
Utilities, Emergencias-Interior, Cartografía, Catastro.
Ingeniería de Software y Sistemas de Información: Diseñamos, desarrollamos,
mantenemos y operamos Soluciones avanzadas en el ámbito de las Tecnología de
Información y Comunicaciones (TIC).
Servicios de Información y Tratamientos de Datos: Contamos con un equipo de 50
profesionales especializados en ofrecer servicios de Centro de Contacto a nuestros
clientes mediante una plataforma multicanal. Ofrecemos servicios de: Call Center,
Servicio de Atención Presencial al Ciudadano, Servicio de Tratamiento de datos y
Servicio de Escrituras.
4. 4
PROBLEMA
Su acreditada experiencia en servicios para la administración pública y, sobre todo, la
eficiencia demostrada en proyectos nacionales e internacionales hicieron que Tracasa
creciera rápido en poco tiempo, tanto en el número de proyectos como en su complejidad.
Ante esta situación, los responsables de Tracasa se planten la necesidad de acometer un
proyecto de mejora del ciclo de las aplicaciones que les permitiera ser más ágiles y
productivos, y responder con calidad y eficacia a sus clientes.
Se quiere mejorar el ciclo de vida de desarrollo de software, buscar convertirlo en un
proceso sistematizado e industrializado y que permita responder con calidad y
transparencia, algo muy importante en la empresa pública, a las necesidades de los
clientes. El objetivo es lograr la máxima excelencia de todos los procesos que realizan, con
la intención de ser los mejores y estar siempre alineados con las tendencias del sector y
del mercado.
PROPUESTA / SOLUCIÓN
A continuación, se describen y destacan los elementos de esta propuesta, en donde, de acuerdo a
lo solicitado por el cliente. Se recomienda metodología de programación y arquitectura
tecnologíca para cumplir con lo solicitado y que necesita Tracasa.
METODOLOGÍA A UTILIZAR
Se recomienda el uso de metolodías ágiles, principalmente Scrum, por el alto conocmiento
del área, incluyendo el manejo de herramientas de programación relacionadas, por lo cual
se tiene equipos de trabajo de alto desempeño.
SCRUM
Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas
prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible
de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un
estudio de la manera de trabajar de equipos altamente productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el
beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente
indicado para proyectos en entornos complejos, donde se necesita obtener resultados
pronto, donde los requisitos son cambiantes o poco definidos (totalmente en Tracasa),
donde la innovación, la competitividad, la flexibilidad y la productividad son
fundamentales.
Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente
lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la
calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia,
cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y
solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un
proceso especializado en el desarrollo de producto.
5. 5
En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones de un
mes natural y hasta de dos semanas, si así se necesita). Cada iteración tiene que
proporcionar un resultado completo, un incremento de producto final que sea susceptible
de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.
Figura 1. Proceso Scrum
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa
como plan del proyecto. En esta lista el cliente prioriza los objetivos balanceando el valor
que le aportan respecto a su coste y quedan repartidos en iteraciones y entregas. De
manera regular el cliente puede maximizar la utilidad de lo que se desarrolla y el retorno
de inversión mediante la replanificación de objetivos del producto, que realiza durante la
iteración con vista a las siguientes iteraciones.
Las actividades que se llevan a cabo en Scrum son las siguientes:
Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos
partes:
1. Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de
requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas
que surgen y selecciona los requisitos más prioritarios que se compromete a
completar en la iteración, de manera que puedan ser entregados si el cliente lo
solicita.
6. 6
2. Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la
iteración necesarias para desarrollar los requisitos a que se ha comprometido. La
estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se
autoasignan las tareas.
Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). Cada
miembro del equipo inspecciona el trabajo que el resto está realizando (dependencias
entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir
este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el
compromiso adquirido. En la reunión cada miembro del equipo responde a tres preguntas:
¿Qué he hecho desde la última reunión de sincronización?
¿Qué voy a hacer a partir de este momento?
¿Qué impedimentos tengo o voy a tener?
Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda
cumplir con su compromiso y de que no se merme su productividad.
Elimina los obstáculos que el equipo no puede resolver por sí mismo.
Protege al equipo de interrupciones externas que puedan afectar su
compromiso o su productividad.
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos
partes:
1. Demostración (4 horas máximo). El equipo presenta al cliente los requisitos
completados en la iteración, en forma de incremento de producto preparado para ser
entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los
cambios que haya habido en el contexto del proyecto, el cliente realiza las
adaptaciones necesarias de manera objetiva, ya desde la primera iteración,
replanificando el proyecto.
2. Retrospectiva (4 horas máximo). El equipo analiza cómo ha sido su manera de trabajar
y cuáles son los problemas que podrían impedirle progresar adecuadamente,
mejorando de manera continua su productividad. El Facilitador se encargará de ir
eliminando los obstáculos identificados.
ARQUITECTURA
Se plantea el uso de las herramientas de Microsoft .NET, las cuales van desde un entorno
integrado de Desarrollo (Visual Studio), los sistemas operativos de clientes, usuarios y
trabajadores, así como de servidores (Windows y Windows Server), administrador y gestor
de base de datos (SQL Server) y servicio de almacenamiento y equipos de trabajo en la
nube (Microsoft Azure).
7. 7
Figura 2. Arquitectura Microsoft.NET
Microsoft Visual Studio
Visual Studio es un completo entorno de desarrollo integrado para crear aplicaciones
espectaculares para Windows, Android e iOS, además de aplicaciones web y servicios de
nube innovadores.
Herramientas y servicios para proyectos de cualquier tamaño o complejidad
C#, Visual Basic, F#, C++, Python, Node.js and HTML con JavaScript
Planificación de sprint
Depuración y creación de perfiles avanzadas, pruebas automatizadas y manuales
Microsoft SQL Server
Es un sistema de manejo de bases de datos del modelo relacional, desarrollado por la
empresa Microsoft. El lenguaje de desarrollo utilizado (por línea de comandos o mediante
la interfaz gráfica de managment studio) es Transact-SQL (TSQL), una implementación del
estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear
tablas y definir relaciones entre ellas (DDL).
Microsoft Azure
Azure es la plataforma de informática en la nube de Microsoft, una colección cada vez
mayor de servicios integrados (análisis, proceso, bases de datos, móviles, redes,
almacenamiento y web).
METODOLOGÍA + TECNOLOGÍA
En la actualidad, las empresas buscan optimizar sus procesos y reducir costos. En muchos
negocios surge la necesidad de gestionar proyectos, hacer seguimiento de los mismos,
tener en claro las actividades realizadas y los entregables o productos liberados de los
mismos; además, es importante probar que todo cumpla con lo requerido, obteniendo un
resultado eficiente y de alta calidad.
8. 8
Así mismo, esto no termina en la entrega del producto final sino que también debemos
rescatar las experiencias para seguir mejorando, monitoreando que nuestro producto
satisface las necesidades surgidas en el proceso, dar mantenimiento y ofrecer mejoras o
actualizaciones de acuerdo a diferentes contextos que se planteen.
Todo lo descrito también aplica al negocio del software. Es a partir de esto que nace la
Gestión del Ciclo de Vida de las Aplicaciones (Application LifeCycle Management – ALM)
ALM es un proceso continuo de la gestión de la vida de una aplicación a través de la
gobernanza, desarrollo y mantenimiento. ALM es el enlace de la gestión empresarial con la
ingeniería de software que brinda las herramientas que facilitan e integran la gestión de
requerimientos, la arquitectura, codificación, pruebas, seguimiento y versiones.
Dentro de esta definición podemos encontrar 3 puntos clave íntimamente conectados:
Gobernanza: asegurarse que la aplicación siempre provea lo que el negocio
necesite.
Desarrollo: la parte fundamental de ALM. Es la construcción del producto a
generar, que ocurre periódicamente en varias fases o iteraciones.
Operaciones: el planeamiento y ejecución del despliegue y monitoreo de la
aplicación.
Bajo todos estos puntos, una de las soluciones más completas y utilizadas en el mercado
es Team Foundation Server (TFS) de Microsoft, el cual engloba procesos, gestión de
proyectos, compilaciones, monitoreo, control de versiones, entre otras. En este gráfico
podemos visualizar en resumen cómo es que TFS, en conjunto con las herramientas de
desarrollo Visual Studio, de gestión Office, prototipado SketchFlow y gestión de
documentos de proyecto en SharePoint, entre otras, llega a satisfacer lo que buscan las
empresas con ALM.
Team Foundation Server
Visual Studio Team Foundation Server (TFS) es la plataforma de colaboración en el núcleo
de la solución de administración del ciclo de vida de las aplicaciones (ALM) de Microsoft.
TFS admite prácticas ágiles de desarrollo, varios IDE y plataformas de manera local o en la
nube y le proporciona las herramientas que necesita para administrar de manera eficaz los
proyectos de desarrollo de software a lo largo del ciclo de TI.
COSTOS
La plataforma de Microsoft propuesta para la Empresa, incluye los siguientes costos:
Microsoft Windows 10 Pro $ 199.99 / pc
Microsoft SQL Server 2014 (Enterprise) $ 14,256
Microsoft Azure
(App Service, Virtual Machines, SQL Database, Storage) $ 98.75 / mensual
Microsoft Visual Studio Enterprise con MSDN $ 5,999
9. 9
Microsoft Windows Server (Centro de Datos) $ 6,155
De igual manera, se incluye adiestramiento en la incorporación de Metodologías Ágiles a
través de la plataforma de Visual Studio, ya que existe conocimientos de programación y
de uso de las herramientas planteadas.
Adiestramiento al personal $ 5,000
Nota: Team Foundation Server, viene incorporador en el Visual Studio Enterprise.
10. 10
EJEMPLO: PROTOTIPO SOFTWARE (ASCENSORES)
ALCANCE Y LIMITACIONES
Se presenta una demostración de la metodología y las herramientas tecnologícas
presentadas, para llevar a cabo el desarrollo de un proyecto de software. En este caso
presentamos una simulación del manejo de dos (02) ascensores ubicados en un edificios
de cinco (05) pisos, utilizando la plataforma de Microsoft.NET.
Esto sin poseer conocimiento previo de la lógica de funcionamiento de los sistemas de
control de los ascensores en la actualidad.
El tiempo de desarrollo de la solución, es de tres (03) semanas.
METODOLOGÍA UTILIZADA
Se utiliza SCRUM como metodología para el desarrollo del prototipo, ya que es una
metodología ágil para programar y/o planificar entregables en corto plazo, de acuerdo a
cada una de las iteraciones que se hagan del proceso de desarrollo. Es importante
destacar, que los miembros del equipo de desarrollo (4 personas), se encargaron de
conformar un equipo multidisciplinario para poder llevar a cabo el proyecto, en todas sus
fases (análisis, diseño, codificación y pruebas), en tan poco tiempo.
A continuación se presenta la solución desglosada en los distintos diagramas que se
explican a continuación, esto como consecuencia de una iteración del ciclo de SCRUM
donde tenemos un entregable (solución que incluye código fuente) y la documentación
previa del análisis y diseño que permitió la construcción de la solución.
DIAGRAMAS
CASOS DE USO
Figura 3. Diagrama de Casos de Uso
11. 11
En el Diagrama de Casos de Uso realizado (Figura 3), se muestran los casos de uso
que tendrá el usuario con el Sistema, ya que es una simulación, es poca la
intervención que tendrá. Por lo tanto, se refleja las distintas funciones del Maestro
Ascensor, ya que es el que gestionará la simulación en sí, a pesar de ser parte del
sistema, es importante destacar las distintas funciones que integrará para poder
interpretar por el cliente.
DE ACTIVIDADES
A continuación, se muestran los distintos diagramas de actividades, de acuerdo a
lo que se tiene como casos de uso del sistema.
Figura 4. Diagrama de Actividad 1 (Caso de Uso Indicar Piso Origen)
Figura 5. Diagrama de Actividad 2 (Caso de Uso Indicar Piso Destino)
Figura 6. Diagrama de Actividad 3 (Caso de Uso Pausar Simulación)
Figura 7. Diagrama de Actividad 4 (Caso de Uso Recibir Solicitudes)
Figura 8. Diagrama de Actividad 5 (Caso de Uso Incluir en Lista Solicitudes)
12. 12
Figura 9. Diagrama de Actividad 6 (Caso de Uso Mover Ascensores según Solicitudes)
DE CLASES
De acuerdo al análisis realizado, el diagrama de clases, se incorpora como Diseño
de la Solución, ya que se incorporan elementos que ayudaran a no solo manejar la
información, sino incorporar elementos que ayudarán en sí a la interfaz de usuario.
Figura 10. Diagrama de Clases
13. 13
ESTRUCTURA DE LA SOLUCIÓN
La solución a través de Microsoft Visual Studio esta estructurada de la siguiente manera:
- Clases (Objetos generales de la Solución, y las referidas al manejo de solicitudes y al
proceso de la simulación).
o clFunciones
o clProceso
o clSolicitud
- Controles (Objetos que manejan la información y la interfaz de usuario, a través de los
User Control del entorno de programación).
o ucCola
o ucEdificio
o ucEjecutando
o ucIndicador
o ucPanel
o ucPuerta
- Resources o Recursos (Imágenes y otros archivos usados en la solución)
- Formularios (Formulario donde se muestra toda la simulación, a través de la
incorporación de los objetos Controles)
o FrmPrincipal
PANTALLAS DE LA EJECUCIÓN
Figura 11. Pantallas de Ejecución de la Solución
14. 14
CONCLUSIONES Y/O RECOMENDACIONES
Se recomienda a Tracasa la incorporación de la plataforma de Microsoft .NET y el uso de
metodologías ágiles, prinicipalmente SCRUM, con el fin de aprovechar el know how existente en la
institución y poder organizar equipos de desarrollo, que puedan garantizar la oportuna entrega de
productos en cada iteración de la metodología, lo que garantizaría una continua atención a los
clientes, garantizando así que los clientes se sientan atendidos continuamente.
Además de ello se lograría:
- Una adecuada gestión de actividad, en el uso del control de fuentes, integración de
cambios, control de versiones, gestión de documentación, etc. Pudiendo lograr
mejoras en: la gobernabilidad de los proyectos y sus actividades, el aseguramiento de
la calidad, la gestión de entrega y versiones, y la integración.
- La plataforma de integración de Microsoft permitiría un acceso distribuido
posibilitando:
o La integración total con equipos de trabajo desde un fabrica de software.
o La incorporación de equipos trabajando en otras tecnologías como Java de
forma simple y transparente.
o La integración automatizada de repositorios de código con otros repositorios
externos.
- El Team Foundation Server proporcionará un entorno integrado que da respuesta de
forma satisfactoria a todas las áreas de conocimiento implicadas en el ciclo de vida de
desarrollo: gestión y seguimiento del proyecto, gestión del desarrollo, gestión de
código e integración continua, aseguramiento de la calidad, etc.
Por lo cual con la incorporación de Microsoft .NET como plataforma de desarrollo de Tracasa, en
conjunto con la adopción de SCRUM como metodología ágil, les otorgará:
- Procesos predecibles y medibles.
- Servicios de mayor calidad.
- Ahorro de costos en pruebas.
- Mayor satisfacción de los clientes.
- Más vólumen de negocio.