archivo

Archivos Mensuales: febrero 2010

Se nos olvida muchas veces, se me olvida demasiadas veces. Detrás de ese cliente, de ese proveedor, del Presidente o Director General de tu organización, del conserje del edificio, de la persona que te atiende en el kiosko donde compras el periódico o el teleoperador o teleoperadora que te llama para ofrecerte una conexión a Internet, hay una persona.

Olvidar que tratamos con personas, con sus sentimientos, con sus problemas, con sus aspiraciones, con sus defectos, con sus virtudes, en lugar de con puestos de trabajo, desde mi punto de vista no sólo no es positivo, sino que por regla general y a la larga produce malos resultados, laborales y personales.

Desarrollamos una profesión y nos relacionamos con otros profesionales, cada uno desempeñamos un rol, forma parte de nuestro trabajo, pero no hay que olvidar que detrás de ellos hay una persona, como detrás de nosotros mismos hay una persona. Es algo obvio, pero a veces lo obvio no es precisamente lo más fácil. Entender que trabajamos con personas, nos permitirá desarrollar la empatía y en consecuencia se acertará más en las decisiones y todas las partes estarán más motivadas y más cómodas de trabajar unas con otras.

Evidentemente tendremos que tomar decisiones, y entender que trabajamos y nos relacionamos con personas y no con puestos de trabajo no quiere decir que no ejerzamos nuestra responsabilidad y tomemos medidas si un trabajo no se está realizando correctamente, si un comportamiento no es adecuado o el rendimiento/productividad se ha reducido por debajo de lo tolerable, lo que sí quiere decir es que tras una determinada acción, actuación o resultado que no nos haya parecido acertado, hay una persona y sobre ella han podido influir innumerables situaciones que hayan provocado que no se haya rendido lo suficiente, enterder que detrás de los puestos de trabajo hay personas, permita dar la oportunidad de analizar estas circunstancias y a que en la toma de decisiones se tengan en cuenta estas circunstancias. También significa que aún en el caso de tener que tomar decisiones o medidas en caso de que el trabajo que se desarrolle no se considere adecuado, siempre se pueden y se deben tomar, desde mi punta de vista, de la manera más humana posible, centrándose siempre en el respeto hacia el individuo.

Me he centrado en el aspecto laboral, pero no hay que olvidar, lo que comento en el primer párrafo de este artículo y es que detrás de la careta de un rol o de una profesión hay una persona y cómo tal, utilizar el respeto, la educación y la amabilidad, aún no siendo correspondidos, es la mejor decisión que se puede tomar en cualquiera de los casos, ya que esas cualidades nos hacen más humanos y más personas tanto en nuestro foro interno, como para los demás y esto necesariamente tiene que ser positivo.

Existen situaciones dentro del ámbito laboral donde poco o nada podemos hacer, ya que provienen de decisiones que son tomadas desde altas instancias de la organización y que por mucho que no nos gusten tenemos que asimilarlas porque no hay otra.

La asimilación no quiere decir que no se nos note durante un tiempo nuestro malestar y/o no protestemos (la mejor manera de intentar entender una situación que no comprendemos es preguntar el por qué de la misma, ya que generalmente las decisiones, equivocadas o no, se toman con un motivo, que podremos compartir o no, pero que sí tenemos que intentar respetar. Si no tenemos información o la misma no es suficiente, tendemos a rellenar los huecos nosotros mismos, lo que generalmente deriva en malentendidos y en un incremento de nuestra situación de malestar), pero sí que esta reacción ni sea excesiva, ni dure mucho tiempo. ¿Por qué? Pues primero porque resulta agotador entrar en ese bucle del ¿por qué yo?, esto es injusto, etc… y segundo porque lo más probable es que si tras dialogar y exponer nuestro punto de vista no conseguimos nada, difícilmente lo conseguiremos invirtiendo más tiempo y energía en ello. Si se nos valora adecuadamente, seguro que las personas con la que hemos dialogado han tomado nota y más adelante, tarde o temprano, se solucionará la situación que no nos ha gustado.

Si queremos conseguir cosas, lo mejor es conservar la energía, no entrar en batallas que no se pueden ganar e invertir esa energía donde sí merezca la pena, como por ejemplo desarrollar nuestra profesión de la mejor manera posible, adaptarnos a cualquier posible nuevo entorno y tener paciencia para esperar resultados.

Lo más cómodo es tender hacia el desarrollo de sistemas de información que sean islas, es decir, sistemas totalmente independientes y autosuficientes a nivel de información, que contienen en su modelo de datos todo aquello que necesitan para su funcionamiento. Es decir, en estos sistemas no se depende de ningún otro, por lo que no hay que estar pendiente de si varía el modelo de datos de otra aplicación, si deja de funcionar un determinado servicio o si hay que estudiar cómo encajar esta pieza junto con otras.

Pero claro, un modelo de sistemas de esas características tiene también importantes carencias, entre las que destaca la dificultad de mantener coherente información sobre un mismo concepto almacenada y gestionada en sistemas distintos, la dificultad de realizar consultas que afecten a más de un sistemas de información que gestionan un mismo concepto, la no reutilización tanto a nivel de modelo de datos como de código de soluciones que resuelven exáctamente la misma funcionalidad, etc…

En este artículo me voy a centrar en dos tipos de informaciones, la de terceros y la de usuarios, que son muy frecuentes en la mayor parte de sistemas de información y que también como sucede en muchos casos, se gestionan de manera independiente en los mismos.

Los terceros son como el nombre indica terceras personas físicas o jurídicas que están vinculadas a información que se gestiona en un determinado sistema de información. Si no existe un modelo único de terceros, conocer el estado de las actuaciones o la suma de la información que se tiene recopilado sobre uno concreto, implicará la consulta a multitud de sistemas, en ocasiones, un esfuerzo importante y todo ello sin que existan excesivas garantías para obtener dicha información, ya que lo mismo la información del tercero no es coherente entre sistemas y por tanto no se puede localizar alguna información (por ejemplo número de NIF o CIF referidos a un mismo tercero que no son iguales en alguno de los sistemas), bien falta algún atributo importante para identificarlo unívocamente, etc…

A lo anterior hay que sumar el esfuerzo de mantener y desarrollar modelos de datos y pantallas para gestionar dicha información, que además tendrá en la mayor parte de los casos relación con otra, como por ejemplo, información de las provincias y municipios, ya que será interesante en muchas ocasiones tener almacenada al dirección o direcciones de contacto de los terceros.

En mi organización, siendo conscientes de este problema se ha desarrollado un modelo único de terceros con el objetivo de obtener una visión global de los mismos, por lo que los nuevos sistemas que se están implementando hacen uso de ese módulo horizontal, que se va ampliando en función de información asociada a terceros que pueda ser de interés tenerla disponible de forma transversal.

Tardaremos bastante en conseguir que todos los terceros estén en un mismo sitio, ya que contamos con un gran número de sistemas de información que habría que migrar a este nuevo modelo y esto además de ser costoso, requiere su tiempo e incrustarlo dentro de la planificación y prioridades individuales de cada uno de ellos, no obstante, todo lo nuevo estamos intentando que siga este modelo y tarde o temprano empezaremos a notar buenos resultados a nivel general independientemente de que a nivel del proyecto se noten ya, al no tener que invertir esfuerzo en modelar e implementar la funcionalidad de gestión de terceros.

Con los usuarios pasa algo parecido y además provoca que si alguno de ellos tiene que trabajar con distintos sistemas de información, al final tenga que mantener una maraña de información de nombres de usuario y palabras de paso que atentará contra la seguridad (ya que en muchos casos se recurirá a anotarlos en algún medio físico) y que tendrá asociado un coste de gestión (reseteo de claves, recordatorio de nombres de usuario, etc…). Si la autenticación es con certificado digital se simplificará la necesidad de que el usuario requiera recordar tantos usuarios y claves, pero por detrás los sistemas, si no existe un modelo unificado de gestión de usuarios, tendrán que seguir gestionando los mismos, con el coste de gestión inherente a esta situación y con los costes de desarrollo que ha tenido modelarlo en cada sistema.

La solución para este caso es similar a la que se ha buscado para el caso de terceros, es decir, un módulo que puede ser común a todos los sistemas en los que se mantiene dicha información y que garantizará una gestión única de usuarios (independientemente de que los perfiles de acceso se mantengan en cada sistema) y una visión coherente de los mismos. Como en los terceros, los nuevos sistemas se están implementando haciendo uso de este módulo y traerá bastante tiempo tener la mayoría de los sistemas haciendo uso de él, pero también como en el caso anterior, tardará más o tardará menos, pero terminaremos beneficiándonos de la decisión de tener un modelo unificado de gestión de usuarios.

La credibilidad, al igual que la confianza, es muy difícil de construir, ya que por regla general las personas tenemos una coraza (dependiendo de la persona y de sus circunstancias personales, puede ser más gruesa o más delgada) que solo abrimos cuando se nos demuestra con creces que las actuaciones de otra persona nos generan credibilidad. También como sucede con la confianza, la credibilidad hay que estar alimentándola continuamente y uno o varios traspiés pueden acabar con un trabajo de años.

En un mundo tan complicado como son las relaciones cliente-proveedor en el negocio del desarrollo de software, la credibilidad es una característica fundamental para tener un cierto éxito en él. Si una empresa, un grupo de personas de la misma o tan solo una persona de ella, consiguen alcanzar con un cliente esa relación de credibilidad, se tendrá mucho ganado, ya que independientemente de los problemas que pueda tener un proyecto concreto en su desarrollo, en su implantación o en su explotación, el cliente sabe que el proveedor terminará encontrando una solución al problema con todo su empeño.

Con todos los problemas que suelen tener los clientes, que tienen que dar la cara y recibir presiones ante cualquier incidencia moderada en las aplicaciones ante decenas o centenas de usuarios y/o superiores, que tienen que garantizar un nivel de disponibilidad alto para intentar no afectar gravemente en los distintos procesos de negocio afectados por un funcionamiento anómalo de un sistema de información, ¿sabéis lo importantísimo que resulta para ellos que ante cualquier circunstancia de estas características, se tenga la seguridad de que se va a dar la mejor respuesta posible en un tiempo aceptable y no se van a encontrar en una situación de indefensión?.

Por eso, es tan importante tratar bien a los clientes, tener una comunicación continua y fluida con ellos, preocupándose por los proyectos de manera proactiva, pero siempre realizando actuaciones que sean conocidas por ellos, nunca actuando a sus espaldas, nunca diciendo una cosa y haciendo la contraria y hay que intentar darles respuestas a sus problemas lo antes posible, atender a sus demandas y cuando no se está de acuerdo con algo, intentar dialogarlo de manera tranquila y con argumentos. Esto no quiere decir que se deba tolerar abuso, tras abuso, ya que si un cliente actúa de ese modo, simplemente no interesa volver a trabajar con él y por tanto no merece la pena el esfuerzo tan importante que requiere tener construirse una credibilidad y esto lo digo incluso en las circunstancias actuales de crisis.

No quiero decir con esto que no se deba ser profesional cuando existen situaciones de abuso, profesional hay que serlo siempre y los papeles no hay que perderlos nunca, en este tipo de casos hay que intentar cerrar el proyecto cuanto antes, pero no de mala manera, por lo que hay que cumplir los objetivos marcados y elaborar el producto o realizar el servicio con la mayor calidad posible, de esta manera en un futuro cuando las circunstancias cambien, lo mismo sí interesa volver a intentarlo con un cliente concreto (ya que lo mismo el problema estaba con un grupo de personas determinado que han cambiado de puesto o que no van a tener ningún tipo de participación en otro proyecto) y de esta forma las puertas no estarán cerradas si se intenta otra vez llamar al timbre.

Un error en el que solemos caer muchos (entre los cuales me incluyo) en al ámbito laboral en mayor o menor medida, consiste en considerar cualquier problema que pueda acontecer, ya sea grande o pequeño, de la misma manera. Si todos los problemas los consideramos iguales, estaremos todo el día resolviéndolos o pendientes de que se solucionen, lo cual resulta agotador y estresante, en lugar de realizar tareas mucho más productivas, algunas de las cuales permitirían reducir en un futuro el número de problemas, y de esta forma actuar más de forma proactiva que de forma reactiva y evitar la sensación de estar siempre apagando fuegos que nunca dejan de aparecer.

No quiere decir que no sepamos distinguir un problema importante o urgente de uno que no lo es, casi todo el mundo conoce la diferencia entre ellos, el inconveniente está cuando no existe proporcionalidad entre la envergadura del problema y la atención, los medios y el esfuerzo que se dedican para resolverlo. Es decir, podremos saber priorizar una tarea sobre otra, pero eso no es suficiente, hay que ser conscientes de que un problema importante requerirá más esfuerzo y atención que un problema que no lo es tanto y que si tratamos todos los problemas con la misma intensidad, además de resultar agotador, seguro que impedirá darle el tratamiento que merecen los problemas más urgentes, ya que los recursos que se tengan, por más grande que sean, serán limitados.

Por tanto todos los problemas no son iguales, no todos son urgentes, no todos son un mundo, no todos son catastróficos, cada uno tienes sus características y si conseguimos darle a cada uno, una respuesta adecuada y en su justa medida ganaremos en productividad, reduciendo, además, el esfuerzo.

Incluso habrá problemas a los cuales aplacemos su solución de manera indefinida, ya sea porque aún siendo importantes no se tengan medios para poder darle una respuesta adecuada o porque no tienen la suficiente importancia como para priorizarse sobre otros trabajos más urgentes. Como es lógico, estos aplazamientos no van a dejar contentos a todo el mundo, ya que ante un problema siempre hay alguien que se ve afectado por su no resolución. Entra dentro de nuestro trabajo gestionar de la mejor manera posible este tipo de contingencias y explicar por qué no se atiende una determinada petición, habrá veces que se entienda y otras veces que no, en cualquier caso hay que intentar dar una explicación y si no es compartida, entender que es parte de nuestro trabajo tomar decisiones tomando como base el interés general, lo cual en situaciones concretas no dejará satisfecho a todo el mundo.

Es importante señalar que cuanto mayor sea el presupuesto asignado a un proyecto de desarrollo de software en proporción al esfuerzo que a priori se requiere para desarrollarlo, será mucho mejor para el equipo de personas que tiene que desarrollarlo.

Que sea mejor contar con presupuestos holgados o muy holgados, es algo que es evidente, pero no asegura nada, es más, si no se dispone de la experiencia adecuada, un presupuesto muy holgado se puede convertir en un arma de doble filo, ya que en lugar de invertirse en intentar obtener un producto con la mayor calidad posible, en muchas ocasiones se invierte en hacer decenas de probaturas en el mismo, rizando el rizo, que no sólo no aportan nada, sino que pueden incrementar la complejidad de la solución, afectando la misma al usuario final, al desarrollador y/o a la arquitectura tecnológica resultante. De manera que un presupuesto a priori muy holgado, se queda en un presupuesto finalmente muy justito que da lugar a un producto que lo mismo no es tan útil y/o que tiene una mantenibilidad costosa.

También es importante gestionar en estos casos la productividad, ya que el hecho de tener un presupuesto holgado no implica echarse una siesta, sino reducir el nivel de presión en el proyecto y tener más tiempo para pensar y aplicar las mejores soluciones posibles al mismo, intentando conseguir el mayor nivel de calidad. Si la productividad cae, al final, como sucede en el caso comentado en el párrafo anterior, el presupuesto holgado no lo será tanto y se tendrán los mismos problemas que si el proyecto hubiera tenido una asignación económica más ajustada.

Por tanto, que un proyecto tenga un presupuesto mayor o igual que el esfuerzo real que se necesitaría para realizarlo siempre es positivo, siempre es bienvenido. Como ya he comentado en algún artículo del blog, es mejor presupuestos holgados que presupuestos cortitos y no lo digo sólo para el proveedor, sino también para el cliente, ya que si el proyecto de desarrollo de software se gestiona bien por las dos partes, el resultado final deberá tener por término medio una mayor calidad. Lo que no hay que olvidar nunca es que tanto teniendo presupuestos importantes como no teníendolos es muy importante gestionarlos de la mejor manera posible y no dormirse, ya que si no se hacen las cosas bien, el dinero lo único que proporciona es un colchón más grande y un mayor margen de error, que si bien no es poco, no será suficiente para evitar el fracaso si nos distraemos, no somos prácticos y se reduce el nivel de productividad.

Que este año se van a reducir las posibilidades de contratación informática es algo conocido por todos. Los importantes ajustes presupuestarios en la administración pública, sumado a que las empresas privadas priorizarán muy probablemente otras areas de funcionamiento interno a la mejora de sus infraestructuras informáticas, tendrán consecuencias tanto en el número total de contrataciones que se realicen, así como el importe de las mismas, que se ajustarán hasta el extremo.

Por tanto, al reducirse el número de contrataciones, una posible estrategia para hacer frente a esa contingencia es diversificar, si es posible, las posibilidades de negocio. Esta diversificación se puede instrumentar de diversas formas:

1) Diversificación tecnológica y de tipos de desarrollo: Si tu organización está especializada en una tecnología X y en unos tipos de desarrollo Y, Z y W, ¿por qué no ampliar el alcance de las tecnologías que domina la empresa a un mayor número de tecnologías y a un mayor número de tipos de desarrollo?.

Es evidente que este cambio no se puede producir de la noche a la mañana, que no es algo trivial y que necesita hacerse con planificación. Sin embargo esto no quiere decir, que esta diversificación no se pueda conseguir a medio plazo, la cuestión es proponérselo (para lo que es necesario primero en creer en que la diversificación traerá aspectos positivos) y segundo en realizar una inversión, ya sea en formación de personal interno y/o contratar algún especialista en ese tecnología, sumado probablemente en algunos casos a la adquisición de algún producto software que pueda dar soporte a la misma.

2) Diversificación de los clientes: Lo mismo tu empresa está especializada en un tipo de clientes concreto (empresas privadas, administración pública o en un dominio restringido de alguna de ellas o de ambas). Si se quiere optar a un mayor número de posibilidades de contratación, será necesario ampliar el alcance de los clientes a los que se pretende llegar. Para ello hay que plantearse presentarse a concursos de entidades que antes ni se había pensado en acudir a ellos y sobre todo darse a conocer por esos nuevos clientes a los que se quiere optar, lo que requiere un importante esfuerzo comercial y de marketing.

3) Diversificación geográfica: Es un caso particular del anterior y consiste en ampliar fronteras tanto dentro de tu comunidad autónoma, como dentro de tu país o incluso iniciar aventuras en el extranjero. Esto es como si uno quiere ir a comprar pan y resulta que las que están más cerca de tu casa están cerradas, si se quiere pan, habrá que ir a otras panaderías aunque estas estén más lejos. ¿Qué no es sencillo trabajar a mucha distancia del cliente y esto trae costes adicionales? Evidentemente, pero quien algo quiere, algo le cuesta y la clave en este aspecto resulta en pensar muy bien, cómo afrontar este tipo de proyectos: buscarse socios locales, afrontarlo a distancia con o sin ayuda de socios locales, abrir una oficina en el destino si el proyecto es importante y la puede costear, etc…

Es fácil hablar de diversificación, pero no resulta tan fácil implementarla. Como he comentado, hay una circunstancia que empuja a la diversificación que no es otra que la necesidad. Para que una empresa subsista necesita ingresos, ya que al final el balance empresarial se reduce a la fórmula: ingresos – gastos y si el resultado es negativo, no se podrá mantener mucho tiempo la estabilidad en la empresa, ya que serán necesarias reestructuraciones en la misma para volver a tener un balance positivo y si los ingresos no consiguen mantenerse o aumentar, la otra posibilidad es reducir gastos y todo sabemos que consecuencias trae consigo la reducción de los mismos.

Pese a que la necesidad puede ser un factor importante para plantearse la diversificación, desde mi punto de vista, si no viene acompañado por creerse que la diversificación es beneficiosa (incluso en momentos donde no exista la crisis económica actual), difícilmente se tomarán las decisiones necesarias, instrumentadas mediante la correspondiente planificación, para que esta diversificación, en el caso de que se decida acometarla, realmente obtenga resultados positivos.