sábado, 22 de noviembre de 2008

Personalizando la Web

En general la personalización hace que el usuario se sienta más cómodo con la herramienta que usa, bien sea un cuaderno, el celular, la computadora, la interfaz del correo electrónico, etc. Seguramente recuerdan sus cuadernos de primaria llenos de calcomanías, eso es personalización!
Nos gusta personalizar las cosas que usamos.

Ahora bien, cuando se habla de aplicaciones Web, hasta hace pocos años no había mucho que personalizar, solo algunas opciones simples como los temas de colores y en ocasiones la disposición de ciertos objetos de la interfaz. Pero no paso mucho tiempo antes de que los desarrolladores comenzaran a agregar más inteligencia a las aplicaciones Web y ahora contamos con aplicaciones que hacen recomendaciones basadas en nuestros gustos particulares.

Tal es el caso de Google que aprovechando el hecho de que prácticamente todo el mundo usa su buscador ha lanzado varios productos que nos ayudan personalizar la Web. Son muchos los productos que Google ofrece así que sólo mencionaré los que, a mi parecer, son más fácilmente adoptados por los usuarios.

Primero tenemos a iGoogle, un escritorio virtual que se puede personalizar agregando mini-aplicaciones (gadgets) listadas en un directorio, lo interesante es que el usuario tiene la libertad de crear nuevos gadgets e incluso compartirlos con los contactos de su lista. Por supuesto Google no es el único que tiene un escritorio virtual, existen otros sitios que también trabajan bajo el mismo concepto como PageFlakes y MyYahoo!.

Por otra parte tenemos a SearchWiki, lo nuevo de Google. Si personalizar tu página de inicio no es suficiente ¿que te parece personalizar los resultados de tus búsquedas? Así es! SearchWiki permite personalizar los resultados de tus búsquedas, indicándole de forma rápida y sencilla cual de los resultados se acerca más a lo que realmente buscas o eliminando aquellos resultados que no, incluso te permite agregar más resultados a la búsqueda actual y agregar comentarios a los resultados listados. Aunque la personalización de las búsquedas hechas en SearchWiki sólo afecta al usuario que la realizó, es bastante obvio que Google usará esta información para mejorar sus propios algoritmos de búsqueda, que de por si ya son excelentes. Igual que en el caso de iGoogle, SearchWiki no es totalmente innovadora pues desde hace algún tiempo el buscador Wikia introdujo un concepto similar ofreciendo a los usuarios la posibilidad editar las búsquedas que realizan.
Nada mejor que la atención personalizada!


domingo, 7 de septiembre de 2008

Conectando la Web

Recientemente






Luego de investigar un poco sobre el trabajo de Aza Raskin se podría decir que Ubiquity es una evolución de Enso un producto ofrecido por la compañía Humanized, de la cual Aza Raskin es co-fundador. A pesar de que la funcionalidad de Enso es algo distinta el principio es el mismo, "lograr que sea más humana la interacción entre el usuario y la aplicación".

viernes, 4 de julio de 2008

Mejorando el performance de las aplicaciones web

Siempre se debe desarrollar pensando en el performance de la aplicación y en el caso de las aplicaciones web el tema del performance toma mucha fuerza ya que este tipo de aplicaciones son muy sensibles a los retrasos. A nadie le gusta usar una página web que sea lenta! No importa cuanto esfuerzo se haga en el desarrollo, todo se irá a la basura si la página tarda 5 segundos más de lo que debería.

Luego de investigar un poco más sobre el tema del performance en las aplicaciones web, encontré la página de Steve Souders, un gurú del web performance que trabajó en Yahoo! como Chief Performance Yahoo! y que actualmente trabaja en Google en el área de web performance.

Luego de mucho tiempo de investigación Steve y su grupo descubrieron que, del total de tiempo de carga de una página web, sólo el 20% es usado para cargar el código html, el otro 80% se usa para cargar el resto de los componentes de la página (ccs, javascript, imagenes, etc). Dicho esto Steve explica en sus charlas que la regla de oro para mejorar el performance de una aplicación web se basa en enfocarse en ese 80% restante.

Además de su libro High Performance Web Sites, Steve ha desarrollado herramientas como YSlow y Cuzillion, que resultan de mucha utilidad para cualquier desarrollador que desee mejorar el performance sus aplicaciones web.

En sus charlas Steve expone sus 14 reglas para desarrollar páginas más rápidas y explica como usar YSlow y Cuzillion para ayudar en el proceso de optimización.

En general las reglas son un conjunto de pequeños cambios de alto impacto. La mayoría de las reglas son fáciles de aplicar y los resultados son realmente sorprendentes. Para darles una idea, luego de aplicar un par de reglas logré reducir los tiempos de carga de varias aplicaciones web en más de un 60%. Nada mal, para un par de ajustes!
The Performance Golden Rule
80-90% of the end-user response time is spent on the frontend. Start there.

Actualmente Steve está trabajando en un conjunto nuevas reglas para lograr páginas aún más rápidas, así que les recomiendo que estén atentos.

jueves, 8 de mayo de 2008

El futuro de las aplicaciones

Gracias al boom tecnológico que han causado grandes empresas como google, yahoo! y microsoft, quienes han volcado sus esfuerzos en desarrollar nuevas tecnologías basadas en redes, los viejos sistemas informáticos se han visto en la necesidad de evolucionar. Sin embargo, el camino aún no está del todo definido.

En los últimos años las aplicaciones web han evolucionado lo suficiente como para revolucionar la forma en la que leemos, buscamos y compartimos información, incluso han cambiado la forma en la que nos comunicamos. Estos cambios no sólo han tenido lugar en la red de redes (Internet), también han llegado a las redes internas de la compañías donde trabajamos, al punto tal que se puede afirmar que "cuando se cae la red no es posible trabajar".

Pero no todo ha sido fácil para las aplicaciones web, pues con ellas han aparecido nuevos problemas para los desarrolladores, entre los más comunes se encuentra el problema de la incompatibilidad entre navegadores, la dificultad de integración con dispositivos instalados en el cliente, el tiempo de respuesta de las aplicaciones, el poco aprovechamiento de los recursos del cliente y la sobrecarga del servidor de aplicaciones. Aunque tecnologías como AJAX y proyectos como Google Gears prometen dar un repunte a las aplicaciones web brindándole más vida a las interfaces y explotando un poco más las capacidades de los clientes, por los momentos no todas las aplicaciones de escritorio pueden ser migradas al entorno web.

Así pues se abre paso otra propuesta para el desarrollo de aplicaciones, los Smart Clients. Una propuesta que se ubica entre las aplicaciones de escritorio y las aplicaciones web, combinando ventajas de ambos mundos en un solo concepto. Las más notable ventaja radica en el aprovechamiento de recursos del cliente (como CPU, disco duro, memoria, dispositivos externos, entre otros) ya que la aplicación se instala en el cliente, pero además brinda la ventaja de formar parte de una macro solución distribuida que comparte información con servicios web, realiza actualizaciones de forma automática (tanto de software como de data) y lo más importante de todo: es capaz de trabajar con o sin conexión a una red.

Independientemente del camino que se tome, creo que el futuro de las aplicaciones debe estar influenciado por un concepto que cada día cobra más fuerza en el mundo de la informática:
Libertad!
Libertad de usar tu información donde sea que estés!
Libertad de usar tus aplicaciones donde sea que estés!

Aún queda camino por recorrer pero no hay duda alguna de que cada día estamos más cerca!

martes, 29 de abril de 2008

Mozilla QA: Bug Days

Revisando el blog de Mozilla encontré una muy interesante invitación al Thunderbird Bug Day. Me pareció cómico el nombre y comencé a buscar más información al respecto, en pocos clicks descubrí que es un concepto originalmente desarrollado por el grupo de QA de Mozilla en 1999 y que, a pesar de ciertos obstáculos en los años que le siguieron, actualmente se lleva a cabo todos los martes. Se puede encontrar mucha información sobre el Thunderbird Bug Day en su wiki, incluyendo la planificación de las próximas jornadas.

Por un momento me sumergí en la lectura y llegué a un corto párrafo, muy sencillo, pero cargado con una verdad inevitable para toda empresa, gerencia o grupo que se dedica al desarrollo de software. No traduciré el texto pero si listaré las frases contenidas en él que reflejan el karma de todo desarrollador.
  • Muchos (MUCHOS!) errores [reportados].
  • Algunos [errores] se encuentran en un estado que los hace difíciles de solucionar.
  • Podrían no ser verdaderos errores y necesitamos su confirmación.
  • Algunos [reportes de errores] están mal redactados.
Estas frases karmáticas son muy familiares para todos aquellos que han trabajado en el desarrollo de software. Sin embargo el concepto del Bug Day va más allá de la simple lista de errores, el Bug Day es una forma de acercar la comunidad de usuarios y el equipo de desarrollo. A mi parecer, esta frase extraída del wiki del grupo de QA de Mozilla revela el verdadero sentido del Bug Day:
"No importa si usted ha estado involucrado con Mozilla durante años o si este es su primer paso en nuestra increíble comunidad de código abierto. Cualquiera puede participar y ser un valioso contribuyente"

Una asombrosa jugada del equipo de QA de Mozilla, probablemente sean muchos los beneficios de aplicar este concepto, sin embargo se pueden identificar claramente dos beneficios muy atractivos para cualquier empresa que desarrolla software, bien sea para consumo interno o para la venta. Estos beneficios son: Incrementar la cantidad de testers y aumentar la identidad del usuario con la aplicación.

Cada usuario es un tester en potencia, al fin de cuentas son ellos los que diariamente usan la aplicación y son ellos quienes sufren las consecuencias de los errores. ¿quién mejor que ellos para reportar los errores de la aplicación? Además el hecho de estar involucrados en el proceso de depuración de los errores de la aplicación, hará que los usuarios se sientan más identificados con la misma ya que finalmente sentirán la aplicación con suya y posiblemente aumenten su compromiso y colaboración para lograr la aplicación perfecta para sus necesidades. Y ni hablar de la reducción del fenómeno de "resistencia al cambio" para aquellos casos en los que sustituye completamente una aplicación por otra.

Una vez más solo consigo ventajas y beneficios imaginando cómo sería aplicar este concepto en esas empresas de servicio que necesitan incorporar la tecnología a sus procesos de negocios para hacerlos más eficientes buscando siempre la ventaja en el mercado.

Una gran lección de un gran maestro!

sábado, 12 de abril de 2008

Filosofía Google

Comenzaré este blog con algo que me ha llamado la atención desde el primer instante que leí sobre el tema; la filosofía Google.

Resulta que los panas de Google deben distribuir sus labores semanales en un 80-20. 80% de la semana trabajan en un proyecto fijo y el 20% restante lo tienen libre para trabajar en cualquier proyecto que deseen, bien sea para desarrollar una nueva funcionalidad del Blogger o para ayudar en el diseño del proyecto que dará una nueva dimensión a las aplicaciones web.

Ahora bien, ¿Se podría aplicar esta filosofía en una empresa venezolana que no se dedica al desarrollo de tecnología? por ejemplo, empresas grandes que llevan años en el mercado cuya principal preocupación es mantener en marcha el negocio, usando la tecnología pero no desarrollándola, como las empresas básicas de Guayana; o empresas que se dedican a prestar servicios, como las telefónicas, bancos o seguros.

A mi parecer y entendimiento, la respuesta se basa en la combinación del factor humano y en la organización de los proyectos. Un proyecto organizado, con actividades bien definidas y atomizadas al máximo permite a desarrolladores foráneos intervenir puntualmente en el proyecto, generando así una dinámica que ayuda a mantener fresco el proyecto y sus participantes. Esto representa para la empresa una gran ventaja, con esta filosofía queda atrás la época de proyectos interminables que comenzaron siendo divertidos y terminaron por ser un total dolor de cabeza. Además de brindarle a los desarrolladores la oportunidad de refrescarse, les permite involucrarse en muchos más proyectos dentro de la compañía, algo nada malo para la gerencias que se tambalean cuando sus empleados estrellas deciden irse en búsqueda de nuevos retos.

Sin duda alguna son las empresas de servicios las más vulnerables a los cambios y avances tecnológicos, para estas empresas es una obligación estar al día con la tecnología, de otro modo no podrían mantenerse de pie en el mercado sin ser atropelladas por la competencia. Estas empresas, que se dieron cuenta que era necesario contar con un departamento de sistemas que hiciera algo más que reparar las computadoras de los gerentes y mantener a tono los servidores de base de datos, son las candidatas perfectas para aplicar esta filosofía, porque a pesar de no ser desarrolladoras de tecnología, necesitan incorporarla a sus procesos de negocios para no quedarse atrás en la carrera, al tiempo que necesitan innovar y evolucionar para resaltar en el mercado.

Aprendamos de los grandes.