El dia de ayer se hizo una junta en el corporativo, que tratò sobre todo de que esta funcionando bien el proyecto que empezó en julio, y que quieren un nuevo sistema. Hay trabajo para rato, y avisè que me tardarè un mes mas o menos en diseñar especificaciones funcionales, ya que será para control de RH.

Sin embargo, llama la atención como dicen tan sencillo, crear un sistema de RH, falta definir a que llaman módulo de RH, porque aunque piensan en la impresión de recibos de nómina, no es claro si consideran módulos de capacitación, reclutamiento, evaluación, etc…

Es curioso que SCRUM esté convirtiéndose en una tomada de pelo monumental, donde se trata de transferir a una persona el logro de un equipo Agile. Si bien me ha tocado tener que correr a programadores ineficientes, la regla que he usado en equipos Agile es sacar aquien no puede resolver el trabajo. Y esto tiene que ver con lo del puesto que comentaba ayer.

Hubo un comentario en https://gist.github.com/710960 muy interesante:



Well, this is what’s bound to happen when you start to name things.

“Agile” is doomed too… it’s been since when the name “Agile” started to pop up in conferences and on resumès. When you invent a label it comes with a cost: everyone can use it. And guess who likes labels a lot? Usually someone who has poor knowledge of the subject but needs some handles because he has to make decisions about it (hint: management).

If you can code, you’re a programmer. If you’re the best coder in your team, you’re the team leader. It’s really as simple as this. Nobody who actually is a team leader needs labels – the only ones who can give you real authority are your teammates… the ones who (when the time comes) will have to trust you and submit to your authority.


El ultimo pàrrafo es brutal.

Si puedes programar, eres un programador. Si eres el mejor desarrollador, eres el líder del equipo. Tan simple como eso. Nadie que sea actualmente un líder de equipo de desarrollo necesita etiquetas, lo único que te dará la autoridad en el equipo son los otros miembrosdel equipo, aquellos que cuando el tiempo llega, deben confiar en ti y aceptar tu autoridad.

Claro està que ganar más, y hacer exámen al contratarlos tambièn te da autoridad. Ser el que paga tambièn. Y en comunidades es algo similar. El que hace que las cosas funcionen es lo que cuenta.

Aunque llevo casi 17 años de hacer programas de gestión, he notado que hay personas que no entienden lo mas mínimo la gran diferencia entre nombres del puesto, acciones del puesto, y privilegios del puesto.

Por lo general los dos primeros, acciones y nombres, son variables segun lo que necesite una empresa. No todas las empresas pueden pagar lo que gana alguien efectivo con 20 años de experiencia.

Por lo mismo, hay varias formas de manejar ingresos para alguien con experiencia, y por lo general se debe a una combinación de los mismos, usando lo que sea necesario para ser la respuesta al problema que nos contratan.

He visto desde hace años trampas de personas que piensan que consultoria no se oye bonito y tratan de crear “Fabricas de software”, o “carnicas” como le dicen en España, usando requisitos cambiantes y nada de metodología, dedicandose a publicidad y ventas, en lugar de al producto.

Las combinaciones de ingresos son
Por Nomina

Por Honorarios Asimilados a Salarios. (Honorarios simples no conviene por varias razones)
Razones propias fijas
Razones propias fijas temporales por proyecto
Por proyecto en especie (necesitas una laptop? Hazlo.)
Dacion en pago (similar)
Comodato
Outsourcing

En la practica sin embargo me buscan personas con las que he trabajado anteriormente, como las personas de las gaseras, o de la galletera. Los trabajos mas saludables suelen venir con unos conocidos que desde hace años, a travès de razones sociales de ellos resolvemos problemas de algunas secretarías de estado.

Uno de los paràsitos que tuve que correr de una AC por estar el tipo insultando a mujeres, llegó a la conclusiones bastante idiotas sobre que aparecí en una lista de acceso del año 2009 de una secretaría de estado. Seguro que estoy en varias. De momento es curioso que aunque comenté que me dedicaba por esas fechas a un proyecto bajo NDA(acuerdo de no divulgar) para Un trabajo en semarnat, y que mostré una carta de intrusión de la secretaría de estado autorizándome a hacer pentesting (hacking etico) sobre sus servidores, lo único que esa persona saca en claro es que segun el, yo estaba bajo un trabajo subordinado para una empresa consultora, y según el, eso es malo.

Supongo que a varios les molesta que yo tenga trabajo y que no tenga problemas para conseguir trabajo. Llevo mas de 19 años de experiencia, por lo general en empresas bastante grandes, o en razones sociales de conocidos con las que tenemos otras prestaciones. Cuentas de gastos, viaticos… ademas de otros ingresos.

Y rara vez he estado mas de dos meses sin ingresos por nómina.

Lo que me llama la atención del caso es que la mayoría de las personas no entienden que un “consultor” no es una persona de 40 años que no es “socio” de una empresa pero que es “respetado”.

El puesto no importa. Sea Gobierno, empresa particular , PYME, necesitan por lo general especialistas que les resuelvan el problema. El problema de salud por lo general se arregla con un médico especialista. Si alguien necesita un sitio web, lo ve con otra persona. Igualmente con proyectos de programación por obra terminada, o por puestos de nómina.

Ese es mi perfil. Me he enfocado desde hace años a resolver problemas de programacíón y servidores web, además de hacer sistemas de gestión. Los convenios por lo general se manejan por acuerdos de confidencialidad o NDA, aunque por ejemplo en los casos de pen testing o similares evidentemente me quedo copia de los mismos.

¿Que tiene de malo trabajar en algo comprobable desde hace años?

Nada.

Supongo que el problema es cuando misingresos son de cinco a diez veces mayores, que los de los parásitos.

Supongo que para parásitos como ese ladrón que corrí por insultar a mujeres , o el drogadicto que se dice sacerdote de quetzalcoatl pero que es masajista a domicilio, les recuerdo que sus vidas son miserables.

¿y?

Si algun dia se aparecieran por mi casa, trabajo o las reuniones de las AC y Pymes acabarían en la carcel. Y yo solo mostraría al juez las copias de los NDA y permisos de intrusión. Por lo general ese tipo de trabajos no se hacen como trabajador asalariado de ningun tipo, sino por un convenio de comodato, dación en pago u outsourcing.

Inclusive por sentido común, existe el precedente del interès de esas personas en mi patrimonio, así que podría simplemente negarme a dar informes porque se pondría en riesgo mi patrimonio y mi integridad física. Despues de todo de esos parásitos uno se la ha pasado tratando de importar drogas y diciendose sacerdote de quetzalcoatl, y el otro es un ladrón que corrí por insultar a mujeres.

Ningun juez puede obligar a nadie a dar datos de patrimonio a parásitos.

Sea lo que sea, es normal que los parásitos busquen meterse con mi patrimonio. Son incapaces de trabajar, y llevo años tomando medidas contra ese tipo de idiotas.

El dia de mañana se realiza la primera implementación de este sistema para clientes In House. El problema al momento, son los requisitos cambiantes y lista de prioridades cambiantes. Por lo visto sera una semana de locos.

Un dato interesante es que el único bug que encontramos fue el viernes pasado que G-P encontro que una rutina de envio de correo que habia hecho SAEM no estaba enviando nada. Estoy casi seguro que le problema fue o la clase que le pasó Alejandro, o la implementación de la misma por SAEM. Mas adelante vimos que parte del problema era un envío usando un from igual al to, o sea, spam seguro. Ya se corrigió y si no queda espero que usen la rutina que les prepare sin usar esa clase intermedia.

Debido a tener lejos mi USB con código de proyectos anteriores, tuve que hacer sobre la marcha una funcion simple que creara el respaldo, y después lo enviara por correo desde el servidor, como un adjunto mostrando texto HTML.

Incluyendo contraseñas, son menos de 60 lineas de código…. que son ejemplo de como mandar un HTML en php desde mail, incluyendo adjunto base64.

Hace unos minutos me acomodé “comodamente” a plenas 01:40 de la mañana para trabajar en la lista de 15 puntos que hice ayer en resumen con mi equipo de trabajo. Antes de que se fueran a comer ayer, le pedí a una persona que pusiera una columna extra de alcance (sobre si era el cliente tipo X, Y o Z), y que me lo enviara por correo. Yo no fui a comer por salir temprano. Obligaciones varias me impedían quedarme mas tiempo, y la idea era justamente resolver esas obligaciones, y a esta hora, sentarme a hacer los pendientes que me tocan de esa lista.

Y no lo envió.

Varios puntos eran menores, y solo tengo presente de manera segura al momento de la lista dos puntos mayores, y mi propia copia de los pendientes, sin la columna de alcance, está a 300 km de mi por ahora.

Asi que me tendré que enfocar en los dos mayores que tengo presentes, y le deberé jalar las orejas a alguien a las 9 que llegue al trabajo.

Aunque hoy yo y dos de los programadores entraremos a las 7 de la mañana, se van a desperdiciar tres horas de trabajo de la madrugada para la entrega de las once, por un error humano. Afortunadamente tengo presentes varios de los puntos que hay que hacer, y son muy claros, y reducidos, los que debe mostrar mi equipo a las 11. Solamente los dos que tengo presentes son obligatorios.

La semana pasada uno de mis programadores perdió como cuatro horas de código por un archivo php que se daño en pspad. El problema parece ser que nuestra conexión a internet, inalámbrica, esta sufriendo de los problemas típicos de infinitums inalámbricos, y mas ahora que se esta preparando Telmex a doblar el ancho de banda global.

Cuando sucedió eso yo tenía en los pendientes instalar subversion, justamante porque ese programador ya tiene conocimiento de turtoise. Sin embargo, lo pospuse. Hoy me tomé el tiempo para actualizar la tarea de revisar el estado de repositorios públicos, y me di cuenta de un problema fuerte con el “open source” en cuanto a control de proyectos. Basicamente que la opción de perdurabilidad del repositorio no es opcional.

En pocas palabras, no tiene sentido que para un código de “experimento” se tenga que dejar para siempre jamás. Vamos a poner un ejemplo :

Alguien se equivoca y sube por error un archivo .php con contraseñas :

< ?php define (Z_SERVER,'localhost'); define (Z_DATABASE,'bdproyectox'); define (Z_USER,'usuariox'); define (Z_PWD,'passwordx'); ? >

Este archivo no podria borrarse facilmente de repositorios publicos.

Afortunadamente quedan cuatro opciones extras:
1 ) Instalar el sistema de server bajo windows en windows ( lo cual depende que la pc este encendida y presente todo el tiempo )
2 ) Instalar un SVN bajo shared. El costo es de unos 9USD mensuales y no es facil encontrar uno fiable.
3 ) Instalar los datos bajo yum en un server propio (lo cual ya hice)

Pero la 4 me parece mejor.

Crear un control de versiones desde cero.

Si el objetivo es via web, para controles via web, basicamente necesitamos un control de hash, de md5, de recursividad, y una estructura de permisos.

Me tomé la libertad de que donde estoy, puse como requisito que el software de la empresa/grupo de empresas es código cerrado no distribuible, pero que el código de utilerías de desarrollo siempre puede hacerse OPCIONALMENTE bajo GPL.

Entre que son peras o son manzanas, sería conveniente soltar ese proyecto bajo algun repositorio publico, precisamente como prueba y capacitación para los otros dos programadores que no han usado Turtoise.

Lo empezaré a hacer el viernes.

A mediados de Julio tuve que contratar varios programadores para hacer ciertas labores, y me sorprendi porque de los 200 candidatos que vi curriculums, solamente 20 tenian idea de trabajo por objetivos o de ser precisos en el mismo. Cuando llamé a entrevista y examen a esos 20, encontré que la mayoría no podían programar lo mas simple, modulos ABC.

Encontré este texto interesante, aunque suelo aplicar los pasos de Joel Spolsky y por lo mismo, todos los candidatos que reviso deben poder programar.

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

Hace casi un mes que cancelé un server, el ultimo de un cluster usado para hostear razones sociales. Sigo recibiendo correos de status de ese server, referentes a los problemas que hay porque es una ip diferente. Claro que lo es.

Esto demuestra tres cosas :

1 ) Hice bien en cambiar de proveedor. Ese proveedor ya había antes puesto recursos diferentes a los que me estaba cobrando.
2 ) Es importante considerar la conveniencia de eliminar automáticamente los correos de status de los crons. Es muy diferente tener configurado un sistema que corre crons que no causan error, que tener un sistema que marca error porque no hay glue entre NS y A.
3 ) A nadie se le ocurre que si no hay glue, y los A y NS son diferentes, eso implica que el server está en otro lugar ? Error de diseño.

Sigo pensando que Internet está con pincitas.

Pasé un rato revisando los spammers que están tratando de darse de alta en rojointenso.

La mayoría de los sitios grandes que conozco como WHT tienen a una persona de tiempo completo lidiando con eso a mano. El software que hice hace poco mas de un año para eliminar automáticamente spammers por país puede ser util para otros, y ponerlo GPL puede ser util por otros motivos. Quizá en una semana empiezo a publicar fragmentos por aqui.

Quiza viste este blog en un sistema MT y con muchos mas mensajes. Este post es un aviso de que esta migrándose de servidor. Si buscas el contenido de dominios, regresa por favor en unas horas.

Como paso previo a una serie de pruebas, se han hecho conversiones de diversos sistemas de blogs para cumplir un requerimiento personal.

Aprovechando el cambio de servidor haré una migración parcial a Drupal (por una método diferente que la ultima vez) y para aprovechar el watchdog ampliado. Resuelve necesidades que me facilitarán la migración a otras ideas en un futuro.

Estoy al tanto que quedaron en orden inverso, primero lo mas antiguo. Me doy por satisfecho que se migrara en su totalidad.