viernes, 22 de junio de 2012

Limitación de competencias

La limitación de competencias consiste en determinar de forma lógica quien es el responsable de una determinada funcionalidad de un sistema complejo. Y cuando digo responsable, me refiero a todos los estratos del ciclo de vida de la funcionalidad:
- Desarrollo
          - Mantenimiento
          - Solución de errores
- Etc..
La limitación de competencias es un gran problema ya que, aparte de que es un asunto muy subjetivo, los responsables se ven sujetos a demasiados detalles de muy bajo nivel (lo que costo hacer esto, los problemas que dio lo otro, etc..) y tienden a “barrer para casa”; es decir, a no buscar la mejor solución si no lo que menos trabajo les de.

Por ejemplo, un equipo que se encarga del desarrollo de una página web(PW) y otro de una capa de Web Services(WS) que controla los datos del cliente. Entonces:
1º PW quiere saber los datos de un cliente y WS le dice “llama a la función A con el DNI”.
2º Lo hace y funciona.
3º Se entra en producción y los usuario se dan cuenta que algunos DNI no funcionan. Se le indica a PW. PW se lo dice a WS y este le responde:”Es que si el DNI no esta cuando se llama a la funcion A hay que llamar a la funcion B con el DNI”
4º …. PROBLEMA
Que seria lo correcto: ¿PW cambia la llamada y llamaría a la funcion B? ¿WS cambia la funcion A para llamar a la funcion B y obtener el resultado?

Ambas soluciones tienen pros y contras. Ambas soluciones podrían ser correctas y/o erróneas bajo determinados contextos. Entonces como determinar quien tiene que hacer la modificación? 

La solución mas común es solucionar el problema llegando a un acuerdo entre los responsables de PW y SW y si no se puede llegar a una solución entonces acudir a una figura superior (un jefe de los dos equipos).

Tanto si se llega a un acuerdo como si se acude a una figura superior, es clave la capacidad de hacerse entender por parte de los responsables de cada equipo. Por lo que se puede decir que el resultado de un producto software se ve determinado por las actitudes comunicativas de sus responsables mas que por las habilidades técnicas de estos responsables.

No hay comentarios: