sábado, 16 de enero de 2010

Mi desconferencia en Barcamp Cali

Bueno este ha sido un gran olvido, prometi publicar mi desconferencia después del Barcamp y heme aqui, apenas después de un mes haciendolo, pero bueno, lo importante es que ya esta.

En ella hay pocas cosas nuevas, algunas de ellas son las mejores partes de mis presentaciones sobre ingenieria de software, y en realidad fue muy divertido darla en Cali, la gente muy atenta, nada mejor para sentirse tan bien.

En la parte inferior les dejo algunas frases que se me quedaron por fuera de la presentación por que quedaba muy larga, muchas de ellas cosas que dije durante la desconferencia. :)



El software es uno de esos elementos de tecnología que se encuentra presente en casi todo. Las necesidades de desarrollo, evolución, mantenimiento y migración de productos de software, es una tarea que cada vez requiere de más personal capacitado, personal que pertenezca a las empresas industriales, comerciales y demás, a grandes empresas donde probablemente la mayoría quiere pertenecer ¿Y que pasa con las empresas de tecnología?

Diariamente el mercado sigue demandando por personal del área de sistemas en todos los lugares del mundo. La escasez de profesionales, de profesionales capacitados, crece a pasos agigantados y la desmotivación por aprender sobre esto y continuarse capacitando después de obtener un titulo profesional, es abrumadora.

La tecnología continua su avance desmedido dejando atrás a miles de profesionales del área, cuyo conocimiento técnico en pocos años es obsoleto.

Razón por la que no es de extrañarse que los procesos de selección actuales sean tan exigentes. Es así como tenemos grandes empresas con escasez de personal capacitado, o con un alto número de empleados desactualizados en tecnología, por que de hecho a una gran mayoría solo les interesa conservar un buen trabajo en una buena empresa, o ascender a cargos superiores y en la mayoria de los casos lo que se piensa es que “ya se contratará a alguien que lo haga”, un terceroque probablamente provee ese servicio al tener un mayor nivel de conocimiento, sin embargo gratis no es, ¿verdad?

De esta manera nacen cada día nuevas empresas de software, o entusiastas que sin necesidad de un titulo profesional tienen mayores y mejores conocimientos que muchos en el ámbito empresarial. El software resulta para muchos una fuente sustentable de trabajo, pero no todos se preguntan…


¿Por qué tienen que preocuparse por hacer software de calidad?

Podríamos incluso cuestionarnos ¿Cuántos tienen idea que significa la calidad de software? Veámoslo de este modo, nadie en su sano juicio intentaría ser médico solo por que en internet están los procedimientos descritos o por que fácilmente puedan acceder a algunas de las herramientas usadas para ejercer esta profesión, tampoco nadie con algo de cordura, intentaría construir edificios por tener la habilidad para manejar una herramienta de planos arquitectónicos.

Diferente es cuando se habla de tecnologías de software y hardware, la mayoría de personas piensan que con conocimientos básicos puede ejercerse esta profesión sin problema alguno. Un titulo profesional de Ingeniero de Sistemas, pasa a verse más como un formalismo que garantiza que ganarás más dinero, no necesariamente que lo harás mejor.

Algunos desprevenidamente piensan, que en su aprendizaje empírico generan nuevas teorías acerca de cómo deberían ejecutarse los procesos para realizar software; desprevenidamente también olvidan que alguien ya lo pensó una vez, y que la ingeniería de sistemas como profesión no es un simple acto espontaneo, si no más bien producto de darle solución a una necesidad que no es nueva, viene de muchos años atrás.

Quizá la ingeniería de software no tiene tantos años como la física, matemáticas o arquitectura, pero créanme, tampoco se la inventaron ayer.

Y muchos, profesionales o no, siguen ignorando, evadiendo o criticando su aplicación, sin entender los riesgos que eso conlleva.

Cometiendo vez, tras vez, los mismos errores que muchos cometieron hace ya muchos años; ofreciendo “el mismo” trabajo a una tarifa más baja, yendo inconscientemente en detrimento de la calidad de vida de muchos profesionales calificados, que son contratados cada vez por menos dinero por empresas que deben abaratar su mano de obra para poder competir en el mercado.

Momento! Si, dije “el mismo trabajo”, pero no siempre con la misma calidad…o la que debería, y tampoco estoy diciendo que los profesionales titulados lo hagan mejor, solo que en realidad “deberían”.
El principal problema que pienso que eso acarrea se resume en un par de frases que escuche muchas veces a un par de amigos muy queridos

¿Para qué complicarnos, si podemos hacerlo fácil? y Nunca hay tiempo para hacerlo bien, pero siempre hay tiempo para hacerlo dos veces.

Si usted no conoce sobre ingeniería de software, le invito a desaprender e intentar ver las cosas desde una nueva perspectiva, si la conoce, le invito a ayudarnos a verla desde donde merece ser vista.

Recuerde, que no está sugiriéndosele ser un ingeniero titulado, el mensaje que se trae aquí es que mínimamente entienda de que se trata lo que hace, si es que desea hacerlo profesionalmente.

No pretendo compartirles en 15 minutos (ahora en un post) qué es ingeniería de software, solo dejarles algunas inquietudes.

La manera más fácil de entender el proceso de construcción de software es compararlo con la construcción de algo más intuitivo para nosotros, de aquí que sea común presentar símiles con la Ingeniería Civil. Sin embargo no hay por que olvidar las diferencias.

Construir una pared es algo que puede calcularse, necesita un cierto número de materiales y personas que teniendo una habilidad similar podrían construirlo en un tiempo promedio. Pensar en lo necesario para construir una pieza de software no es algo tan intuitivo, inicialmente no sabemos cuantas líneas de código tomará construirlo, y siempre dependerá en gran medida de las habilidades de a quien se le asigne, el tiempo necesario para su construcción.

Luego de eso será difícil de comprobar si quedo bien construida o cuales serán las posibles fallas a presentar, ya que a diferencia de una pared, una pieza de software podría ser usada en diferentes tipos de sistemas.


El software es un producto intangible, es por esta razón que su construcción es tan difícil de medir en términos de tamaño o tiempo.

Ahora imagínense esto, que tal que intentáramos construir un edificio de unos 10 pisos, sentándonos a hablar sobre ello y luego poniendo manos a la obra! ¿Suena loco verdad? ¿Qué deberíamos hacer primero?

En efecto! Pensar en cuantos somos, que habilidades tenemos, que recursos necesitamos, en cuanto tiempo queremos que esté construido, en que terreno vamos a construirlo y como nos gustaría que se viera cuando todo este terminado. Sin embargo, seamos francos, ¿cuantos lo hacemos? u otra pregunta aun mejor ¿Cuantos queremos hacerlo, pero preferimos no perder un cliente y perder la cabeza viendo luego como hacemos para cumplir algo que no estuvo bien planificado? Me atrevo a decir, que la mayoría.

Muchos culpan a los ingenieros de no cumplir promesas, una vez en una conferencia de Willy Marroquin le escuche decir algo sobre que la gerencia ya no cree en IT por que manejamos los principios Maquiavelicos: miente, engaña y confunde, en realidad escucharlo y en su forma de realizar las charlas que a mi tanto me gusta, es muy gracioso, pero si uno reflexiona, es más bien un tanto ofensivo. ¿De verdad tenemos la culpa? ¿Toda? ¿Acaso la gente para que construimos software no deberia estar enterada de cuales son las tareas que implica ese proceso para ser consecuente con los tiempos, exigencias y para saber cual es el rol que deben desempeñar en el?

En realidad de eso se trata esta charla, no solo de jalonear un poco la conciencia de la gente que dice que se dedica al software, si no tambien de que la gente del común, que directa o indirectamente participa en ello, sea conciente de que saber de como se realiza todo esto que cada vez afecta más directamente sus vidas, en especial es sus espacios laborales, entienda que las mejoras a los procesos, las automatizaciones y el que los sistemas cada vez apunten más certeramente a resolver una necesidad, tambien los involucra y tambien deberian estar concientes de que obtener calidad para sus propios productos de software es algo de lo que deben ser participes más activamente.

Finalmente a las personas que se dedican a esto, quisiera invitarlos a tener más pasión por el tema, creanme, y no lo aprendi de la noche a la mañana ni creo que haya terminado de aprenderlo, pero toda esa teoria que conocemos es mucho más que teoria, eso si, necesita disciplina y madurar los procesos que ejecutamos para poder aplicarlos coherentemente y que en vez de entorpecer o aumentar la carga laboral como muchas veces nos limitamos a verlo, nos lleve a ser altamente productivos y socialmente responsables con la calidad de los productos que construimos como Ingenieros de Software.
Publicar un comentario en la entrada