Ajude a Adobe a oferecer recursos para a comunidade

A Adobe está conduzindo uma enquete (Adobe Developer Program Survey) para entender melhor sobre a comunidade de desenvolvedores e que recursos eles podem oferecer que serão de mais valia para a comunidade.

O formulário é simples e em menos de 5 minutos você responde uma enquete que no fundo irá ajudar a você mesmo. 😉

Participe!


Não propague código ruim!

Alguns dias atrás eu vi post em outro blog sobre como códigos ruins de programação se propagam.

Não importa em qual linguagem de programação o blog se referia, mas sim onde estava o mal exemplo: em um livro. O mais preocupante é imaginar que pessoas iniciantes e desenvolvedores com pouca experiência podem simplesmente pegar o exemplo daquele livro, dar um belo copy & paste e usar o código – ruim – por aí.

Aprender errado aumenta as chances de que num futuro você fará errado também.

Então, quando você é visto como um formador de opinião, escreve freqüentemente em blogs, listas de discussões ou está divulgando através de meios mais formais (como livros) é imperativo que se tenha muito cuidado com os exemplos, códigos e boas práticas que são passados, pois eles podem, e certamente serão, reproduzidos.

É muito comum, principalmente em listas de discussão eventualmente escrevermos códigos que não são tão bons quando poderiam – e isso é completamente normal! Afinal eles podem ter o propósito apenas de dar uma direção para uma solução mais elaborada, e muitas vezes estamos com pressa mas ainda assim queremos ajudar a pessoa. Nesses casos vale muito a pena fazer uma ressalva sobre o código.

Coincidentemente o Beck, meu colega de trabalho, fez um post sobre esse mesmo assunto – e eu fiquei espantado com a repercussão que isso gerou. E como eu disse por lá:

“Excelência, então, não é um modo de agir, mas um hábito.”

– Aristóteles


Safari no Windows. E a Adobe com isso? E eu com isso?

Muito tem se dito sobre o lançamento do Safari, popular browser da Apple, agora com versão para Windows. A aposta mais comum (e certeira ao meu ver) é que a Apple lançou o Safari também para Windows para possibilitar que mais desenvolvedores criem conteúdo e aplicativos para o iPhone, que usará o Safari como base. Eu já havia comentado por aqui sobre atrair desenvolvedores e a Apple foi muito sábia nessa decisão.

Mas depois eu comecei a observar melhor o que está acontecendo, e não é pouca coisa. A Adobe e o Google estão trabalhando juntas para possibilitar aplicativos offline. Anteriormente conhecido como Adobe Apollo, o Adobe AIR possibilita aplicativos offline, assim como o recém lançado Google Gears, e ambos trabalham com a mesma base tecnológica (SQLite). A Adobe usa no Adobe AIR a engine HTML open source WebKit, que é a base do Safari, engine esta que também será a base do iPhone. O Google paga uma certa quantia anúncio clicado através de uma busca feita pelo Google Toolbar no Safari, então desenvolver o Safari certamente não é um custo.

Para a Adobe, uma versão do Safari para Windows é ótimo! Muito mais pessoas estarão aptas a desenvolver aplicativos compaptíveis com o WebKit, e portanto compatíveis com o Adobe AIR e com o iPhone.

E mais ainda, a Adobe também contribuiu para a Mozilla o projeto Tamarin, que em um futuro próximo deve incrementar ainda mais o JavaScript e aplicativos escritos em AJAX. Fico pensando como seria interessante se o Tamarin também fosse integrado ao WebKit (e eles já cogitaram isso!), afinal por enquanto as aplicações para iPhone serão via Safari, mas sinto cheiro que em breve teremos algo em Flash no dito cujo.


Matemática dos fumantes

Na revista Veja São Paulo desta semana a reportagem de capa é sobre leis anti-tabagismo. Na caixa que compara a legislação paulistana com as de outras grandes cidades, há uma frase que me chamou atenção.

Apesar de 22% da população ser de fumantes, oito em cada dez italianos aprovam a lei [anti-fumo].

A frase é construída de modo a enganar o leitor, e parecer que a maioria dos fumantes é a favor da lei. Ué… mas se 22% é fumante e 80% da população (e até podemos desconsiderar a margem de erro da pesquisa, que teoricamente tornaria os dois valores precisamente complementares) aprova uma lei contra o fumo em ambientes públicos, qual é a grande surpresa do “apesar”?


Frase do dia: POG on demand

gambiarra_on_demand.png

Um programador me enviou essa tela acima e ele próprio sugeriu como frase do dia para o CFGigolô (sim, leitores participando do conteúdo por aqui!). A história é que o programador do backend cada hora montava o XML de um modo (e usava ótimos nomes como “pizza1”, “pizza2” como nós do XML), e o programador que enviou a tela era obrigado a fazer remendos e mais remendos.


Adobe Flex 3 Beta Público

Acabou de entrar no Adobe Labs o beta público do Adobe Flex 3. Há também uma página explicando as principais novidades.

Junto a isso também foi anunciado o nome oficial do Apollo, que agora é AIR, Adobe Integrated Runtime, que além de já ser a extensão dos projetos criados com a tecnologia, é “RIA” (Rich Internet Applications) ao contrário.


Resenha Peopleware: Productive Projects and Teams

Peopleware: Productive Projects and Teams é um livro e tanto. Eu já havia ouvido ótimas recomendações sobre o livro e estou aqui para confirmar sua qualidade. O título já dá pistas sobre o mote principal do livro: times e projetos produtivos, mas adivinhe só de qual indústria o livro trata: da indústria de fábrica de softwares. E fábricas de softwares são feitas de que? Enganam-se os que dizem tecnologias de ponta e de linguagens de programação.

As palavras em inglês que possuem o sufixo “ware” são de três tipos: as que definem um tipo de licença de um programa de computador (por exemplo: freeware), as que agrupam elementos por sua função (spyware ou tupperware, por exemplo) e as que definem a composição de um determinado elemento (exemplo: glassware).

Peopleware é um termo do terceiro tipo, de elementos que são feitos de pessoas. E não por acaso o livro tem esse nome, afinal uma das, se não a principal mensagem do livro é de que fábricas de softwares e seus projetos são feitas de pessoas, e este é o elemento mais importante da construção de um software. Sempre.

Você conhece muitos programadores que trabalham escutando música com fones de ouvido? E eles trabalham assim para se defenderem do barulho do escritório? Bem, o lado do cérebro que escuta música é o mesmo lado capaz de ser criativo, então se as pessoas são obrigadas a trabalhar escutando música para terem um pouco mais de sossego, é presumível o que acontece com as atividades que demandam criatividade.

No livro essa e outras situações recorrentes em ambientes de desenvolvimento são abordadas, do início de um projeto, em sua estimativa de prazo, até o famigerado e recorrente “overtime” para viabilizar a entrega na data estimada.

Logo no começo os autores provam que a maioria dos problemas de nosso trabalho não é de natureza tecnológica, e sim de natureza sociológica. Ter a última tecnologia ou bugs em sua linguagem de programação não são páreos para problemas de comunicação, falta de motivação ou desentendimentos.

Desenvolvedores podem e devem ler este livro, não apenas para se informar, mas também para criar a consciência que podem ser agentes de mudança na empresa. Se você é um gerente (e principalmente se passa a maior parte do tempo cobrando as pessoas ao invés de ajudá-las a fazer o trabalho), leia o livro – pelo menos duas vezes – e faça algo a respeito, pelo bem dos que trabalham com você, e naturalmente para seu próprio bem.


Conto do Consultor Invisível

João é um analista de sistemas e trabalha em uma grande empresa. Ele não tem um escritório, não tem um telefone fixo e não conhece muitos colegas da sua empresa. Ossos do ofício, afinal ele é um consultor móvel. De vez enquanto está na sede da empresa, fazendo atividades burocráticas, e depois passa meses sem ir lá, passando longas temporadas em clientes.

João é uma peça de quebra-cabeça intercambiável, uma carta coringa que pode ser encaixada e desencaixada em um jogo de baralho. João é visto simplesmente como um recurso. Um recurso humano.

Uma linha na folha de pagamento, uma vaga na garagem, um crachá pelas empresas que passa. Muitas vezes ele figura em cronogramas, junto com outros elementos de mesma natureza modular carinhosamente chamados de “recursos”: tempo, dinheiro, e João. Ah, os gerentes de projetos não vivem sem eles!

Por onde João passa ele deixa sua marca. Ele adora seu trabalho e sempre o faz com muito empenho e profissionalismo. Ao final do projeto as pessoas lamentam a partida de João para outra jornada rumo ao desconhecido, pois todos admiram seu trabalho.

Mas certa vez ocorreu diferente. Recentemente João foi desplugado de onde estava trabalhando e alocado em um outro cliente. No dia e hora marcados João chega sorridente e de barba feita ao seu novo cliente, sua nova estadia matutina.

Apresentou-se na recepção e pediu para falar com o Gerente de Tecnologia, o seu contato. A Recepcionista pediu para ele sentar-se na sala de espera, e poucos minutos depois o informou que ele não estava. “Ué…” – espantou-se João, certo que hoje era o dia marcado. Pediu então para falar com o Assistente do Gerente do TI, seu outro contato na empresa. Alguns minutos depois a Recepcionista volta e diz: “Lamento, mas ele também não está”. “Oras bolas!”, pensou João. Ele explicou sua situação à compreensiva recepcionista que foi fazer mais algumas ligações para tentar ajudar.

Certo tempo depois apareceu um rapaz (que nesta história não tem cargo nem nome pois não se apresentou ao João!), pediu para João acompanha-lo, apresentou sua mesa, certificou-se que a Internet estava funcionando e foi embora. João checou seus e-mails, leu o jornal, e nada de alguém aparecer. Imaginem a angústia de João, coitado, que só queria trabalhar!

Ao final da tarde João viu o Gerente de Tecnologia e o Assistente pelas bandas do escritório, mas não foram falar com ele. No dia seguinte, a mesma coisa: passavam por João mas não falavam com ele. Sempre pedia para a gentil Recepcionista comunicar sua chegada, mas nada. E assim foi por dias! João, que só queria mostrar seu bom trabalho, estava fadado ao isolamento de sua mesa!

Certo dia, cansado de ser ignorado, ao chegar ao escritório João ligou seu notebook, tirou os sapatos, sacou e acendeu belo charuto cubano da região de Vuelva Abajo. Calmamente colocou os pés sobre a mesa e começou a degusta-lo. Mais parecia uma chaminé, baforando fétidas bolas de fumaça pelo escritório. “Quem é esse louco?” perguntavam os que durante os últimos dias sentaram próximos de João e nunca tinha notado o consultor. “Hei meu chapa, apaga isso aí, pô!” polidamente pediam.

Não demorou muito até que o esbaforido Gerente de Tecnologia chegou e começou a criticar o ato, pedindo para João parar, que eu estava desperdiçando tempo de trabalho, que aquilo era uma afronta aos bons costumes e totalmente inadequado para o ambiente corporativo!

“Afronta aos bons costumes..” – João começou – “é ninguém ter me apresentado por aqui. Desperdício..” – e lá se foi mais uma baforada – “é você ter pago uma fortuna para eu estar aqui e não ter vindo falar comigo. E inadequado é você, que me ignorou durante as últimas semanas, ser considerado Gerente. Oras bolas, eu precisei fumar um charuto no seu escritório para você me dar atenção!”

Moral da história: Profissionais de Tecnologia da Informação vão todo o dia com seu corpo para o escritório e inevitavelmente levam seu cérebro consigo. Fazê-los usar o cérebro (sem nenhum custo adicional) é responsabilidade sua.


Lista de Design de Interação

Estava pesquisando sites e artigos sobre design de interação em português quando me deparei com um antiga proposta de criar uma lista de discussão em português sobre design de interação, tal como a IxDA (em inglês), mas que pelo visto ainda não tinha vingado. Mandei um e-mail para o autor da proposta (o “doido” por trás do Usabilidoido) para uma retomada da idéia e ele prontamente criou a lista:

DesInterac é uma lista de discussão que agrega a comunidade de profissionais atuantes e interessados na área de Design de Interação, que abrange o projeto de artefatos interativos como softwares para PCs, dispositivos móveis, eletro-eletrônicos e etc.

A tecnologia é simplesmente um meio, não o fim. Não basta usarmos uma tecnologia mais moderna e acharmos que estamos construindo algo melhor. Ajax, Flex, WPF e outras tecnologias que possibilitam a criação de aplicativo mais interativo, mas a tecnologia por si só não é o bastante. O que podemos construir e oferecer com estas tecnologias?

Veja nessa lista um bom lugar para deixarmos as linguagens de programação um pouco de lado e focarmos mais na interação e experiência que oferecemos em nossos softwares.


A Experiência do Usuário no desenvolvimento de Sistemas

Evolução das Aplicações

Há muito tempo atrás havia um cargo em informática que hoje não existe mais: operador de computador. Com os Mainframes, além da interface (riqueza) ser puramente em texto, o acesso aos aplicativos era local (alcance), de modo que o usuários tique que ir até a máquina para usar o aplicativos.

Aproximadamente em 1992, com o advento do Microsoft Windows, foi possível construir interfaces mais ricas, utilizando controles mais intuitivos e multimídia, mas ainda havia restrição no acesso ao aplicativo, inclusive pela instalação e manutenção dos mesmos nos computadores do escritório.

A ascensão da Web proporcionou ao final da década de 90 um maior alcance para os aplicativos – que podiam estar disponíveis em qualquer lugar do mundo, a qualquer hora – mas para isso foi necessário um regresso em termos de riqueza. Para os aplicativos estarem disponíveis na Web era imperativo o uso do HTML que não foi concebido para disponibilizar aplicativos (os componentes de formulário nem estavam presentes na primeira versão do HTML), e sim para apresentar e interligar documentos, e é isso que o “HT” do acrônimo quer dizer: Hypertexto.

O melhor dos dois mundos são os aplicativos ricos para internet (ou Rich Internet Applications no inglês), que buscam juntar interatividade e interfaces intuitivas dos aplicativos tradicionais e o alcance possibilitado pela Internet.

evolucao_aplicativos.jpg

Tendência

Depois de anos de investimentos e muita importância dada à infraestrutura, a consolidação de plataformas como J2EE e .NET tem estabelecido padrões para a construção de aplicativos corporativos juntamente com arquiteturas orientadas à serviços, de modo que o back-end de nossos aplicativos está bem amadurecido.

Ao mesmo tempo, torna-se evidente a importância que se tem dado à interação do usuário com o aplicativo. Cada vez mais é possível ler e ouvir pessoas falando sobre usabilidade, design centrado no usuário e outros conceitos, bem como o aparecimento de tecnologias como AJAX, Adobe Flex e Microsoft Silverlight vêm para mostrar que o HTML, por si só, não é capaz de criar experiências mais ricas e intuitivas para os usuários de aplicativos web.

tendencia_frontend_backend.jpg

Benefícios

E afinal de contas, é um tanto quanto óbvio por que devemos dar mais importância para a interface de nossos aplicativos: é com ela que os usuários interagem. Eles não interessados com qual linguagem de programação foi feito, se o framework “x” ou “y” foi utilizado… Eles querem conseguir utilizar o aplicativo e que ele ajude-os a fazer o que eles querem fazer.

A velocidade e foco na tarefa irão facilitar o usuário a, por exemplo, finalizar a sua transação de compra. Com um sistema mais fácil de utilizar, certamente os usuários enfrentarão menos erros e o custo de suporte será menor. Um relatório pode ser apresentado de forma mais intuitiva para facilitar a visualização e compreensão de informações complexas.

Em 1999, após uma determinada reformulação do site da IBM, a página de ajuda foi acessada 84% menos e as vendas aumentaram em 400%. Em 2000 as vendas online no site da Dell aumentaram mais de 300% após a aplicação de princípios de usabilidade em sua loja online. Após uma mudança na navegação em um gerenciador de banco de dados da Oracle, os administradores de banco de dados conseguiam realizar suas tarefas 20% mais rápido. Durante as primeiras semanas do Microsoft Office 2007 (que conta com uma interface totalmente nova) foram vendidas pelo menos o dobro de unidades do que no lançamento da versão anterior. Mais de 100 milhões de iPods já foram vendidos.

Pausa para o cafézinho

xicara_cafe.jpgPor que pagamos R$ 3,00 por uma xícara de café no Fran’s Café? Quando vamos tomar um café em um local como estes, não estamos interessados – e consumindo – apenas o café. A localização é conveniente, o ambiente agradável, as revistas da semana, iluminação adequada, as opções… Tudo feito para que tenhamos uma boa experiência e satisfação em estar ali. É a experiência que tivermos por lá que nos fará ter desejo em voltar a estar lá.

O Gmail forçou uma revolução nos serviços de e-mail gratuitos. O Orkut mudou a forma como as pessoas se relacionavam na web. Mais e mais pessoas pediam convites para ter acesso à estes sistemas. Hoje iPods não são apenas tocadores de música. Viraram objetos de desejo!

E softwares podem ser assim, por que não? Muitos usuários utilizam softwares porque é o único meio – e não o melhor – que eles tem para ter realizar algo, ou até mesmo porque é o único modo que tal atividade pode ser realizada.

Podemos e devemos construir softwares que atendam com plenitude o que os usuários precisam, oferecendo uma experiência positiva no tocante à todos os aspectos (facilidade, design, requisitos, etc) mas só seremos capazes disso quando nos perguntarmos como os usuários irão utilizar determinado aplicativo de fato – e não acharmos que sabemos.

Isto é Experiência do Usuário: a qualidade e satisfação em alguém tem em interagir com o desenho de algum produto, serviço ou sistema. A Forrester Research define que o “Sucesso de um negócio é definido pela qualidade da experiência antes, durante e depois de uma transação”. É o usuário. É ele que importa.

Design e User Experience

Um usuário interage com um sistema (software ou website por exemplo) que oferece funcionalidades expostas através de um design. O usuário tem seus objetivos que podem ser alcançados de acordo com a interação com as funcionalidades, e o design pode facilitar esta interação. De acordo com as expectativas uma experiência final, positiva ou negativa, será formada e determinará a satisfação final dele, sua intenção de retorno e divulgação (boa ou má) de seu produto ou serviço.

Lembre-se: perder um consumidor é muito mais caro do que perder apenas uma venda.

Dizem que você deve trabalhar com o que você gosta, e o sucesso virá naturalmente por seus estudos e dedicação. Os produtos, websites e aplicativos que citei focam na experiência do usuário. O retorno veio por consequência.

Atualização Este artigo também foi publicado no WebInsider: Experiência do Usuário na criação de softwares