archivo

Archivo de la etiqueta: externalización

Este área de proceso del nivel 2 de CMMI trata sobre la externalización dentro del proyecto de desarrollo de software y de la adquisición de productos necesarios para el mismo, ya sea para su propio desarrollo o como una parte del producto final.

No es necesario entender la externalización como una relación con una organización diferente, también se puede entender como grupo de personas o departamentos ajenos al proyecto que nos proporcionan esos productos o servicios (supongamos que dentro de la organización hay una factoría de software que ejecuta determinados componentes del sistema, esa relación con la misma estaría incluída dentro de este área de proceso). Está más orientado a lo que es el producto, ya sea como elemento directo que se adquiere o como el resultado de un servicio, ya que se si lo que se contrata es un servicio y se integra dentro del propio proceso de desarrollo se podría considerar cubierto su correcto desempeño por el resto de área de procesos.

¿Qué tareas se realizan dentro de este área de proceso? Pues todas las que están relacionadas con el ciclo de vida de las diferentes adquisiciones: determinar qué productos se van a adquirir, seleccionar proveedores, establecer acuerdos con ellos (en los que pueden definirse ANS, condiciones de aceptación del producto o servicio, etc…), revisar el producto entregado, verificar las condiciones del mismo y realizar, si corresponde, la aceptación correspondiente.

Desde mi punto de vista, la orientación a servicios es la práctica ideal para la externalización de procesos dentro de su departamento TIC (esta práctica entiendo que también podría ser ideal o muy buena en otro tipo de departamentos, pero en este artículo me voy a centrar en los TIC).

El cambio a un modelo orientado a servicios no es sencillo, ya que en los departamentos TIC estamos acostumbrados a trabajar mano a mano con los miembros del equipo de proyecto de cada proveedor y en un modelo de estas características lo que importa y es trascendente son los resultados que se determinen en la definición del servicio y no las personas que los han ejecutado. Es decir, el cliente contrata un servicio a un proveedor, con unas condiciones y con un acuerdo de nivel de servicio, el proveedor será responsable de gestionar sus recursos para cumplir los compromisos y para que el proyecto le resulte lo más rentable posible.

De esta manera para los clientes, los incurridos cada vez tendrán menor importancia (que es uno de los grandes problemas cuando se trabaja con bolsas de horas) y sí el resultado de los servicios, de esta manera se ahorrarán costes, ya que lo que tiene que primar para el proveedor es la productividad de su equipo de trabajo para poder cumplir los objetivos marcados.

Algunas de las políticas para la implantación de un modelo Green IT pueden ser las siguientes (como he comentado en el anterior post, pero creo que es conveniente volver a indicarlo ya que este tipo de asuntos suele generar polémica, estas soluciones pueden funcionar mejor o peor en función de la organización (o incluso no funcionar) y por supuesto, no adecuarse a la naturaleza de los servicios TIC internos o externos de la organización o la propia filosofía de empresa):

– Virtualización en centros de procesos de datos. Las soluciones basadas en particionamiento o en la disposición de máquinas completas para realizar tareas concretas de proceso no consiguen por regla general conseguir un aprovechamiento óptimo de los recursos computacionales, aspecto que mejora considerablemente con la aplicación de técnicas de virtualización que permiten tener diferentes máquinas lógicas funcionando sobre una misma infraestructura física compartiendo dichos recursos.

– Relacionado con lo anterior, eliminación de PCs que actúen como servidor o que sean utilizados esporádicamente por el personal ya sea in situ u online. La mejor solución es virtualizarlos, de esta forma además de dar una solución más coherente, se consigue ahorro energético y de espacio físico.

– Apagado o hibernación de máquinas que realizan soporte a los servidores principales, por ejemplo, asumir carga en puntas de peticiones, a determinadas horas donde la carga es baja o bien utilizar un sistema que los active cuando se supere un determinado umbral.

– Situar los centros de procesos de datos en localizaciones donde la temperatura media no sea alta para reducir de esta forma los recursos dedicados a refrigerarlos.

– Situar centros de procesos de datos en diferentes husos horarios e ir conmutando entre los mismos en función de los horarios donde la tarifa eléctrica sea más baja (esto es una estrategia de la que se habla mucho, pero que tiene que ver más con el ahorro de costes que con la Green IT).

– Externalización de los centros de procesos de datos. En muchos casos la mejor solución puede ser externalizar el centro de proceso de datos en compañías que ya tienen implantada una filosofía e infraestructura de Green IT.

– Una solución, no tan radical como la anterior es la migración de determinados servicios a la nube, beneficiándose de las ventajas de la cloud computing. Al fin y al cabo se trata de externalizar servicios, como por ejemplo el correo electrónico.

– Reducir la carga de aplicaciones en cliente, situando el peso computacional en los servidores. Esto permitirá que no sean necesarios ordenadores tan potentes en los puestos de trabajo, pudiendo optar por soluciones hardware (y software) más óptimas desde el punto de vista del consumo energético.

– Independientemente de lo anterior, adquisición de infraestructuras hardware que hagan un uso más eficiente de los recursos energéticos y además que sus componentes sean reciclables en el mayor porcentaje posible.

– En relación con el reciclaje, es conveniente disponer de una política sobre los elementos hardware de la organización que van quedando obsoletos, donando aquellos que puedan ser reutilizados y los que no entregarlos a centros de procesado de estos elementos ya sean públicos o privados.

– El software también tiene mucho que ver (y no solo por la orientación hacia una arquitectura cliente/servidor), ya que un software no eficiente requiere de más recursos computacionales, los cuales influyen directamente en el consumo energético.

– Teletrabajo. Aunque parezca a priori que no, el teletrabajo también influye en la Green IT, ya que la no utlización de los vehículos particulares para acudir al trabajo permite reducir las emisiones de CO2 a la atmósfera.

Si se externalizan procesos completos, es necesario el establecimiento de acuerdos de nivel de servicio.

Dichos acuerdos, permiten que no se vaya a ciegas en la ejecución de un servicio y que se pueda demostrar de forma objetiva que el desempeño del mismo es positivo. Esto es bueno, tanto para el proveedor como el cliente.

El acuerdo de nivel de servicio establece un marco de referencia para el desarrollo de los servicios y propicia la mejora continua de los procesos ya que se basa en la medición de determinados indicadores para determinar si el servicio se está realizando de forma adecuada o no.

Ya he hecho referencia en posts anteriores en la importancia de la medición como pieza fundamental para mejorar la calidad, por tanto el establecimiento de acuerdos de nivel de servicio, permiten garantizar la calidad del servicio y una mejora continua del mismo.

Bien es cierto, que es complicado en ocasiones realizar la medición de los indicadores que determinan el cumplimiento del acuerdo de nivel de servicio, será la experiencia tras la implantación del servicio la que vaya buscando los indicadores más adecuados y busque las estrategias más óptimas para realizar el proceso de medición de los mismos.

Yo soy partidario de que si un proceso tiene que ser externalizado, ya sea porque es más rentable económicamente, porque sea más productivo o porque no existen recursos propios para llevarlos a cabo, se externalice cada uno de los procesos a una o más empresas y no me refiero a que sean Uniones Temporales de Empresas, sino que un proceso se puede descomponer en partes y contratar cada parte a empresas distintas.

Por supuesto, para que la externalización funcione, es necesario, por un lado, la orientación al servicio y por el otro el establecimiento de acuerdos de niveles de servicio. Sin ambos ingredientes, puede funcionar la externalización, pero es más probable que se termine degradando. En cualquier caso, es muy importante llevar un control bastante exhaustivo de los trabajos que se realicen.

La externalización de recursos humanos, la entiendo para puestos específicos dentro de la organización que requieren una estabilidad y/o una experiencia y/o unos conocimientos que no pueden ser aportados por personal propio y/o que sean complicados de encontrar en el mercado laboral. Es decir, la externalización de recursos humanos es posible, aconsejable también en algunos casos, pero desde mi punto de vista no debería ser la solución mayoritaria, ya que ésta debe ser la externalización de procesos o subprocesos completos, orientándolos al servicio.

Hace poco tuve una charla con un compañero sobre el concepto de las factorías de software. Él comentaba que externalizar gran parte del desarrollo provocaba cautividad respecto al proveedor.

En cierto modo no le falta razón, pero eso se producirá sí y solo sí hacemos las cosas mal. Sí los proyectos se desarrollan con calidad, existe una correcta gestión de la configuración, el conocimiento funcional y la estructura de los sistemas se documentan y los directores de proyecto por parte de la organización controlan todo el proceso no tiene por qué existir cautividad.

Es esa calidad la que debemos perseguir sea como sea y sin ella estamos cautivos con o sin factoría del software, que al fin y al cabo no es más que un medio o una estrategia para realizar desarrollos y mantenimientos evolutivos.

Por tanto no se debe tener miedo a externalizar desarrollos en factorías del software y sí en no hacer las cosas bien.