Posts de March, 2009

[Rafael Biriba] Portable Apps: Aplicativos portáteis para Windows

Tuesday, March 31st, 2009
Portable Apps: http://portableapps.com/

Portable Apps: http://portableapps.com/

O Portable Apps é um programa que pode ser carregado com você em dispositivos portáteis. Os dados dos aplicativos são armazenados 100% em seu dispositivo portátil, sendo assim, totamente seguro e inclusive recomendado de se fazer em computadores públicos. Quando o dispositovo é removido, nada é deixado para trás.

A variedade de aplicativos no site, é incrível, desde navegadores, leitores de emails, a jogos e aplicativos como player de áudio e vídeo.

Abaixo segue uma lista bem resumida dos aplicativos que podem ser encontrados, e que eu considero mais importante ou útil:
( Lista completa em: http://portableapps.com/apps )

Notepad++ Portable - Ótimo editor de texto, com opções bem mais completas do que o notepad do windows.

aMSN Portable - Aplicativo similar ao MSN, muito bom e muito conhecido para os usuários linux.

Pidgin Portable - Um outro tradicional aplicativo de conversa instantânea, MSN, Yahoo dentre outros.

OpenOffice.org Portable - Pacote de aplicativos de escritório similar ao OFFICE ( editor de texto, planilhas e apresentações )  no seu pendrive. Precisa dizer mais alguma coisa ?

ClamWin Portable - Antivirus portátil para todas as ocasiões

Mozilla Firefox, Portable Edition - Um dos mais utilizados navegadores disponível em versão portátil. Em particular eu acho este aplicativo o melhor de todos. Por ser portátil você pode adicionar qualquer complemento disponível no site ao navegador, pode inclusive salvar suas senhas e páginas favoritas, instalar plugins como flash, enfim customizar completamente o navegador, e quando terminar de usar, basta apenas remover seu dispositivo.

On-Screen Keyboard Portable - Para os que não se sentem seguro para utilizar teclados de computadores públicos, por causa de keyllogers e etc.., este teclado virtual pode lhe fornecer alguma segurança.

Existem muitos outros aplicativos disponíveis no site: http://portableapps.com/

Entre e confira ! =)

[Rafael Biriba] Portable Apps: Aplicativos portáteis para Windows

Tuesday, March 31st, 2009
Portable Apps: http://portableapps.com/

Portable Apps: http://portableapps.com/

O Portable Apps é um programa que pode ser carregado com você em dispositivos portáteis. Os dados dos aplicativos são armazenados 100% em seu dispositivo portátil, sendo assim, totamente seguro e inclusive recomendado de se fazer em computadores públicos. Quando o dispositovo é removido, nada é deixado para trás.

A variedade de aplicativos no site, é incrível, desde navegadores, leitores de emails, a jogos e aplicativos como player de áudio e vídeo.

Abaixo segue uma lista bem resumida dos aplicativos que podem ser encontrados, e que eu considero mais importante ou útil:
( Lista completa em: http://portableapps.com/apps )

Notepad++ Portable - Ótimo editor de texto, com opções bem mais completas do que o notepad do windows.

aMSN Portable - Aplicativo similar ao MSN, muito bom e muito conhecido para os usuários linux.

Pidgin Portable - Um outro tradicional aplicativo de conversa instantânea, MSN, Yahoo dentre outros.

OpenOffice.org Portable - Pacote de aplicativos de escritório similar ao OFFICE ( editor de texto, planilhas e apresentações )  no seu pendrive. Precisa dizer mais alguma coisa ?

ClamWin Portable - Antivirus portátil para todas as ocasiões

Mozilla Firefox, Portable Edition - Um dos mais utilizados navegadores disponível em versão portátil. Em particular eu acho este aplicativo o melhor de todos. Por ser portátil você pode adicionar qualquer complemento disponível no site ao navegador, pode inclusive salvar suas senhas e páginas favoritas, instalar plugins como flash, enfim customizar completamente o navegador, e quando terminar de usar, basta apenas remover seu dispositivo.

On-Screen Keyboard Portable - Para os que não se sentem seguro para utilizar teclados de computadores públicos, por causa de keyllogers e etc.., este teclado virtual pode lhe fornecer alguma segurança.

Existem muitos outros aplicativos disponíveis no site: http://portableapps.com/

Entre e confira ! =)

[Cainã Nunes] Todo Mundo, Alguém, Qualquer Um e Ninguém.

Monday, March 30th, 2009

Esta é uma história sobre quatro pessoas: Todo Mundo, Alguém, Qualquer Um e Ninguém.

Havia um grande trabalho a ser feito e Todo mundo tinha certeza de que Alguém o faria.

Qualquer Um poderia tê-lo feito, mas Ninguém o fez.

Alguém se zangou porque era um trabalho de Todo Mundo.

Todo Mundo pensou que Qualquer Um poderia fazê-lo, mas Ninguém imaginou que Todo Mundo deixasse de fazê-lo.

Ao final, Todo Mundo culpou Alguém quando Ninguém fez o que Qualquer Um poderia ter feito.

Autor: desconhecido

[Rodolfo Carvalho] Como falar muito sem dizer nada

Sunday, March 29th, 2009

Essa semana um professor nos enviou um documento bem humorado dizendo como se comportar em reuniões / apresentações.
Trata-se de uma tabela em que você pode formar frases sintaticamente corretas, porém sem nenhum conteúdo, bastando pegar um trecho de cada coluna.

Coluna 1 Coluna 2 Coluna 3 Coluna 4
Caros colegas, a execução deste projeto nos obriga à análise das nossas opções de desenvolvimento futuro.
Por outro lado, a complexidade dos estudos efetuados cumpre um papel essencial na formulação das nossas metas financeiras e administrativas.
Não podemos esquecer que a atual estrutura de organização auxilia a preparação e a estruturação das atitudes e das atribuições da diretoria.
Do mesmo modo, o novo modelo estrutural aqui preconizado contribui para a correta determinação das novas proposições.
A prática mostra que o desenvolvimento de formas distintas de atuação assume importantes posições na definição das opções básicas para o sucesso do programa.
Nunca é demais insistir que a constante divulgação das informações facilita a definição do nosso sistema de formação de quadros.
A experiência mostra que a consolidação das estruturas prejudica a percepção da importância das condições apropriadas para os negócios.
É fundamental ressaltar que a análise dos diversos resultados oferece uma boa oportunidade de verificação dos índices pretendidos.
O incentivo ao avanço tecnológico, assim como o início do programa de formação de atitudes acarreta um processo de reformulação das formas de ação.
Assim mesmo, a expansão de nossa atividade exige precisão e definição dos conceitos de participação geral.

Então resolvi fazer um rápido script Python para formar frases pra mim, algo como “Quote-of-the-day”.

# -*- coding: utf-8 -*-
# phrases.py
from random import choice
from textwrap import dedent

try:
    from itertools import product
except ImportError:
    # http://docs.python.org/library/itertools.html#itertools.product
    def product(*args, **kwds):
        # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
        # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
        pools = map(tuple, args) * kwds.get('repeat', 1)
        result = [[]]
        for pool in pools:
            result = [x+[y] for x in result for y in pool]
        for prod in result:
            yield tuple(prod)

_COLUNAS_ = [[u"Caros colegas,",
              u"Por outro lado,",
              u"Não podemos esquecer que",
              u"Do mesmo modo,",
              u"A prática mostra que",
              u"Nunca é demais insistir que",
              u"A experiência mostra que",
              u"É fundamental ressaltar que",
              u"O incentivo ao avanço tecnológico, assim como",
              u"Assim mesmo,"],
             [u"a execução deste projeto",
              u"a complexidade dos estudos efetuados",
              u"a atual estrutura de organização",
              u"o novo modelo estrutural aqui preconizado",
              u"o desenvolvimento de formas distintas de atuação",
              u"a constante divulgação das informações",
              u"a consolidação das estruturas",
              u"a análise dos diversos resultados",
              u"o início do programa de formação de atitudes",
              u"a expansão de nossa atividade"],
             [u"nos obriga à análise",
              u"cumpre um papel essencial na formulação",
              u"auxilia a preparação e a estruturação",
              u"contribui para a correta determinação",
              u"assume importantes posições na definição",
              u"facilita a definição",
              u"prejudica a percepção da importância",
              u"oferece uma boa oportunidade de verificação",
              u"acarreta um processo de reformulação",
              u"exige precisão e definição"],
             [u"das nossas opções de desenvolvimento futuro.",
              u"das nossas metas financeiras e administrativas.",
              u"das atitudes e das atribuições da diretoria.",
              u"das novas proposições.",
              u"das opções básicas para o sucesso do programa.",
              u"do nosso sistema de formação de quadros.",
              u"das condições apropriadas para os negócios.",
              u"dos índices pretendidos.",
              u"das formas de ação.",
              u"dos conceitos de participação geral."]]

frases_vazias = list(product(*_COLUNAS_))
print dedent('''\
                De %d frases vazias, escolhi:
                "%s"''') % (len(frases_vazias), ' '.join(choice(frases_vazias)))

##for frase in product(*_COLUNAS_):
##    print ' '.join(frase)

[Igor Macaubas] 4o Encontro – Scrum UG Recife

Tuesday, March 24th, 2009

Na próxima quarta-feira, dia 25/03/2009, iremos realizar o quarto encontro do Scrum user-group de Recife.

Fundada em outubro/2008, a comunidade completa 5 meses de vida com o acontecimento do seu 4o encontro, onde serão discutidos os rumos de um evento importantíssimo que acontecerá aqui em Recife no mês de Abril: o Recife Scrum Day.

Além disso, também teremos um workshop com a apresentação de um caso de sucesso de Scrum, e também conversaremos sobre o Scrum Gathering Brasil, que acontecerá em Maio em São Paulo.

Contamos com a presença em peso da comunidade!

Para mais detalhes, clique aqui e veja o post sobre o evento no site oficial da comunidade.

[Rafael Biriba] Google Docs: Eficiência garantida

Tuesday, March 24th, 2009
Google Docs: http://docs.google.com/

Google Docs: http://docs.google.com/

Para os que ainda não conhecem a ferramenta, Google Docs é um pacote de aplicativos de escritório ( processador de texto, editor de planilhas, apresentações, etc…) que rodam diretamente do navegador.

Apesar de conhecer a ferramenta, dificilmente eu a utilizava. Pelo menos o até mês passado. Quando meu amigo Nilton Gonçalves Jr. sugeriu uma idéia bastante funcional.

Atualmente utilizamos a ferramente diariamente na faculdade ( Adeus a cadernos e fichários ). Chega de ficar pedindo folhas de matéria emprestada, quando você perde algum conteúdo. Mas especificamente o que nós fazemos é: Criar um documento novo, e copiar qualquer conteúdo da aula, dentro do documento do Google Docs. A parte legal disso, é que este documento por ser compartilhado com quantas pessoas quiserem, basta possuir uma conta google.

Um recursos que está frequentemente sendo utilizado é a edição simultânea de documentos. Quando compartilho o documento com o Nilton, cada um pode copiar um pedaço da aula. Sendo assim, enquanto um presta atenção o outro está copiando, e assim por diante. O recurso é bastante prático, sem nenhuma margem de erro na hora de sincronizar os documentos que estão abertos em paralelo. É bem frequente um ajeitar o erro do outro nos parágrafos acima. Ou seja, enquanto um está digitando um paragrafo, o outro está também verificando o conteúdo digitado nos paragrafos acima.

A ideia não para por ai não, também é possível adicionar não só colaboradores, mas também leitores dos arquivos. Isso significa que podemos liberar acesso de leitura dos documentos para os outros colegas da sala, ou então enviar o documento anexado num email de forma rápida.

Com Google Gear, é possível você editar seus documento offline, sendo assim, não precisa estar na internet para poder estudar e editar os documento. E ao entrar efetuar o login no Google Docs, os documentos são automaticamente sincronizados.

Existem pequenas dificuldades que são encontradas pelo caminho, primeiro, nas aulas em que tenha que fazer algum pequeno diagrama. Evidentemente que nenhum editor de texto possui um editor de imagens integrado, mas bem que seria uma solução ideal. Para isso usamos o editor de imagem da máquina local. Como na faculdade é Windows, fazemos os pequenos diagramas no  PAINT ( não é muito profissional, mas quebra um galho ), e depois efetuamos o upload para o documento em edição, e o Google Docs anexa ao documento.

Uma solução WEB recém encontrada para o problemas das imagens está em: http://canvaspaint.org/, um editor de imagens online, muito similar ao PAINT que ao final é possível fazer o download da imagem, e depois fazer o upload para o documento no DOCs.

Um outro problema identificado no aplicativo, foi a falta de controle no compartilhamento de arquivos, pois qualquer pessoa com uma conta google pode criar e compartilhar um documento com qualquer outro usuário google. Isso significa que você pode ser marcado como contribuinte ou leitor de um documento desconhecido. Poderia pelo menos ser implementado um sistema para pode filtrar os arquivos compatilhados. Uma forma de selecionar ou melhor dizendo, de aceitar o compartilhamento ou não. Mesmo deletando os arquivos indesejáveis, nada impede que ele seja compartilhado novamente.

Através de tudo que eu disse aqui, muitos levantaram a seguinte pergunta: Qual o limite de armazenamento do Google Docs ?

Com algumas pesquisas, descobri que não está ligado com o espaço do Gmail. E sim com a quantidade de arquivos.

De acordo com o link: http://docs.google.com/support/bin/answer.py?answer=37603&topic=15119

Documentos

  • Cada documento pode ter até 500KB, aumentoado de 2MB para cada imagem no documento.
  • Os seguintes formatos são suportados:
    • HTML
    • Texto Simples (.txt)
    • Microsoft Word
    • .rtf
    • Open Office (.odt)
  • Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens

Planilhas

  • Cada planilha pode ter até 256 colunas ou até 200.000 celulas ou até 100 tabelas– Vale o limite que for alcançado primeiro. Não há limites para numero de linhas.
  • Cada planilha pode ter até 20,000 celulas com fórmulas. Com esse total, os limites são aplicados à:
    • Até 1,000 GoogleFinance formulas
    • Até 1,000 GoogleLookup formulas
    • Até 50 formulas importadas
  • Você tem o limite de 1000 planilhas. A Planilha que está compartilhada com você não conta neste limite.
  • O limite de planilhas abertas ao mesmo tempo é 11.
  • Você pode importar planilhas de até 1 Mb nos formatos xls, xlsx, csv, or ods, txt, tsv, tsb.

Apresentações

  • Apresentações nos formatos .ppt e .pps podem ser enviados com até 10MB.
  • Via URL, você pode fazer o upload de apresentações da WEB de até 2MB.
  • Por email, a apresentação enviada por ter até 500KB.
  • Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens

PDF:

  • Você pode armazenar até 10MB por PDF enviado e 2MB para PDFs que já estão na WEB, com o limite de até 100 PDFs.

Bom, espero que a idéia tenha sido útil para alguém… Se você já faz, ou vai passar a fazer o mesmo que nós, deixe um comentário… =)

[Rafael Biriba] Google Docs: Eficiência garantida

Tuesday, March 24th, 2009
Google Docs: http://docs.google.com/

Google Docs: http://docs.google.com/

Para os que ainda não conhecem a ferramenta, Google Docs é um pacote de aplicativos de escritório ( processador de texto, editor de planilhas, apresentações, etc…) que rodam diretamente do navegador.

Apesar de conhecer a ferramenta, dificilmente eu a utilizava. Pelo menos o até mês passado. Quando meu amigo Nilton Gonçalves Jr. sugeriu uma idéia bastante funcional.

Atualmente utilizamos a ferramente diariamente na faculdade ( Adeus a cadernos e fichários ). Chega de ficar pedindo folhas de matéria emprestada, quando você perde algum conteúdo. Mas especificamente o que nós fazemos é: Criar um documento novo, e copiar qualquer conteúdo da aula, dentro do documento do Google Docs. A parte legal disso, é que este documento por ser compartilhado com quantas pessoas quiserem, basta possuir uma conta google.

Um recursos que está frequentemente sendo utilizado é a edição simultânea de documentos. Quando compartilho o documento com o Nilton, cada um pode copiar um pedaço da aula. Sendo assim, enquanto um presta atenção o outro está copiando, e assim por diante. O recurso é bastante prático, sem nenhuma margem de erro na hora de sincronizar os documentos que estão abertos em paralelo. É bem frequente um ajeitar o erro do outro nos parágrafos acima. Ou seja, enquanto um está digitando um paragrafo, o outro está também verificando o conteúdo digitado nos paragrafos acima.

A ideia não para por ai não, também é possível adicionar não só colaboradores, mas também leitores dos arquivos. Isso significa que podemos liberar acesso de leitura dos documentos para os outros colegas da sala, ou então enviar o documento anexado num email de forma rápida.

Com Google Gear, é possível você editar seus documento offline, sendo assim, não precisa estar na internet para poder estudar e editar os documento. E ao entrar efetuar o login no Google Docs, os documentos são automaticamente sincronizados.

Existem pequenas dificuldades que são encontradas pelo caminho, primeiro, nas aulas em que tenha que fazer algum pequeno diagrama. Evidentemente que nenhum editor de texto possui um editor de imagens integrado, mas bem que seria uma solução ideal. Para isso usamos o editor de imagem da máquina local. Como na faculdade é Windows, fazemos os pequenos diagramas no  PAINT ( não é muito profissional, mas quebra um galho ), e depois efetuamos o upload para o documento em edição, e o Google Docs anexa ao documento.

Uma solução WEB recém encontrada para o problemas das imagens está em: http://canvaspaint.org/, um editor de imagens online, muito similar ao PAINT que ao final é possível fazer o download da imagem, e depois fazer o upload para o documento no DOCs.

Um outro problema identificado no aplicativo, foi a falta de controle no compartilhamento de arquivos, pois qualquer pessoa com uma conta google pode criar e compartilhar um documento com qualquer outro usuário google. Isso significa que você pode ser marcado como contribuinte ou leitor de um documento desconhecido. Poderia pelo menos ser implementado um sistema para pode filtrar os arquivos compatilhados. Uma forma de selecionar ou melhor dizendo, de aceitar o compartilhamento ou não. Mesmo deletando os arquivos indesejáveis, nada impede que ele seja compartilhado novamente.

Através de tudo que eu disse aqui, muitos levantaram a seguinte pergunta: Qual o limite de armazenamento do Google Docs ?

Com algumas pesquisas, descobri que não está ligado com o espaço do Gmail. E sim com a quantidade de arquivos.

De acordo com o link: http://docs.google.com/support/bin/answer.py?answer=37603&topic=15119

Documentos

  • Cada documento pode ter até 500KB, aumentoado de 2MB para cada imagem no documento.
  • Os seguintes formatos são suportados:
    • HTML
    • Texto Simples (.txt)
    • Microsoft Word
    • .rtf
    • Open Office (.odt)
  • Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens

Planilhas

  • Cada planilha pode ter até 256 colunas ou até 200.000 celulas ou até 100 tabelas– Vale o limite que for alcançado primeiro. Não há limites para numero de linhas.
  • Cada planilha pode ter até 20,000 celulas com fórmulas. Com esse total, os limites são aplicados à:
    • Até 1,000 GoogleFinance formulas
    • Até 1,000 GoogleLookup formulas
    • Até 50 formulas importadas
  • Você tem o limite de 1000 planilhas. A Planilha que está compartilhada com você não conta neste limite.
  • O limite de planilhas abertas ao mesmo tempo é 11.
  • Você pode importar planilhas de até 1 Mb nos formatos xls, xlsx, csv, or ods, txt, tsv, tsb.

Apresentações

  • Apresentações nos formatos .ppt e .pps podem ser enviados com até 10MB.
  • Via URL, você pode fazer o upload de apresentações da WEB de até 2MB.
  • Por email, a apresentação enviada por ter até 500KB.
  • Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens

PDF:

  • Você pode armazenar até 10MB por PDF enviado e 2MB para PDFs que já estão na WEB, com o limite de até 100 PDFs.

Bom, espero que a idéia tenha sido útil para alguém… Se você já faz, ou vai passar a fazer o mesmo que nós, deixe um comentário… =)

[Guilherme Cirne] InfoFundos

Monday, March 23rd, 2009

Está no ar o InfoFundos, um site onde é possível acompanhar as rentabilidades de todos os fundos de investimento do mercado financeiro brasileiro. Mas este post não é sobre o site em si, e sim sobre o seu desenvolvimento.

O site é um projeto pessoal desenvolvido por mim com ruby e rails. O legal deste tipo de trabalho solo é a possibilidade de experimentar ideias, práticas, técnicas, etc.

Como não poderia deixar de ser, o desenvolvimento seguiu – e continua seguindo – os princípios e valores dos métodos ágeis. Ou seja, o site está sendo desenvolvido de forma incremental e evolutiva. A ideia é ir colhendo feedback para evoluir continuamente. Cada funcionalidade é desenvolvida da forma mais simples que poderia funcionar (simplest thing that could possibly work), com refactoring constante para deixar o código o mais limpo possível.

Uma técnica que pude usar desde o início e que ajuda a garantir a aplicação dos princípios e valores acima é o desenvolvimento outside-in sugerido pelo BDD. Cada funcionalidade é descrita por uma feature do cucumber guiada por selenium. Um passo dessa feature é escrito e, obviamente, ele falha. Então é preciso escrever apenas código suficiente para fazer este passo passar. Para isso, escrevo um spec com rspec e depois apenas o código necessário para este spec passar. Continuo assim sucessivamente, escrevendo specs e código, de fora para dentro, ou seja, das camadas mais externas até as mais internas, até que o passo esteja passando. Então, repito o ciclo continuando com o próximo passo até que toda a feature esteja passando. O ciclo completo seria algo mais ou menos assim:

feature > step > spec > implementação para spec passar > repete spec e implementação até step passar > repete step até feature passar

No final, tenho uma funcionalidade totalmente coberta por testes de aceitação com cucumber/selenium e com 100% de cobertura com rspec. Isso ajuda a garantir um código limpo, podendo ser refatorado e evoluído com bastante segurança.

Tenho diversas ideias de funcionalidades futuras para o InfoFundos e, certamente, qualquer assunto relacionado ao seu desenvolvimento será postado aqui.

[Guilherme Cirne] InfoFundos

Monday, March 23rd, 2009

Está no ar o InfoFundos, um site onde é possível acompanhar as rentabilidades de todos os fundos de investimento do mercado financeiro brasileiro. Mas este post não é sobre o site em si, e sim sobre o seu desenvolvimento.

O site é um projeto pessoal desenvolvido por mim com ruby e rails. O legal deste tipo de trabalho solo é a possibilidade de experimentar ideias, práticas, técnicas, etc.

Como não poderia deixar de ser, o desenvolvimento seguiu - e continua seguindo - os princípios e valores dos métodos ágeis. Ou seja, o site está sendo desenvolvido de forma incremental e evolutiva. A ideia é ir colhendo feedback para evoluir continuamente. Cada funcionalidade é desenvolvida da forma mais simples que poderia funcionar (simplest thing that could possibly work), com refactoring constante para deixar o código o mais limpo possível.

Uma técnica que pude usar desde o início e que ajuda a garantir a aplicação dos princípios e valores acima é o desenvolvimento outside-in sugerido pelo BDD. Cada funcionalidade é descrita por uma feature do cucumber guiada por selenium. Um passo dessa feature é escrito e, obviamente, ele falha. Então é preciso escrever apenas código suficiente para fazer este passo passar. Para isso, escrevo um spec com rspec e depois apenas o código necessário para este spec passar. Continuo assim sucessivamente, escrevendo specs e código, de fora para dentro, ou seja, das camadas mais externas até as mais internas, até que o passo esteja passando. Então, repito o ciclo continuando com o próximo passo até que toda a feature esteja passando. O ciclo completo seria algo mais ou menos assim:

feature > step > spec > implementação para spec passar > repete spec e implementação até step passar > repete step até feature passar

No final, tenho uma funcionalidade totalmente coberta por testes de aceitação com cucumber/selenium e com 100% de cobertura com rspec. Isso ajuda a garantir um código limpo, podendo ser refatorado e evoluído com bastante segurança.

Tenho diversas ideias de funcionalidades futuras para o InfoFundos e, certamente, qualquer assunto relacionado ao seu desenvolvimento será postado aqui.

[Cainã Nunes] Agile vs UX não. Agile UX sim.

Monday, March 23rd, 2009

Constantemente, vejo o tema Agile vs UX ser abordado por designers e por developers devido às dificuldades encontradas pelas empresas que estão implementando metodologias ágeis para desenvolvimento de softwares e a integração com os processos dos seus profissionais criativos.

Acontece que tem algo nesta conversa que ainda não me soa bem. Agile vs UX? Hmm… pra mim não faz sentido. Não se pode comparar um com o outro assim, como se fossem opostos. O que me incomoda é a maneira como os dois temas são vistos. Existe um pequeno detalhe nas definições que fazem toda diferença para organizar as idéias de ambas as partes.

Designers e Desenvolvedores

Antes de mais nada, é preciso entender que Interaction Design não é User Experience Design. Interaction Design é só uma parte do User Experience Design, assim como desenvolvimento também o é. Esta pequena confusão está prejudicando muito como um time encara o compromisso e a responsabilidade dos designers com UX. E pior ainda, como o time encara o compromisso e a responsabilidade dos desenvolvedores com UX.

Vou tentar deixar as coisas mais claras. Por exemplo: O compromisso dos Software Developers é a entrega de um software de qualidade. Para garantir que o software seja de qualidade, os developers fazem mocks, spikes, testes de carga, testes automatizados, testes unitários… Testes. Testes. Testes.

O compromisso dos Interaction Designers é a entrega de uma interação de qualidade. Para garantir que a interação seja de qualidade, os designers fazem skectch, storyboards, paper prototype, testes com usuários… Testes. Testes. Testes.

Bastante semelhante não?

Mas, então, quem é que se compromete com a entrega de uma UX de qualidade? O Interaction Designer? Aí é que está. NÃO! O time todo se compromete. User Experience Design, Projetar a Experiência do Usuário, deve ser um compromisso de todos, nunca só dos designers.

Exemplos

Quando os desenvolvedores estão discutindo qual será a melhor forma de desenvolver um sistema, a linguagem a ser adotada, as ferramentas, com o objetivo de melhorar a performance do sistema, a estabilidade, a escalabilidade, qual é a razão para isso tudo? No fim das contas, é para garantir que o usuário sempre cumpra as suas metas de maneira satisfatória. É para garantir que ele tenha uma experiência completa e agradável. Viu só? Neste exemplo super comum do nosso dia a dia são os desenvolvedores projetando uma melhor experiência para o usuário e nem de perto envolveu o desenho de interfaces.

Um outro caso curioso, comum, e que é um ótimo exemplo: Diversas vezes, na hora de escrever o objetivo de uma história, o time inteiro fica pensando: - Bom, isto é para… para… para melhorar a experiência do usuário! E alguém, óbvio, logo responde - Ah! Mas, pensando assim tudo é para melhorar a experiência do usuário. E por que isso volta e meia se repete? Por que é verdade! TUDO, no fim das contas é para melhorar a experiência do usuário.

Considerando tudo que foi dito até agora, pra mim estaria extremamente correto afirmar que desenvolvedores também são UX Designers, ou então UX Developers pra ficar mais específico ;-)

Agile e UX

As metodologias ágeis hoje são uma realidade para mim, meu time e minha empresa. Desenvolver softwares de maneira ágil é um grande passo dado. Nunca se colocou tanto software no ar. Todos os desenvolvedores que trabalham comigo já sabem agir e são evangelizadores ágeis. Os ganhos são bem claros, então isso nem se discute.

Tudo isso deixou claro pra mim, como designer, que entregar apenas interfaces por interfaces, que visam somente a elas mesmas (leia-se Big Design Up Front), não é o objetivo. Não é uma entrega válida pois não estou entregando valor pro usuário ainda. Não estou entregando experiência real alguma ainda.

O ponto que acrescento aqui é que a entrega também não pode ser apenas software por software, que visa somente a ele mesmo, somente porque as metodologias ágeis incentivam que a entrega seja de software em produção. O que quero dizer com isso é que entregar software em produção não garante que estou entregando uma UX de qualidade. E justamente isso, entregar UX de qualidade em produção, sim, deve ser o compromisso do time.

Agile UX

Convenhamos, para desenhar belas interfaces dentro de um sprint não se precisa muito esforço. Como o Guilherme Chapiewski já percebeu, qualquer um com conhecimento mínimo de Photoshop ou Fireworks vai produzir algo de alta qualidade, mas isso não garante que esteja fazendo o melhor pro usuário. Assim como no caso dos desenvolvedores que estarão entregando um software baseado nestas interfaces.

O que fica muito claro aqui é que adaptar ao pé da letra métodos ágeis da forma como eles funcionam no desenvolvimento de software para tentar entregar interfaces não é o problema, mas muito menos é a solução.

O desafio é: como entregar UX de qualidade de maneira ágil e incremental? Isso sim não se sabe fazer bem ainda; mas só chegaremos a alguma proposta quando houver um esforço de ambos os lados estando totalmente comprometidos com este objetivo, UX de qualidade. Este sim é o grande ponto da questão.

Participe das discussões

Nem sempre, eu como designer, consigo entender 100% do que está sendo discutido pelos desenvolvedores, mas sempre que tento acompanhar resulta em aprendizado, em compreender o valor de determinadas escolhas e a complexidade de implementá-las. E quase sempre surge um momento em que eu consigo colaborar também, e minha opinião realmente é aproveitada, pois sou mais um pensando no usuário. Posso garantir, isso acontece bastante.

E além de participar de discussões técnicas, sempre convide os desenvolvedores para participar das reuniões conceituais e de interfaces/interações. É realmente um ganho enorme quando todos entendem as variáveis a serem consideradas pelos designers e arquitetos de informação. Surgem opiniões com uma carga de experiência profissional totalmente diferente sobre os mesmos assuntos. Posso garantir denovo, já aconteceu bastante.

Como o Antônio Carlos mostrou, multidisciplinaridade diminui barreiras e aumenta a produtividade. Este interesse em participar das discussões e incluir os outros nas discussões serve tanto para designers como para desenvolvedores. Sempre que são tomadas decisões juntos fica uma visão clara do que está sendo feito, o time todo compra as idéias e se compromete com elas.

Faça uma experiência

Tente trabalhar um sprint inteiro desta maneira e depois proponha algo diferente pro Sprint Review. Na hora de apresentar a história para o Product Owner, peça para um designer explicar os problemas encontrados e as soluções adotadas para o desenvolvimento e para um desenvolvedor explicar os problemas encontrados e as soluções adotadas para as interfaces e interações. Isso mostra que todos sabem o que foi feito e por que foi feito assim. Isso mostra compromisso com a UX.

O que deixo aqui é uma visão clara que UX é um compromisso de TODOS, e só pensando desta forma é que um dia ela será realmente ágil e incremental.

Abraços.
;-)

Mais sobre Agile UX