viernes, 18 de febrero de 2011

Sobre la accesibilidad de los sitios web

Confieso que habia dejado de tener la intención de escribir en este blog, pero digamos, algo o alguien agradable me hizo cambiar de parecer ayer.

Bien, pues hablando de ayer, estuve en una charla sobre "Desarrollo de sitios web accesibles" dictada por el joven Martín Szyszlican y apoyado por la comunidad "usarte.org" cuyo propósito al menos a mí me agrada bastante.

Me gustó la idea de asistir a esta charla, debido a que si bien técnicamente en programación de sitios web trabajo diariamente, siento que los programadores, sobre todos aquellos que poseemos fortalezas en el back-end, tenemos bastantes debilidades en el front-end, y me gusta la idea de adueñarse de la necesidad de los conceptos antes de siquiera empezar con las herramientas, en el caso de front-end, javascript, ajax, jquery y demás a las que siempre les saco el cuerpo, pero a las que seguro pronto tendré que enfrentarme.

La verdad es que, pensaba en el término accesibilidad como algo más puntual, y me gustó el enfoque global que se dió en la charla, aunque yo siga teniendo necesidades sobre este tema un poco más puntuales, creo que las problemáticas presentadas por Martín, son definitivamente de interés general, y la idea de que incluso los gobiernos en diferentes paises esten estableciendo normas para ello, es de verdad positivo.

Uno como que siente a veces que ser ingeniero de software no tiene demasiado sentido en esos ámbitos, por que parece que a pesar de que todas las áreas necesitan de algo de software en su desempeño diario, es como si aun pocos fueran concientes de la necesidad o relevancia de este tipo de roles. Pero bien, de eso he hablado mucho en este blog, así que hablaré un poco de mis impresiones puntuales sobre el tema de accesibilidad.

Una de las ideas expuestas que más me llamo la atención y que quiza por falta de cultura general yo no conocia, es el uso de exploradores en modo texto y el uso de lectores de pantalla para discapacitados. Si bien, en mi trabajo no he participado al momento en un proyecto que requiera o en el que soliciten explicitamente ese tipo de caracteristicas como parte de su funcionamiento, la idea de que está la posibilidad alli y que pocos la tenemos en cuenta en la construcción de nuestros sitios web de propósito general me cuestionó bastante.

Solo ver los ejemplos presentados por Martín, en donde cosas tan simples como hacer un menú con listas, mejoraba tan dramaticamente (a mi modo de ver) el trabajo de los lectores de pantalla, y por ende la comprensión de quienes los usan, me pareció algo que cualquiera debería tener presente al trabajar para web. Puntualmente me quedaron algunas dudas sobre, ¿que pasa cuando usamos una suite de controles o una tecnología específica para construir nuestras aplicaciones?, trataré de dar un ejemplo para hacerles entender mi duda, mucha gente se lanza contra Microsoft por Internet Explorer, vale, no voy a defender al que no merece ser defendido (en este caso puntual), el punto con Microsoft por ejemplo, no es solo si el explorador lo hace bien, tambien es, ¿que tal lo hace ASP.NET o mejor Internet Information Services (o cualquier otra tecnología, esto es solo un ejemplo), interpretando los controles del lado del servidor, para enviarlos al explorador?

El punto aquí es que dificilmente se podría culpar solo a Microsoft, en cosas como usar suites de controles de terceros, vale la pena preguntarse el nivel de responsabilidad entonces que deberían tener este tipo de compañias, y pues, donde queda uno al elegir una suite de controles por linda y por que ayuda en el desarrrollo, cuando quizá no cuente con carácteristicas que ayuden a la accesibilidad de nuestros sitios web, y la verdad he de decir que al menos en los proyectos de .NET, poco, poco eso de colocar los tags de HTML tal cual, generalmente se usan controles de servidor.

En fin, con este punto quiero simplemente motivarlos a ver la presentación de Martín, si bien fue sencilla y corta, y no aproveché a preguntarle lo suficiente al estar un poco agotada, creo que muchas de sus ideas se quedaron en mi cabeza, ignoro si tendré el espacio para aplicarlas, pero al menos en la presentación hay buenos referentes de herramientas que ayudan a evaluar la accesibilidad de nuestros sitios web y tambien de estándares a seguir para lograrlo. Y es que estoy segura que muchos buenos diseñadores y programadores si piensan en estandares, de usabilidad, de cosas básicas en la web, pero me quedó la inquietud de ¿cuántos piensan en accesibilidad?

Otra idea que me gustaría resaltar antes de terminar es acerca de la decisión de poner o no esfuerzo en un proyecto, en evaluar que necesidades se tienen con respecto a la accesibilidad. Hay que decir que no hacerlo tiene más de una razón, si bien a veces como lo decia antés y como se resalta en la presentación, es falta de conciencia y tambien de tener un equipo alineado con la idea, estoy segura que a veces es la falta de visión, o para no sonar drástica, solo el hecho de que, el público objetivo de algunos proyectos quizá no contempla público específico que tenga necesidades concretas, sin embargo vale aclarar que Martín no nos habló de cosas unicamente para personas con necesidades especiales, también de tips utiles para usar en el CSS de nuestras aplicaciones para mejorar la disposición del contenido y la interacción con nuestros sitios web, el hecho de que hasta la simple redacción cambie la experiencia de alguien en nuestra web, es definitivamente una idea a tener siempre presente.

Puede que algunas de las cosas que se explicaron no sean necesidades populares, comunes o del día a día en la mayoría de las personas, pero definitivamente hacen la diferencia entre los que las usan.

Creo que fallé al no preguntar más, por ejemplo si todas esas eran consideraciones para una web normal, las consideraciones para desarrollar además sitios web aptos para móvil y accesibles, ¡como que ni quiero imaginarlas!, el tema de movil a mi me gusta bastante, sin embargo nuevamente soy más fuerte en back-end, y  tengo en cuenta pocas consideraciones para front-end, bueno creo que hasta el día de ayer.

De esa forma es como no entiendo ni entenderé como a medio planeta le parece tan trivial hacer software y por que la mitad del planeta se considera en capacidad de hacerlo, bueno no seré dura, si hacerlo, pero bien?... si leen este blog sabrán que esa siempre es mi pregunta constante. En fin, podría hablar mucho más, solo espero dejarlos inquietos para que vean además la presentación, el material que han dejado publicado como parte del Movimiento de Diseño Inclusivo, definitivamente otra de esas causas que a mi me gustan bastante.

A continuación les dejo la presentación publicada en Slideshare

jueves, 17 de febrero de 2011

Sobre el estado del arte y otras penas en el desarrollo de software (I)


Después de algún tiempo me aventuro a escribir nuevamente, la verdad quizá lo que más me motiva o me alienta a hablar de estos temas resulta ser el enfrentarme día a día con situaciones que después de tantos años de insistencia persisten en la industria del software y en la academia, generando tantas situaciones indeseables.

A pesar de que permanentemente tengo este tipo de conciencia, el enfrentarme a situaciones particulares reaviva mi interés por "levantar mi voz" y expresar abiertamente mi inconformidad.

En post anteriores en la sección de OnlyForGurus de WillyDev.NET hablé sobre algunas de las cosas que ocurren en la academia, sobre todo con el tema de los docentes y los programas académicos, en este espero hablar un poco más sobre el entorno general al que se enfrenta los profesionales del sector o quienes simplemente quieren incursionar en esto de hacer software.

Bien, ese último comentario da pie a algo que he observado, desde hace algún tiempo que interactúo más frecuentemente en las redes sociales, y de esta interacción me surgieron algunas preguntas que sé que muchos profesionales del área nos hacemos. ¿Cuantas personas saben que significa hacer software? ¿Cuantos conocen las implicaciones de construirlo? ... y ahora que está tan de moda la web y las tecnologías para móvil, ¿Cuantos conocen la diferencia entre montar un sitio web y hacer una aplicación web? o ¿Cuantos conocen las incidencias y diferencias de desarrollar para móviles?... y... ¿Cuantos de los que contratan estos servicios, saben diferenciar entre quienes saben y quienes no saben?

El sotfware se ha vuelto el pan de cada día, para la mayoría de la gente interactuar con aplicaciones es tan natural, que dan por sentado la facilidad con que deberían hacerse cualquier tipo de programa, conceptos como requisitos, arquitectura y pruebas de software, estan fuera del contexto general de las personas y se tiene la idea de que contratar personas que aprenden un lenguaje de programación desde la web, es más que suficiente. ¡Como si hacer software fuera saber un lenguaje de programación!.

Las carencias de conocimiento que pueden tenerse, van desde "intentar construir la rueda" al no comprender que muchas cosas ya existen y que es la forma como se trabaja hoy en día, orientandose a la reutilización de componentes, hasta el no entender las necesidades reales que tienen los clientes, por que de hecho ni siquiera se conoce que hay técnicas de identificación de las necesidades y maneras de documentarlas y diseñarlas en cada una de las metodologías existentes.

Habría que empezar por el hecho de que muchas de esas personas piensan que la teoría es algo que se pudieron evitar de la academia, y cuando son personas que realizaron una carrera profesional pero no encontraron el valor suficiente a este tipo de enseñanzas, o bien, cuando en la universidad ni siquiera les enseñaron sobre metodologías y mejores practicas, no estamos demasiado lejos de estar al nivel de los que piensan que aprender unicamente de lo que hay en la red es suficiente. Y es que el problema no es que este en la red, yo misma aprendí muchas cosas en mi vida profesional desde la infinita fuente de recursos que resulta Internet, y sigo haciéndolo, el tema es más de conciencia e incluso aunque pocos lo tomen en cuenta, el tema es ético y de responsabilidad social.

Continuando con los efectos de esta situación, inicialmente siempre parece que el esquema de lo que salga muy barato funciona, el problema es que el software no es un producto que se construye y completa sin responsabilidades futuras, por el contrario, los usuarios con los días tienen más necesidades y responder por la garantía de un producto entregado, es un costo que pocos tienen en cuenta, y hacer contratos que definan los lineamientos y responsabilidades de las partes no se les pasa a muchos por la cabeza.

Pues bien, el problema no radica solamente en que muchos no tengan esta conciencia, tambien está en que el ánimo de abaratar costos, tantas empresas contraten mano de obra más económica pero inexperta, que creen poder cobrar esas sumas por obvias razones, la falta de desconocimiento del esfuerzo real y las responsabilidades que acarrea hacer software, y no cualquier software, software de calidad.
La calidad es otro tema, del que con seguridad tampoco muchos de ellos saben, pues quien sabe de software tiene claro, que la calidad es mucho más que creer que uno hace bien las cosas.

¿En qué termina la dichosa aventura? Los empresarios critican día a día las formas como se realizan la cosas, terminan teniendo prevenciones contra los profesionales del área, cuando en realidad su problema estuvo en no contratar a profesionales o al menos personas con experiencia real en el tema y aún más, que de verdad tengan pasión y amen lo que hacen.

Hoy en día cualquier profesional de cualquier área siente la capacidad de entrar a competir con empresas dedicadas a este tipo de trabajos y que estan constituidas con profesionales en el área, sin tomarse un instante de tiempo en pensar en que sus propias profesiones tienen tanto valor como las de esos profesionales que dedicaron parte de su vida en el estudio de las mejores practicas, y que por algo se hace, no por simple deporte de las universidades, de hecho, si el software ha llegado a ser lo que es en la vida de las personas por su relevancia e importancia, ¿por que así entonces no se le da ese tipo de valor a la "aventura de construirlo"?

¿Y donde nace todo eso?, es claro, es un circulo vicioso, la academia tiene sus falencias, pero el mercado está colocando en serios aprietos a las empresas que si estan interesadas en realizar un buen trabajo. Tener procesos estructurados y seguir mejores prácticas acarrea una serie de costos y tiempo que obviamente terminan redundado en cobros sobre los productos desarrollados, y si el último criterio con el que se está contratando es el hecho de tener alguien que de verdad sepa lo que hace y en cambio se contrata aquel con el que más barato sale, las buenas empresas terminan por entrar en una guerra de precios que redunda a su vez en el detrimento de los salarios que pueden pagar este tipo de empresas a personas profesionales y/o con experiencia real, lo que necesariamente va en detrimento tambien de la calidad de los productos que se construyen.

Habria que ver cual es la tasa de mortandad de las empresas que se dedican a hacer software, y cual la tasa de los proyectos fallidos, si es alta incluso en aquellos que cuentan siguen técnicas y principios para realizar su trabajo , cuanto más alta sería si no se cuenta con la experiencia o al menos métodos que en el tiempo han comprobado su eficacia en diversos escenarios.

Finalizaré esta primera parte con una frase de cliché, y es que "la calidad cuesta" y los nuevos profesionales de todas las áreas, deberían estar enterados de cuales son las implicaciones de solicitar la construcción de piezas de software, en vez de tener que aprender cada uno por su cuenta, entre intentos fallidos, cual es el deber ser de las cosas.

La situación no será mejor por sacar toneladas de orgullo para enfrentar cada una de estas situaciones, la tarea se encuentra en aprender y entender de que trata el mundo en el que se pretende incursionar y aplicar lo aprendido en decadas de estudio por los profesionales que se dedican a ello con disciplina, y que así como cada una de sus profesiones tiene un merito, tambien, el hacer software tiene procesos, técnicas y principios que seguir, más allá del simple sentido común.

Muchas empresas ya conocen esta situación, a razón de todas las malas experiencias que han tenido, sin embargo existe la carencia de conciencia en los costos necesarios para cubrir mejores prácticas y es así como en un elemento más para empeorar la situación, se termina exigiendo a las empresas que prestan buen servicio, a bajar sus tarifas al costo de quienes no las siguen, lo que no mejora en absoluto las condiciones para seguir en el mercado del software.

Si bien falta, le falta a la academia y a la industria en este campo, tambien es cierto que día a día estas situaciones llevan cada vez más al detrimento del sector y de la calidad de vida de sus profesionales, y no parece existir ningun ente de poder interesado en resolver esa situación, muy a pesar de reconocer que en nuestro país existe valioso talento por explotar en el campo de la construcción y mantenimiento del software.
Propongo entonces que planteemos algunas de estas situaciones que resultan patrones generales y vivencias típicas del sector, para que en una segunda parte abordemos algunas observaciones, ideas y conclusiones al respecto.



Derechos de autor: Link de la imagen aquí

domingo, 30 de enero de 2011

27 Maneras de ser un buen desarrollador

Encontré esto por accidente en slideshare, si cada desarrollador del planeta tuviera la mitad de estas cosas en mente, todo sería mejor y más divertido.



domingo, 7 de noviembre de 2010

Sobre la educación formal (II)

Otro post escrito originalmente para WillyDev.NET

En primer lugar quiero agradecer a los postearon sus comentarios en el anterior post y también plantearon más inquietudes. Una de las preguntas que escribieron me animó a continuar hablando del tema. La pregunta es ¿Qué pienso al respecto acerca de los diplomados y especializaciones?

Pues bien, yo pienso que muchos en realidad son una forma de llenar todos eso vacios que dejan los pregrados, al menos en nuestra área, en informática y sistemas. Una prueba de ello es que en otros países que tengamos mil especializaciones, no sirve para nada, sirve solo aquí, de hecho es bastante desmotivante saber que en nuestro país sirve que tengamos especializaciones y las maestrias terminan sirviendo para ser profesores de planta en universidades y no así para aspirar a mejores cargos en buenas empresas estatales o privadas.

Yo por ejemplo hice una Especialización en Desarrollo de Software, la cual recomiendo demasiado, sin embargo esta me hizo pensar en algo, ¿Por qué esas cosas no me las enseñaron en pregrado? ¿Hay alguna razón hay para ello? Materias como calidad de software, métricas, arquitectura de software, verificación y validación, gestión de conocimiento, gerencia de proyectos, modelos de calidad, gestión de tecnología, computación móvil, ¿Por qué esos temas serían de una especialización y no de un pregrado?

Tengo varias ideas en respuesta a todo eso y no todas son culpa de las universidades o docentes, sin embargo tampoco pueden ser eximidos de ellas, también está el gobierno, la secretaria de educación y sus planes curriculares, y hasta el entendimiento de ellos y las empresas del mercado laboral actual esperan que sea nuestra carrera y por tanto sus graduandos.

Empezaré por contarles un par de anécdotas antes de ampliar lo que pienso al respecto, la primera es el nombre de mi especialización “Especialización en Desarrollo de Software”, y otra similar que existe en Bogotá, “Especialización en Construcción de Software”, son ambas excelentes y recomendables, pero veamos, cuando en empresas tipo Empresas Públicas de Medellín (por mencionar una de tantas), solicitan un cargo de Arquitecto de Software, uno encuentra que solicitan profesionales con Especialización en Gerencia de Proyectos, Especialización en Gestión de Tecnología, entre otras extrañas solicitudes para ese cargo, las dos que les enuncio no aparecen. ¿Por qué? Simple, a quien se inventa la convocatoria se le ocurre la maravillosa idea de que no necesita “Excelentes programadores” si no excelentes “Gerentes”, veamos,… en primer lugar, ¿Quien le dijo a este personaje o personajes, que ser “Especialista en Desarrollo o Construcción de Software” era ser un gran programador?, ¿Se preocupó acaso por enterarse que los que en realidad tienen el perfil de Arquitecto de Software somos nosotros y no “ellos”?. Viene otra pregunta, ¿Porqué universidades de tan alto prestigio como EAFIT o La Universidad de los Andes dejan que su especialización sea confundida colocando un nombre “tan poco” claro?. Pues bien, en EAFIT lo que llegué a escuchar fue esto (ignoro si es solo un rumor), la especialización inicialmente se llamaba “Especialización en Ingeniería de Software” (eso hubiese sido excelente), sin embargo, la secretaría de educación en “aquel entonces” no permitió que fuese llamada así, por lo que le pusieron el otro nombre, supongo que ya que son contemporáneas, algo similar pasó en Los Andes. La pregunta es, ¿error?... si quizá, pero es que el que “de verdad” sabe de Ingeniería de Software, reconoce sin mayor explicación, que hablar de Desarrollo o Construcción de Software, es mucho más que hablar de programación de Software, y que hay montones más de roles y actividades que hacer en ese proceso que se resumen básicamente en Ingeniería de Software.

Ahora veamos, es fácil concluir que hay algunos personajes en esta historia que no tienen tan claro el asunto, y que además de que no lo tienen tampoco se preocupan por tenerlo. Bien, para suerte de algunos nuevos profesionales y universidades, hoy parece ser que si se avala el nombre de “Especialización en Ingeniería de Software”, en mi opinión personal, lástima que los que pueden tener este beneficio, estén tan enfocados al error de formar grandes programadores de Software, se siente uno como impotente de que se desaproveche y se desenfoque el verdadero significado de esta disciplina. Yo espero que sea cuestión de tiempo para que tanto ellos como los alumnos que las toman, les hagan caer en cuenta a universidades y docentes de cuál es el verdadero rol de un Ingeniero de Software, en vez de solo tomarla porque su precio es más económico que las otras universidades, obviando que estén equivocados de enfoque, con suerte esto será temporal.

La otra anécdota refiere a lo sucedido en España hace un tiempo, noticia q estuve persiguiendo y que no sé donde quedó hoy, la noticia me dejó petrificada, querían eliminar la carrera de Ingeniería de Sistemas, porque según los maravillosos entes gubernamentales, esta profesión no es más que un montón de actividades transversales que pueden ser incluidas en todas las demás profesiones. Si señores, en todas! Médicos, abogados, artistas, y demás, todos debían recibir la formación que profesionales de mi área recibimos y nosotros éramos prescindibles. Casi da ira, inconcebible semejante locura. No ahondo más en ella porque (con su perdón) es una soberana estupidez. Pero se los traigo a colación por lo siguiente, ¿Sabe el planeta, saben los demás que no se preocupan siquiera por involucrarse, cual es rol de un Ingeniero de Software? Alguna vez en una de mis sentidas presentaciones sobre esta le decía al público: "es que hemos llegado tan bajo, que ser un ingeniero hoy en día lleva a que tu familia te ponga a formatear mil veces el computador cada que lo infestan de virus y ser experto en Word y Excel", y pobre de ti si no eres capaz, tu madre es la primera en decir ¿Y usted no es "pues" ingeniero de sistemas? #PLOP!

Ahora bien, lo peor es, ¿lo sabemos nosotros? ¿Lo saben quienes están a cargo? ¿Lo saben quienes tienen el poder de cambiar el rumbo de las cosas?... y la perla, ¿Hacemos nosotros algo para que no nos pase un día lo de España? No, no creo. De hecho, cada día en internet aparecen miles de personas, haciendo “lo mismo” que hacemos nosotros, cobrando absolutamente nada, y ojo, entiéndase lo mismo, como que finalmente se genera el mismo resultado, porque nuestros procesos, y formas de hacer las cosas, llevan a que muchos sin la más mínima formación académica en sistemas pueda generar mejores productos que los nuestros, porque sencillamente en internet encontró como hacerlo, igual que lo encontraremos nosotros, y ellos no requieren de ser ni extremadamente creativos, ni extremadamente inteligentes, con simple recursividad, a veces con simple sentido común (buscar en Google) muchos generan mejores productos que muchos de los profesionales que conocemos.

Pues bien, después de todo ese desvío que pienso yo de diplomados y especializaciones. Los primeros, puede tomarlos cualquiera sea o no profesional, sea o no un ingeniero de sistemas, por lo que no opinaré, saquen sus conclusiones, yo diré que no hay cosa de alguno de los pocos diplomados que he tomado que no haya podido aprender sola y muchas veces mejor.

Sobre las especializaciones, creo que quedó claro mi punto en las solas anécdotas, el hecho es que como dejaron en los comentarios del post anterior, nos urge que la carrera de Ingeniería de Sistemas en vez de desaparecer se divida y forme varias carreras, y esas carreras, son todas esas maravillosas especializaciones que se inventan aquí para poder suplir y lograr en los perfiles de la gente aquello que los pregrados no están logrando, y espero que haya quedado claro que ese “no lograrlo” no está en un solo ente particular, es claro, la responsabilidad en todo esto está en muchas partes, gobierno, instituciones, docentes y alumnos, si no existe la disposición, la sinergia, y la exigencia por ser mejores en nuestros programas académicos, aquí seguiremos, cada día poniendo más formalismos a los procesos académicos para cumplir con normas ISO y desenfocados totalmente del objetivo por el cual se forman Ingenieros de Sistemas.

Si bien esa propuesta que nos suena a tantos de generar varias carreras no es posible, sería bueno pensar en que se planteen mejores lineas de profundización para los estudiantes, más cercanos a la realidad laboral actual y con docentes que tengan experiencia real que compartir y no solo se apoyen en textos académicos. De esta forma quizá los estudiantes puedan elegir antes de abordar en mundo laborar los diferentes perfiles a los que pueden dedicarse y trabajar en ellos para fortalecer sus habilidades. Algunas universidades están dando pasos a un cambio, haber reducido la carrera de ingeniería a 4 años fue quitar al menos 10 materias que estaban sobrando en ese proceso de formación, y seguramente hay más gente trabajando en ello, lastimosamente no es proceso inmediato, pero es algo en lo que podemos intentar contribuir desde nuestros diferentes roles y niveles de participación.

Espero sus comentarios, como en el anterior mi advertencia, esto no va ni en contra ni a favor de instituciones o personas, son meros pensamientos personales.

Sorey García (@soreygarcia)

Las mujeres y el software

Celebrando mi entrada número 150, este post que me gustó mucho, originalmente escrito para WillyDev.NET

Este post no estaba planeado cuando empecé a escribir en esta sección de WillyDev, pero a razón de un comentario en post anteriores me decidí a escribirlo. Bien pues, no es que piense que tiene caso eso de discutir si mujeres son mejores que hombres en esto de hacer software, no, de hecho no es ese el tema, pero cuando me motivaron a escribir sobre esto recordé un árticulo que lei hace muchos años en DiarioTI, del cual les dejo el link.

Bien, me sorprendió un poco leerlo después de varios años y ver que después de tener más experiencia en metodologías y de haber trabajado con más equipos de trabajo compuestos por hombres y mujeres, ya no estoy tan de acuerdo con frases como que "los hombres hacen código más complicado para parecer más listos" o con otras como que "las mujeres programan código más considerado". Usando frases religiosas uno diria, "en la viña del Señor, hay de todo". Este tema nació de un post y comentario donde hablábamos acerca del escaso número de mujeres que hay en sistemas y además de que de esas pocas, la mayoría termina por querer cargos administrativos, situación que a mí particularmente me resulta una lástima. Hay un rol en especial que me gusta mucho pensar en que es apto especialmente para una mujer, y es el rol de arquitecto (en primer lugar por que es mi rol favorito, en segundo por que yo quiero ejercerlo).  Entrar en luchas feministas aquí no tiene mucho caso, diré simplemente qué pienso que es el cargo justo para una mujer, por que siento que las mujeres nos fijamos en los detalles, prestamos más atención a los riesgos y en efecto somos más consideradas.

En una de mis presentaciones a mis alumnos de pregrado, cuando les cuento sobre el rol de un arquitecto, uso una frase de un arquitecto de edificaciones en la cual se dice que: "La mayoría de arquitectos que construyen edificios extraños lo hace por que hoy las tecnologías permiten hacerlo", eso no tiene mucho sentido, ni en el contexto de las edificaciones, y menos en el del software, como bien termina esa frase "Poder hacer una cosa no legitima el hacerla". Y bueno, a que viene todo eso, resulta que en este camino de tener arquitectos, amigos o cólegas, y compañeros de equipo de trabajo, muchas cosas ve y aprende uno, y en efecto se encuentra con ese tipo de arquitectos que piensa que por que hay técnologías de última generación disponibles entonces "esas son" las que debemos usar, cuando puede que un camino menos elaborado pueda proporcionar una solución incluso más rápida y menos compleja, y en mi corta experiencia este tipo de personajes han sido lastimosamente hombres. Por el contrario, las pocas mujeres cercanas a este cargo o con las habilidades requeridas para ello, son personas en las que uno observa una actitud más razonable, menos impulsiva, más pensada en las necesidades reales que en el solo innovar por innovar, o por parecer demasiado listo.

Ojo caballeros, que no estoy diciendo que así sean todos, simplemente al ser ustedes más "encuentra uno cada personaje!", desde el despreocupado, hasta el que usa siempre la misma propuesta arquitectónica para todo, el que se cree arquitecto por que ha programado toda la vida o por que hizo un curso de arquitectura o el que deja que los demás hagan su trabajo, y son cosas que no quiero afirmar diciendo que son causa del género, usaré una más coloquial y diré que quizá sea por que somos menos y por que las que deverdad queremos hacer ese tipo de funciones somos por tanto muchas menos y más cuidadosas, disciplinadas y dedicadas, de aquí que ese tipo de particulares situaciones no se ven entre nosotras tan a menudo como entre los hombres.

Con respecto a los otros roles diré en su generalidad que lamento bastante ese tema de que las mujeres no persistan mucho en los cargos técnicos, si bien pienso que muchas mujeres juntas en un equipo de trabajo es para problemas, también pienso que somos muy buenas en lo que hacemos, y también que en equipos de muchos hombres, una o dos mujeres dan un "toque" y un equilibrio excelente, para que las cosas no sean tan "escuetas" o "simples" y tengan su parte de humanidad y sensibilidad, que tanto se nos pasa de largo como ingenieros y que tanto necesitan clientes y usuarios a la hora de que demos solución a sus necesidades.
Les contaré que la situación no parece que vaya a cambiar mucho. Yo de hecho observo con tristeza, como a mis salones de clase semestre a semestre llegan cada vez menos mujeres, el tema de la falta de motivación existente en las carreras de pregrado, genera mucha deserción estudiantil en general, pero a la vez el hecho de que pocos docentes tengan la capacidad de transmitir a los alumnos que la programación no es el único camino que tienen en sus vidas, hace que la mayoría de niñas que no son hábiles para programar, piensen que nada harán terminando una carrera en la cual su única perspectiva profesional es esa, gran error, cuando esa misma niña que no es hábil para la lógica abstracta podría ejercer roles desde documentalista, analista funcional o tester, y usar sus habilidades creativas en formas distintas para acercarse incluso a comprender un poco más el que hacer de los que se dedican a programar.

En fin, ampliar el tema no tiene mucho, tengo que decir en apoyo a la niña que me motivó a escribir este post en eso de que las niñas que programan por gusto, son excelentes, la dedicación, disciplina y creatividad que le ponen a este asunto es excelente, y hasta la buena energía. Para mí lástima ya me ha tocado la que no sabe nada de nada y ni se da cuenta que no sabe, pero es como todo, no creo que haya patrones en esto del género, lo que si hay es una muestra mayor o menor de donde poder tomar los ejemplos.
Caballeros, no se enojen, si? :P

sábado, 6 de noviembre de 2010

Derechos de autor y software

Bueno aprovechando que ultimamente he retomado tanto el escribir, tocaré este tema de enorme sensibilidad. Sin embargo antes quisiera pedirles a mis lectores amantes del software libre, intentar tomar una postura objetiva y no de gusto. Si bien es evidente en mi blog y participaciones en la red que tengo una alta inclinación por tecnologías propietarias, tampoco tengo nada en contra del software libre, de hecho lo uso mucho, incluso promociono su uso cuando es una buena herramienta.

Bien pues, iniciaré contándoles el por qué decidí escribir de este tema. En mis ratos de ocio en Twitter vi un link que retwitteó @pfsanchez sobre el software libre. En el hablan de 4 libertades fundamentales de los usuarios de software, se las enumero:

1. La libertad de ejecutar un programa de software para cualquier propósito.
2. La libertad de estudiar como trabaja el programa y cambiarlo para que haga lo que usted quiera. El acceso al código fuente es una condición necesaria para ello.
3. La libertad de distribuir copias para que pueda ayudar al prójimo.
4. La libertad de mejorar el programa y publicar sus mejoras y versiones modificadas en general para que se beneficie toda la comunidad.

No empezaré con mis argumentos, solo cambiaré el contexto de estas frases a otros ámbitos, conocidos y sensibles para todos, y por los que sí se hace tanta lucha en todos los medios. Veamos como se siente leer las mismas 4 leyes fundamentales usando no software si no una pieza musical, o mejor, un libro, ¡es más! un best-seller con teorías originales del autor y no tratadas en ningún otro libro.

Libertades fundamentales de los lectores

1. La libertad de leer el libro para cualquier propósito. 
(Ok, no hay problema, ojalá sera una copia legal)

2. La libertad de estudiar como fue hecho el libro y cambiarlo para que diga lo que usted quiera. El acceso al manuscrito es una condición necesaria para ello. 
(!!Momento!! !!Momento!! Si quiere una copia, por favor cómprela, estudie las referencias y todo lo que desee, pero ¿como así que va a modificarlo? ¿para que diga lo que usted quiere? !!!Pero si esas teorías no son suyas!!! !!!Son del autor!!! Se va a ganar una demanda.)

3. La libertad de distribuir copias para que pueda ayudar al prójimo.
( :) !Que bueno! ¿va a comprarle muchos libros al autor? !Eso será excelente!... ¿Ah no? ¿Va a sacarle fotocopias para regalarlas a todo el mundo??? ¿¿¿Qué??? !Que falta de respeto! !Se va a ganar una demanda! )

4. La libertad de mejorar el programa y publicar sus mejoras y versiones modificadas en general para que se beneficie toda la comunidad.
!Es una excelente idea! El conocimiento es en beneficio de la humanidad, pero por favor, si va a lucrarse de eso, pida autorización y haga una negociación con el autor. Si no piensa lucrarse pero igual va a hacer cambios a la obra sean o no mejoras, permita que el dueño de la obra determine eso y además determine si desea que su obra sea modificada y de qué manera.

Les dejo la tarea de tratar de aplicar estos puntos a una obra de arte famosa o una pieza musical, ni siquiera famosa, solo pregúntenle a cualquier artista, si la piratería lo afecta o no lo afecta.

No, para los que piensen que estoy en contra del software libre, o es más para los que piensen siquiera que no tengo idea de que las diferentes licencias de software libre tienen además de derechos, tienen unas obligaciones, les cuento que si estoy muy bien informada, finalmente el hacer software es parte mi profesión, pero saben algo, hay muchos usuarios, y mucha gente del común por ahí, promulgando el uso de software libre y dándose peleas con todo el mundo, sin conocer tan siquiera lo que todas estas cosas implican. 

Si usted amable lector es no solo amante si no experto en software libre, no se enoje conmigo, mi llamado de atención no es para usted que esta bien informado, es para todas las otras personas que además de adorar el tema, no se informan y evangelizan por el mundo sin conocer además de sus libertades fundamentales, sus obligaciones fundamentales.

Puede que los ingenieros de software no les parezcamos a todos tan admirables, eminentes o inspiradores como un escritor, pintor o cantante, pero tenemos tanto derecho sobre los productos que construimos como las personas que se dedican a ese tipo de profesiones (derecho incluso a regalarlo abiertamente que es lo que hacen las comunidades y amantes del software libre), pero es una decisión personal o empresarial, como también lo es que yo decida no compartir el código, pero quizá si permitir el uso de mi software de forma gratuita, ¿Me hace mala no regalarlo? No para nada, de hecho me hace buena con la comunidad (o con los usuarios prefiero decir yo), el permitir su uso libre, pero es que hemos llegado al punto en el que si es software libre además estamos moralmente obligados a compartir el código también, y reitero yo sé que los que de verdad saben de este tema no son tan rígidos, pero estoy tratado de hablarle al que no sabe tanto, para que se enteré un poquito de que todo esto se trata de muchas más cosas que solo código, ¡es que el software no cae del cielo hecho!, se necesita haber estudiado formal o informalmente, se necesita haber invertidos tiempo, se necesitan licencias a veces, empleados, infraestructura, procesos, se necesitan mil cosas, de las cuales la gente del común, ni siquiera se preocupa por enterarse.

Con esta palabra "empresarial" tocaré un tema y es el hecho de que criticar desmedidamente a las empresas que construyen software propietario es un despropósito. Básicamente, construir software es un negocio, un negocio como la creación de obras de cualquier tipo, cada cual decide cual es su modelo de negocio y en eso estaría en todo su derecho. ¿Que tienen muchos recursos? ¿Que son egoístas? ¿Que no piensan en los usuarios? Si claro a veces, nadie dice que no (finalmente nadie es perfecto), pero lo que sí es que cada cual tiene derecho a plantear la forma en que maneja su negocio, e incluso ese tipo de empresas ha entendido con el tiempo, si bien no la necesidad de abandonar su negocio, si el hecho de que los programas de software tan de uso masivo necesitan versiones, no tan costosas o incluso de uso gratuito para el público general, y aunque se sigan guardando sus mejores herramientas para venderlas a un alto costo, eso tiene sentido, es su negocio básicamente, ¿Su mina de oro? Ha pues si, !Que bueno que la encontraron! El punto es que aquí el tema no es de los entes capitalistas o no, si no de respeto por las decisiones de los creadores del software por pertenecer o no a la idea del software libre, como dice @pfsanchez

"Para el mundo del #SoftwareLibre, el problema no es el software privativo, sino las mentes privativas"

Eso es más razonable y con lo que yo estoy más de acuerdo.  Hay empresas que tienen una alta cobertura de ciertos sectores del mercado para los cuales deberían ofrecer opciones económicas, e incluso de uso libre al estar tan posicionados en el día a día del común de la gente, y pienso que eso podrían reconsiderarlo. Pero por Dios, no solo los grandes hacen software y no todos los que hacemos software somos ricos.

Si hoy encuentro que construyo un producto de software que resulta ser acogido entre el público de forma masiva, ¿no creen que es apenas lógico que yo quiera vivir de ello?, obviamente no justifico el abuso de tarifas ni nada por el estilo, simplemente ¿por qué tengo que dar mi código?, ¿acaso no puedo decidir trabajar en ello y hacerlo mejor cada día para que se venda más y vivir de mi trabajo como cualquier otra persona? Pues si eso tiene sentido en pequeño, lo tiene en grande, y creo que lo que intento decir simplemente es que no estoy de acuerdo con la pelea de extremos y mucho menos con que la gente que da esas peleas sean personas desinformadas, que además de no conocer en detalle las obligaciones de todo, no piensa un poco más sobre los derechos de los profesionales que nos dedicamos a esto, que vivimos de esto, como lo hace quiere hacer cualquier otra persona, producto de los frutos de su profesión.

Para terminar diré que en realidad admiro mucho a las comunidades de software libre, pero no a los solo consumidores, no, a la gente que participa activamente, que ayuda a mejorar los productos y comparte las mejoras, y además que respeta los acuerdos planteados por los diferentes tipos de licencias. Yo espero algún día vincularme a un proyecto de este tipo, por que de verdad me parece una labor muy bonita y una bonita opción de trabajo en comunidad y de tener mejores productos sin tanto esfuerzo individual y en beneficio de todos, pero insisto, esa decisión es de cada cual, y no tomarla o tomarla, no te hace ni mejor, ni peor, ni bueno y mucho menos malo.

Sorey García (@soreygarcia)