Tag Archives: buenas practicas

La utopía de la relación consultoría-cliente

El amor del cliente hacia el proyecto, una utopía cuando se trata de consultorías pequeñas o freelancers. La honestidad y la pasión por el proyecto fluyendo en ambos sentidos: del cliente hacia el proveedor de servicios y viceversa, utopía que es el día a día de cualquier profesional de TI. Pero, ¿cómo lograr que no sea sólo un sueño y se traduzca en mejores condiciones de trabajo para las consultorías pequeñas?. Confianza.

Los clientes que trabajan con proveedores de servicios tienden a confiar en aquellas agencias de renombre, con una marca bien posicionada. Las consultorías pequeñas no siempre inspiran esa confianza, lo que significa que esta debe ser construida, alimentada y nunca darse por sentada. Pero, ¿qué herramientas tenemos las empresas pequeñas para ganarnos esa confianza del cliente y llevar una mejor relación en los proyectos?

Ganar-ganar significa que las soluciones que le damos al cliente resuelven sus problemas y nosotros recibimos a cambio la satisfacción de haber cumplido en tiempo y forma con lo requerido. El cliente debería responder a tus ideas con respeto, poniendo su confianza en aquellas propuestas con las que no está totalmente identificado y dejando de lado sus propios planteamientos de los que inconscientemente sabe que no tendrán mucho éxito. De la misma manera deberíamos mostrar la confianza y respeto por las ideas del cliente y dejar de lado algunas otras para darle paso a conceptos frescos surgidos de esta relación. Con estos primeros pasos aseguramos que se creará la mejor plataforma para el éxito del proyecto.

Aunque hay algunos esfuerzos que necesitamos hacer para mantener esta plataforma estable y evitar la frustración y decadencia características de los proyectos mexicanos.

La manera en la que los equipos de la consultoría y el ciente trabajan, es un punto crítico. Primero que nada, debemos ser aquello que queremos que el cliente sea, es decir, si queremos que sean honestos con nosotros, entonces debemos ser honestos también. Si queremos que muestren interés en el proyecto, entonces tengamos pasión al realizar nuestro trabajo. Probablemente, al principio no detecten este entusiasmo, pero tarde o temprano lo harán y esto servirá para reforzar las relaciones de trabajo. Cuando las cosas no vayan bien, se tengan muchos issues en el sistema o simplemente la relación vaya en decadencia, debemos asegurar que el cliente se enfoque en los usuarios y los problemas de negocio más que en las deficiencias detectadas, siendo siempre nosotros los catalizadores para resolver dichos problemas. Discutir la resolución de problemas en un ambiente controlado y con pruebas, es la mejor manera de retirar los prejuicios que el cliente se haya hecho de nosotros.

Implementar metodologías para investigación de clientes y pruebas con usuarios es una buena idea para llevar un proyecto. Algunas de estas dinámicas pueden ser: focus groups, entrevistas, encuestas, prototipos, pruebas de usabilidad, etc. Todos estos procedimientos arrojan información invaluable al inicio de un proyecto pues permiten focalizar los esfuerzos y no trabajar a ciegas sin saber que tipo de usuarios estarán interactuando con el sistema. Inclusive se pueden generar estrategias que permitan convencer al cliente de usarlas pues sabremos con certeza el éxito que tendrán al ser implementadas. Aquí el punto interesante será el compromiso por parte del cliente de destinar cierto presupuesto a la implementación de estos procedimientos, o bien, por salud propia, definir un estándar en todos nuestros proyectos para asignar recursos humanos, económicos y materiales a esas tareas que se traducirán en mejores resultados en los proyectos y muy probablemente en nuevos contratos. Finalmente será un gasto mucho menor que perder tiempo y dinero en la corrección de problemas posteriores.

Existe una teoría de la usabilidad llamada aesthetic usability effect o efecto de la usabilidad estética, esta teoría básicamente dice que aunque un producto sea muy dificil de usar, si es atractivo visualmente, inspirará la confianza necesaria en el usuario a nivel de generar cierta tolerancia a fallos, crear una idea de que la curva de aprendizaje será menor y por lo tanto que el esfuerzo que hará para poder usar el sistema será mínimo. Entonces, entre más atractiva sea una liberación, un prototipo e inclusive una presentación ejecutiva, mejor será el resultado y la probabilidad de que nuestras propuestas sean aceptadas. El punto es, mantener al cliente siempre interesado en nuestras propuestas, en las presentaciones, liberaciones o pruebas, no darle oportunidad de hacer decaer la curva de interés y no detenernos hasta que hayamos impreso en su subconsciente nuestro objetivo.

Mantener a los clientes a bordo con nuestras recomendaciones y propuestas no sólo se traduce en mejor productividad también implica éxito de los proyectos en los que participemos.

No nos casemos con un lenguaje, una metodología, un administrador de contenidos o una plataforma de desarrollo, la tecnología y las mentes de las sociedades evolucionan muy rápido, enfrentemos los retos con apertura e ideas creativas e innovadoras para crecer como profesionales.

¡Nos leemos en el próximo!

Pérdida y Recuperación de la Información

El manejo de los datos y de la información tanto de las empresas como de las personas ha llegado a un punto de valor muy importante en nuestros días y si se llega a perder ó hacer un mal manejo de ella, pueden llegar a producirse pérdidas económicas muy significativas, de acuerdo al ámbito laboral al que se pertenezca.

Como primer punto referente al manejo de información, se encuentra el respaldo de la misma, donde cabe destacar que algunas empresas e incluso las personas tienen diversas formas y métodos para realizarlo, ayudando así a la prevención de una pérdida de información inesperada de cualquier naturaleza, y con una consecuencia menos grave por la seguridad que les causa el respaldo.

Hay distintos dispositivos de almacenamiento para el respaldo de la información y su posterior recuperación en caso de pérdida, como los discos duros externos, memorias flash, CD’s, DVD’s, disco blue ray, SSD, unidades ZIP, etc., pueden hecerse copias completas, copias de seguridad solo del servidor o ambas, cada empresa decidirá lo que desea respaldar y de que forma.

En el mercado de la información hoy en día, existe también software de almacenamiento de información, como EMC que con la implementación de repositorios se puede administrar y almacenar de forma segura la información con menos riesgos de pérdida por que estará restringida para los usuarios con menos permisos otorgados, además ofrece también la integración de VMware.

En los casos anteriores, el respaldo de la información funciona cuando las empresas tienen políticas de seguridad y de respaldo de información bien definidas y establecidas haciendo de esto una medida de prevención formándolo parte de su cultura organizacional e incluso cuando capacitán a sus empleados para un manejo responsable de su información.

Desafortunadamente existe otro caso, y es cuando una persona o empleado de una empresa no alcanza a respaldar su información dado que las situaciones están fuera de su alcance como cuando su equipo de cómputo no enciende ó es robado, incluso cuando ocurre un fenómeno natural como un terremoto ó una falla eléctrica y no se estén tomando las medidas necesarias; desde un descuido al borrar un archivo sin saber a donde pertenece ó sin querer, hasta que simplemente el sistema operativo ya no reconoce o no abre los archivos negando el acceso a esa información, en éstos casos el daño de la información es lógico, y con algún programa de recuperación de datos es sumamente sencillo, pero el método para rescatar la información es más complejo.

El software para la recuperación de la información se encuentra en la red, siendo uno de ellos On-Site BackUp el más práctico, básicamente funciona haciendo un respaldo de información diariamente a cierta hora del día de acuerdo a las preferencias del usuario y de acuerdo a lo que desea respaldar y desde donde desea hacerlo. Simplemente es instalar la aplicación, que permitirá en la primera vez hacer una copia completa de los archivos en un equipo o dispositivo, para que posteriormente solo haga el respaldo de aquellos archivos que han sido modificados desde el último respaldo.

El link del software es el siguiente: http://www.on-site.com.mx/backup/empresa/software.php

Así como hay software, también hay empresas que se encargan de la recuperación de la información usando metodologías más complejas, manejando todo fácil de hacer pero elevando el costo de acuerdo a la información que se quiera recuperar y al dispositivo donde se encuentra la información, los precios que se manejan son elevados ya que la forma en que recupera la información es muy delicada, y si se desea recuperar más archivos de otros sectores en el dispositivo se eleva aún más dicho costo.

La recuperación es hecha por expertos en respaldo, seguridad y recuperación de información, garantizando la confidencialidad ante sus clientes y el buen manejo de la misma, además el lugar donde se realiza toda la operación de recuperación, está ambientado de tal forma que sea más exacta y sin menos riesgos de pérdida, todo va de acuerdo a lo que el cliente pida.

En conclusión, el respaldo de la información lleva a dos puntos muy importantes: la pérdida y la recuperación. Van de la mano por que son dependientes una de otra, siendo la información la parte más esencial en una empresa, y si esta se pierde o se hace un mal manejo de ella, las pérdidas pueden estar representadas de otra forma mucho más fuerte para las empresas.

Es necesario hacer conciencia del uso de la información que se encuentra bajo nuestra responsabilidad como consultores.

Código apestoso

El crear software, a mi muy humilde opinión, más que una profesión o un burdo oficio (para muchos), es un arte que requiere de toda la creatividad, dedicación y pasión necesarias ya que no es solo cuestión de cumplir con n requerimientos y que el programa “corra”, realmente hacer un buen programa requiere de un proceso mucho más complejo y parte de este complejo proceso es escribir código de calidad, pero ¿qué implica esto?

La calidad es un concepto tan abstracto que fue necesario crear una lista interminable de reglas y normas para poder “alcanzarla” pero todos sabemos que eso no es suficiente siempre existe una falla y la calidad se pierde un poco. En software es evidente que no es la excepción y averiguando un poco descubrí que en la programación orientada a objetos un par de muchachos: Kent Berck y Martin Fowler definieron un concepto muy ilustrativo para detectar problemas dentro del código: bad smells in code o malos olores en el código.

Este concepto se refiere a detectar algunos problemas como: tener muchos parámetros dentro de un método, o tener clases muy largas con muchas responsabilidades, o clases que dependen mucho una de la otra y así una lista un poco extensa de los muchos problemas que pueden encontrarse dentro del código de cualquier programador, por muy experto que este sea.

Pero  y ¿esto de qué nos sirve? Pues la respuesta más inmediata es: estos “olores” nos ayudan a detectar errores de forma (estilo o modo de escribir el código) en nuestras líneas de código y nos permiten optimizarlas para realmente tener un programa con cierta calidad.

Y ¿qué “olores“ se pueden encontrar? A continuación listaré una serie de “malos olores” y a qué se refiere cada uno.

Nombre ¿A qué se refiere?
Comentarios Se tiene un exceso de comentarios dentro del código. Los comentarios existentes contestan más a la pregunta ¿por qué lo hace? que la pregunta ¿qué hace?
Método largo Se tiene un método demasiado largo. Los método cortos son más fáciles de entender, de leer y de mantener.
Lista de parámetros muy larga Entre mayor sea el número de parámetros, mayor será la complejidad del método.
Código duplicado El código duplicado es la ruina del desarrollo de software. Hay que evitar esto a toda costa.
Explosión combinatoria Se tienen métodos que hacen casi lo mismo pero, el comportamiento de la información varía poco.
Clases largas Tal como los métodos muy largos, las clases muy largas son muy difíciles de mantener, de entender y de leer.
Tipo dentro del nombre Se tienen tipos de datos en los nombres de los métodos. Esto no sólo es redundante sino que obliga a cambiar el nombre del método si el tipo cambia.
Nombre poco comunicativo. ¿El nombre del método describe lo que este hace?
Nombres inconsistentes Si ya se ha elegido un estándar para asignar métodos, es necesario que este estándar se siga.
Código muerto Se tiene código que no se usa.
Especulación general Se tiene código que “resuelve” problemas del futuro pero no los presentes.
Solución excéntrica Se tienen varias soluciones para un mismo problema.
Campo temporal Se tiene un objeto con muchos campos innecesarios.

Bueno, lo más interesante de esto ¿cómo arreglar estos problemas? Pues para esto se usa una técnica llamada “refactorización” pero, este tema es un poco extenso así que lo dejaré para el próximo número. Espero que estos problemas sean mínimos en nuestros códigos.