javisantana.com

dos años de agroguía

Parece que fue ayer cuando la primera persona nos llamó para interesarse por agroguía y ya han pasado dos años. Quien nos iba a decir que esos carteles que pusimos tímidamente iban a captar la atención de alguien…

Para el que no esté al tanto, agroguía es un sistema de guiado GPS para la agricultura, esto es, permite al agricultor en todo momento que zonas ha tratado y cuales no. Parece de perogrullo, pero no es fácil saber por donde has pasado en un terreno con una superfie considerable o mantener una distancia constante a una línea imaginaria.

Ya he escrito bastante acerca de como nos han ido las cosas, los problemas que hemos tenido, anecdotas, casi siempre visto desde el punto de vista de un desarrollador. La verdad que estoy satisfecho, creo que todo ha salido muy bien, pero sobretodo me gusta la idea de que todo lo hemos hecho nosotros: la aplicación, la comercialización, el soporte - que importante es que el desarrollador de soporte al cliente - , al web, la forma de hacer las cosas. Seguramente las hayamos hecho ni medio bien, la gente nos ha criticado hasta la saciedad por no acceder a que lo comercialicen terceros, he llegado hasta a recibir descalificaciones personales, quizas _un poco_ motivada por mi opinión del sector “comercial” (ojo, entrecomillado, nadie se ofenda).

En resumen:
- hemos estado en ferias
- Nos han publicado artículos en varias revistas, que recuerde, además en mapping, tierras y alguna que otra publicación más. La mayor parte de la culpa la tiene Jaime Gómez.
- Hemos visto cosas curiosas, por ejemplo el agricultor que nos preguntó que donde se compraba el líquido naranja, alguna que otra foto, agricultores 2.0.
- Ya hemos llegado al break event … jaja
- Podemos decir que facturamos, hacienda nos roba lo mismo que a todo el mundo y ahora ya comprendemos a la gente que anda buscando facturas como locos. Puedo afirmar que el negocio da para vivir bien 3 personas, a pesar de los impuestos. Y eso, aunque suene mal lo que voy a escribir, sin lamerle el culo a nadie, aunque eso sí, con ayuda de mucha buena gente.
- Personalmente me ha permitido durante este tiempo poder hacer lo que realmente me ha dado la gana. He programado cuando he querido, he investigado, he hecho las pruebas que he querido. Este es quizás el punto más importante para mi y que precisamente estoy empezando a valorar en su justa medida. Incluso las características que he implementado por puro placer han gustado mucho, en contra de mi pronóstico, y venden.

Se aproxima la tercera temporada y por lo que veo viene muy muy bien. Este año ha habido muy buena cosecha, ha subido el precio de la materia prima y los agricultores no han notado demasiado la subida del carburante (la notarán este periodo). Aún no tienes tu GPS agricola (perdonad, pero google se tiene que enterar también)

mejor poco y bien que mucho y mal

No hace demasiado hacía referencia al libro de 37signals getting real y cada día que pasa creo que estoy más de acuerdo don ellos. Estaba buscando en el índice del libro un capítulo que ilustrase lo que quiero decir, pero es que creo que todo el libro ilustra lo que quiero decir. Quizás el que mejor lo tiene es “Get something real up and running quickly”, esto es, haz algo que funcione.

Cada día que pasa estoy más convencido que el software _necesita_ un proceso de maduración. Mi abuelo hace vino y se tira todo el santo año cuidando el majuelo, poda las parras, las alumbra (1), las injerta (2), ara el majuelo con un arado especial (menos ancho de lo normal), va a menudo a ver que tal va, pone sistemas para que los pájaros con se coman las uvas (por ejemplo los típicos CD’s), se pelea con el vecino para que no ponga panales de abejas, lo protege de los paseantes que quieren comerse las uvas cuando esté madura… luego lo vendimia, lo lleva al lagar (3) o la prensa, primero pisa la uva (de ahí sale el mosto más dulce), luego la prensa y mete en los cubetos. Tras varios meses en el que el mosto fermenta y se convierte en vino mi abuelo está pendiente de que nadie entre en la bodega ya que se puede afixiar (el proceso de creación del alcohol es así) ¡¡el vino ya se puede tomar!!

Sin embargo, a pesar de haber trabajado mucho, mi abuelo no queda conforme con su vino, sabe que debe meterlo en botellas de cristal, ponerle unos buenos corchos, etiquetarlas convenientemente (hasta mi abuelo lleva trazabilidad) y esperar laaargos años hasta poder tener un buen vino, el vino por el que todos te felicitan y recuerdan. A veces el corcho no está bien y se pica el vino o resulta que la cosecha no tuvo suficienta azúcar y el vino salió un poco flojo.

Exactamente pasa igual con un producto software, primero se crea y luego se madura. La diferencia es que la madurez del producto se adquiere una vez lo vas dando a probar. Por eso cuanto antes lo des a probar, mejor, y además cuanto menos des a probar, mejor que mejor.

De nada sirve estar un año creando un software con muchos matices si luego, a la hora de la verdad, no funciona muy bien la parte principal. Hace no demasiado presentaban google chrome, todo el mundo ha comentado lo bien que funciona y a pesar de que muchos han echado en falta la posibilidad de incluir pluggins, entre otros, hay buen sabor de boca, incluso se ha destacado su minimalismo.

Como desarrollador tiene también sus ventajas, sientes que has hecho algo redondo, que funciona y que es completamente usable. No hay peor sensación que la de estar frente a un sistema mastodóntico, que no sabes muy bien como funciona y que “a veces” (cuando pasa esto siempre se asocia a un fallo de sincronización de hilos) no “tira” como debería. Poner a funcionar un sistema simple es ya de por sí difícil, así que no me quiero imaginar si además el propio sistema te pone la zancadilla.

Lo mejor es que todo esto lo puedes aplicar a cada clase/fichero/subsistema :).

(1) alumbrar es hacer un hueco debajo de la planta para que el agua se acumule allí.
(2) hacer una especie de lego con las plantas, se deja la raiz de una y se acuña otro tipo de planta sobre ella, es realmente curioso, algo así como un frankestein.
(3) lugar donde se pisa la uva

Se acabaron las vacaciones, conclusiones

Sí, este es el típico post del típico trabajador de la tecla que termina sus vacaciones…

Fundamentalmente he dividido el periodo en dos, el primero de ellos lo he pasado en un hotel-spa situado en Sesimbra (Portugal), unos 30 km al sur de Lisboa. El sitio muy bonito, una playa para pasear con el agua helada, pegando a un parque natural y con muy buena comida. Ya había estado de gira por Portugal, pero no ha dejado de sorprenderme la ausencia de radares fijos en autovía, las patatas hasta en la sopa y alguna que otra cosa. Una semana en la que creo que he hecho eso que denominan desconectar, esto es, no me he llevado el PC, PDA, ni he usado la wifi del móvil.

La segunda semana he estado en mi pueblo, pintando y adecentando mi habitación. Increíble lo difícil que puede ser hacer tareas manuales tan aparentemente simples como pasar un rodillo o tapar los agujeros provocados por mis antiguos posters. Ha sido un duro golpe quitar los posters de sega rally y tomb raider.

En resumen, lo de las vacaciones está muy bien, pero creo que soy animal de costumbres, me gusta más modificar mi rutina que cambiarla por completo. Me he dado cuenta de bastantes cosas:

- No hacer nada es una parte muy importante de la vida. Hacía tiempo que no me sentía bien sin estar haciendo nada.
- Me da igual estar al día. El día que llegué puse como leídos todos los post en mi bloglines, borré todos los correos no importantes (listas de correo, etc) y no ha pasado nada. Es más, he borrado la mayoría de los feeds a los que estaba suscrito… menudo peso de encima me he quitado de encima. Jo-der, que agusto
- Trabajo demasiado, es más, malgasto mi tiempo trabajando :)

Y no, no he recargado las pilas

más reprogramaciones de centralita

Jajaja, lo sabía, sabía que algo no estaba funcionando bien. Acabo de recibir una carta de renault diciendome que tengo que ir a reprogramar la centralita de mi megane (releo es post y eché gasoil a 0.88) debido a que la anterior programación no solventaba los problemas que trabaja de corregir… :).

Para renault es una GRAN CAGADA, me imagino los gastos: por cada motor dCi vendido en un determinado periodo de tiempo han tenido que enviar una carta certificada a la persona (y buscarla si el coche ha cambiado de propietario), horas de ingeniero para corregir el problema, horas de calidad, horas de taller (que son cobradas a cojón de ovispo), malestar del comprador y eso por no hablar de los motores quemados a cuenta del problema.

He hablado ya algunas veces de los bugs que surgen en producción y lo importante de la trazabilidad. Punto negativo para renault por cometer un error el diseño del vehículo (cosas de industriales) que al final tiene que venir a corregir un trozo de software y otro punto negativo por el control de calidad que pasó la anterior reprogramación. Pero un buen punto positivo porque mantienen una trazabilidad bastante decente. Sería delito que las punteras en este tipo de cosas no lo hicieran, aún así es de agradecer.

Por cierto, desde renault no se han dignado a contestarme al correo que les envié solicitándoles que, por dios, mejorasen el mapeo acelerador -> inyección. He encontrado algunos circuítuos basados en filtros y aplificadores que corrigen ese problemas, pero tampoco es cuestión de meter electrónica si es posible modificarlo por software. Daré de nuevo la chapa con el tema a ver si consigo que me lo reprogramen con los parámetros que yo quiero.

planificación inconsciente en desarrollo de software

Estoy leyendo el libro “práctica de la inteligencia emocional”, una referencia según la gente que parece que sabe del tema. En uno de los capítulos hacen referencia a la toma de decisiones, como actúan las diferentes partes del cerebro, como se reaciona en diversas situaciones (estrés, tranquilidad, etc) y en qué forma las tomamos. En resumen habla de dos formas, una de ellas meditada y consciente y otra de ellas inconsciente.

La primera de ellas viene a ser las decisiones en las que razonamos en base a lo que vemos y la segunda es en base a un tick, al sexto sentido o como lo quiera que se llame. Cuantas veces me ha pasado que “algo” me decía que no debía hacer algo, finalmente lo hice razonando la decisión y al final la mangué. El libro da explicación a esto: el cerebro, subconcientemente, es capaz de dar resultados a tomas de decisiones muy rápidamente en base a la experiencia vivida anteriormente.

Actualmente estoy dentro de una implantación de CMM2, en la cual me han indicado que tenía que dar una serie de patrones para esblecer el tamaño y complejidad de una tarea dentro del proyecto del que soy responsable (en realidad soy juez y parte :P), de esta forma, gracias a estas medidas y la experiencia acumulada a lo largo del tiempo en diferentes tareas se pueda extrapolar el tiempo en una futura tarea.

Realmente esto es bonito, da igual quien esté que si alguien planifica una tarea, el tiempo se podrá estimar, con un ratio de error, toda la maquinaria funcionará perfectamente en base al conocimiento plasmado en tablas de datos, sobre tiempos, complejidades, tamaños y demás.

Lo cierto es que mi cerebro ya hace eso, cuando alguien me pregunta “oye, cuánto crees que tardarás en hacer tal cosa”, mi cerebro ya sabe qué preguntas debo hacer, por donde pueden venir los problemas y cuando tiempo puedo tardar. Y lo mejor, a medida que pasa el tiempo lo hago mejor e incluso me dice el tiempo que podría tardar otra persona. Mi cerebro está tomando decisiones sin que yo tenga que pensar, mi sexto sentido programadoril (R) me dice lo que está pasando cual sentido aracnido a espiderman, de ahí la introducción de este post.

Esto no es tan bonito cara a una empresa, si el fulano encargado de hacer esas estimaciones se va, la empresa se queda en bragas, así que quizás un modelo híbrido sea lo mejor, sobretodo para pequeñas empresas, aunque en este caso, y como opinión personal, me vale más la opinión de una persona con experiencia que mil hojas de excel y mucho más en entornos con cambios rápidos de requisitos.