Archive for the ‘Uncategorized’ Category

When saying NO can be healthy

Monday, July 29th, 2013

After years of coding, learning languages and improving my programming skills I’ve finally made it to a manager position.
I must say I’ve been looking after this for a long time and to be honest it’s been quite a learning experience. Dealing with programmers, clients, resources management and a whole bunch of administrative tasks are now how I spend my days.
The deal is I get payed by an american company to be the IT manager for a mexican company.
After so many years I’ve come to my little theory of why american software products are almost always better than latin ones. We latinos don’t know when to say no. We always say yes to keep the job, making customers believe we will get the job done. Actually we do get the job done but there’s a catch.
For most latins a NO implies losing a customer (and money) and since the customer is always right they must do as the customer wants, even if the customer is asking for something clearly out of scope from the very beginning. The good thing is that they get the job done and the customer gets immediate satisfaction, the bad thing is that while trying to get the job done they loose quality, code gets hardcoded, coding coherence gets lost and little by little the product starts to become unstable and difficult to enhance. The customer sometimes will take long time to realize this and then will become dependant on a low quality software and will eventually drop it and go for a commercial license of some other company. That’s when the latin company will wonder how come another company that was way behind a few years ago is now providing the same functionality and adding more features so quickly while they are struggling a lot to add those same features.
I’ve seen this a lot. Why do this happen?
Simple, it’s all about knowing when to say NO and what a NO implies.
As a mexican if you say NO, that’s it, there’s no action taken, no responsibility is taken and any intention cease to exist. Thus, in order for something to happen they need to say Yes, take a rushed decision and develop a quick poor quality solution that will earn them a client, however as the client request upgrades, changes and new features, the code will become unstable, insecure and as time goes by it will keep getting more and more difficult to maintain causing failures and eventually loosing the customer.
In other cultures (like the american culture) if you say NO it triggers a complete different response. NO triggers a big event where the company identifies an area of opportunity, plans accordingly and develop a stable and upgradeable solution. They might have lost a couple of clients in the road but they will eventually get them back.
The other big catch involves the human resources. Bad planing results in the need for workers to stay overtime, frustrating efforts to satisfy ridiculous promises and a number of employees losing faith and loyalty in the company.
This is the case where a Yes actually can harm you more than a No.
We latins need to learn to do things right. Time spent on planing will result in greater benefits than the time spent in a quick mediocre solution.

Importancia de la fase de pruebas

Monday, August 24th, 2009

Bueno durante mis años mozos jijijiji siempre me intrigaba el asunto de la famosa etapa de pruebas, ¿por qué es tan importante?
Pues hoy en día después de años de experiencia sé la importancia que tiene esta etapa. Y es que no es una simple fase de pruebas, son pruebas exhaustivas. Exhaustivas quiere decir que vamos a probar todos los caminos posibles en el flujo de los datos para validar que todos los caminos son los que se planearon y que el sistema funciona tal cual queremos.
Además esta fase nos ayuda a liberar rápidamente un sistema. Permítanme les platico un ejemplo.
Estos meses he estado involucrado en un proyecto que sinceramente ya se ha vuelto un dolor de cabeza. Primero que nada no nos dieron documentación, después el ambiente de pruebas falló y nadie supo cómo arreglarlo. No ha habido ningún papel especificando el alcance del desarrollo ni nada por el estilo. El objetivo es substituir una aplicación cliente/servidor con un programa web hecho en LAMP o WAMP. Nos decidimos por WAMP dado que había que modificar algunos Excel y archivos de Crystal Reports al vuelo.
Dado la falta de documentos el desarrollo se ha ido haciendo a prueba y error. Finalmente ha quedado ‘listo’. Siguiente paso: se le solicita al cliente que ponga a su personal a probarlo exhaustivamente para validar campos, flujo de datos y en general el funcionamiento del sistema. El cliente decide brincarse esta etapa y nos informa que le parece bien que se pruebe en paralelo con el sistema que tienen actualmente.
Aquí empezaron los problemas ¿por qué? porque aunque el sistema es vital para el funcionamiento de la empresa únicamente se utiliza cerca de 5 veces al día. Esta cantidad es totalmente ridícula para validar si el sistema funciona bien! se le explica al cliente e incluso a mis jefes los riesgos de no realizar las pruebas exhaustivas pero como ocurre en la mayoría de los casos se decidió por satisfacer una necesidad estúpida del cliente.
Esto ha implicado que los distintos caminos que puede tomar la información no se prueben del todo y además el tiempo de puesta a punto del sistema se ha extendido indefinidamente. Se reportan hasta 6 detalles semanalmente que ocupan un total de horas laborales. Yo de lujo pues descanso muchísimo pero a mi empresa le cuesta dinero, tiempo y pérdida de recursos que puede aprovechar en otro proyecto.
Si se hubieran hecho las pruebas exhaustivas el sistema estaría listo desde hace un par de semanas pero esto va para largo.
En fin, me aguantaré estar sentado un rato con riesgo de hemorroides y un ocio increíble. Estudiaré más, sacaré mis apuntes y a desarrollar otras cosas sino me voy a aburrir increíblemente.

Curiosidad cubierta

Sunday, August 23rd, 2009

Hola….

Bueno, después de hacer las configuraciones necesarias a mi servidor me veo en la necesidad de definir qué agregar.

Sitemas? juegos? bingo!

Quiero que este servidor solucione muchos de los problemas que tengo en el trabajo:

Espacio adicional, libertad de configuración de elementos, publicación de lo que a mí se me venga en gana, etc… Un blog! Además me servirá para desahogarme, para expresar lo que necesito y para maldecir a quien lo merezca.

Todo está listo y he aquí mi primer post.