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í