You are currently browsing the tag archive for the ‘User Experience’ tag.

Hace días que estaba pendiente de poner cosas nuevas. Eso quiere decir una sola cosa: Vienen nuevos post sobre todo el trabajo que se ha hecho en las últimas semanas con jquery, Expression Web, MongoDB, BaseCamp y Balsamiq. Pronto…

Hoy un tema corto. El balanceo de cargas es un medio dolor de cabeza cuando un sitio sale a producción. Pero qué pasa cuando el sitio es uno. Cuando es uno el que esta metido en una sola cosa todo el día, sentado en una silla mas o menos incomoda, con el brillo de la pantalla en los ojos durante 12 horas, o haciendo cualquier otro trabajo? Bueno, pues uno también merece un balanceo de cargas.

Bogotá es una ciudad ultimamente agresiva con su gente. Es una ciudad en obra negra con miles de frentes de obra, cercada por polisombras verdes limón, inundada de incapaces agentes de policía color verde resaltador y de peores conciudadanos que se creen dueños de Bogotá, pero arrojan papelitos por ahí y se estacionan en dónde se les antoja, y madrean y pelean y fruncen los ceños en los semáforos.

Hace 36 años Bogotá cambió un poquito. Se creó un espacio de convivencia al aire libre por toda la ciudad. Yo empecé a usar la ciclovía cuando era un niño y salia a pasear en mi caballito de acero con los amigos del barrio. Hacíamos el cuadrado de las calles 116-Av Boyacá-Av Eldorado-Carrera Séptima. Hace meses ya no hay ciclovía por la avenida Eldorado, está en obra y por la magnitud de la misma vemos con pesar que será muy difícil volver a transitarla los domingos entre perros de marca y patinadoras exóticas. Hoy me levanté con la noticia de que por las mismas obras, la ciclovía en la carrera séptima será suspendida y me volvió el temor de que a lo mejor ya no halla más ciclovía por la séptima. Bogotá esta perdiendo ese espacio que sirve para balancear las cargas. Para dejar los computadores y los seminarios y los almuerzos de cocina de oficina a un lado y salir a sentir ese raro viento tibio en la cara, el sabor de las naranjas recién exprimidas, el calorcito en las piernas de los soles como hoy y balancear la rutina.

Por eso me uno a la iniciativa de http://www.lacicloviaserespeta.com/ para que sea trasladada a la carrera novena.

Like This!

Originalmente publicado el 3. julio 2010 en el blog de Aaron, se hace traducción libre del mismo.

Siempre me ha inquietado por qué una plataforma altamente adoptada y respaldada como .NET no es más visible entre los emprendedores web. Grandes Plataformas y lenguajes open source gozan de alta visibilidad y presencia en la comunidad de startups, desde pilares como Python y PHP a algunas incluso oscuras y especializadas como Clojure y Handoop.

«.NET, por otro lado, es visiblemente ausente de la discusión aunque de hecho es una plataforma más difundida que las demás.

Es como un gran silencio entre la comunidad de desarrolladores que sólo se encierran en sus proyectos sin siquiera ocasionalmente alzar la mano para decir «Aquí hay algo único y bueno que hicimos con esta plataforma, y que nadie había hecho antes».

Ésto es trágico para la comunidad .Net porque esa falta de sex-appeal aparente no tiene nada que ver con las capacidades reales de la plataforma. Sólo tómense un momento para revisar CodePlex y encontrarán miles de miles de proyectos y ejemplos creativos, de código abierto, hechos con .NET.

Y entre las startup hay un buen número de ellas trabajando sobre .Net, haciéndolo grande, incluyendo la recientemente adquirida por Amazon, Woot. Pero porqué no hay una voz fuerte de .NET en la comunidad de emprendedores? Por qué los desarrolladores de Woot no están trabajando con el equipo de StackOverFlow (también implementada en .NET) para motivar más emprendimientos en el uso extensivo de .NET para crear nuevos productos y servicios?

Y más importante, ¿por qué no hay mas emprendimientos usando .NET?

Todo es cuestión de empresas

He escuchado todo tipo de respuestas ligeras a la pregunta anterior: «que la plataforma es cerrada», «no hay estándares», «costos de licenciamiento» y ninguna de ellas pasan la prueba de la objetividad. Sí, esos temas pueden impedir que algunos desarrolladores usen .NET para sus emprendimientos, pero no lo suficiente como para impedir que todos adopten .NET, justamente la plataforma más versatil y fácil de usar con las mejores herramientas y el mejor soporte.1

En Code Camp pude finalmente saber por qué pasa esto. Es la cultura la comunidad .Net en sí misma, no nada especifico a la platafora o a la arquitectura que la soporta.

.NET esta centrada alrededor de las preocupaciones de la empresa – los grandes y ya establecidos negocios en la economía, no las valientes y variables startups. Y cuando digo «cultura» no estoy hablando de las herramientas de desarrollo sino de la mentalidad de los desarrolladores que usan .NET. Hablo de los blogs y otros medios digitales que leen, de las redes en las que colaboran y de los temas que les ocupan.

La mayoría de los desarrolladores que conozco hacen portales para grandes proveedores de la industria médica con miles de empleados, trabajaron en proyectos de legado cuyo tiempo de vida se cuenta en décadas, en equipos con cientos, incluso miles de programadores, y viven en ambientes gobernados por altas gerencias. Éstos son problemas a los que pocos, o ninguno, de los desarrolladores de emprendimientos se ven enfrentados.

Por eso tantas charlas en Code Camp se enfocaron alrededores de metodologías RAD para proyectos internos, estandarización de código, arquitectura empresarial y otros temas que le interesan a los que trabajan en grandes ambientes corporativos.

Y quién puede culpar a Microsoft por atender el mercado empresarial? Ahí esta la plata! Nadie nunca se hizo rico vendiendo herramientas de desarrollo de alta calidad a un puñado de empresas emergentes ávidas de capital.

«Sin embargo, la consecuencia de ese enfoque es que las comunidades emprendedoras y la comunidad .NET no tienen tanto en común como con otras tecnologías.

Como resultado, los desarrolladores emprendedores y fundadores de empresas no conocen .NET y no piensan en ella como una herramienta útil para sus necesidades. Del mismo modo, muchos desarrolladores .NET que quieren trabajar en interesantes empresas emergentes no tienen tantas oportunidades a menos que abandonen .NET por una tecnología más apetecida por los emprendedores».

Entonces qué es lo que ocupa a los miembros de la comunidad .NET? Ellos se preocupan por dar soporte a sistemas establecidos, construir arquitecturas empresariales que puedan servir a varias dependencias, por grandes sistemas que soporten la operación de procesos internos de las compañías y pr satisfacer a los accionistas de esas empresas.

Los desarrolladores .NET se preocupan por la arquitectura para mantener sistemas

Los emprendedores se ocupan de cosas diferentes. Ellos son sus propios accionistas, se preocupan por la concurrencia, escalabilidad, experiencia de usuario, por soportar muchos clientes y navegadores y por como sus diseños impactara a sus nichos objetivo.

Los emprendedores se preocupan por la arquitectura para mantener productos

Ven la diferencia? .NET es perfectamente capaz de suplir las necesidades de emprendedores y diseñadores de productos, pero muy poca2 de la cultura .NET, literatura y temas de conversación se enfocan en el producto. Al contrario, la mayoría gira alrededor del soporte y necesidades del negocio, no del negocio de hacer productos como tal!

No tiene que ser así

Una cosa debe aclararse aqui. Cualquier plataforma, no solo .NET, puede ser usada para implementar tecnología empresarial y para crear nuevos productos. Las plataformas no siempre definen su uso, éso es trabajo de la gente que trabaja con ellas. Si Microsoft quiere entrar a la escena del emprendimiento, y tengo razones para creer que así es, tienen que hacer un mejor trabajo evangelizando las capacidades de .NET a partir de la creación de nuevos servicios, nuevos productos y nuevos negocios y no solo a partir de la gran empresa.

Las grandes corporaciones y las empresas emergentes no son mutuamente excluyentes, solo son étapas diferentes en la evolucion de un negocio, en éste caso, el desarrollo de software. No hay razón entonces, que justifique a los emprendeores que no consideran a .NET una opción atractiva com punto de inicio para sus nuevos negocios.

The next article I’m going to write on this subject will cover why it’s a good idea for Microsoft to have .NET adopted more readily by the startup community.

1 Entiendan «mejor» como un término subjetivo, pero traten de entender mi punto. No trato de desprestigiar Eclipse, XCode, NetBeans o EMACS, pero siendo justos, Visual Studio se impone ante ellos en cualquier comparación uno a uno.

2 De nuevo, esta es una observación basada en mi experiencia con .NET.  Siempre estoy al acecho de cualquier persona que utilice .NET para un emprendimiento

♣♣♣♣♣

Tras leer éste artículo creí que valía la pena traducirlo y difundirlo en español. Como ustedes saben, Asterysco es otra startup, nada que ver con las startups a las que refiere Aaron o a las que refieren por ejemplo en Campus Party, pero somos una empresa pequeña con ganas de crecer en este mundo del desarrollo de software.

Creo que como dice Aaron una parte del problema es la orientación que ha tenido Microsoft a través de los años, pero mas importante que eso es la orientación de la gente. Pero no tanto por que no se hagan visibles ni porque no compartan. El problema principal es que se siente un poco diferente trabajar con una u otra tecnología. El problema no es desconocimiento sino falta de entusiasmo para desarrollar buenos productos, servicios y sistemas con .NET para los nichos para los que los llamados emprendedores web están trabajando.

En Asterysco creemos que el problema se puede atacar desde la arquitectura. Estamos trabajando fuertemente en lograr arquitecturas que separen la capa de presentación de las capas de negocio y datos. Creemos que hasta las aplicaciones empresariales merecen una buena experiencia de usuario y creemos que es posible hacerlo sobre .NET. Ese tipo de proyectos de investigación en cómo unir lo mejor de ambos mundos es algo que poco o nada se ve en la comunidad de desarrolladores en general. Unos simplemente  ve proyectos empresariales que por debajo son odas a la tecnología y a la seguridad y por fuera son horriblemente concebidos. Este punto particular tiene que ver, en el caso de .NET, en la dificultad inherente al manejo de controles ASP. En otros casos, desconozco, pero me atrevo a decir que es mera negligencia. Afortunadamente ya hay implementaciones de MVC y MVVM para Visual Studio que permiten un manejo mucho mejor de la experiencia de usuario en proyectos de gran envergadura. Justamente esta semana Scott Guthrie ha publicado una serie de artículos excelentes sobre la presentación de WebMatrix, un producto en versión beta para agilizar el desarrollo de nuevas aplicaciones web desde el inicio y usando las más populares herramientas opensource.

Concluimos siempre lo mismo: Sin importar qué tecnología use una empresa o un emprendedor, si se usa la herramienta con cierto rigor académico y profesional, se pueden lograr grandes productos al final.

Durante el MIX10 en Las Vegas se presentaron muchas cosas nuevas. Cada Keynote fue como una tienda de dulces y en el segundo día presentaron el preview de IE9; el nuevo navegador de Microsoft trae cosas nuevas muy interesantes, pero ante todo deja ver una nueva dinámica en el equipo de desarrollo de IE que desde la versión 7 han empezado a recortar los tiempos de nuevas versiones con cambios importantes.

IE9 ahora puede hacer uso de los recursos gráficos del computador en aceleración 3d y con eso mejorar sustancialmente el desempeño. Durante el Keynote compararon IE9 contra Chrome y Firefox  pero a mí siempre me ha gustado ver las cosas por mí mismo, en un ambiente real de trabajo y no en el escenario pulcro y aséptico de los computadores usados para tales propósitos.

Soy defensor y usuario de Opera y por eso hoy, que ya he llegado a mi oficina, me dispongo a probar y mostrar los resultados de las pruebas hechas es profeso para IE en Chrome, Firefox y Opera.

Para mostrar algo de rigor en la prueba, detallo las versiones de navegadores. IE8 8.0.7600, Opera 10.51, Firefox 36.2, Chrome 4.1.249 y por supuesto IE9 IE platform preview 1.9.7745. Como he dicho antes, no hay ningún control en el computador, suena música, corren varios programas y llegan twits a menudo mientras ejecuto cada prueba.

Flying images

En esta prueba se ve un grupo de iconos de diferentes navegadores organizados y girando. La prueba estándar tiene 36 iconos en una grilla girando en tamaño normal. La prueba que muestro se hizo con 64 iconos.

En la prueba se ve claramente que IE9 muestra más cuadros por segundo que ningún otro; Opera, sin usar recursos de aceleración gráfica del sistema, se defiende muy bien; Firefox hace un trabajo decoroso pero Chrome e IE8 fracasan abruptamente. Hay que destacar que estos últimos son los que mejor tratamiento hacen de las imágenes, suavizando bordes y mostrando una calidad gráfica limpia, muy por encima de los bordes bruscos de los demás navegadores.

Flying images

Comparativo flying images

Texto

Las dos pruebas de texto pretenden mostrar los beneficios de Direct 2d y Direct Write en el navegador haciendo uso de la tecnología sub-pixel positioning que usa la aceleración gráfica que tenemos en el computador e este caso una GPU Nvidia GForce 8800 GT de 512MB, nada del otro mundo.

La prueba deben correrla ustedes para que sepan de qué se trata. Las animaciones se ven absolutamente continuas en IE9 y en IE8 se ven aceptablemente bien, siendo éste, el único navegador que soporta el texto justificado. Los demás navegadores fracasan espectacularmente  animaciones cortadas pues deben aproximar los tamaños de fuente a valores enteros y porque no soportan la justificación del texto. Debo decir que justificar texto es algo que siempre he querido hacer en Web y por lo pronto solo IE9 promete tal cosa.

Text size

Comparativo text size

Justify text

Comparativo de justificación de texto

Zoom

Esta prueba he decidido mostrarla en el siguiente video.

Comparando Map Zooming IE9 Vs El Resto from Asterysco on Vimeo.

En este video comparo el desempeño de IE9 acelerado por hardware contra los browser actuales. Demostrando que si bien es una tecnología interesante y poderosa, todavía no muestra una diferencia clara respecto a la experiencia actual.

Como ven, el desempeño no es tanto mejor todavía. Culparemos por el momento a que la tecnología no está terminada ni explotada al máximo de su capacidad. No puedo asegurar que los demás Navegadores usan o no Aceleración de hardware, Opera ha hecho avances en el tema para gráficos SVG pero sólo he sabido de eso en versiones previas e internas. Espero que este soporte madure pues esto permitiría el desarrollo de juegosy aplicaciones con altísimo contenido gráfico y animaciones más detalladas.

Para terminar, hay una prueba de XHTML en que se ven unas burbujas rebotando en la pantalla. De nuevo IE9 muestra una animación fluida, contrario a los actuales navegadores.

Como he aclarado, esta es una comparación entre el estado de los navegadores hoy y lo que IE9 quiere traer en el futuro. Por supuesto hay cosas por desarrollar, pero no estamos tan atrás como pensábamos pero sí tendremos las herramientas para llegar más delante de lo que habíamos imaginado.

En otro post revisaremos las demás pruebas, por ahora los invito a que las vean en www.ietestdrive.com y saquen sus propias conclusiones.

Trabajo en una empresa dedicada a la aplicación de últimas tecnologías en negocios de todo tipo. Si, creemos que el software es una herramienta de uso general, como las matemáticas. No es algo que pueda uno decir que sirve para esto u lo otro. La humanidad ha llegado a la luna, explorado océanos, controlado la bolsa, jugado hasta el amanecer, hablado con extraños y conocidos, enviado mensajes y confiado en videos, todo gracias al software.

Pero volvamos a tomar rumbo en este post. Asterysco esta trabajando arduamente en implementar aplicaciones en Windows Azure y en usar Silverlight como plataforma para aplicaciones RIA. Dentro de las herramientas disponibles para trabajar estas tecnologías está Microsoft Expression Blend 3. Una suite de trabajo para diseñadores en Silverlight y para alguien más.

Esta herramienta maneja una parte muy importante del desarrollo de software: el prototipado. Con SketchFlow, una utilidad de Blend3, podemos crear el prototipo de toda la aplicación, sus relaciones, identificar qué objetos del sistema se usan como controles en varias páginas, identificar flujos alternos para los casos de uso y por supuesto, tener un prototipo ajeno al diseño gráfico que muestre cómo funcionará la aplicación. Aunque SketchFlow actualmente esta enfocado a aplicaciones SilverLight o WPF, puede usarse como apoyo para el diseño de aplicaciones en general, como en mi caso, aunque reconocemos que estamos muy emocionados en poder tener nuestra primera aplicación en SL para un ambiente corporativo.

Lo primero que uno debe hacer es reconocer los principales componentes de la interfaz de Blend3 que no es algo a lo que los desarrolladores estemos muy acostumbrados, es negra, con múltiples paneles auto-ocultables que pueden aturdir un poco. Lo principal es identificar el área de trabajo en el centro de la pantalla, el panel de Assets y de States a la izquierda, el panel de Properties a la derecha y en la parte inferior, el panel del SketchFlow Map, éste último, de vital importancia en el trabajo.

Yo me apoyé es los videos tutoriales de Jeremy Osborne que explican paso a paso como configurar el entorno de trabajo y el primer encuentro con SketchFlow, así que no me detendré en eso y explicaré por que me ha gustado y creo que es una herramienta con grandes cualidades.

Inicialmente podemos crear cada una de las páginas de nuestra aplicación, todas las que queramos o pensemos, relacionarlas (saber cuál lleva a cuál), marcarlas con colores para distinguir su utilidad dentro de los casos de uso que se hayan definido o se estén definiendo. Este mapa, ademas de verse muy bien, es muy fácil de explicar. Particularmente nuestro cliente ha quedado satisfecho con este trabajo y sobre todo, ha entendido como hemos estructurado el sitio, un punto no siempre fácil de lograr.

sketchflow map

Mapa de navegación de un sitio

Como se puede apreciar es muy sencillo describir el flujo de cada caso de uso basados en este mapa, identificar algunos controles que se usaran en varios sitios de la aplicación, como el control de login o los menúes de navegación e identificar algunas páginas con colores que indiquen funcionaes o características diferentes. Del mismo modo el cliente puede sugerir algún cambio en la estructura que es tan fácil de hacer como arrastrar y soltar.

Acto seguido uno quisiera dar una primera ojeada a las demás características de SketchFlow. Pero antes haré una breve contextualización. Durante mis años ejecutando proyectos de desarrollo de software he encontrado que es una costumbre poco difundida empezar a dibujar en papel o en donde sea, el prototipo de la aplicación. Pocas empresas adjuntan los bocetos de las pantallas a los casos de uso y con eso lo único que logran es perder nivel de detalle y control sobre todo el proceso de documentación y desarrollo.

La primera vez que me enfrente a ésto usé Balsamiq Mockups, una aplicación que corre sobre AIR y que permite con una facilidad asombrosa crear prototipos de la aplicación. Es realmente rápido y tiene controles prediseñados para hacer mockups para aplicaciones de escritorio, web  e incluso para el iPhone. Su acabado es tipo mano alzada y sin colores lo cual es un punto a favor porque el cliente no se quedará pensando que el tipo ese parece un chino cosechando arroz o que ese color naranja es muy fuerte. Sin embargo Balsamiq Mockups no permite enlazar los prototipos a nivel funcional y en ese punto es muy difícil explicar a un cliente como va a funcionar su aplicación. Intenté otros programas para lograr la funcionalidad pero siempre fueron demasiado complejos, tanto, que ni los menciono.

Con Sketch flow todo esta integrado en un solo sitio: el acabado tipo boceto a mano alzada y la posibilidad de enlazar los controles del boceto a una acción o estado deseados.

states in sketchflow

Estados de la misma página de la aplicación

En este par de imágenes vemos que al dar click en entrar en la primera pantalla, se despliega el control de identificación de usuarios. Blend3 provee un SketchFlow Player que permite ver la aplicación corriendo con los efectos que uno ha definido. En este caso particular el control de identificación aparece con una transición de Transparente a Opaco que desafortunadamente no puedo mostrar en el blog.

El SketchFlow Player permite mostrar la interacción del usuario con la aplicación, poner a los usuarios a prueba para recoger sus comentarios y sugerencias y guardarlos en la misma interfaz para que puedan ser vistos por el diseñador cuando vuelva a abrir el proyecto en Blend3.

En este caso hemos puesto a nuestro cliente a revisar la interacción y encontramos que hacía falta un campo de estado al final del formulario y que era deseable un campo de búsquedas avanzado en la parte superior derecha de esta página. Durante la presentación los dibujamos y pusimos el comentario respectivo. Rápidamente el equipo pudo responder a los deseos del cliente y crear el nuevo prototipo mostrando sus sugerencias.

SketchFlow feedback

Comentarios del cliente sobre la interfaz

sketchFLow implemented feedback

Implementación de los cambios sugeridos

Esta misma herramienta permite el acceso al código de los eventos para programar los accesos a base de datos desde el prototipo. Eso quiere decir que con unos simples pasos que explicaré en otro post podemos pasar del borrador al diseño definitivo, asignar los estilos y tener nuestra aplicación lista para ser pulida, en muy poco tiempo y con un mayor control sobre todo el proceso.

Incluida la curva de aprendizaje, ver los videos, leer un poco y perder el miedo, este trabajo que muestro acá parcialmente y con permiso de mi cliente no tardó más de 6 horas. Los siguientes espero que sean igual de lentos pero implementando cada vez más cosas de Expression.

Update: expression Studio se puede descargar fácilmente para probarlo