Una de las cosas que me obliga a tomar todas mis reservas de paciencia, es el desconocimiento de las personas que el desarrollo es una mezcla de tres factores: Tiempo, alcance y recursos.

La semana pasada en el viaje a Oaxaca noté que la Laptop Inspiron 1525 se estaba sobrecalentando nuevamente, y por lo visto mañana tendré que formatear y revisarla a fondo, pero mejor lo haré en casa aunque es justificable el hacerlo en horas de trabajo, sobre todo si es mi computadora, que presto al trabajo.

El problema de otros asuntos, es que el control de tiempo por el timer de cocina puede hacerse cuando se busca trabajar, pero se que si lo uso en mi trabajo normal, demuestro mayor rendimiento que otras personas, lo que suele no dejar a la gente muy contenta, y eso que mis labores son mas amplias.

En estos días se dio el caso de uno de los programadores de otra unidad, quizá el menos novato de ellos, y después de la junta del martes con todos sus detalles de falta de control, no me extrañaría que esté pensando en irse. El problema es que lo que el hace es el core, que en su momento le delegué, y ahora que quieren usar tres de mis subsistemas como punta de lanza de un revamp insustentable, veo el peligro del desconocimiento del core. Creo que el futuro de esa unidad de trabajo, está en entre dicho, no solo por el hosting INUTIL de 20 mil pesos mensuales que pagan para tratar de sacar una certificación que no es posible desde hace mas de dos años, sino que por una «actitud positiva» están creando en esa unidad un problema de las empresas grandes, sin ninguna de sus ventajas.

Ya ofrecí dos ideas de negocio, pero estan demasido interesados en lo que parece ser un cambio de apariencia gráfica de un formulario php que por definición lleva unos 120 campos en uno de los masu usados, sin pensar que la estructura vertical es obligatoria, para formularios como el derivado de AMECE que por definición son 40 renglones de 10 a 15 campos, sin tomar en cuenta nada mas que la parte detalle del formulario.

Por un lado dan ganas de reirse, y por otra, entiendo que en la junta del martes dijeran de los tres proyectos que quieren que se hagan, en pocas palabras, que lo que hice por fuera sea el punto de venta del desastre que hicieron desde Noviembre del 2010.

Ok. No me gusta decir se los dije pero es obvio que está pasando.

Muy bien, y los otros «programadores» de la junta, que se supone saben mas que yo del core de negocio ?

Algo esta mal si hacen perder el tiempo a esos otros, que no tenían nada mas que decir de estos 3 proyectos, que por lo visto no conocen sino de manera superficial al querer «cambiarlos» para hacerlo punta de lanza. Es como tratar de meter lo que funciona de un coche funcionando a uno descompuesto: A la larga se tienen dos coches inservibles.

Además, si un coche funciona, con tres subsistemas diferentes, y quieren usarlo de punta de lanza, es evidente primero que funciona (muy a su pesar), y que si algo sale mal, el equipo de una persona que tiene esos proyectos funcionando, o sease yo, tiene mayor idea que la otra unidad , que necesita como punta de lanza aquello en lo que no tuvieron que ver.

El equipo del coche funcionando, le pueden pedir que haga un trailer, pero parece la misma historia de siempre : dos o mas timoneles y un solo remero. Y además los timonles tienen prisa de subirse a un coche encendido, pero eso no hace que el camino que el coche descompuesto destruyó, vaya a repararse.

Será un año de tarugadas en sistemas, parece.

En muy poco tiempo me ha tocado ver demasiadas tarugadas relacionadas con sistemas… espero que sea solo uan temporada y no todo el año vaya a ser así.

1 ) la cliente que no puede abrir su correo
2 ) El cliente del cliente del corporativo que me da derechos de ver la existencia de la tabla en oracle pero no de select
3 ) El soporte de servint que no entendió que el powerpanel estaba fallando y que queria yo restaurar un archivo que estaba en x lugar, y no restablecer todo el servidor a dias atras ( menos mal que lo pude parar … me dan ganas de dejar servint)
4 ) el proveedor de dominios que puso aumento oculto de precios y que detecté al hacer mi nueva lista de precios.

Demasiado para aguantar todo un año a ese tipo de idiotas codiciosos.

Hace unos dias tuve una persona de una razón social que le recomendaron a una de las Pyme, con un problema. No podia ver su correo. Despues de varios dimes y diretes, decidi cambiarla de servidor y al hacerlo, descubri que los respaldos de hsphere ya no pueden generarse desde la pc de uno y su webpanel. Es una estupidez que afecta a los que somos responsables, y considerando los otros detalles que tiene hsphere, o mejor dicho, el proveedor que manejo que es uno de los dos existentes con precios decentes, decidi mandar ese panel de control al baul de los recuerdos y estare trabajando solamente con una plataforma.

Empece a contactar a todos los clientes de ese server, y afortunadamente o desafortunadamente, una de ellas que era buena pagadora me comento que contrato un server ilimitado en otro lugar. Servers ilimitados son imposibles así que no dije nada y le desee buena suerte, y le ofreci un plan de tres meses para que configure el server nuevo aunque ofreció pagarme un año como los seis años anteriores.

Ya me pago los tres meses, y pensandolo bien creo que llevaba casi ocho años con hsphere, pero ya no se puede por las limitaciones diversas que esta poniendo el proveedor: lo malo es que aunque parece la solución ideal, en realidad esas limitaciones me impiden incluso poner un drupal en esa plataforma. me falta migrar un cliente que ya me dijo que si lo cambie a la otra plataforma, y otro no contesta, pero si es solo un cliente el que se queda tengo siempre la solución de nameservers redireccionados.

Lo que si se es que debo replantearme un poco el futuro de la tecnología porque hay varias implicaciones idiotas , que van desde la cliente que no puede abrir un webmail simple, hasta los problemas con el marketing que tratan de hacer con el corporativo donde trabajo, lo que indica que a esa unidad le esperan problemas por no entender lo básico.

En unas semanas sube el precio de varios tipos de dominios web, y el día primero entra en vigor la ley de protección de datos personales. Los ultimos quince días me la he pasado verificando una supuesta intrusión a un sistema de tickets (que en realidad era un usuario descuidado con la contraseña master), y avisando a los clientes de mis Pymes acerca de los cambios de nuestra relación por la ley de protección de datos.

Otro cliente no me paga desde hace dos meses y tenemos en camino un buen proyecto (que le interesa mas a el como intermediario que a mí) . Le dediqué dos fines de semana y no ha entrado al demo. Ya le avisé que el 11 le suspendo el demo, y el 26 los dominios alojados.

Trámites de preparación al 2012…

Hace unos minutos habló el cliente que tiene miles de artículos en un sistema para 200, quejàndose de lentitud del server.

Oh surprise.

Se tarda 17 segundos en el listado de artículos (que incluye la capacidad de editar).

Solo que el sistema tiene de parte de el 6824 artículos.

No los 200-400 para los que el sistema está diseñado.

Los de ventas la regaron al permitirle ese uso; por lo menos se le va a cobrar la adecuación para usar el método alterno, pero es un cliente de 1800 al año y la adecuación anda en unos 12 a 30 mil si conozco al corporativo. Yo puedo hacerlo en menos de 8 horas, asi que el costo no llega a 3 mil pesos.

Mientras el cliente sufre.

Update:
A mediados de diciembre se les hizo una pantalla de alta rápida de artículos. Ya van , a mediados de enero, en 9800 artículos, tardan 35 segundos en cada alta de artículos. Esto les va a estallar, porque meter artículos a lo idiota, indica que no tienen nomenclatura. No pueden esperar que un sistema de cambios de precios diarios maneje cinco facturas de diferente precio el mismo día y siga teniendo integridad referencial cuando en las especificaciones se habla de 200 artículos y un precio por día.

Hace años nos quejábamos si nos mandaban un correo con una versión rara de office.

Uno de los requisitos que pongo a los clientes del corporativo es que me envien un archivo XML de ejemplo , para agilizar el proceso de lo que quieren hacer. Ocasionalmnte me mandan un XSD del que genero un ejemplo con el lenguaje o plataforma .net

Oh surprise.

Hoy me mandaron un DOC realizado en quien sabe que versión de office. Ese documento de word contiene un objeto embebido (bueno, varios) pero el que necesito No lo lee ninguna de las tres pc disponibles.

Ninguna de tres versiones funciona.

Solución:

1 ) Guardar el doc.
2 ) Desde Cmd ponerle extensión ZIP
3 ) descomprimirlo.
4 ) Tomar del subdirectorio el archivo XSD

Funciona porque:

Muchos formatos de doc recientes son realmente archivos zip.

Que estupidez !

La semana pasada estuvo a punto de pasar una desgracia en el trabajo, pero mi forma de respaldos funcionó.

Acabo de enviar este correo a varias personas relacionadas con el evento:

========================================================================

En vista de los acontecimientos de la semana pasada, creo que no podemos retrasar mas lo de hacer unas pruebas en frio de respaldos.

El proceso de copia de respaldos es mucho mas efectivo si el sitio y su base de datos está suspendido / detenido, para asegurar integridad de la base de datos. Por lo mismo, creo que una prueba de respaldos con el servidor detenido es lo mejor que puede hacerse, Queda evidente que los clientes probablemente no podrían accesarar antes de las 11 de la mañana ese día, y como hablamos antes este viernes sería ideal.

Este sería el proceso:

1 ) Me levanto a las 3 de la mañana , detengo el servidor y empiezo a sacar respaldo, en el servidor alterno, de dos formas:

a ) local en ese server
b ) replicado en tar.gz

2 ) El respaldo replicado termina entre 3 y 4 horas después, porque el proceso necesita primero comprimir y despues copiar unos 8 gb de información

3 ) Aproximadamente a las 8 de la mañana , levanto el respaldo replicado para que ABG, SAEM, AG y XFBP puedan revisar que esta completo, y haciendo las pruebas que quieran MENOS las referentes a redireccionamiento de puertos ( que ese server no tiene )

4 ) Saco un respaldo local empezando a las 8 de la mañana, que debe durar aproximadamente 3 horas.

5 ) A las 11 de la mañana verifico que el servidor esté respaldado en local, y una vez que vea que el respaldo es integro, (10 minutos maximo) se abre el server para los clientes.

========================================
Notas:
1 ) Quedaría pendiente descargar el respaldo local en frío, cosa que yo puedo hacer el viernes en la noche en mi casa.

2 ) Como empezaría a trabajar en esto a las 3 de la mañana, no me presentaría en las oficinas ese día

3 ) Este respaldo tiene demasiados archivos para hacerse por FTP o por rsync, y es independiente de que la UTILIDAD mayor de este respaldo es con server detenido, no el método en sí.

Una de mis cuentas de banco es una tarjeta perfiles de Banamex que expiraba el mes pasado. Llevo dos semanas detectando porque no me llegaba la reposición; resultó que alguien se hizo pasar por mi y la recibió afuera de mi domicilio el 24 de agosto de este año; solo que era martes y segun el checador biometrico yo estuve todo el dia en la oficina.

Es la misma tarjeta de la que no me han llegado estados de cuenta desde mayo.

Por mientras se anexó a un procedimiento en curso contra la secta y tiene que ir a declarar el mensajero, num de reporte num reporte 154751.

Historia larga pero parecida a cuestiones del presente.

Hace unos años me encargaron un proyecto específico por nómina de tiempo determinado (menos de dos años) que debía correr en mysql y en MSSQL por lo menos. Se hicieron una serie de documentos al respecto; el documento 3 era la transcripción de una serie de preguntas que hice, alrededor de 25, sobre unos puntos finos de negocio. Las preguntas eran breves, concisas y el cuestionario lo hice revisando con un conocido que es experto en ese giro de negocio.

El que era mi jefe inmediato y director de esa empresa, me contestó todas las preguntas y como buen profesional lo puse por escrito y se lo mandé para su Visto Bueno. Tres meses después resultó que esas preguntas, tres o cuatro de ellas estaban muy mal contestadas, se había perdido un mes y medio de trabajo de dos personas en eso. Hizo berrinche, cambió el organigrama y me puso bajo las ordenes del área de desarrollo de ASP, solo que yo debía hacer este software en php.

Ok.

No me dieron datos de servidores de acceso (mssql y mysql), hice un memorandum, lo envie por correo a tres personas, y dije que de manera temporal iba a usar dos sitios mios, para hostear el proyecto y hacer las pruebas.

Hubo una junta especialmente ríspida. Va un antecedente.

Me acuerdo que el lunes y martes de esa semana me pusieron a explicarle al Gerente de Ventas (vendedor de unos 35 años) lo necesario para un sitio web (querían vender hospedaje web , y su idea era entre otras cosas que yo les ayudara a preparar los servidores ). Recuerdo que le expliqué a esta persona que un sitio web normalmente con acabados bien hechos (tipo rojointenso.net o garradejaguar.org ) normalmente el diseño se puede hacer en x costo, se configura un CMS , o se hace un diseño y logos en photoshop. Asi que cobrando por un año , incluyendo diseño, servicio del sistema que estabamos haciendo, podía venderse en unos 9000 sin mucho problema, mas nuestra licencia. (Es lo normal cuando manejas bases de datos de tienda online, otros casos hasta 3000 es muy buen precio en cuanto a la ganancia que deja si tus costos son marginales)

Su presupuesto que me mostró el miércoles, para una ferretería muy grande era de …. 35 mil pesos por el sitio. Esta persona metió en sus cálculos el precio de depreciación de mi pc, del becario que iba a hacer los logotipos, de la maquina del becario, de la gasolina de ver al cliente, de los sueldos promedio… Y no consideraba el precio real del hospedaje en server, que no teníamos.

Ese mismo día me dice:

Dice el jefe (el director de la empresa)que si mientras haces el sistema puedes enseñarle al becario X como se programa para que el haga el siguiente.

¿?

Le dije:

Si pero se multiplica el tiempo por 2. Esta persona me va a distraer y además tengo que verificar que sepa lo básico del lenguaje y de servidores, y el sistema de programación de Pair programming ( http://en.wikipedia.org/wiki/Pair_programming )necesita dos programadores de la misma capacidad, así que lo que puedo hacer es un poco de Extreme Programming (http://en.wikipedia.org/wiki/Extreme_programming), pero al mismo tiempo dar curso de parvulitos. De momento estoy usando RAD http://en.wikipedia.org/wiki/Rapid_application_development pero no puede trabajarse en RAD y enseñarse a la vez.

A final de cuentas Entre las preguntas de sitio y similares, hablé con el de ventas unas ocho horas.

El jueves presenté mi avance y el director de la empresa me empezó a reclamar por no haber avanzado las metas del mes. Le mostré que las metas a seis meses las había cumplido al segundo mes, y que las metas del año iban, A LOS TRES MESES, en un 60 %. Se enfureció cuando le expliqué que no podía mantener el ritmo de trabajo normal, si me ponían a enseñarle a alguien que no tenía experiencia (por entonces yo tenía unos 16 años de experiencia), y que evidentemente no iban a poder obtener la misma calidad, para que lo manejaran en sus tiempos.

Junta explosiva de berrinche por el sujeto

El viernes el director de ese corporativo (dedicado al ramo de seguros) me pidió moderar la junta semanal, del lunes, lo que implicaba hacer la minuta y orden del día. Esa junta era independiente de todo lo demás.

En la junta del lunes, el director del corporativo nos informó que iba a haber un cambio de jugada, y en pocas palabras, que no nos sintiéramos mal. Que una vez termináramos los objetivos del año , (que yo llevaba en un 60%) iba a haber un aumento de sueldo de 25%.

Se puso por escrito (parte de la minuta).

El cambio de jugada consistió en quitar de los objetivos del año varias cosas. Y en ese momento mi proyecto pasaba a estar 90%. Dijo claramente que no iban a haber cargas de trabajo de esos proyectos, y que el aumento se hacía en cuanto se acabara.

Hice la minuta, la pase a firma (firmaron mi jefe directo, el director de la empresa, contralora, etc); me puse a trabajar en el 10% restante, y el miércoles de la siguiente semana estaba terminado, probado, autorizado por el usuario final.

Dos semanas después dela junta que moderé, el usuario final llevaba una semana usando el sistema, habiéndome autorizado que el sistema cumplía lo necesario de las especificaciones; el documento de liberación iba con copia al director del corporativo.

Un jueves, para celebrar el cierre del proyecto me invita a comer mi jefe (no el director de la empresa ni del corporativo, sino el gerente de desarrollo), y supe lo que iba a pasar. Así que me preparé a pagar yo la comida (por lo que iba a pasar al dia siguiente segun yo), fuimos a comer a las cuatro de la tarde al bife del padrino que estaba cerca de plaza galerías. El se puso hasta atrás, pero antes pude hablar acerca del próximo proyecto. Recuerdo que me dijo que le gustaba mucho mi manera de trabajar, pero que el problema de el directivo de la empresa era que sus utilidades dependían de otra cosa, y que yo hiciera el proyecto en menos de cuatro meses cuando era de un año lo había puesto en ridículo, y considerando que al principio se había perdido un mes, era peor.

Pagué yo. Era poco después de las siete PM, y Recuerdo que fueron poco mas de 1400 (no llegaba ni al 10% de mi sueldo). El valet Parking llamó un taxi, lo pagué e hice que llevaran a mi jefe al trabajo (avisandoles por teléfono que iba para allá). Yo tomé mi coche y me fui a mi casa que me quedaba de camino.

Al dia Siguiente me llama el director de la empresa para decirme que me iban a descontar el día por haber salido a las cuatro. Le expliqué que mi jefe me invitó a comer, y que salimos a las siete. La situación se puso absurda. En esas llegó mi jefe (11 am) y aproveché para comentar que necesitaba los requerimientos del siguiente proyecto, y los datos para un servidor de Mysql y otro de MSSQL para pasar los datos del que acabamos de terminar. Les mostré en la laptop de mi propiedad las bases de datos jalando en local de mi pc de escritorio (que era de la empresa), y se las copié a un USB nuevo que abrí en ese momento.

El siguiente movimiento del director de la empresa fue pedirme que borrara la información de los programas y de las bases de datos de mis sitios. Lo hice en frente de el y de mi jefe inmediato. Con eso solo quedaban los datos de la base de datos, en la computadora local. La idea era que iban a respaldar los datos en un servidor externo.

El proyecto estaba terminado así que pedí el aumento de 25% que había dicho el director general. La respuesta fue que no me lo iban a dar porque el proyecto era por un año (¿?) y que querían que le enseñara a un becario a hacer un sistema, con el mismo sueldo (que eran como 18 mas prestaciones), en el mismo tiempo.

Claro que si yo quería tomar mi liquidación de tres meses de sueldo, el estaba encantado.

Asi que la tomé. Diez minutos después tenía mi cheque. Baje a cobrarlo y lo deposité en mi tarjeta de crédito del mismo banco. Por previsor siempre tengo todo preparado por continuidad de negocio.

Mi jefe inmediato avisó a todos que era mi ultimo día, y pidió unas pizzas de Papa Johns. El director de la empresa dijo que se seguía el procedimiento estandard.

Antes de irme, teniendo ya en mi poder los documentos de entrega firmados, llega el fierrero (un estudiante de UNITEC que estaba a cargo de las redes y demás) y me devuelve mi USB ya formateado. Y dijo muy contento:

Ya formatee la Máquina de escritorio también.

¿?

El procedimiento normal era formatear la pc de la persona. El no respaldó mi información de Words, Data Architects y excel, porque verificó los discos que quemé en la entrega junto con el código fuente. Y el pensaba que los datos estaban en otro servidor (de nuestro cliente, que afortunadamente era interno)

Asi que lo que hizo el técnico fue formatear mi maquina dos veces, y se perdieron TODOS los datos de casi tres meses de captura. Le instaló el sistema operativo encima. Y era Disco SATA, que no estaba soportado entonces por Norton.

El director de la empresa hizo berrinche mayúsculo, se puso morado, vio que no iban bases de datos en los discos de entrega y los aventó al piso. Mis proyectos los suelo entregar en discos de 210 mb ( http://www.amazon.com/Memorex-Pocket-Mini-Discs-50-Pack-Spindle/dp/B00005NHGP ), así que cuando los aventó al piso, los discos valieron madre.

Se perdió el código. No hay herramientas que recuperen archivos rar dañados de discos de 210 mb.

================================================================

Varios años después sigo monitoreando esa empresa. Apenas acaban de sacar una nueva versión del software que hice, ahora en ASP.

================================================================

En el corporativo en que estoy en que estoy estamos haciendo ajustes a un sistema de colegio de profesionistas hecho por un argentino sobre un proyecto a la medida mal diseñado y mal ejecutado. Ya expliqué que sale
mas caro dar mantenimiento a ese monstruo que hacer el sistema de ceros.

Ayer hubo una junta y el socio técnico, y el director de una de las empresas de aquí, fueron a proponerles que se hiciera un nuevo software. No hay presupuesto en el colegio, asi que me pidieron una serie de ajustes larguísimos que usarán una o dos semanas de mi tiempo, y estoy seguro que por lo menos pagan 30 mil. Con eso se podría hacer su sistema de ceros.

Me siento igual que cuando en aquella empresa hicieron un presupuesto de página web en 35 mil hace varios años.

Hace unos tres años la mayor parte de los proveedores de servers dedicados y VPS con los que tenía contacto., cambiaron mucho. Sin embargo, por estas fechas, se ha estabilizado y conozco tres proveedores decentes. Como resultado de los cambios de la dichosa base de datos, la semana pasada hice cambios en el server de las razones sociales relacionadas con Ojos Alerta AC, y ya quedó.

Luego le pedí al personal de otro juego de servers, en Servint que hiciera lo mismo, y creo que no lo saben hacer o no tienen la misma estructura a prueba de fallos.

Estoy esperando a que se acaben de propagar los nameservers, pero por ahora lo que veo en las cabeceras del panel de control es el nameserver antiguo. Esto me preocupa porque si no se propaga para mañana no podré hacer el siguiente paso del cambio; también noté que el proveedor me removió el acceso a SSH, o no está ligado al password de los dedicados. Asi que aunque todos los servers de ese proveedor tienen el mismo password de 24 caracteres aleatorios, no puedo usar el SSH, y ya probé con herramientas diferentes a putty.

Mi primer instinto es cambiar de proveedor, pero la experiencia me dice que puedo observar dos días mas.

Y por otro lado se que es mejor tener por lo menos dos provedores de ese tipo, y ellos, servint, son el segundo mejor.