Ponencia RATIONAL (SFIC 2009)
Titulo:
Jazz: El soporte definitivo para el modelo de factorías de software
Resumen:
En el contexto de una factoría de software, los clientes buscan resultados satisfactorios, una manera eficiente de controlar los proyectos y una respuesta rápida a esas más que seguras incidencias. En general, todo aquello que se acaba denominando gobierno.
De la misma manera, una factoría de software velará por sus propios intereses, entre otros, recibir pedidos (requisitos) con la mayor calidad posible, ser eficiente en su proceso de producción y responder a los clientes con los niveles de calidad demandados.
Además, alrededor de conceptos como productividad, calidad y gobierno se antoja imprescindible ser capaces de entender y gestionar uno más, que es el juego de relaciones que se establecen entre el comprador de software y la fábrica lo produce.
En esta ponencia presentaremos la solución de Rational alrededor de la plataforma Jazz. Una estrategia definitiva para soportar modelos de factoría de software optimizando de manera dramática las relaciones de colaboración y comunicación que necesariamente se establecen entre clientes y proveedores.
Jazz: El soporte definitivo para el modelo de factorias de software
1. Jazz : El soporte definitivo para el modelo de factorías de software Luis Reyes Arquitecto de Soluciones [email_address]
2.
3. Your Business Depends on their Ability to Innovate and Deliver Superior Systems and Software Rational Software & Systems Delivery Platform Drive organizational consensus on priorities and improve workforce productivity Lower costs and improve quality by automating workflow based on real-time information Continuously improve by measuring progress against desired business outcomes Collaborate Report Automate
7. El modelo evoluciona hacia un desarrollo más maduro y eficiente, una Factoría de Software
8.
9. Los beneficios y problemas de la subcontratación Centralizado 100% Subcontratación +70% -20% -20% = 30% Costes en USA y Europa Reducción en costes debido a menores costes laborales +70% Costes por mala comunícación Costes adicionales por mayor necesidad de control Ahorro global “ Offshore Outsourcing – Business Models, ROI and Best Practices” Marcia Robinson & Ravi Kalakota
10. Los beneficios y problemas de la subcontratación Centralizado 100% Subcontratación +70% -30% -30% = 10% Costes en USA y Europa Reducción en costes debido a menores costes laborales +70% Costes por mala comunícación Costes adicionales por mayor necesidad de control Ahorro global “ Offshore Outsourcing – Business Models, ROI and Best Practices” Marcia Robinson & Ravi Kalakota
11.
12.
13. Actores y buenas prácticas (oficina calidad) Engineers Middle Managers Executives Evolución de buenas prácticas a la organización Optimización del ciclo de vida de verificación y validación Repositorio compartido Chequeo de la calidad del código Consola de gestión Optimizar la gestión de entornos Verificar el rendimiento de la aplicación Automatización de pruebas Trazabilidad y reutilización Escanear vulnerabilidad de aplicaciones Cuadro de mando de calidad Satisfacción de las necesidades del cliente Organización de la oficina de calidad Demostrar conformidad a estándares (CMMI. SOX…) Mejorar productividad y reducir costes Manejar pruebas de regresión
14. Software Factories Deliver Solutions in an Agile Way The Eclipse Approach – Iterative and incremental fitness endgame release 3.2 M1 plan develop stabilize 6 weeks warm-up retrospective initial release plan decompression 3.1 M2 plan develop stabilize … plan develop stabilize sign-off sign-off sign-off 6 weeks 6 weeks fix - spit & polish test fix test
15.
16.
17.
18.
19. Colaboración (integración) entre herramientas es exponencialmente compleja. Herramienta A Herramienta C Herramienta B Herramienta E Herramienta F Herramienta D Until now, building an integrated platform required a cross tools understanding: Each integrated tool had to know about each other tool.
20. Arquitectura de las herramientas Rational (pre-Jazz) ECLIPSE RSA HERRAMIENTAS DESKTOP HERRAMIENTAS TEAM RMT RFT RPT RMC RAD REQPRO/DOORS TEST MANAGER CQ/Change CC/Synergy RATIONAL ADMINISTRATOR CQINTSRV- UCM SODA PROJ CONS. DB DB DB DB
21. Rational’s Software Factory Tooling Platform Storage Event Notification Conversation Project and Team Structure Search Process Enactment Security and Access Jazz Collaboration Server Items and relationships Event history, Item history trends Jazz Repository Defects Requirements Use-cases, ….. … .,Builds Source code, Test-cases Test results Eclipse Client Platform Web Client Platform Visual Studio Client Platform
22. Jazz Team Server. Plataforma de servicios comunes para ALM Integración de Servicios comunes al ciclo de vida JAZZ TEAM SERVER Best Practice Processes Control de Acceso Team awareness Events notification API Dashboards Ofertas Existentes Ofertas de BP Ofertas de Código Libre Integraciones Servidor Powered by offering offering offering offering offering offering offering Eclipse Web 2.0 Visual Studio (4Q) Integraciones Clientes Proceso
23. La tecnología Jazz se introducirá de una manera gradual Oferta Existente Evolution to Jazz Technology Platform FUTURO DE LA PLATAFORMA DE RATIONAL Rational RequisitePro Rational ClearQuest Rational ClearCase Telelogic ALM Rational Build Forge Rational Build Forge Rational ClearQuest Rational RequisitePro Rational ClearCase Telelogic ALM Nueva Oferta Built on the Jazz Technology Platform Rational Team Concert La Evolución de la Suite de Rational Requirements Composer Quality Management Insight Rational ClearQuest Rational RequisitePro Rational Build Forge Rational ClearCase Reporting Telelogic Quality Management
27. Your Business Depends on their Ability to Innovate and Deliver Superior Systems and Software Rational Software & Systems Delivery Platform Drive organizational consensus on priorities and improve workforce productivity Lower costs and improve quality by automating workflow based on real-time information Continuously improve by measuring progress against desired business outcomes Collaborate Report Automate
28. Solución integral para factorías Factoria A Factoria B Factoria C Cliente (Dirección de factorías)
40. Soluciones para el ciclo de vida de pruebas JAZZ TEAM SERVER Test Management Rational Quality Manager Quality Dashboard Open Lifecycle Service Integrations Best Practice Processes homegrown Open Platform Manage Test Lab Create Plan Build Tests Report Results Execute Tests IBM Collaborative Application Lifecycle Management Functional Testing Performance Testing Deployment Management Code Quality Security and Compliance Defect Management Requirements Management
41. Métricas automáticas sobre calidad de las aplicaciones Resultados de tiempos de respuesta frente a carga de usarios Monitorización continua de vulnerabilidades de seguridad en nuestras aplicaciones Resultados de pruebas manuales y automáticas Integración con requisitos para comprobar cobertura necesidades negocio Gestión integrada de los defectos encontrados durante la fase de pruebas Consola Web Calidad
42. Dashboard centralizado con el estado de las pruebas Visualización del estado de las pruebas en tiempo real ¿Estamos preparados para sacar una nueva versión? ¿Cuál es la carga de trabajo de cada uno de los miembros de mi equipo de pruebas?
51. Open Lifecycle Service Integrations JAZZ TEAM SERVER Search and Query collaboration Team awareness Events notification Security Dashboards Team Concert Requirements Composer Quality Manager Method Composer Integración con la plataforma Jazz Rational Software Architect Rational Application Developer Rational Automation Testing tools Telelogic Rhapsody Integraciones Enterprise Reporting Rational Insight Rational Tara Rational Asset Manager Web 2.0 Soluciones de IBM Rational sobre Jazz Powered by Best Practice Processes ClearQuest Doors ClearCase Requisite Pro Offerings Rational Team Concert Gestión unificada de peticiones, configuración y compilaciones Rational Quality Manager Gestión de calidad unificada offerings Rational Requirements Composer Definición y validación visual de requisitos Rational Insight Dashboard para gobierno desarrollo Rational Project Composer Gestión portfolio proyectos Rational Asset Manager Entrega y reutilización activos desarrollo
52. ¿Cómo puede ayudar IBM Rational? “ IBM is one of the few vendors with credible offerings in almost all the requirements of ALM” “ IBM Rational is one of the first vendors to tell a story about integrating across the lifecycle” “ Jazz is a solid architectural foundation for further innovation”
Enterprise organizations are looking to IT as a core capability to bring efficiency and stability in delivery of core capabilities to the business, and the driving force for innovation and differentiation for new service to the market. To achieve this, they are enhancing their own IT teams with systems integrators and technology partners to create centers of excellence and capability centers specialized in delivering value to the business….we can call these specialized software delivery factories . Rational’s role is to provide the process and technology backbone for today’s software factories, and the move toward; A standard’s based infrastructure to encourage and support a supply chain with multi-sourced component assembly, and reuse of key technology components Adaptive factory setup and reconfiguration in support of changing market needs and demands Real-time feedback to optimize the factory’s delivery quality and efficiency A virtualized collaborative infrastructure connecting worldwide teams for creating software services, and assembling and delivering solutions
Onsite Internal staffing Near shore Internal Staffing or Direct Ownership Offshore Wholly owned subsidiaries or joint partnerships Direct ownership of foreign facilities and hiring of employees Outsourced Contract with service provider that supplies supplemental resources or assumes responsibility for all or part of the software development lifecycle Can be part of any or all three of the above models
The graphic depicts an example of how a company might map out where teams are geographically located and how each development discipline is allocated. The organization in this example has a team at corporate headquarters in San Jose that focuses on requirements analysis, architecture and high-level design for all projects. As these elements are created, project specifications are communicated to Toronto and Bangalore for development and component testing. As component testing is completed, work is delivered to headquarters, where validation, function and performance tests are executed. Project and portfolio management, as a core competency, is handled from headquarters, where all components of application and resource portfolios are tracked and monitored. Additionally, local project management is performed at each site for the local activities. As you define and refine your landscape you can then focus on the areas of your development cycle that require precise and clear communication between development efforts. For example the need for communication of requirements to the developers in Toronto and Bangalore. Remember that this is just an example and that there are many possibilities to how a company defines their landscape – the key is to define it so that you can move on to the next step which help you define tools and automation needed to support your landscape.
Las organizaciones externalizan sus proyectos para que se los realicemos con mayor calidad, en menor tiempo y a un menor coste… … lo cual solo es posible a través de un modelo productivo más eficiente
So what are the business drivers leading companies to a GDD strategy? Manage the distributed development teams that result from mergers and acquisitions – Some companies choose to consolidate their development sites, others choose to maintain the distributed teams because they bring unique skills from each site. Increase flexibility to adapt quickly – Agility is key – An example that highlights this driver is the constant set of government mandates and regulations that companies must comply with – updating existing applications or creating new applications to support the requirements forced by such legislation. If companies don’t comply within the guidelines and timelines heavy penalties can be issued. The burden then becomes how to realign resources so that your other critical projects neglected. Reduce costs while enhancing staffing options – Geographically distributed development allows you to reduce development costs by matching the right talent with the right tasks – no matter where that talent is located. For example, you can off-load more routine maintenance tasks to (they aren’t less skilled) distributed team members in lower-cost markets, giving developers in the home office primary responsibility for working on higher-profile tasks involving leading-edge technologies. Vary staffing levels – Add or remove people quickly without the costs associated with hiring, reassigning and laying off employees. Take advantage of talent that many not be needed full-time in the organization, or that may not be locally available. Clear application backlogs – More team members, working 24/7, means that development backlogs can be eliminated and target dates can be met – without breaking the bank Competitive Edge with decreased time to market & low cost solution - availability of an around-the-clock development staff lets you get projects done sooner – getting critical customer or internal applications out faster and at a lower cost – both factors helping you address the competition more strategically Additional Drivers: Innovate and improve instead of just looking at cost-cutting – The significant potential cost savings offered by outsourcing means you can afford to improve your application portfolio rather than addressing only bare-bones updates – contributing to your ability to compete in the market by having the best applications in place both internally and externally. Response to geopolitical risks – By maintaining more than one offshore location, you have the option of shifting development tasks to more stable areas if one locale becomes too risky. Establish market presence in foreign country – Opening a development center in a foreign country is a good way to establish a presence with the goal of eventually tapping this new market. As wonderful as this sounds, if not executed carefully and successfully, can be a disaster – as noted by a survey Gartner performed on 219 clients where half are expecting to fail to deliver anticipated savings. So what are some of the challenges faced by companies that contribute to such a high rate of failure? Customer pain points start with mismatch and misunderstood process – whether it be through a recent acquisition or an outsource provider that has a different process – you’ve got to have a common and agreed upon process throughout the entire development lifecycle. Next we look at communication and cultural issues – different languages, cultures and time zones all contribute to issues with communication and collaboration through out each phase of the life cycle – from how some members communicate that work is being handed off to the next discipline – to how folks communicate project status and progress to how team collaborate on team issues. Each one of these areas can have a profound effect on the overall project success. Decrease Productivity, Increased Rework and Mistakes in Work-Transfer are all issues that will effect whether you will achieve expected benefits of a GDD strategy. If you aren’t effectively communicating the project requirements and application architecture, teams won’t be developing the right application hence requiring rework at the later stages of the project. Rework is not only more costly progress through the later development stages, but rework also decreases productivity and moral. Additionally, if teams are not following a precise and understood workflow process issues are dropped, defects are left outstanding or never tested. Security IP Protection – With assets being worked on by members throughout your distributed teams are they secure. Are they being protected – Lack of Project Visibility & Control and Lack of Project Metrics – Can you assess the status and progress of your project at any given time? Do you have complete visibility into all dimension of your project so that you can mitigate risk and avoid costly issues? Do you have the ability to share project views with your outsource customer or outsource provider so that you are all on-board with the latest information? What about metrics do you have them in place to measure your outsource provider or each discipline within the lifecycle so you can measure ROI and make adjustments when needed? Quote source - Gartner Source - : BusinessWeek January 12,2004,Shifting Work Offshore? Outsourcer Beware”
Criteria to determine if a project team is taking a disciplined approach to agile See http://www.agilemodeling.com/essays/agileCriteria.htm
Jazz project defines normalized events and services that any Tool can subscribe to or contribute to. Click 1: Adding a new tool to the Jazz platform means: Listening to events coming from the platform Contributing to the platform by adding new normalized services Click 2: When we add a new tool we don’t need to understand Tool A. We only need to understand the normalized services implemented by A Click 3: And so on… Click 4: With such architecture, switching from a “Tool A” to another one is easy Click 5: Jazz defines a normalized way of declaring Tool collaboration events and services (Like Eclipse defined a normalized way of extending a development platform). By open sourcing the Jazz kernel, IBM Rational wants to build a community around this Collaborative technology to define a de facto Team & Tools Collaboration standard.
Click 1: To collaborate “Tool A” must know about “Tool B” and vise versa Click 2: Integrate a new tool means understanding “Tool A” & “Tool B” and updating A and B to understand “Tool C”… Click 3: It is worse with a 3 rd Tool Click 4: It blows out if we want to connect more tools…
The graphic depicts an example of how a company might map out where teams are geographically located and how each development discipline is allocated. The organization in this example has a team at corporate headquarters in San Jose that focuses on requirements analysis, architecture and high-level design for all projects. As these elements are created, project specifications are communicated to Toronto and Bangalore for development and component testing. As component testing is completed, work is delivered to headquarters, where validation, function and performance tests are executed. Project and portfolio management, as a core competency, is handled from headquarters, where all components of application and resource portfolios are tracked and monitored. Additionally, local project management is performed at each site for the local activities. As you define and refine your landscape you can then focus on the areas of your development cycle that require precise and clear communication between development efforts. For example the need for communication of requirements to the developers in Toronto and Bangalore. Remember that this is just an example and that there are many possibilities to how a company defines their landscape – the key is to define it so that you can move on to the next step which help you define tools and automation needed to support your landscape.
UML diagrams should be treated as formal project artifacts. Each diagram created by a project team should be treated as an artifact. The UML can help alleviate some of the paper crunch that many software teams experience.
UML diagrams should be treated as formal project artifacts. Each diagram created by a project team should be treated as an artifact. The UML can help alleviate some of the paper crunch that many software teams experience.
UML diagrams should be treated as formal project artifacts. Each diagram created by a project team should be treated as an artifact. The UML can help alleviate some of the paper crunch that many software teams experience.
UML diagrams should be treated as formal project artifacts. Each diagram created by a project team should be treated as an artifact. The UML can help alleviate some of the paper crunch that many software teams experience.
Targeted at different set of users (business analyst, not product development) Adds significant new values not part of requirements management tools today
Using Rational Insight in conjunction with MCIF and RMC, organizations can assess their software development capability/environment, selectively adopt practices to achieve one or more business objectives, measure the enactment, deployment, and adoption of the practices, and use the results measure true ROI Easy and intuitive document generation from within familiar GUI of data source (eg DOORS, Tau etc) - Predefined templates for OOTB use - Intuitive Template Editing environment with drag and drop capability - Optimized for high performance and low resource use – the process of manually tailoring documents are fraught with danger of errors. TPE greatly reduces the likelihood of errors by systematically and automatically updating documents Decreased Time in answering inquiries and requests for help Through automation of your product documentation lifecycle. Automating documentation generation, gives you many benefits. For one thing, it can help improve work efficiency and productivity, because having an automated product documentation lifecycle, where documents are a by-product of the engineering work, makes sure that your internal procedures, specifications, and standards are accurate so the teams work is done correctly and consistently. In addition, it gives members of the team who for some reason don’t have the product installed or don’t need to really modify data but rather just see a report of it, just quickly get the information from the perspective that matters most to them. Engineers won’t be as overwhelmed because although they still have to worry about content, such as requirements and models or diagrams, they don’t have to also worry about the formatting – besides formatting is not something you want your engineers to worry about. And managers are better informed because they can quickly pull out reports that matter to them while documents are up to date. Also, it helps to have internal documents because it’s a knowledge that in some way or another, can get passed around and retained. An automated product documentation lifecycle can also help increase collaboration and communication by pulling information automatically into documents from disparate applications and projects, providing automation and consistency for formats across projects and helping report on the same set of data from different perspectives.
Note: HP does not even appear on this list!
Closing slide to be included in all external presentations. Learn more at: IBM Rational software: www.ibm.com/software/rational IBM Rational Software Delivery Platform: www.ibm.com/software/info/developer Process and portfolio management: www.ibm.com/software/rational/offerings/lifecycle.html Change and release management: www.ibm.com/software/rational/offerings/scm.html Quality management: www.ibm.com/software/rational/offerings/testing.html Architecture management: www.ibm.com/software/rational/offerings/design.html Rational trial downloads: www.ibm.com/developerworks/rational/downloads Leading Innovation Web site: www.ibm.com/software/rational/leadership developerWorks Rational: www.ibm.com/developerworks/rational IBM Rational TV: www.ibm.com/software/info/television/index.jsp?cat=rational&media=video&item=en_us/rational/xml/M259765N40519Z80.xml IBM Rational Business Partners: www.ibm.com/partnerworld/pwhome.nsf/weblook/index.html IBM Rational Case Studies: www.ibm.com/software/success/cssdb.nsf/topstoriesFM?OpenForm&Site=rational