Publicado en
Cuando las organizaciones se enfrentan a la imperante necesidad de contar con sistemas de software para sustentar su operación, se encuentran ante la disyuntiva de si deben utilizar aplicaciones de software existentes en el mercado y configurarlas a los procesos específicos de la empresa, o bien si deben contratar del desarrollo de sistemas de software “a la medida”. En cualquiera de estos casos, la expectativa siempre será contar con sistemas de alta calidad, que cumplan con las especificaciones de los usuarios y demuestren un rendimiento y confiabilidad adecuados. En ambos casos debemos tener en perspectiva la necesidad de probar dicho software. Para resolver esto, incluso podemos subcontratar a una empresa que provea el servicio de outsourcing de prueba de software. En este artículo mencionaré algunos de los aspectos que considero de mayor importancia al subcontratar este tipo de servicio.
Elementos a considerar
La prueba de software es un servicio que podría considerarse altamente “tercerizable” y “exportable” dada la naturaleza del mismo, donde la objetividad y la especialización deben estar presentes. Profundicemos sobre los elementos relevantes a contemplar:
Objetividad. Se refiere a poder obtener un juicio imparcial sobre los resultados de las pruebas. En lo posible, debemos evitar que quienes evalúen el software sean los mismos que los desarrollaron, ya que serían juez y parte.
Especialización. Quien provea este servicio debe contar con capacitación formal en prueba de software, conocer metodologías, técnicas y herramientas en esta disciplina para buscar la garantía de un trabajo profesional.
Reducción de riesgos. La tercerización de la prueba debe darnos elementos que nos permitan reducir tangiblemente los riesgos, tanto en el proceso de desarrollo como en la implantación y uso del software que se desarrollará.
Apoyo en la mejora de procesos internos. La interacción entre los testers especializados y los futuros usuarios del software, debe evidenciar áreas de oportunidad en la definición de los procesos de negocio, contribuyendo a la estandarización y documentación de los mismos.
Obtención de métricas. Un buen proveedor de pruebas debe poder generar métricas que permitan evaluar con datos concretos y tangibles la calidad del producto probado.
Métricas para evaluar a proveedores. Aún cuando la prueba está enfocada en medir la calidad del producto de software, implícitamente debieran generarse datos que permitan obtener información de valor respecto a la eficiencia del personal y los procesos empleados para la construcción del software.
Apoyo a implantación exitosa con usuarios. Una buena metodología de prueba debe contemplar una fase de pruebas de aceptación de usuarios, durante la cual estos utilizarán el software acompañados de testers especializados.
Ventajas y desventajas
Para implantar de forma exitosa el outsourcing de pruebas dentro de una organización, será importante analizar las características de la misma. Sin embargo, también vale la pena partir de ciertas premisas para tomar las decisiones que puedan ser más acertadas a las propias necesidades. A continuación se destacan algunos puntos:
Una empresa que no está especializada en pruebas de software es altamente probable que no tenga procesos y metodologías para realizar esta labor. Contratar a un proveedor especializado le permitirá tener acceso a dichos procesos de forma efectiva sin tener que hacer una gran inversión.
Ligado al punto anterior, una empresa especializada en pruebas seguramente contará con algunas de las herramientas necesarias para realizar de forma eficiente muchas de las tareas de la prueba de software. La contratación de un proveedor de estas características podría dar acceso a dichas herramientas sin necesidad de invertir en la adquisición y capacitación de las mismas.
El reclutamiento y selección de testers puede ser todo un dolor de cabeza para las áreas de recursos humanos de empresas no especializadas en prueba dadas las características particulares de los perfiles requeridos.
El dominio de aplicación puede ser factor que desmotive la subcontratación de la prueba. Existen dominios sumamente especializados y/o complejos para los cuales la curva de aprendizaje puede ser grande. La eficiencia de la prueba podría verse mermada por un desconocimiento de dicho dominio por parte del proveedor. En este caso se podría buscar un proveedor que ya tuviera el dominio o bien se podrían desarrollar uno o más proveedores que cubran todas las necesidades de prueba de la organización. Algo que se debe considerar es que si el servicio de prueba es “tercerizado” y la empresa que subcontrata no está preparada para asignar un trabajo continuo a los testers, esto podría generar tiempos muertos que impacten en los costos del servicio. Cabe resaltar que este problema se presenta de igual forma cuando se tiene un equipo de pruebas interno.
Cuando la prueba es subcontratada, el manejo de la comunicación e interacción entre testers y desarrolladores debe ser tomada en cuenta. Suele suceder que el equipo de desarrollo vea al equipo de pruebas como un “enemigo”, lo cual entorpece la interacción y empobrece los resultados obtenidos.
Posibles esquemas de contratación
Antes de contratar un servicio de outsourcing de prueba, es importante conocer distintos esquemas posibles de contratación:
Por persona, con metodología del cliente. Las organizaciones que ya cuentan con una práctica de prueba de software con una alta madurez, lo que requieren en realidad es que se le provea personal que sea capaz de asimilar rápidamente sus procesos y brindar resultados en el corto plazo. La asignación de tareas y administración de los testers es responsabilidad del contratante.
Por persona, con metodología del proveedor. Cuando una empresa no tiene procesos de prueba maduros y requiere este servicio por periodos prolongados de tiempo, lo indicado sería contratar a un proveedor que funcione como su área de pruebas. En este tipo de esquema el proveedor es responsable de asignar las tareas y administrar a los testers.
Por proyecto. El proveedor proporciona un equipo para abordar un proyecto por un tiempo determinado. En este esquema la empresa que contrata no se preocupa por la cantidad de gente involucrada en su proyecto, lo importante es que se obtengan ciertos resultados en el tiempo establecido.
Una variante para cada uno de los esquemasmencionados anteriormente es que la gente se provea en las instalaciones del cliente o en las instalaciones del proveedor. En el primer caso el cliente debe contar con la infraestructura suficiente para acomodar a todo el personal subcontratado y, dependiendo del acuerdo, en algunas ocasiones equipar a los testers. En el segundo caso es importante que el proveedor y/o el cliente cuenten con infraestructura de telecomunicaciones que permitan una interacción eficiente entre los testers y el resto del equipo. Se podría llegar incluso a un esquema híbrido donde se tenga, por ejemplo, un líder en instalaciones del cliente y el resto del equipo en las instalaciones del proveedor.
Si bien es cierto que el outsourcing de cualquier servicio de TI se vuelve un reto desde el momento mismo en que hay que voltear a ver con lupa lo que cada proveedor ofrece, bien vale la pena empezar a desarrollar los procedimientos internos necesarios para agilizar esta tarea, dado que en el corto y/o mediano plazo los beneficios podrán marcar la diferencia. En el caso específico de la “tercerización” del servicio de prueba de software, la exigencia debe focalizarse en obtener una reducción significativa de los riesgos de liberar aplicaciones de software inmaduras pero sin perder de vista los elementos de experiencia, especialización, objetividad, ética, flexibilidad y sobre todo calidad.
Sandra Berenice Ruiz Eguino es Directora de Operaciones de e-Quallity, además ha participado como Consultora Senior en proyectos de mejora de organizaciones de Prueba de Software. Cuenta con certificación internacional en Pruebas por el ASTQB. A lo largo de su trayectoria profesional ha actuado también como Ingeniero de Pruebas Senior, Líder de Proyectos, Administradora de Proyectos nacionales e internacionales, analista y desarrolladora. Ha sido profesora de la Universidad Autónoma de Guadalajara (UAG), donde realizó sus estudios de Maestría en Ciencias Computacionales.
- Log in to post comments