Archives

LA Galaxy es una de las franquicias más importantes del fútbol norteamericano. Son el equipo más ganador de la MLS y entre sus figuras históricas se pueden mencionar a grandes estrellas como David Beckham, Steven Gerrard y Robbie Keane. No sorprende que sea considerado como el equipo más grande de la liga y su hinchada este entre las más fieles. En 2016, GlobalLogic comenzó un partnership junto al grupo AEG, dueños del Galaxy y de su estadio. El objetivo del mismo es introducir una nueva plataforma digital que mejore el engagement entre sus fanáticos y ayude a mantener al equipo como referente tanto dentro como fuera de la cancha.

 

El primer paso del partnership se centró en cómo mejorar la experiencia de partido. El 80% de los fans que frecuentan el StubHub Center son Season Ticket Holders que compran su abono anual meses antes del comienzo de temporada. Ellos fueron el foco central para la nueva experiencia, cuya primera expresión sería una aplicación mobile para iOS + android, además del desarrollo de la plataforma backend.

 

Marketing e Informacion

Todo producto deportivo supone un equilibrio entre el aspecto informativo y el marketing. En nuestra industria contemporánea, sencillamente ambos van de la mano. Una estrategia apropiada debería dar lugar a las mejores ofertas por parte del club sin abrumar ni ofuscar a los hinchas, bajo el riesgo de que estos pierdan interés y rechacen la aplicación.

Conociendo este desafío, se planteó una solución innovadora, una estructura que se adapta en todo momento al contexto del usuario. Así el club puede promocionar sus features en el momento donde el hincha las puede encontrar más interesantes, mejorando su recepción y su engagement.

 

Falta de conexión en el estadio

El StubHub Center, la casa del LA Galaxy, no cuenta con conectividad WiFi, y si bien se barajaron numerosas propuestas ninguna resultó adecuada para el proyecto. Por lo tanto, fue necesario considerar la aplicación como offline para todo lo que no sea crítico. Estadísticas, biografías, calendarios, solo son actualizados cuando existe nueva información. Esta optimización permite que las noticias, el minuto a minuto del partido y demás datos sensibles se actualicen cuando el usuario las requiera sin mayores demoras.

 

Crecer y adaptarse

El equipo se enorgullece de estar a la vanguardia desde lo deportivo y lo tecnológico. Con esa consigna, resulta natural que realice diferentes acuerdos con partners y proveedores. Tickets, in-seat ordering, estadísticas, todos servicios provistos por distintas firmas. Dentro de la plataforma desarrollada por GlobalLogic, debíamos trabajar con estas integraciones y, estar preparados para poder incorporar nuevos features que se pudieran sumar en fases futuras. A fin de poder atender ambas necesidades, toda la plataforma fue diseñada de manera modular desde la interfaz hasta la estructura del backend. Así fue posible solucionar cambios de proveedores sin que la experiencia, o el negocio se vea impactado negativamente.

 

Los resultados

A principios de Julio, la aplicación llegó a manos de los usuarios, y los resultados fueron ampliamente positivos. En diferentes encuestas realizadas, los hinchas se mostraron contentos con los features presentes en la aplicación. Destacaron su practicidad y se mostraron interesados en las posibilidades a futuro.

 

Diseñando desde el negocio

El equipo de GlobalLogic contó con una fortaleza clave: tener visibilidad del roadmap tanto para la primera fase como para las consiguientes. Así fue posible ofrecer soluciones directamente a medida del negocio. El equipo entero, desde el management hasta los desarrolladores, UX y QAs pudieron planificar en función de tales necesidades y facilitando la toma de decisiones. Pero además, encontrando las mejores estrategias para sumar valor a los fans, al club y a nuestra empresa.

Si tu marca fuese una persona, ¿cómo sería?

Teóricamente, siempre que interactuamos con una marca, sea cual sea el punto de contacto, estamos estableciendo una comunicación con ella. Al ser atendidos por un vendedor, él está -o debería estar- manifestando los principios de la marca. Al hablar con atención al cliente, el trato debería ser el que nos podríamos esperar de la marca en cuestión. Al ver un spot en televisión, la oratoria de la voz en off debería representar la voz de la marca. Pero, más allá del fundamento teórico, nunca antes hemos podido interactuar con una marca de la misma forma en la que lo hacemos con una persona. Nunca antes pudimos escuchar la voz de una marca en primera persona, hablar con ella. Hasta ahora.

Gartner Inc. pronostica que para el año que viene un 30% de las interacciones entre el hombre y la máquina serán a través de “conversaciones”. Más allá de lo acertado o no de su predicción, y sea cual fuere el porcentaje, sin lugar a dudas esto significará un incremento importante, especialmente si consideramos cuántas interacciones vía voz tenemos en nuestro día a día con nuestros dispositivos. Los avances tecnológicos serían el justificativo central de este crecimiento, tal como lo muestra el equipo de ingeniería de la Universidad de Stanford al desarrollar un conversor de voz a texto que, por primera vez, comprende, procesa y utiliza el comando de voz del usuario más rápido de lo que tardaría la persona en escribir el mismo comando en formato de texto.

Por primera vez, podemos hablar con Google, y que nos responda, mediante Google Assistant. Por primera vez dialogamos con Apple, y nos encontramos con una mujer llamada Siri, la cual resultó ser muy graciosa (si no me creen, preguntenlé a su Iphone cuánto es cero dividido cero). Por primera vez, Amazon entró a nuestra casa, en forma de una joven llamada Alexa. Pero, ¿qué significa esto? Significa que las marcas pueden interactuar de forma más humana mediante sus productos digitales. Significa automáticamente un cambio a nivel de interacción hombre-máquina, trayendo una serie de posibilidades y desafíos diferentes a los que nos encontrábamos al trabajar con interfaces visuales. ¿Cómo sabrá el usuario qué puede hacer ante una interfaz conversacional? ¿Qué se da por asumido en la conversación? ¿Cuáles son los recursos retóricos que el producto digital usará en el diálogo? ¿Cuál será la personalidad del producto? En definitiva, ¿Qué significa la llegada de las interfaces conversacionales para el diseño de experiencia de usuario?

En primer lugar, no todo es -tan- diferente. Algunos de los principios que aplicamos al diseñar interfaces visuales, se aplican aquí. Al igual que en cualquier otro proceso de diseño de experiencia de usuario, se inicia analizando el objetivo que la interfaz deberá cumplir, y por lo tanto los flujos de interacción posibles. Esto determinará los diferentes diálogos que los usuarios podrán tener con el asistente virtual.

Pero, como anticipamos, también hay novedades. Al no existir una interfaz visual que funcione como marco explícito de posibilidades de acción, el lenguaje ocuparía el rol de UI. Esto significa que el usuario no se encontrará con botones o indicaciones, sino que deberemos definir cuál comando de voz dará inicio a la conversación (Ok Google, en Google Assistant por ejemplo), y qué tanto se le indicará al usuario sobre qué podrá hacer. Piensen en un asistente que al llamarlo, les responda “Hola, ¿qué necesitás?”. Sin lugar a dudas, el abanico de posibilidades será mucho más ámplio que uno que al llamarlo responda “Hola, ¿quieres saber cómo será el clima mañana en tu ciudad?”.

Hay diferentes escenarios según qué dice la interfaz conversacional, y también hay diferentes escenarios según cómo lo dice. Las características a nivel de tono de voz, términos utilizados e incluso género, creará una experiencia totalmente diferente con el usuario. Por ejemplo, lo mucho que el asistente virtual interpele al usuario a realizar una acción hablará tanto del posicionamiento del producto digital, como del tipo de relación con el usuario que la marca quiere lograr. Es la identidad la que hace que Siri sea graciosa. Es la identidad buscada por Amazon la que hace que Alexa sea una mujer. Entender los objetivos de la marca será vital para crear la identidad indicada, para el producto indicado. Por eso, al proceso de diseño tradicional, hay que sumarle una pregunta, ¿quién va a ser tu producto digital?.

Luego avanzamos con el correspondiente testeo con usuarios reales, manteniendo los mismos principios que en otras interfaces más tradicionales. Al momento de testear la efectividad del software, a métricas de usabilidad como el Task Completion Rate para analizar la efectiva realización de tareas por parte del usuario se incluye el análisis del impacto que la identidad de la interfaz tuvo con los usuarios. Para lograrlo, las técnicas que se aplican ya no son principalmente cuantitativas, sino que el análisis cualitativo cobra peso.

Las interfaces conversacionales nos permiten trabajar en contextos donde el usuario tiene un mayor y más explícito control sobre la navegación. Dependerá de nuestras capacidades crear sistemas que puedan satisfacer las necesidades del usuario, pudiendo, por qué no, adaptarse a condiciones y contextos diferenciales. Esto nos permitirá, en un futuro, soñar con experiencias únicas para cada usuario específicamente, adaptándose la interfaz a características subjetivas tales como el estado del ánimo o la predisposición del usuario para un diálogo más extenso o reducido.

Last Changes
2017/10/20: Updated Architecture Components to 1.0.0-rc1

Firebase Database Setup

If you had used Firebase Database before, you can skip this step. If not, pay attention on the following instructions.

As you watched, Firebase Database is a realtime database with multiple clients. Well, in this article we’ll focus on Android platform.

So, the first step is configure database for Android platform:

1- Install Firebase SDK

2- Add your Android project to Firebase console

3- Add Firebase Database dependency to your app (module’s build.gradle)

compile 'com.google.firebase:firebase-database:11.2.0'

4- Configure Database rules

In this step you can set database access without authentication. Each connections to the database will be without authentication. If not, you have to set a rule to authenticate against database.

5- Write on your database

This is a piece of sample code to write in your Firebase Database from your app:

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

This will write in a node name “message” (it will be created if it does not exist) with the value “Hello, World!”.

6- Read from your database

You can read any data from your Firebase Database

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
 // This method is called once with the initial value and again
 // whenever data at this location is updated.
 String value = dataSnapshot.getValue(String.class);
 Log.d(TAG, "Value is: " + value);
 }

 @Override
 public void onCancelled(DatabaseError error) {
 // Failed to read value
 Log.w(TAG, "Failed to read value.", error.toException());
 }
});

At this point, you’ve set your Firebase Database in your Android app. Next step is create our ViewModel architecture.

Setup ViewModel

If you didn’t hear about Android ViewModel, I recommend you read this postbefore continue this article.

What is ViewModel? It is designed to store and manage UI-related data so that the data survives configuration changes such as screen rotations.

First, you have to add gradle dependencies on your build.gradle:

compile "android.arch.lifecycle:extensions:1.0.0-rc1"
annotationProcessor "android.arch.lifecycle:compiler:1.0.0-rc1"

If you are using support library 26.1.+, you don’t need add runtime dependency. If not, you have to add it:

compile "android.arch.lifecycle:runtime:1.0.0-rc1"

It is easier and more efficient to separate out view data ownership from UI controller logic

public class MyViewModel extends ViewModel {
 private MutableLiveData<List<Article>> articles;
 public LiveData<List<Article>> getArticles() {
 if (articles == null) {
 articles = new MutableLiveData<List<Article>>();
 loadArticles();
 }
 return articles;
 }

 private void loadArticles() {
 // do async operation to fetch articles
 }
}

If the activity is re-created, it receives the same MyViewModel instance that was created by the previous activity. When the owner activity is finished, the Framework calls ViewModel’s onCleated() method so that it can clean up resources.

Create ViewModel and Firebase Database connection

This is the interesting part in this article. Up to now, we’ve set the Firebase Database by one hand and Android ViewModel by other hand. Now is the time of join them and work together.

 

First, we have to create our repository to manage the Firebase Database event responses.

public abstract class FirebaseDatabaseRepository<Model> {

 protected DatabaseReference databaseReference;
 protected FirebaseDatabaseRepositoryCallback<Model> firebaseCallback;
 private BaseValueEventListener listener;
 private FirebaseMapper mapper;

 protected abstract String getRootNode();

 public FirebaseDatabaseRepository(FirebaseMapper mapper) {
 databaseReference = FirebaseDatabase.getInstance().getReference(getRootNode());
 this.mapper = mapper;
 }

 public void addListener(FirebaseDatabaseRepositoryCallback<Model> firebaseCallback) {
 this.firebaseCallback = firebaseCallback;
 listener = new BaseValueEventListener(mapper, firebaseCallback);
 databaseReference.addValueEventListener(listener);
 }

 public void removeListener() {
 databaseReference.removeEventListener(listener);
 }

 public interface FirebaseDatabaseRepositoryCallback<T> {
 void onSuccess(List<T> result);

 void onError(Exception e);
 }
}

Note we’ve added a method named “addListener” that adds the event listener to firebase database reference.

In our ViewModel, we need to reference to that repository:

private void loadArticles() {
 repository.addListener(new FirebaseDatabaseRepository.FirebaseDatabaseRepositoryCallback<Article>() {
 @Override
 public void onSuccess(List<Article> result) {
 articles.setValue(result);
 }

 @Override
 public void onError(Exception e) {
 articles.setValue(null);
 }
 });
 }

And from our view (a fragment in this case) we have to add an observer to keep data updated:

ArticleViewModel viewModel = ViewModelProviders.of(this).get(ArticleViewModel.class);
viewModel.getArticles().observe(this, new Observer<List<Article>>() {
 @Override
 public void onChanged(@Nullable List<Article> articles) {
 recyclerView.setAdapter(new ArticleAdapter(articles));
 }
});

Full sample

You can review the full sample from the following repo.

Feel free to comment and add any suggestions!

Towards a personality model for digital products.

The personality is the heart of all human interaction, it is what defines each person in their individuality, differentiating it from the others and making each relationship unique and unequaled. What would happen if our products or services were imbued with personality? Do not we want to build unique and lasting relationships with our clients?

Personality is the natural interface of every human being. We know how to respond to other people based on the clues they give us, such as their tone of voice, their language, their appearance, their posture. We process all this information unconsciously and act accordingly. Personality is the framework through which we make jokes, choose our friends or find a partner.

Those tracks that we naturally recognize in others, we can also find them in a product such as an application or a website, and we also process them unconsciously. Color, typography, images, writing, interactions, sounds, all are signals where we detect that digital personality. When we do not find clear signals, or those signals are very similar to others or contradictory, we miss the great opportunity to influence the behavior of our users. To this type of products of null, or rather of multiple personalities, we call them schizophrenic products.

To build digital products that generate a relationship with our users we have to think of them as if they were people, with unique and strategically defined characteristics that as a whole form an identity beyond the functionalities. Does not the google email have the same functionality as the hotmail? Does not Uber do the same thing as Lyft? How do they differ then? With a different identity.

These are some benefits of expressing personality in our products:

 

  • The personality connects, attracts and strengthens lasting relationships with our clients.
  • Personality distinguishes us from our competitors, especially in saturated markets.
  • The personality drives an emotional response from our audience, which fosters the long-term memory of our brand.
  • The personality is passionate and connects with our users, who become the most powerful marketing tool.

Wait, is not this brand identity? Yes and no. Brand identity is the collective interpretation that our audience has of our business. It also seeks to identify human characteristics associated with the brand (Adidas is a young athletic and full of energy). It traditionally covers the creation of a logo accompanied by visual references and verbal messages. Today, the brand is the product itself (think of Uber, Instagram, Facebook, Airbnb, our home banking or the software we use to design), and this is where the traditional approach is insufficient, since it was intended for Unidirectional communications where interaction was minimal. All this is enhanced when we incorporate conversational interfaces such as chatbots or even virtual assistants such as Alexa, Siri or Cortana into our channels.

Every day there are user experience departments that make decisions about the product. Usually we start a new project doing an investigation with the users. We sit with people to try to discover their desires, their way of thinking and their needs, to satisfy them with our products or services. We conduct surveys, generate hypotheses, observe analytics, test, measure, retest. We make archetypes of our users, who in the world of UX are called "People", we do workshops, card sorting, prototypes. All this answers very important questions about who they are, our users, and what their expectations are about us. But there is a key part when it comes to creating personality, and that is who we are. We are missing a part, a key and rarely explored leg, a pillar where we build the personality of our product and that brand identity does not cover. How do we transmit identity through interaction patterns, types of animations, error messages, scripts of behaviors of a chatbot, distribution of elements in space, typologies, content strategy, etc.?

This is where the user experience approach opens up opportunities and serves as a framework to design a complete experience, involving other disciplines such as Psychology, Marketing, Communication, Semiotics and Content Strategies, creating a framework for personality construction. There are successful companies that do it very well, others that do it intuitively, and a large majority that do not take it into account.

From 9 to 11 November we will be at the most important interaction event in Latin America, ISA2017 in Florianópolis , where we will deal with an identity construction model for the creation of digital products that reflects both the objectives of the brand and the expectations of the brand. the users. From Carl Jung to Dr. Elisabeth André, we will show how we have managed to expand the theoretical and referential framework of user experience design to analyze bidirectional relations of communication in the digital world.

 

  • URL copied!