lunes, 16 de agosto de 2010

Herramientas, metodologías y personas

Hace un tiempo ya que estoy trabajando en un proyecto heredado.
Este proyecto, sencillo en realidad, empezó hace tiempo (no viene al caso cuanto) y por cuestiones que desconozco fracasó con el proveedor anterior.
Ahí es donde entramos nosotros (la empresa donde trabajo actualmente y desde hace ya un buen tiempo) para tratar de corregir los problemas y hacer que, finalmente, el sistema funcione.
Tecnológicamente no es ni siquiera actual, es un proyecto con tecnología vieja (java 1.4, ejb 2.1, Base de datos Oracle 9.2, etc) y la verdad, los primeros vistazos al sistema en general me dejaron preocupado, es la primera vez que me toca diagnosticar e intentar corregir los problemas de una aplicación así. No solo cuentan las tecnologías utilizadas sino que también los grupos de personas involucrados y el como ve el cliente al sistema, la importancia que tiene para el y la forma en la que lo llevó adelante ya que, seamos honestos, cuando un proyecto falla, tanto el cliente como el proveedor tienen la culpa. ¡Que no les mientan!
Ahora bien, una vez asumida la responsabilidad por este "viejo/nuevo" sistema me tocó buscar oportunidades de mejora, no solo a nivel diseño y codificación, sino que (aquí la parte que más me gusta) a nivel "proceso".
¿De que trata el tan famoso proceso de desarrollo?. Bueno existen tantas respuestas como personas piensen en ello y es por eso que voy a responder la pregunta con lo que es mi visión personal sobre el significado de proceso de desarrollo:
Puede llamarse proceso de desarrollo a TODAS las actividades involucradas con el día a día del programador. No es suficiente con adoptar una metodología de desarrollo (iterativa e incremental, pero carente de humanidad), sino que debe adoptarse un proceso completo, el cual ha de tener en cuenta todas las herramientas a utilizar.
Podemos decir que el proceso de desarrollo involucra:

Herramientas
Pocas veces, al menos en mi experiencia, se le da importancia a las herramientas mediante las cuales se pretende llevar un proyecto adelante. Total, y lo he escuchado, es solo cuestión de instalar. Epic Fail!!!
Podemos tener las mejores herramientas del mundo, que si no sabemos usarlas, las reduciremos a un notepad avanzado o poco más. Jamás debemos abstraer las herramientas de las capacidades del equipo con el que contamos.


Metodologías
Alguna vez me preguntaron en una entrevista ¿Sabés metodología de desarrollo scrum? mi respuesta fue, más o menos, ¿Sabés que estás preguntando?. Ojalá existiese una metodología que cuadre a todos los equipos de personas. Ojalá fuese tan simple como decir: Gente, aprendan esta metodología que es la que vamos a usar. Nada más alejado de la realidad. A las metodologías las hacemos las personas involucradas en su uso, maduración, corrección y mejoras. No hay una metología que nos garantice un resultado existoso. Solo existen un conjunto de lineamientos que nos pueden ayudar (o confundir) a la hora de tratar de armar los circuitos lógicos en la vida del proceso de desarrollo, pero solo eso.
¿Cual es mi preferencia? prefiero los métodos ágiles, pero ninguna metodología en particular.

Personas
El componente central en cualquier actividad llevada adelante por, precisamente, humanos. Aquí es donde todo confluye. Estamos signados por lo que somos como equipo de desarrollo. Por las virtudes y defectos del conjunto. Por lo conocimientos y falencias de todos. Nadie en el equipo de desarrollo debe ni puede quedar exento de culpa o responsabilidad a la hora de llevar adelante la tarea encomendad. Somos lo que somos porque somos una de las variables en la ecuasión del equipo. Tanto las metodologías como las herramientas quedan supeditadas a las capacidades del equipo en su conjunto y no podemos, ni debemos forzar esta realidad. No podemos pretender que el equipo se ajuste de forma natural a una nueva herramienta, a una nueva metodología porque no será así. Ese trabajo, el de ajuste, nos corresponde a nosotros, los que estamos encaragados de guiar al equipo, ya que es, indefectiblemente, la parte principal de nuestra tarea.


De mi experiencia personal, solo me queda decir un par de cosas, tratando de redondear el post:
1- Nunca debemos forzar a un equipo más allá de sus posibilidades. Los equipos de personas son predecibles, siempre y cuando estén en un ámbito que se ajuste a sus características. Si los forzamos más allá, puede salir bien, pero esa será la excepción.
2- Nunca tomar a la ligera las costumbres del equipo de trabajo. Es una realidad que cuando un equipo de trabajo está acostumbrado a una serie de tareas, una serie de herramientas y una metodología, será más productivo con ella. Podemos, sin embargo, introducir pequeñas variaciones haciendo incapié y demostrando que son mejoras, para que con el tiempo terminemos trabajando de mejor manera, incluso, con una metodología totalmente diferente de la inicial.
3- En cualquier proyecto, lo más importante son las personas. No hay forma de llevar adelante un proyecto si no tenemos en cuenta esto. Todo debemos ajustarlo al equipo que guiamos. Siempre habrá premisas, obvio, pero no son responsabilidad del equipo. Son responsabilidad de nosotros, los que guiamos al equipo y como todos sabemos: La responsabilidad no se delega, solo se delega la tarea.

Saludos

miércoles, 12 de mayo de 2010

Familia, "el motivo" de muchos

Mucho se ha dicho sobre la familia y seguramente mucho se dirá.
No voy a entrar en discusiones interminables ni definiciones trilladas. Mi familia es lo que para mi (y cada uno de nosotros) significa.
Si bien la idea del blog es hablar de cosas que nos pasan todos los días, no puedo permitirme no presentarlos, así que empiezo:

1- Marcela. Mujer como pocas. Una compañera que muchos desean tener. Tenaz, sincera, con una voluntad inquebrantable. Ojalá siga mucho más tiempo, soportándome como hasta ahora.




2- Leandro. Muy parecido al padre en la forma de ser. Un flaco serio. Con eterna cara de pocos amigos, pero muy, muy, muy sensible e interesado por los demás. Se me cae la baba por mi bb. Es la personificación, en carácter, del conductor enmascarado de Meteoro.

3- Nicolás: Una cosa de locos. Tiene un carácter muy pacífico, lo que no implica que sea pacífico. Te compra con la sonrisa. No le interesa demostrarse sensible, pero es un bombón en frasco grande!. Creo que le queda bien la comparación  con Mandibulín, no solo por la forma de ser.



4- Nahuel: La revolución hecha persona. Con la mirada te dice todo. Muy cariñoso a pesar de ya estar (como Nico y Lea) en "la edad". Si tuviese que compararlo con un dibujo animado, seria, indudablemente, con Naruto!!!





5- Gonzalo: Hasta hace relativamente poco, el benjamín de la casa. Como tal, un poco caprichoso a veces, más aún cuando se trata de los hermanos. Sincero por sobre todas las cosas. Busca siempre ser el centro de atención y no creo que le guste mucho cuando logra serlo para los hermanos mayores porque lo vuelven loco!!!. Dibujo animado... no es un dibujo pero bien vale: El Chavo.



6- Luciano: La luz que ilumina el hogar. Es el centro de la vida de todos nosotros. Todos estamos atentos al el siempre y no demanda menos que eso. Copia muchas cosas de los hermanos y a los 3 años maneja la pc como si fuese una revista. Mira videos en youtube y juega online los jueguitos de su edad. Lo miras y te lo comes a besos. Dibujo animado... Pocoyo!



Sinceramente espero que todos tengan o lleguen a tener una familia que los llene completamente como mi familia lo hace conmigo.

Nada más.

sábado, 8 de mayo de 2010

Linux en casa, como llegué

Todavía me parece ayer cuando rompí una instalación nueva de Windows 95!!!
En aquella época pc era sinónimo de windows y viceversa, que limitados estábamos por favor.
Ya en el 98/99 realizé intentos (infructuosos por cierto) de salir de prisión. Primero con Red Hat 5.2 luego con Mandrake, pero bueno, soy un simple mortal y como tal mi percepción del mundo estaba distorsionada, creyendo que las cosas debían ser simples más allá de la libertad.
En esas ocasiones siempre me di por vencido debido a lo mismo que todos, era difícil dejar un sistema funcionando como uno queria. Más difícl aún por nuestra concepción de sistema que no era más que Windows.
Quiero que quede igual, solía decir para mis adentros, pero no entendía, hasta mucho despues, que puede ser visualmente igual, pero jamás será igual en el sentido que le dí yo en aquellos tiempos.
Hasta que pasó lo que debía pasar...
EPIC FAIL --> Windows Vista
¿Como podía yo, un laburante de esto poder aceptar que, para estar "a la vanguardia" debía prácticamente TIRAR mi pc y comprar un monstruo de varios procesadores con una gran cantidad de memoria para poder tener "una agradable experiencia de usuario" ?
Ni Loco.
--------------------------------------------------------------------------------
Una aclaración que me parece oportuna: Usé una copia de Windows Vista no muy legal que digamos un tiempo y la gota que finalmente rebalsó el vaso fue que intentara obligarme a pagar lo que no estaba dispuesto por una copia original. Nunca voy a olvidar el sentimiento de odio que se apoderó de mí luego de la actualización cuando me apareció en un cartel enorme dónde decía que me quedaban 15 días para comprar la licencia, en ese momento miré a mis nenes y pensé... Lo siento por los jueguitos, pero esto se termina acá.
--------------------------------------------------------------------------------
Abrí google y busqué: "instalar linux".
Uno de los resultados me llamó la atención: Ubuntu. Lo escuché nombrar, de hecho, regularmente veía los cds de instalación en la empresa donde trabajo. Aunque nadie los usaba estaban allí, vaya uno a saber porque.
Quemé el cd de instalación del recién salido Ubuntu 8.4, crucé los dedos y le dí al "siguiente, siguiente, siguiente".
La verdad estaba preparado para largas horas de instalación, reinstalación, recontrainstalación y buscar en internet todos los parámetros que me pediría la instalación de Ubuntu (geometría de disco, tasas de refresco, etc). Pero no, algo andaba mal, faltaban muchas preguntas, me preguntó cosas triviales, casi nada, y me dije... acá pasó algo.
Enorme sorpresa. Claro, yo estaba acostumbrado a las viejas instalaciones, pero cuando terminó quedó, casi mágicamente, todo funcionando!!! No lo podía creer, ¿tan viejo estaba?.
La verdad, esa primera experiencia real con Linux (y su mal temida línea de comandos) me convenció de una vez por todas a nunca más volver al "lado oscuro".
Así estuve 6 meses, luego Debian (quería más que Ubuntu, el "windows de linux"), una distribución definitivamente excelente, con miles de aplicaciones disponibles desde los repos. Una distribución de hierro en cuanto a fiabilidad y el motivo fundamental por el cual hoy sé que jamás volveré a Windows
Finalmente terminé en ArchLinux, una distribución no tan estable como Debian, pero definitivamente más veloz, más actualizada, más fácil de configurar, aunque a decir verdad, debes saber algunas cosillas antes de meterte con Arch.

Para finalizar, les digo a todos...
Ventaneros: No sé si alguna vez han tenido la oportunidad de salir de la jaula, pero parte del truco es buscar la salida.
Ubunteros: Ojalá no se queden en su jaula más grande, pero jaula al fin.
Debianitas: Excelentísima distribución (para servidores)
Archers: GO GO GO!

About

Mi nombre es Gastón Acevedo, tengo 37 años y muchos (creanme cuando digo muchos) años inmerso en el mundo de la programación.
Atrás quedaron los tiempos cuando las cosas eran simples y clipper alcanzaba para casi todo.
Hace mucho dejamos de programar en grupos pequeños, localizados todos en el mismo sitio físico, ahora tenemos compañeros de equipo que incluso, a veces, jamás conoceremos porque están del otro lado del mundo, expresandose en otro idioma, con otros husos horarios...
Bueno, la idea es tratar de hacer un blog más de temas de programación, enfocado principalmente en el día a día de esta profesión que me apasiona y tantas alegrías (y sinsabores) me ha regalado.
Ojalá le sea de utilidad a alguién, ojalá no lo deje abandonado.

Saludos y que tengan un buen algoritmo!