jueves, 14 de julio de 2011

Consideraciones para el uso de herramientas Express de Microsoft

Hoy voy a hablar un poco de las herramientas Express de Microsoft, es decir licencias de uso gratuito. Bien, a pesar de la alta difusión que tiene Microsoft con este tema, aún parece que existen muchas personas con el concepto erróneo por demás que para desarrollar con Microsoft necesitan adquirirse licencias de un altísimo costo, ese tema ha dejado de ser así hace bastante tiempo, de hecho puedo decir que me he vuelto una fanática de estas herramientas Express, puesto que además de permitirme hacer cosas en casa para aprender e incluso para desarrollar algunos proyectos, me permiten en la oficina tener herramientas en mi ambiente de desarrollo para no depender de los servidores y su acceso por control remoto.

En los últimos días, me he sorprendido gratamente descubriendo que las herramientas Express cada vez ofrecen más características que definitivamente aportan a la vida de los desarrolladores y pequeñas empresas.

Obviamente hay que aclarar que estas herramientas no tienen todas las funcionalidades de las herramientas de pago, pero para proyectos básicos, incluso algunos de mediana envergadura cumplen a satisfacción con las necesidades y nos dejan antojados definitivamente de tener una licencia con todas las características disponibles.

Enumeraré un par de puntos que debemos tener en cuenta al usar este tipo de herramientas, debido a que muchas veces lo que hacemos es descargarlas sin siquiera saber que limitantes podríamos tener.



Con respecto a los IDE de desarrollo mencionaré Visual Studio Express 2010 o Blend para Windows Phone.

En Visual Studio lo que sucede con sus ediciones gratuitas es que nos permiten desarrollar ciertos tipos de componentes y además en IDE separados. ¿Esto que significa? Si queremos desarrollar una solución con varios proyectos de tipos de componente diferentes, por ejemplo una aplicación para Windows que además tenga un módulo Web, tendremos que bajar, el IDE versión Express que nos permite desarrollar aplicaciones Winforms y el otro IDE que nos permite desarrollar aplicaciones Web, es una pequeña limitante, pero en realidad la mayoría de proyectos básicos son de un solo tipo de componente y si no lo son no tienen problemas en desarrollarse por separado, igual si sabemos manejar las soluciones, podemos poner un mismo proyecto en varias soluciones aunque las abramos con IDEs diferentes.

Sobre Blend, tengo que confesar que fue una sorpresa para mí verlo como de uso gratuito para Windows Phone, pero tiene sentido, obviamente Microsoft está trabajando por hacer popular el desarrollo sobre su nuevo sistema operativo para móviles, y Blend para quienes no lo conocen es una herramienta que el solo aprenderla para aplicaciones sencillas como móvil definitivamente te deja con ganas de aprenderla a usar más y mejor en aplicaciones más elaboradas Web o de escritorio con WPF.

Por otro lado se encuentran las versiones de SQL Server Express, es increible ver la capacidad que tiene disponible estas versiones en almacenamiento y herramientas. Yo particularmente la uso en mis proyectos en mi ambiente de desarrollo donde no puedo adquirir licencias adicionales y en realidad a parte de los tropiezos propios de la instalación y configuración de algunas de las herramientas gratuitas, su funcionamiento es impecable y me ayuda a ser más productiva. Además el hecho de que ahora tengamos algunas carácteristicas disponibles como el Report Builder, algo del SSRS (SQL Server Reporting Services) y del SSIS (SQL Server Integration Services) en la versión SQL Server Express 2008 R2 con Servicios Avanzados, definitivamente me dejó bastante contenta. 

Con respecto a las versiones de SQL Server Express diferentes a esta que les recomiendo, recuerden que la herramienta gráfica para la de administración de la base de datos es el SQL Server Management Studio Express, que tipicamente se olvidan de instalarlo.

Por otro lado hace unos días encontré WebMatrix, es una herramienta simple la verdad, pero que a mi por ejemplo me ayuda a hacer facilmente correcciones a mis sitios web sin tener que abrir un enorme IDE, además de ayudarme a republicarlos fácilmente. Ojalá un día le agreguen el constructor de estilos que tan útil es y que no sé si es falla mia pero no pude encontrarlo.

La verdad es que yo considero que muchas de estas herramientas son desperdiciadas en los entornos empresariales y desconocidas por los profesionales en sistemas por que se quedaron en los viejos tiempos donde las herramientas de este tipo o no estaban disponibles o generaban variado tropiezo.

Pues yo pienso que Microsoft ha cumplido su propósito de ser más abierto y seguramente su estrategia de antojarnos cada día de ser más productivos desarrollando con sus herramientas, por que finalmente se darán cuenta al usar estas herramientas que uno se pregunta, si estas son gratuitas ¿como serán las versiones completas?

Un último consejo es leer muy bien que características tenemos disponibles, sobre todo en el despliegue, un ejemplo del por que doy esta advertencia es el Reporting Services, que en su versión Express claramente indican que no permite acceso remoto, así que bueno nos servirá para aprender y quizá para tener una aplicación que corra en una sola máquina pero no para una apicación distribuida. 

Para finalizar los invito a navegarse por los portales de Microsoft, además de toda la información y programas que hay para aprender, por ahí hay variada herramienta de uso gratuito tanto de Microsoft, como de sus comunidades y profesionales Open Source. ¿Open Source con Microsoft? Si, Open Source, pero eso, será un tema de otro post.

;)

Cápsula #1 C#.NET: Hola Mundo

Saludos a todos,

Acabo de empezar a través de Avanet, algo llamado cápsulas de conocimiento, en este caso de C#.NET,

En la primera cápsula comencé con algunos conceptos básicos sobre el IDE Visual Studio 2010 y sobre la estructura de proyectos y archivos de una aplicación de consola.

Espero que me ayuden a construir y que den sus consejos y retroalimentación, además de dejarme sus dudas para irlas respondiendo a medida que se generan las cápsulas.


IMPORTANTE: Antes de iniciar la serie de cápsulas les recomiendo nivelarse un poco conceptualmente, mirando la sesión 1 que dí en mi taller de Campus Party 2011

lunes, 13 de junio de 2011

Entendiendo la responsabilidad social de la ingeniería de software

El 6 de Abril de 2011 participé en #SGVirtual 2011 con una conferencia, definitivamente excelente espacio, una experiencia maravillosa que nos permite Software Gurú. Les dejo el resumen de la propuesta y el video. ;)

"Entendiendo la responsabilidad social de la Ingeniería de Software"

El software se ha convertido en un tema del día a día en todos los ámbitos, profesionales y entusiastas de distintas áreas, se suman diariamente a los emprendedores que asumen la tarea de construir software, sin embargo, lo no tan positivo de esta situación, es que muchos lo hacen sin antes entender las implicaciones y responsabilidades que acarrea el desempeño de esta labor.

En estos escenarios cada vez más típicos, los involucrados olvidan el enfoque de calidad propuesto por la ingeniería de software y omiten además las buenas prácticas y principios planteados por las diferentes metodologías creadas desde hace buen tiempo en el área, reduciendo los temas relacionados con la construcción de software a aprender un lenguaje de programación desde un tutorial en internet.

La charla propuesta pretende dejar por sentado los temas de índole social que acarrea esta situación en la industria, al igual que establecer algunas de las razones de su procedencia en él ámbito académico y profesional, y dejar planteados en los asistentes la necesidad de la aplicación de mejores prácticas durante la ejecución de proyectos de software, conociendo las generalidades de las disciplinas inmersas en la ingenieria de software, con del ánimo de que todos, independientemente de si son profesionales afines al área o no, o si son simplemente entusiastas en la materia puedan tener un punto de partida y un enfoque contextual acerca de su uso.

martes, 12 de abril de 2011

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

Saludos a todos,

En este post continuaré hablando un poco más de los diferentes implicados en el "estado del arte" de la industria del software, algunas de sus acciones y las consecuencias de estas, no sin antes aclarar que no intento ni mucho menos dar solución al problema que se planteó en el primer post, solo exponer algunas otras ideas personales sobre lo que pienso está ocurriendo, y como creo yo "que no debería ser", ya que "el deber ser" está supeditado al tipo de escenario que nos enfrentemos, sin embargo lo que es claro es que hay cosas que estan sucediendo y estan yendo en detrimento de nuestra profesión y del trabajo que realizamos como Ingenieros de Software.


Empezaré por decir que amo la academia y la disciplina, y admiro profundamente a las personas que dedican su vida a investigar y hacer cosas que a los demás nos parecen "complicadísimas", sin embargo con lo que no estoy de acuerdo es con que la academia se dedique a soñar y se olvide de "la vida real", y con eso quiero decir, que se olvidan de lo que nos toca enfrentar a los profesionales que estamos día a día en una empresa y no en laboratorios de investigación, o dedicados exclusivamente al ámbito académico.


¿A que va este comentario?, las propuestas alrededor de la ingeniería de software son geniales, diferentes metodologías, nuevos detalles a los procesos, modelos y meta modelos, y metamodelos de metamodelos, sin embargo los que vale la pena cuestionarse es ¿qué tan aplicables son todos esos aportes a nuestro trabajo?, pero al real, al que nos toca, y no al que deseariamos tener.

Cuanta evolución tendria que tener una compañia a nivel de usuarios y de profesionales de sistemas, que son los mismos hace años dando soporte a procesos de negocio, para poder adoptar algunas metodologías tan abstractas y soñadoras.

No digo que no se haga, alguien tiene que hacerlo, pero hay un tema que la academia está olvidado, y es acercarse un poco a la realidad de las organizaciones.

Las teorias han evolucionado pero no así las personas y compañias, de hecho me atrevería a decir la mayoría no lo han hecho. Muchos académicos dan por sentado que esta evolución si se ha dado y es de esa forma como ofrecen consultorias o establecen parámetros a sus investigaciones, cuando muchos de nosotros aún conociendo principios y mejores prácticas estamos en escenarios donde falta muchisimo camino de madurez para adoptarlos como parte del día a día.

Todo esto tiene un trasfondo y una serie de consecuencias, al revisar las universidades de mayor prestigio, se encuentra que Maestros y Doctores, son los llamados a educar los nuevos profesionales, y eso parece tener mucho sentido, en teoría, son las personas que mayor conocimiento tienen y se han preparado para ello, pero algunos de estos estos profesionales encajan en la primera perspectiva que presenté (si, la de ser soñadores) y es así como empiezan a generarse varios efectos.

Por un lado se encuentran los docentes de mayor edad, cuya experiencia valiosisima ha perdido cierta vigencia en el tiempo, por otro lado están los profesionales más jóvenes que nunca tuvieron experiencia fuera del ámbito académico, que sin embargo han dedicado mucho de su vida a estudiar y prepararse, pero que se encuentran totalmente alejados de la realidad circundante fuera de los textos y contextos académicos y por otro lado aquellos que se hacen docentes sin tener ninguna clase de respeto o interés por la educación de otro, si no unicamente con un interés económico.

Da pena encontrar muchos de estos docentes intentar educar a los nuevos profesionales desde solo literatura, y no tener argumentos, ni herramientas suficientes para determinar en que escenarios las herramientas teóricas tienen o no un nivel de aplicabilidad, o bien, hasta que nivel podría resultar exitoso y/o apropiado.

Los nuevos profesionales, si bien estan recibiendo fundamentación teorica, no están siendo preparados en todos los casos para la situación real que vive la industria del software, eso de mano con que la teoría sobre metodologías, principios y mejores prácticas es excelente, pero también lo es, que los nuevos profesionales aprendan sobre temas de vanguardia tecnológica y salgan preparados para afrontar un mundo que está cambiando más rápido de lo que las instituciones educativas se están adaptando a el, y no solo como instituciones, hay que mencionar, que la responsabilidad de actualizarse está tambien en los docentes, y que estos deberían poner de su parte para poder ofrecer a los nuevos profesionales un conocimiento acorde a los constantes cambios que está sufriendo el entorno, a nivel de tecnologías y a nivel de mejores prácticas que apliquen a la realidad de las compañias en las que la mayoría terminarán, ¡es que hasta la teoría hay que actualizarla! y no quedarse solo con los fundamentos que se vieron cuando recién nos graduamos como profesionales (y eso va para todos). 

Es así como al llegar a entornos como los que comentaba antes en donde enormes empresan funcionan exitosamente, y lo han hecho durante décadas sin la necesidad de aplicar métodologías, los nuevos profesionales terminar por creer que todo lo que vieron en la universidad no es más que simple teoría y que en realidad no sirve de nada, lo que finalmente convertirá la situación en un circulo vicioso, por que continuarán trabajando sin pensar en que siempre hay mejores formas de hacer las cosas.

Por otro lado estan los empleados con años en la empresa, absolutamente resistentes al cambio y cuestionando cada día, por que deberían cambiar "su modelo de trabajo" que da soporte perfectamente a las necesidades de su negocio.

Bien, estos últimos, tienen razón, ¡funciona!, lo que quizá no tienen en la cabeza es, que pasará cuando ellos no esten, y la falta de procesos formales haya incluso dejado a la organización sin documentación acerca de sus decisiones técnicas. En el futuro vendrán otros que no entenderán "como hacia para funcionar ese negocio, de esa manera" e incluso un tema menos importante pero que merece ser tenido en cuenta, será puesto en tela de juicio, si de verdad haciamos correctamente nuestro trabajo.

Puede que el problema de casi todo radique ahí, la mayoria de nosotros trabajamos en parte para nosotros mismos y no para un negocio, puesto que si uno trabajara para un negocio con absoluta ética y responsabilidad, lucharía por que dicho negocio no dependa en ninguna forma de uno, ni en el presente inmediato, ni en el futuro, por el contrario, todas sus acciones estarían encaminadas a que cualquier otro pudiese seguir adelante con la misma labor que uno desempeña, pero es probable que el deseo de ser imprecindibles y el temor de perder nuestros empleos, haga que adoptemos actitudes quiza saludables para nosotros, pero absolutamente nocivas para el futuro de las organizaciones.

Ahora, las organizaciones, ellas no son ni mucho menos los "personajes desvalidos" de esta historia, de hecho tienen una gran responsabilidad de entender, que si sus profesionales buscan mejores formas de hacer las cosas, necesitan capacitación y tiempo, la primera por lo que ya se mencionó, el conocimiento necesita actualizarse y renovarse constantemente, y la segunda, por que para que el conocimiento genere efectos en las organizaciones, necesita de tiempo de adopción y estabilización, sin embargo, hoy en día las "administraciones" esperan que las personas sin obtener capacitación ni tiempos de adopcion, se ajusten a las necesidades y responda de forma inmediata y coherente a las exigencias que se realizan.

Continuemos en la vía de analizar las consecuencias, las organizaciones al encontrar que sus propios profesionales no pueden responder a sus necesidades, contratan a alguien que lo haga, ese alguien termina siendo proveedores con personal joven y altamente capacitado, que en efecto pueden responder más rápido a las solicitudes, y si pensaron que con eso se resolvía el problema, veamos como no es así.

Al ser un sobre costo adicional, las organizaciones deben obtener proveedores que además de hacer bien su trabajo ofrezcan tarifas acordes a lo que está dispuesto a invertir el negocio (que por cierto, no siempre es mucho), ahora bien, increiblemente resulta en algunos casos (por no ser dura y decir la mayoria), que eso de "proveedores que lo hagan bien" es un tema que puede omitirse, pero jamás podrá omitirse el tema de buscar tarifas economicas.


En esta medida los proveedores terminan por buscar esquemas de trabajo a través de los cuales poder ofrecer a sus clientes, tarifas cada vez más económicas, esos esquemas de trabajo implican variadas exploraciones sobre las metodologías de trabajo que ofreciendo calidad puedan estar acordes al esquema económico que se persigue, sin embargo es claro, que ejecutar procesos y construir productos de calidad, implica sobre costos, ¿cuales? no es lo mismo tener 5 desarrolladores construyendo un producto de software, a tener esos mismos 5 desarrolladores, mas un diseñador y un analista funcional, y como no es suficiente, un arquitecto, un lider tecnico y un gerente de proyectos, tester y analistas de procesos, todo en busca de ejecutar mejores metodologías de trabajo, interdisciplinarias y que cubran coherentemente las necesidades de calidad del cliente. 

Ante esta situación, pareciera que las empresas proveedoras encontraran siempre las mismas salidas al problema, abaratar costos llevando a sus empleados a esquemas salariales flexibles donde el pago de impuestos a los gobiernos disminuya, y no bastando esto, contratando nuevos profesionales, incluso no graduados o con poca experiencia y despedir al personal más capacitado pero que les resulta costoso sostener. 

Veamos, parece que al fin se cerró el circulo, volvimos al primer lugar, la academia, estos nuevos profesionales, que facilitan a las empresas proveedoras de servicios, abaratar su mano de obra, estaban sometidos a todas esas circunstancias sobre las falencias en la educación que reciben y bueno, (aunque no debiera ser así) eso puede pasar, el conocimiento puede irse adquiriendo, pero, ¿la conciencia? ¿la ética? ¿la comprensión sobre que las mejores formas de hacer las cosas?

Lo que ocurre con estos profesionales es que entran en otro circulo vicioso, llegan a una empresa llena de procesos estructurados donde aplican todas esas teorias que les daban en la universidad, sin embargo al no entenderlo, piensan que es un trabajo engorroso, y no tan necesario y ejecutan aquello que exclusivamente les obligan a hacer, y vienen y van las quejas de los clientes sobre todos los problemas del software que se recibe y la cantidad de reprocesos que tienen que realizarse, la cantidad exhorbitante de bugs encontrados, las situaciones criticas a las que se somete el negocio cuando se encuentran serios defectos en el software... etc, etc, etc

!Momento¡, ¿acaso ese no es el mismo escenario donde la gente buscaba un esquema de calidad para atender a las empresas clientes?... será que como dicen por ahí "¿lo barato sale caro?", ¿acaso las empresas clientes, tampoco se dan cuenta que la calidad cuesta? Y no solo en dinero, tambien en tiempo, y entonces ¿someten a sus proveedores a presiones excesivas con tal de encontrar quien responda por "a como de lugar" con las necesidades del negocio?

Lo último que estoy sugiriendo con todo esto es que los nuevos profesionales no reciban oportunidades, no, a eso no voy, de lo que hablo es de que existe una falta de conciencia generalizada en todos los ámbitos, y que mientras no existan sinergia entre tantos entes que componen este ecosistema, continuaremos cometiendo errores por más teorías que existan alrededor de la Ingeniería de Software, es decir seguiremos caminando en círculos.

Espero que sea claro en este punto, por qué toda esta situación va en detrimento de nuestra profesión, ser un mejor profesional, cada vez más capacitado, no en todos los casos resulta una ventaja, muchos de nosotros terminamos en el papel de los analistas que nos dedicamos a atender un negocio y a dejar que otros que supuestamente si lo saben hacer, den las soluciones, y si no nos tocamos a modo personal, haremos parte del enorme y repetitivo círculo vicioso en el que nos hayamos inmersos.


Este no es un panorama deseable, en esa medida la desmotivación permanente de los profesionales, termina generando un mal ambiente generalizado en el cual cada día muchas menos personas tienen entre sus perspectivas profesionales ser un ingenieria de sistemas, y es que ¿para qué lo querrian, si son más aptos y tendrán mayores oportunidades, estudiando por su cuenta y si terminar carreras profesionales, que a la larga solo duran más tiempo y producen los mismos o peores resultados con respecto a las oportunidades laborales y sin perderse 5 años de academia?. 

Ojalá sea claro que mi tono ante todo esto es absolutamente sarcástico e irónico, no estoy de acuerdo, no es esa las perspectiva que deberíamos tener, ni profesionales, ni instituciones, esta profesión es excelente, y es admirable todo lo que podemos lograr, todos los ámbitos de la vida de las personas en los que podemos influir, igual que otras profesiones tan admirables, como la medicina y el derecho.

El cambio quizá empieza a modo personal, son cantidades de personas las que tienen que cambiar, y no estoy segura de si ello es posible, pero esas personas son las que luego tendran la posibilidad de estar al frente de organizaciones e instituciones a través de las cuales se puede generar un cambio, y en esa medida, nosotros, los que reconocemos la importancia de este asunto, debemos llevar el mensaje y transmitirlo en los ámbitos en los cuales participamos, no solo adaptarnos a donde lleguemos y dejarnos consumir por la situación en la que se encuentran, si no generar el cambio en los espacios donde participamos y hacer valer con hechos y buen trabajo, lo que podemos hacer como profesionales, como no solo excelentes si no excepcionales Ingenieros de Software.

Los invito a que debatamos y compartamos opiniones acerca de esta situación, y los espero en un próximo post.

sábado, 2 de abril de 2011

Entendiendo la computación en la nube (I)


La computación en la nube es desde hace algún tiempo, otro de esos temás que andan de boca en boca.

Todos quieren saber que es, pero pocos se toman el trabajo de entenderlo, y aunque la verdad es que no es tan complicado, muchos creen que por el hecho de no ser un tema realmente nuevo, ya lo saben todo al respecto, equivocándose hasta en los conceptos más básicos.

Antes de entrar al cualquier debate sobre si este tema es moda o necesidad, o cuales son los riesgos de adoptarlo, tratemos de entender de la forma más simple que es "La computación en la nube".

Intenté buscar una definición formal y simple y entre tanta información encontré algunas frases de esas que me gustan y que ayudan a entender el tema a "cualquier persona".

Pues bien, por computación deberíamos entender todo aquello relacionado con el software y el hardware, tanto a nivel de su uso como a nivel de su implementación, es decir, por software podriamos tener aplicaciones de software propias de un negocio, o genéricas, tales como sistemas operativos, herramientas de oficina, sistemas de atención al cliente, o de gestión de almacenamiento remoto, entre otras, y por hardware todo lo relacionado con infraestructura, es decir maquinas, procesadores (capacidad de procesamiento, núcleos), memoria RAM, canales de comunicación (ancho de banda), firewalls, espacio de almacenamiento de datos y todo lo demás que pueda derivarse de allí.

Ahora veamos, el término "nube" además de ser alusivo a que los servicios que usamos están ubicados en un sitio remoto que puede ser internet (nube pública) o un datacenter interno dentro de una empresa (nube privada), también puede asociarse a que los servicios ofrecidos por los proveedores de este tipo de tecnología, pueden ser diferentes, variados y flexibles, como las nubes.

En la anterior definición he usado otra de la palabras importantes en este tema y es "servicios". El paradigma de computación en la nube plantea diferentes tipos de prestación de servicios que a modo general son conocidas como XaaS o EaaS (X as a Service o Everything as a Service) con el fin de dar a entender que todo puede estar en la nube, y ese todo puede entenderse a través de 3 grandes categorias:

SaaS (Software as a Service): El software como servicio refiere al uso o utilización de un aplicación de software publicada en la red por un proveedor. Este tipo de servicios se contrata generalmente por el número de usuarios que tienen acceso a la aplicación y tambien por las funcionalidades que se tienen disponibles dentro del aplicativo.

PaaS (Platform as a Service): La plataforma como servicio refiere a la contratación de un espacio en la red donde desplegar o publicar las aplicaciones propias. Estas aplicaciones deben ser desarrolladas con las tecnologías que soporta el proveedor del servicio. La diferencia de este tipo de servicio con el servicio de hosting tradicional, es que las condiciones bajo las que se encuentra nuestra aplicación (capacidad de almacenamiento y atención de conexiones) puede alterarse en el tiempo (aumentarse o disminuir) con el fin de pagar unicamente por aquello que necesitamos de acuerdo a la demanda de nuestra aplicación, o bien, de nuestro presupuesto.

IaaS (Infrastucture as a Service): La infraestructura como servicio refiere a el alquiler de máquinas sobre las cuales se podrán instalar aplicaciones, donde el licenciamiento corre por nuestra cuenta, el proveedor de este servicio pone a nuestra disposicion dispositivos de harware y canales de comunicación, de los cuales podemos pagar solo por aquello de que decidamos consumir y como en el anterior podemos aumentar o disminuir de acuerdo a nuestra necesidad y/o presupuesto. En este caso algunas aplicaciones como el sistema operativo pueden ser alquiladas igualmente al proveedor o bien subir nuestras propias licencias de acuerdo a las posibilidades indicadas por el proveedor.

Bien, hasta este punto, es bastante comprensible, podría decirse que no hay algo nuevo, es más bien una reconceptualización de servicios existentes, situación que ha sido posibilitada por la evolución del internet y de las tecnologías de virtualización, sin embargo, el tema de computación en la nube, va mucho más allá que solo el concepto técnico y necesita ser entendido bajo diferentes opticas, tales como: los escenarios adecuados para su uso dentro de los diferentes tipos de empresas, las categorias que podrían ser adecuadas de implementar según los escenarios existentes, los riesgos de que las organizaciones publiquen su información en la nube, la atención y cuidado de los contratos con los proveedores de este tipo de servicios y los diferentes cambios culturales que pueden generar este tipo de implementaciones dentro de la áreas de tecnologías de información, entre otras.

Nos vemos en el próximo post.

Sorey García (@soreygarcia)

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