Agile UX: como integrar UX e desenvolvimento
Agilidade envolvendo Experiencia do Usuário, ou simplesmente UX, é um dos assuntos mais quentes no “mundo ágil” nos últimos tempos, como fazer para integrar o desenvolvimento de software com a Experiência do Usuário e Design. O Jakob Nielsen fez um ótimo post a respeito (com um viés um pouco “nós contra eles”) com direito a um post resposta bem legal do Alistair Cockburn. E alguns dias atrás o Guilherme Chapiewski fez um excelente post sobre como tem sido a experiência na Globo.com até o momento. Eu passei por este problema lá e quando vim para o Yahoo! resolvi tentar um novo “approach”, que na verdade era o que eu sempre quis fazer na Globo.com.
A primeira diferença que notei é que no Yahoo! não existem as diversas camadas de responsabilidades na parte de Interface/UX/Design. Na Globo.com existem três camadas que são responsáveis pelo visual e UX de um projeto: Os designers, os Arquitetos da Informação e os desenvolvedores Client Side. Claro que os problemas são muito amenizados quando estes três profissionais são alocados no mesmo time ágil. Mas agora olhando de fora, eu sinceramente acho que isso não resolve o problema.
No final o problema principal é a comunicação, como todos sabemos e já foi mencionado por Jack Welch (veja o quote abaixo) quanto mais camadas vc tiver pior será a comunicação, maior será a burocracia e principalmente o comprometimento com o produto final, podendo gerar os mini-waterfalls.
The more layers in a business, the more spin, meddling, and worst of all, delays
Quando estava formando meu time no Y! uma das principais premissas era não criar silos de especialização, ou seja, ter desenvolvedores que queiram mexer com todo o ciclo de desenvolvimento desde BackEnd, Banco de dados até Frameworks Javascript e TDD; um Product Owner que queira entender a importância dos desenvolvimentos de infra-estrutura e processos de qualidade e, neste mesmo contexto, eu tb estava procurando um Designer que não tivesse medo que meter a mão em código e desenvolver a parte Client Side quando fosse necessário. A primeira parte não foi tão difícil, existem muitos desenvolvedores multifuncionais e que tem a cabeça aberta para assimilar que eles devem entender de todo o ciclo e não apenas de uma ou outra parte. Mas achar um Designer/UX que também entenda de implementação não é nada fácil. Apesar de que todos os Designers que conheço (ou quase todos) fazem “freelas” que envolvem escrever código e muitas vezes desenvolvimento usando PHP ou Ruby, quando estão trabalhando na empresa muitos deles se limitam a gerar um PSD, muitas vezes não porque queiram, mas devido a forma como o processo foi estruturado.
No meu time atual tive a sorte (e bota sorte nisso) de encontrar um Designer que gosta de desenvolver toda a experiência, e tem a função de garantir que a visão de funcionamento e design do produto esta sendo bem executada do início ao fim. Neste caso o Designer ou UED (User Experience Designer) tem a responsabilidade de criar a experiência usando sua ferramenta favorita (Fireworks no caso) e depois implementar este design em código garantindo que tanto o visual quanto a experiência será a mesma em todos os browsers que suportamos e de que as boas práticas de implementação estão sendo seguidas.
O que sempre ouvi dizer é que não é possível fazer a interface/design sem pensar no produto todo, na experiência que estou tendo nesse momento posso dizer que isso é meia verdade. A visão do produto precisa estar clara: o que é o produto, quais as funcionalidades chave, qual o público que ele se destina, etc. Mas estou podendo constatar que não é preciso ter todos os detalhes para desenhar a experiência, e que sim podemos fazer a implementação da experiência aos poucos junto com a evolução do produto. No nosso caso estamos apenas no segundo Sprint e o desenvolvimento da interface/design e UX estão seguindo as histórias priorizadas no Backlog, e é muito legal ver a interface ganhando forma de uma maneira iterativa, posso dizer que a interface do nosso protótipo mudou umas 10 vezes (totalmente) e isso em nada impactou os desenvolvedores.
Isso acontece porque decidimos separar totalmente a “camada de apresentação” da “camada de negócios”, o UED é responsável pela camada de apresentação codificando e comitando os templates Django diretamente no SVN. Com isso o UED tem total controle da interface e pode alterar totalmente a usabilidade sem necessitar de outras pessoas (camadas) para isso.
Na última semana, foi até engraçado, pois estavamos todos trabalhando com uma interface na cabeça e de um dia para o outro o UED do time mudou totalmente o funcionamento da interface – para melhor claro. Neste momento me lembrei de como seria se tivessemos as três camadas envolvidas (designer, arquiteto, clientside) … acho que levaria alguns dias/semanas para discutir tudo e no final provavelmente a interface seria vetada por se tratar de uma mudança muito radical. Neste ponto vale lembrar que não adianta ter pessoas de qualidade se vc não deixar que elas tomem decisões, neste caso quem possui a última palavra em termos de UX é o nosso UED.
Voltando aos principios ágeis, onde pensamos iterativamente, sempre entregando software funcionando a cada sprint, posso dizer que se fossemos utilizar a forma antiga onde o UED investe 20 dias (no mínimo) pensando em todos os fluxos possíveis do produto, mais a identidade visual, mais toda a teoria. Com certeza hoje estariamos jogando grande parte deste trabalho fora, pois a idéia do funcionamento do produto evoluiu muito nos últimos 15 dias, e ao incluirmos evoluções iterativas do design/UX conseguimos fazer os ajustes necessários e o impacto foi mínimo. Claro que estou contando com possíveis grandes alterações no futuro, mas pelo menos estas alterações serão fruto da visualização do design aplicado na prática e não de um monte de PSDs e Fluxos de arquitetura.
Ainda não sei o quanto esta forma de trabalhar vai escalar no futuro, mas o ganho que tivemos na agilidade e na qualidade neste início estão valendo a pena.
24 Comments
Guilherme Chapiewski on December 22nd, 2008
Excelente
É o que eu tenho dito sempre: vc não precisa VER o design todo antes do projeto, você só precisa ter a VISÃO do todo e para não é necessário ter milhões de telas desenhadas nos mínimos detalhes.
[ ]s, gc
Gustavo Soares on December 22nd, 2008
Excelente post. Valeu por compartilhar essa experiência e valeu pelos links relacionados =]
Como são feitos os testes de experiência do usuário pelo UED sem ter as funcionalidades prontas pela equipe da camada de negócios?
Adolfo Sousa on December 22nd, 2008
Acho que este tipo de assunto não suporta um “how-to”, por isso achei muito boa a sua idéia de contar como vocês lidam com isso aí no Yahoo.
Excelente post. Meus parabéns!!!
Antonio Carlos Silveira on December 22nd, 2008
@Gustavo
O UED só coloca na interface as funcionalidades que os desenvolvedores codificaram, por isso é legal eles estarem todos no mesmo sprint desenvolvendo as mesmas histórias.
O UED desenvolve as telas e os outros desenvolvedores fazem a parte de BackEnd e integração, e durante o Sprint eles vao integrando a Interface “bonita” com os sistemas de backend.
magno on December 23rd, 2008
Toninho, excelente post! Realmente a decisão de reduzir as camadas de integração é a mais acertada, o problema como você mesmo disse é conseguir profissionais com conhecimento mais generalista. Tendo isto, é o caminho mais acertado realmente. Já é hora repensar a forma que trabalhamos e tente expandir a atuação no projeto em áreas vizinhas que a principio não eram “muito” nossas, mas que geram ganho de produtividade maior que a segregação(em grande escala) de tarefas.
links for 2008-12-23 « Object neo = neo Object on December 24th, 2008
[...] Antonio Carlos Silveira BLOG » Agile UX: como integrar UX e desenvolvimento (tags: agile yahoo ux) [...]
Metodologias Ágeis de Desenvolvimento » Blog Archive » UX ágil on December 26th, 2008
[...] com os designers” do Guilherme Chapiewski que trabalha na Globo.com. O outro é o “Agile UX: como integrar UX e desenvolvimento” do Antonio Carlos Silveira do Yahoo! [...]
Joca on stuff » Blog Archive » UX ágil on December 26th, 2008
[...] com os designers” do Guilherme Chapiewski que trabalha na Globo.com. O outro é o “Agile UX: como integrar UX e desenvolvimento” do Antonio Carlos Silveira do Yahoo! [...]
Experiência do Usuário » Blog Archive » UX ágil on December 29th, 2008
[...] com os designers” do Guilherme Chapiewski que trabalha na Globo.com. O outro é o “Agile UX: como integrar UX e desenvolvimento” do Antonio Carlos Silveira do Yahoo! [...]
Fernando Sergio on January 2nd, 2009
Muito bom o seu artigo, estou lendo sobre Agile UX e vi o quanto é importante essa metodologia para o desenvolvimento, uma coisa que me lembrou desse artigo foi o case da IDEO do carrinho de compras feito em 05 dias usando como carro-chefe a prototipação.
Parabéns!
Rodrigues Comandolli on January 5th, 2009
Nada como ter uma equipe multidisciplinar pequena e que consiga fazer o produto do início ao fim. Ao meu ver este bom resultado também é fruto de dar mais liberdade na tomada de decisões por parte da equipe e da motivação que alcançam com isto.
Também concordo com o @magno que não é fácil achar profissionais com estes perfis.
Valeu o post. Abraços
Antonio Carlos Silveira BLOG » Previsões Tecnologia para 2009 on January 8th, 2009
[...] Cohn e Ken Schwaber. Tb acho que apesar dos esforços da comunidade não teremos muitos avanços na integração de metodologias ágeis com UX (ou experiência do usuário), ainda existem grandes barreiras culturais que segregam os [...]
Antonio Carlos Silveira BLOG » Mais pensamentos sobre Agile UX on January 14th, 2009
[...] Continuando no tema de Agile UX, estive pensando bastante sobre a forma de trabalhar quando usamos técnicas ágeis comparando com o ambiente tradicional (waterfall), em paralelo conversei com algumas pessoas (UX guys) para saber o que eles acham, e minhas impressões seguem abaixo. [...]
Yaso.in » Web design ágil: manifesto on January 27th, 2009
[...] Como integrar ux e desenvolvimento [...]
felipefernandes on February 2nd, 2009
Minha duvida é na prática, o UED codidfica o HTML/CSS e os javascripts simples (ou funcoes que os developers preparam), é isso? E os Developers por sua vez montam as interações com banco e as lógicas diversas.
Eu andei estudando recentemente sobre frameworks como RubyOnRails e CakePHP, usam o MVC que deve ser bem útil nesse método de gestão de projeto.
Antonio Carlos Silveira on February 4th, 2009
Olá Felipe,
Aqui no Meu time no Yahoo! funciona exatamente assim, o UED faz o design em Adobe Fireworks depois gera o HTML/CSS, implementa as funcionalidades visuais usando JQuery / YUI e depois faz as chamadas para os sistemas de Backend que são implementados pelos outros desenvolvedores.
É responsabilidade do UED garantir que o visual e dinâmica de cada funcionalidade estão OK em todos os Browsers que suportamos (FF2, FF3, IE6, IE7, Safari).
Nós usamos Django como Framework e estamos usando PHP puro tb (já que PHP é uma linguagem de template anyway).
É importante tb reforçar que na maior parte dos casos o UED trabalha nas mesmas histórias que o restante do time, não implementando coisas de sprints futuros.
dtdegaki (Diogo Degaki) on February 11th, 2009
O desafio de aliar desenvolvimento e UX começou! http://tinyurl.com/77rc29
gustavoas (gustavoas) on February 11th, 2009
Experiencia do usuário e usabilidade no desenvolvimento ágil http://tinyurl.com/46phsf e http://tinyurl.com/77rc29
DKonishi (Daniel Konishi) on February 11th, 2009
uma solução inteligente para o velho e recorrente problema: desenvolvedores X designers: http://tinyurl.com/77rc29
Agile vs UX não. Agile UX sim. « Cainã Nunes, Blog on March 23rd, 2009
[...] o Antônio Carlos mostrou, multidisciplinaridade diminui barreiras e aumenta a produtividade. Este interesse em participar [...]
Agile vs UX não. Agile UX sim. | Planeta Globo.com on April 16th, 2009
[...] o Antônio Carlos mostrou, multidisciplinaridade diminui barreiras e aumenta a produtividade. Este interesse em participar [...]
links for 2009-06-24 « sySolution on June 24th, 2009
[...] Antonio Carlos Silveira BLOG » Agile UX: como integrar UX e desenvolvimento (tags: revisar ux agile) [...]
Tecnologia de Internet (Locaweb) » Blog Archive » UX ágil on May 6th, 2010
[...] com os designers” do Guilherme Chapiewski que trabalha na Globo.com. O outro é o “Agile UX: como integrar UX e desenvolvimento” do Antonio Carlos Silveira do Yahoo! [...]


Subscribe to My RSS Feed





Guilherme Cirne on December 22nd, 2008
Excelente Antônio!
Temos tentado fazer algo parecido aqui no nosso projeto atual. Inclusive no sprint atual fizemos um “refactor” bem significativo da interface. Não foi tão simples como gostaríamos mas acho que o resultado valeu a pena.
Na minha visão de leigo em relação à UX eu acho que tem funcionado razoavelmente bem. Vamos ver como vai ser a nossa evolução daqui pra frente.