Trabajo Práctico Integrador Objetivo: Relacionar los conceptos vistos durante la cursada bajo una actividad práctica en la que los alumnos puedan aplicar los conceptos a la luz de un contexto organizacional. Pautas: El trabajo deberá ser grupal de 3 personas. Se entregará en carpeta con portada donde se indique el título del TP y los integrantes del equipo (nombre, apellido, legajo). La carpeta deberá contener como anexo las referencias bibliográficas y material de investigación utilizado. El trabajo deberá ser defendido oralmente para su aprobación. Presentación: Usted representa a la Consultora VCQA. La empresa ITC Solutions lo convoca a Ud. como consultor para mejorar sus procesos productivos. Las prioridades de ITC son centrarse primordialmente en las actividades que agreguen valor a sus clientes y eliminen todas aquellas actividades que generen gastos innecesarios para la organización o que encarezcan el costo de sus servicios. Asimismo, la empresa ha identificado que, dados los reclamos por demoras en la entrega del producto final, producidos por los clientes, los entregables de software generados se han reducido en calidad, por lo que también, le solicitan que presente una propuesta de servicios que los ayude a mejorar la performance de sus actividades y la calidad de los productos que desarrollan. El 90% de los proyectos que lleva adelante la organización corresponden a la adaptación de un producto de gestión de clientes (Customer Relationship Management CRM) desarrollado in house. Estos proyectos consisten en adaptar el producto personalizado de acuerdo con las necesidades de cada cliente. La empresa aprende de cada implementación haciendo crecer al producto con las nuevas funcionalidades incluidas de modo de mantenerlo cada vez más competitivo en el mercado. El otro 10% de los proyectos corresponden a desarrollos a medida para clientes con los que mantienen una relación a largo plazo. Estos proyectos incluyen también servicios de mantenimiento correctivo y preventivo de software en actual funcionamiento en estos clientes. La empresa tiene como objetivo estratégico posicionarse entre las primeras 10 exportadoras de software de Argentina por lo que es fundamental mantener aspectos diferenciadores de su competencia, innovación en metodologías y tecnología, y productos de alta calidad. Por otro lado, la empresa está analizando la posibilidad de adherirse a la Ley de Software por lo que necesitaría evaluar el retorno de la inversión de este proyecto de mejoras si se implementa satisfactoriamente en los próximos 12 meses.
La empresa ITC Solutions manifiesta no contar con mediciones concretas que permitan al Consultor entender la actual situación de la organización y están dispuestos a trabajar en estos aspectos de manera de dar mayor visibilidad sobre el funcionamiento de la Gerencia de Desarrollo de Software. Asimismo, la empresa tiene como premisa ser una organización ágil, sin burocracia para la toma de decisiones y desarrollo de actividades, con lo cual requiere que cualquier tipo de mejora de procesos no impacte negativamente en esta agilidad. Ud. como consultor deberá analizar de qué manera podrá aportar a esta empresa para ayudarla a alcanzar sus objetivos. Consigna: El trabajo consiste en el desarrollo de una propuesta comercial de consultoría, para la mejora de procesos de una organización de desarrollo de software. La propuesta es para presentar a la Gerencia de Desarrollo y Gerencia Comercial de VCQA. Deberán estar cotizadas dentro de la propuesta las actividades requeridas por Ud. como consultor para el entendimiento de los objetivos de la organización en relación a este proyecto. La propuesta completa debe incluir: 1. Propósito Explicación de que se espera satisfacer con esta propuesta de trabajo, qué objetivos de mejora se estarán atacando. 2. Alcance del Servicio El Alcance del Servicio debe incluir la descripción del servicio en sí mismo, incluyendo el modelo SPI aplicado (que deberá ser IDEAL) y la forma de trabajo del consultor para con el personal de la empresa (modo de interacción), recursos requeridos (tanto de la consultora VCQA como de la empresa ITC), riesgos identificados, y condiciones asumidas al momento de realizar la propuesta (supuestos). Asimismo, deberá indicarse en la propuesta si se sugiere utilizar un estándar de calidad como parámetro para la mejora. En caso afirmativo, se deberán presentar los estándares sugeridos, con las respectivas justificaciones de uso. En caso negativo, deberán indicarse los motivos por los que no se sugiere utilizar estándares de calidad como parámetro para la mejora. El alcance también deberá incluir el análisis de las herramientas utilizadas especificando, de considerarse necesario, las propuestas para migración a nuevas herramientas. Cada propuesta deberá incluir ventajas y desventajas de la herramienta respecto de la situación actual y el escenario esperado luego de su implementación. 3. Plan de trabajo, El plan de trabajo deberá detallar los ciclos de mejora que se proponen, en orden de prioridades y deberá ser acorde al modelo IDEAL.
4. Cotización. Para la cotización se deberá estimar el esfuerzo de la consultoría para cada actividad realizada y deberá ser presentada como ternas: Actividad Hs. Estimadas $. 5. Condiciones generales Validez de la propuesta, Condiciones de contratación, aspectos de confidencialidad. 6. Muestra de Definición procesos Seleccionar entre los tres primeros ciclos de mejora propuestos en el punto 3 y desarrollar los activos correspondientes a dicho ciclo. Entiéndase por activo: procesos, procedimientos, templates, guías, y demás elementos (excepto herramientas de software) que permitan la implementación de las mejoras definidas para dicho ciclo. Realizar dichas definiciones de acuerdo a la metodología de trabajo propuesta, acorde a los métodos formales de definición utilizados o por utilizar durante la consultoría, en la organización. Escenario organizacional La organización está dirigida por un Directorio, conformado por tres socios. A este Directorio reporta un Gerente General, rol asumido actualmente por uno de los Directores. De la Gerencia General se desprenden tres grandes gerencias: 1) Administración y Finanzas; 2) Gerencia Comercial; 3) Gerencia de Operaciones, cada uno con sus respectivos gerentes a cargo, roles asumidos por personal de la empresa. A la Gerencia de Operaciones reportan las áreas: 1) Desarrollo de Software; 2) RRHH; 3) Infraestructura Tecnológica, cada una de las cuales cuenta son su respectivo Gerente. Los proyectos de la Gerencia de Desarrollo de Software se componen en su mayoría de equipos interdisciplinarios en los que interactúan los roles de analista funcional, líder de proyecto, desarrollador y analista tester. Cada proyecto tiene asignado un Gerente de Proyecto, quien a su vez puede gerenciar hasta tres proyectos simultáneamente. Del Gerente de Desarrollo de Software dependen los Gerentes de Proyectos y sus respectivos equipos. De él también depende un área de soporte conformada por especialistas en requerimientos, gestión de proyectos, desarrollo y arquitectura, y testing. Esta área de soporte funciona en forma cross a todos los proyectos asistiendo en la resolución de los problemas, conteniendo al personal y realizando coaching a los integrantes de los distintos equipos. Uno de los objetivos de esta área soporte es favorecer el crecimiento profesional del personal, dado que es política de la organización tomar personal junior o sin experiencia, para formarlos acordes a la cultura y necesidades de la organización. Si bien la empresa no tiene un marco formal de procesos, tienen formas de trabajo incorporadas en la cultura organizacional que hacen que ciertas actividades se implementen repetidamente.
Al ser los equipos interdisciplinarios, todos los miembros del equipo colaboran en todas las actividades del proyecto. Si bien cada integrante tiene su especialidad (analistas, técnicos, líderes, etc.), todos son responsables de llevar adelante las tareas y cumplir con los objetivos. Operatoria La empresa trabaja con metodologías ágiles. Particularmente implementa SCRUM para la gestión del equipo y la interacción con los clientes. Por este motivo, los miembros de los equipos dominan los conceptos de Planning meetings, daily meetings, sprints (iteraciones), retrospectivas, demos. Las iteraciones en general no son menores a tres semanas de duración de manera de otorgarle valor al cliente en períodos cortos de tiempo. No se utilizan herramientas que den soporte automatizado al método SCRUM. En particular el Backlog y las métricas propuestas por el método se implementan con Excel en cada proyecto. En cuanto las prácticas de ingeniería, utilizan algunas prácticas de XP como habituales. Entre ellas podemos citar automatización del testing e integración continua. Para automatizar testing unitario se utiliza N Unit ya que la tecnología en la que se desarrolla es.net. Actualmente están investigando herramientas para automatizar testing funcional. Para favorecer la integración continua se utiliza la herramienta CruiseControl, que es open source. En relación a la ingeniería de requerimientos, se trabaja con el concepto de User Stories y las mismas son registradas como ítems del backlog de trabajo propuesto por SCRUM, priorizadas por el Cliente y estimadas por el equipo. Al ser el backlog una lista priorizada de requerimientos en Excel, el detalle las User Stories es especificado en documentos anexos dejando a criterio del equipo cuándo y cómo se especifican. Habitualmente, el Cliente define las User Stories en el Backlog, y durante un sprint, el equipo las entiende y desarrolla, pudiéndose realizar cambios ocasionales durante la iteración. Los cambios son considerados nuevas User Stories que son agregadas al Backlog para su posterior tratamiento. Para realizar el análisis de impacto de cada cambio, el equipo se apoya en el conocimiento funcional que como equipo han adquirido sobre el producto y entre todos definen los componentes a modificar por el cambio solicitado. En relación a actividades de soporte, la empresa cuenta con una herramienta para el control de cambios de código. La misma es SVN y es utilizada por todos los proyectos por igual. Existe un repositorio de código y un repositorio de documentación separado para cada proyecto. El repositorio de documentación no utiliza la herramienta SVN, sino que es una estructura de directorios en un servidor dedicado para file system. El Gerente del área Desarrollo de Software entiende que existen aspectos concretos en los que los proyectos pueden mejorar, pero diciente con el Gerente General ya que indica que no todos los clientes han realizado reclamos por los retrasos. También asegura que por acelerar los plazos a pedido de la Gerencia General, han sacrificado calidad del producto en la mayoría de las veces, relegando el testing funcional y/o de integración.
Implementaciones La mayoría de los proyectos corresponden a adaptaciones de un software desarrollado in house (CRM). Estos proyectos demandan el 95% del esfuerzo de la Gerencia de Desarrollo de Software y conlleva algunas particularidades a considerar: El software es adaptado según las necesidades de cada cliente. Cada nuevo proyecto que surge, toma como punto de partida el software correspondiente al último proyecto implementado. La versión de cada cliente es independiente de las versiones de otros clientes, por lo que: Cuando ocurre un error se soluciona en el contexto particular del cliente en el que el error se ocasionó, perdiéndose la mejora para otros proyectos. Cuando se solicitan mejoras que evolucionan positivamente el producto haciéndolo más competitivo, las mejoras que se introducen se pierden para los demás clientes, similarmente como cuando se soluciona un defecto. Todo el personal del área de Desarrollo de Software está asignado a proyectos facturables. Siendo que el tipo de software CRM una vez puesto en producción generalmente funciona 7x24 los 365 días del año, la atención de defectos en versiones productivas se vuelve prioritaria frente a cualquier otro desarrollo evolutivo. Los proyectos restantes demandan un 5% del esfuerzo de la Gerencia de Desarrollo, pero se considera un potencial en expansión dada la actual saturación del mercado en conceptos CRM. Es decir, se espera para los próximos 5 años una disminución lenta pero continua de proyectos de implementación del CRM y un aumento lento pero sostenido de proyectos de desarrollos a medida.