• Vídeo del Taller de usabilidad de Torresburriel

    Si te perdiste el taller de tests con usuarios que impartió Daniel Torresburriel (@torresburriel) hace dos semanas (14 de Septiembre), o tal vez fuiste y quieres volver a ver algún detalle, ahora puedes ver la parte más interesante y divertida, la parte práctica. Durante la cual, Miguel (@Maragues) a.k.a. "el ingenuo voluntario o quiero-mi-consultoría-gratis" presentó un proyecto (Buscounviaje.com) y tras enseñarnos a diseñar un test, dos voluntarias realizaron las tareas que se les propuso.

    [vimeo]http://www.vimeo.com/29365557[/vimeo]

    También puedes ver algunas fotos del taller en Flickr.

    Muchas gracias a todos los asistentes, las entradas se agotaron muy rápido, se nota que hay interés también por estos temas, intentaremos repetir.

    Gracias también a Milladigital por ceder las instalaciónes del Digital Water Pavilion.

     

  • Summer retrospecter

    Este verano hemos tenido bastante actividad. No en el blog, sino en las calles. No, no es que hayamos ido a protestar a la Puerta del Sol contra la visita del Papa o contra las cargas policiales, aunque a algunos nos hubiera gustado. Hemos salido a las calles porque hemos estado haciendo unos cuantos talleres. Queríamos incentivar la parte más pragmática de los baturros que en esta región habitan y ver qué pasaba. El resultado ha sido abrumador. A pesar de estar de haber mucha gente de vacaciones todos los talleres han tenido una gran aceptación. Así que vamos a continuar haciéndolos. Y a los que no hayáis podido venir aquí hacemos un resumen de lo hecho hasta ahora.

    Groovy Koans

    Dani Latorre (@danilat) nos introdujo al lenguaje de programación de Groovy a través de Koans. Tras la presentación los que asistimos aprendimos las particularidades de Groovy resolviendo koans y haciendo que pasaran los tests de unidad.

    Nodejs

    Alberto Gimeno (@gimenete) explicó a través de unos ejercicios las bases de nodejs y por qué está siendo tan popular y qué es lo que lo diferencia de otros frameworks.

    Git & GitHub

    Rafa García (@leptom) vino desde La Rioja para explicarnos en una presentación qué es Git, qué ventajas nos aporta, y por qué GitHub es tan buena herramienta para compartir y colaborar en proyectos.

    Hadoop, BigData en la nube

    Marc de Palol (@lant) nos enseñó a procesar grandes cantidades de datos de manera distribuida con Hadoop. Hicimos un par de ejercicios y procesamos datos sacados de un servidor ruso (no va en coña xD).

    Próximamente...

    No sólo queremos hablar de programación. Así que la semana que viene Daniel Torres Burriel (@torresburriel) nos dará un taller sobres test con usuarios. Y tenemos más talleres planeados que iremos anunciando.

    ¡Nos vemos!

    PD: desde aquí también agradecer al Ayuntamiento de Zaragoza la cesión de sus instalaciones siempre que las hemos necesitado :)

  • La nube: la carrera hacia la ubicuidad

    Cada vez se habla más de de la nube, pero desde hace muchos años que tenemos Internet, y antes no se oía tanto este término. ¿Qué quiere decir "la nube"? En mi opinión es el concepto de tenerlo todo en ningún sitio concreto y en todos los sitios a la vez. Tener toda tu vida digital al alcance en cualquier parte en cualquier momento. Es decir, en una palabra: ubicuidad.

    Desde que los dispositivos se conectan unos con otros, y sobre todo desde que una persona en su día a día usa diversos dispositivos surge la necesidad de tener aplicaciones y datos accesibles en todos y cada uno de los dispositivos. Internet tiene mucho tiempo, pero antes solíamos tener un solo dispositivo, y si necesitábamos traspasar datos de un dispositivo a otro usábamos formatos físicos: CD, DVD, discos duros portátiles, etc. Pero ahora tenemos la necesidad día a día de tenerlo todo en todas partes... y a la vez en ningún sitio concreto. Esto es la nube. Básicamente ubicuidad de dos cosas: datos y aplicaciones (programas que interpreten y permitan gestionar esos datos).

    Esta ubicuidad se puede conseguir de varias maneras, y pienso que últimamente se ha venido gestando una guerra de dos grandes empresas con estrategias bien diferenciadas para alcanzar esta ubicuidad. Estas dos empresas son Google y Apple. Y sus dos estrategias son:

    La apuesta de Google: todo web

    Las aplicaciones web vienen a resolver los dos problemas de una manera elegante. Los datos fundamentalmente no residen en nuestros dispositivos, sino en servidores en Internet, y las aplicaciones se pueden adaptar para cualquier dispositivo con relativa facilidad, ya que son aplicaciones web y en cualquier sitio tenemos un navegador web. No require actualizaciones, ni sincronizaciones, etc.

    Sin embargo tienen varios problemas.

    • Por un lado es difícil hacer algo manejable que mueva grandes volúmenes de datos. Por ejemplo existen editores fotográficos online, pero no me imagino retocando cientos de imágenes que ocupen muchos megas.
    • Por otro lado no se explotan las posibilidades del dispositivo. Tenemos potentes chips gráficos, cámaras fotográficas, etc. en nuestros dispositivos y una aplicación web no las puede aprovechar.
    • Finalmente tenemos el problema de que tenemos que tener conectividad permanente. Si nos quedamos sin conexión a Internet no podemos hacer nada.

    No obstante Google, trabaja duramente en resolver todos estos problemas.

    • Para aprovechar la potencia del dispositivo Google trabaja en Native Client SDK: lo cual evidencia aún más la apuesta de Google por el "todo web".
    • Para no necesitar conectividad permanente se están introduciendo nuevas características a HTML5 que permitirán cachear datos tanto de ficheros como de datos de la aplicación: bases de datos en el cliente.

    Google apuesta muy fuerte por este camino. Apenas tiene aplicaciones nativas, es todo web. Ahí tenemos Google Docs y toda la suite de Google Apps. E incluso hay una tienda de aplicaciones web. Pero la mayor evidencia de que Google apuesta muy fuertemente por esta estrategia es Chrome OS y el netbook CR-48:

    http://www.youtube.com/watch?v=lm-Vnx58UYo

    La apuesta de Apple: aplicaciones nativas

    En el otro lado está Apple, y su apuesta fortísima por las aplicaciones nativas.

    • Apple apuesta por la mejor experiencia de usuario y por tanto por hacer sus propios dispositivos con aplicaciones nativas. Las aplicaciones pueden hacer virguerías con un rendimiento muy bueno, y una experiencia de usuario exquisita.
    • Para tener todos los datos en todos tus dispositivos Apple ha desarrollado iCloud. Ahora todas las aplicaciones podrán sincronizar sus datos automáticamente, y podrán trabajar offline fácilmente.
    • Para tener todas tus aplicaciones en todos tus dispositivos basta con usar el mismo Apple ID. Si te descargas una app en tu iPhone también la tienes en tu iPad. Se ha visto incluso en Lion (al menos en una beta) que Apple incluye la posibilidad de hacer login con tu Apple ID en cualquier ordenador, lo que podría suponer tener acceso desde cualquier Mac a tus aplicaciones y datos gracias a tu Apple ID (ya que está vinculado a iCloud y a la Mac Store).
    • Apple apuesta incluso por matar al sistema de archivos. Apple apuesta por darle todo el protagonismo a las aplicaciones. En un iPhone / iPad no tienes sistema de archivos visible: sólo hay aplicaciones. Para Apple un usuario no quiere "abrir un fichero .mp3", lo que quiere es "escuchar una canción". Es decir, quiere que cada aplicación gestione sus datos internamente y que el usuario no abra los ficheros, sino que abre única y exclusivamente aplicaciones. En iOS ya es así, pero en Mac OS X también está siendo así en muchas aplicaciones: no abres una carpeta en busca de un mp3 sino que abres iTunes; no abres una carpeta en busca de tus fotos sino que abres iPhoto, etc.

    Sin embargo aquí también hay problemas que solucionar.

    • Apple ha tardado en lanzar iCloud porque es un sistema complejo internamente y los desarrolladores van a tener que adaptar las aplicaciones para poder usarlo. Pero bueno, no deja de ser un problema a corto plazo.
    • La web es más inmediata, no requiere ese paso de sincronización. Y las aplicaciones nativas requieren actualizaciones. En la web no. En la web no hay actualizaciones de software.
    • Las aplicaciones nativas son más complejas y costosas de realizar.

    El resto de empresas

    Es evidente que en el panorama tecnológico no solo existen Google y Apple. Pero considero que son las que realmente tienen una estrategia definida en este tema de la ubicuidad. El resto de empresas creo que no tienen una visión completa y desarrollan soluciones a problemas a corto plazo, pero no tienen una solución única al largo plazo. Por ejemplo:

    • Dropbox: soluciona el problema de los datos, pero no el problema de las aplicaciones. Si me voy a otro dispositivo da igual que tenga accesibles mis archivos si no tengo la aplicación que pueda abrirlos.
    • Microsoft: teniendo Windows y Office, las dos grandes vacas lecharas de Microsoft, la apuesta clara son las aplicaciones nativas y un sistema para tener ubicuidad de datos: SkyDrive. La estrategia debería ser parecida a Apple, pero no tiene un sistema consistente de ubicuidad de aplicaciones (como Apple como el Apple ID y la AppleStore) y no tiene gran presencia en dispositivos móviles.
    • Amazon: ha desarrollado CloudDrive, pero es básicamente un disco duro online. En cuanto a aplicaciones Amazon también tiene su propio market para Android, pero todo parece que no haya relación entre una cosa y otra. No me extrañaría que hicieran un iCloud para Android en un futuro cercano, desarrollaran alguna tablet y comenzasen a tener verdadera presencia en este tema de la ubicuidad.

    Conclusiones

    Mi conclusión final es que la ubicuidad (la tan manida "nube") es el futuro de la informática de consumo. Y hay dos claros fuertes contendientes: Google y Apple, con dos estrategias muy diferentes. Curiosamente ambos contendientes flaquean en un tema importante: la ofimática, que no está aprovechando Microsoft donde es el rival más fuerte. Veremos cómo evoluciona el mercado, qué pasos dan estas empresas y otras. Y por supuesto veremos también qué prefieren los usuarios y desarrolladores. ¡Esto está interesante!

  • Formas de no empezar bien un proyecto

    Llevo ya bastante tiempo un poco asqueado acerca de esos topicazos sobre lo fácil que es montar empresas de internet, y lo barato que sale aunque no consigas crear una empresa rentable y tengas que cerrar.

    Yo creo que todo esto depende casi por completo del contexto en el que estés... vamos, principalmente del dinero que tengas y el sector al que pretendas entrar.

    Aunque en mi experiencia, tanto trabajando para mí como para clientes con los que he trabajado como programador freelance, me ha parecido siempre difícil y creo que nunca nadie me hubiera dicho que le salió barato. Para mí montar una empresa en internet no tiene porqué ser más barato/fácil o caro/difícil que cualquier negocio offline. En el fondo no dejan de ser cuestiones de presupuesto, mercado, modelo de negocio, competencia...

    Lo que me está pasando en los últimos tiempos es que mucha gente muy dispar que parece haberse contagiado de esa sensación de lo fácil que es, y que creen tener ideas con las que lo van a petar. Me he encontrado gente que se podrían agrupar en 3 grandes grupos: perfiles de la parte técnica; los que se podrían considerar como early adopters pero no son técnicos; y por último, gente que es consciente que no sabe de la parte técnica ni de internet.

    Y dentro de esos 3 grandes grupos he podido identificar algunos de los problemas que me permito enumerar a continuación:

    Soy técnico, y lo importante es la tecnología.

    Yo, en parte, fui de esos y podría haberme llegado a sentir identificado con ello en mis tiempos jóvenes ;). A veces los técnicos podemos pensar que con una tecnología buena el producto se venderá prácticamente sólo, o que igual llega una posibilidad de inversión si la tecnología promete y se hacen las cosas bien.

    Para mí, cuando creamos un producto, centrarse puramente en la tecnología es un error. Los técnicos deben tener, como mínimo, una visión del producto global. De poco sirve que tengas la mejor tecnología, un código que emocione a otro programador cuando lo vea o hayas seguido las mejores prácticas técnicas si luego tu interfaz no refleja ese trabajo, porque aunque la técnica sea una parte MUY importante, como hace ya tiempo escribieron los amigos de Linking Paths: la interfaz es tu producto.

    Otro de los puntos que los técnicos solemos despreciar es lo relacionado con el marketing y el negocio: tenemos que promocionar el producto, tratar de tener una marca relativamente reconocida y hacerlo rentable, o atractivo para inversores si es lo que se busca. Por muy bueno que sea el producto hay que venderlo de algún modo, a clientes o a inversores, y para ello sin tener cubiertos los puntos de vista de negocio o marketing, será complicado.

    Soy un early adopter, sé como tienes que hacerlo y como haré dinero/conseguiré inversión.

    En este grupo seguramente se podría poner a gente que está muy por encima de un usuario medio. Que posiblemente vayan a saraos y que incluso los más avanzados puede que tengan un hosting compartido propio, hayan instalado extensiones/plugins/temas a gestores de contenidos open source, sepan algunas cosas de SEO y maquetación... pero no son ni mucho menos gente de producto (ni programadores ni diseñadores).

    Por norma general, este grupo tiene bastante claro (o al menos es lo que de inicio creen) cuál es el resultado final que desean encontrar, cómo lo van a vender, cómo se van a diferenciar... Pero sorprendentemente cuando subcontrata, muchas veces ya se pide la plataforma open source de moda que quiere que se utilice, cosa que a priori no tiene porqué estar mal si ha buscado un proveedor con buen bagaje usándola, realmente encaja en el proyecto y su objetivo no es simple y llanamente el tratar de abaratar costes al máximo. Porque si se busca abaratar posiblemente no se tengan en cuenta (o no se puedan exigir) detallitos como la usabilidad, el copywriting, el resto del diseño en general o la calidad final del producto.

    Otro de los potenciales problemas que pueden surgir, es que por tener muy claro donde se pretende llegar se tenga poca cintura para adaptarse a los cambios si, por la razón que sea, la situación lo exige. A veces puede costar darse cuenta de que hay que cambiar el enfoque y re-invertir en ello.

    Sólo sé que no sé nada... pero tengo una idea

    El tipo de gente ajena a la tecnología y a muchos aspectos de lo que se mueve en el mundillo de la web. Pero que en ocasiones tienen ideas que en bruto pueden tener potencial, o no.

    Si a veces se cree que una empresa/profesional serio va a hacer una web por los 1000€ (o lo que sea) que cobraría el familiar de turno, es preferible dejar que se tire el dinero en el familiar y no gastar saliva. Y si hablamos de montar un negocio en internet de verdad ya ni hablemos.

    Es bastante habitual que este tipo de gente no tenga nada claro las bases a nivel conceptual del concepto del producto, y seguramente aún sabe menos como lo va a vender o promocionar, ni cuál es su competencia. Es el tipo de gente que necesitan, como mínimo, algún tipo de consultoría de definición del producto. Aunque también es muy complicado hacerles ver que tienen un problema, y que mientras persista es preferible no perder el tiempo de nadie.

    En definitiva

    Habría que estudiar unos mínimos el mercado, la competencia, su modelo de ingresos... para diferenciarse y tratar de ser competitivo. El fin es tratar de tener una visión lo más global posible a nivel de negocio y producto.

    Por supuesto que cosas como un equipo compensado y bien complementado, aunque no puedan asegurarlo, suelen aumentar las posibilidades de obtener mejores resultados y crear productos mejores y más vendibles.

    Y aunque existan casos, desarrollar un proyecto por norma general no suele ser trivial ni barato.

  • Te necesitamos para hacer un Agile Open Spain en Zaragoza

    La primera de las Cachirulo Talks fue sobre Agile, y eso es algo que siempre guardaremos en el corazón... :-) Si uno de los objetivos del Cachirulo Valley es unir los mundos de la tecnología y el negocio, desde luego que el agilismo tiene mucho que decir y es lógico que aunemos esfuerzos. Existe un grupo local, Agile-Aragón, de gente interesada en aprender más de estos temas, compartir experiencias y difundir por la zona. Y como somos así de chulos, la semana pasada nos ofrecimos voluntarios para acoger el próximo año en Zaragoza el Agile Open Spain 2012, un evento nacional en el que gente de toda España se reúne un sábado para charlar de estos temas. Es interesante por varios motivos:

    • por el formato. Si no sabes lo que es un Open Space y te esperas una conferencia al uso, te romperá los esquemas. Aquí una breve descripción de cómo funciona. Y funciona: 200
      personas deciden en poco más de una hora cuáles son los temas a tratar al día siguiente, de forma totalmente auto-organizada
    • por la gente que participa. Acuden personas realmente de toda España, de Galicia a Canarias pasando por Extremadura. Se convierte en un encuentro anual con amigos, y en la ocasión de renovar tu timeline de Twitter con gente interesante
    • por los temas tratados. Como tú los eliges, seguro que te resultan relevantes. Y si no, muchas veces las mejores charlas se improvisan entre cuatro junto a la máquina de café: a veces aprendes más en una conversación de media hora que en muchos libros

    Si tenías dudas respecto a si el agilismo realmente funciona, tu empresa te está volviendo loco, etc., sales del AOS con las pilas cargadas y con un montón de ideas a probar. Y claro, el de Zaragoza queremos que salga MUY bien. El próximo martes 28 a las 19:30 en Scalabble tendremos la próxima reunión del grupo, para tratar entre otros este tema.

    No es necesario tener ninguna experiencia previa, si simplemente sientes curiosidad acércate y quizás te guste lo que veas.

  • Android, Google App Engine y código limpio

    José Cortés: Clean Code

    Ayer se reunió por segunda vez (I reunión "Taller de Android") el GTUG Zaragoza (Grupos de usuarios de tecnología de Google). Un formato interesante, visionado de una de las charlas de la conferencia Google IO y luego una charla sobre el famoso libro "Clean Code" de Robert Martin (@unclebobmartin).

    El vídeo elegido mediante votación por una amplia mayoría fue "Android + App Engine: A Developer's Dream Combination by Xavier Ducrohet, Brad Abrams".

    [youtube]http://www.youtube.com/watch?v=M7SxNNC429U[/youtube]

    Y para cerrar José Cortés (@jbeerdev) nos dío una divertida charla sobre cómo escribimos código, cómo llamamos a las variables, clases y métodos, basada en el segundo capítulo del libro, con mucha participación del público. Os dejo un vídeo y alguna foto.

    José Cortés

    Al final hablamos un poco del AOS2011 y de la posible celebración del siguiente AOS2012 en Zaragoza, pero esa es otra historia que mañana os contaremos.