tendências em foco _coluna Desenhando apps: simplicidade é a palavra-chave Tenho meu lado acadêmico, mas infelizmente, as inúmeras viagens e compromissos pessoais me impedem de voltar a dar aulas, como o fiz na FGV-RJ e no MBI do NCE/UFRJ há vários anos. Mas sempre que posso estou palestrando em universidades. E um dia desses, após uma destas palestras, estava conversando com um professor de um curso de Ciências da Computação e entramos em um assunto interessante: o modelo de desenvolvimento de sistemas, voltado para aplicações complexas e abragentes, típicas do modelo cliente-servidor se aplica ao design de apps móveis? Concluimos que as apps demandam um novo modelo de projeto e acho que vale a pena expor nossos argumentos aqui para validarmos com vocês. A característica mais marcante de uma app é sua objetividade. Ela tem uma função específica e se atém a ela. É o exemplo prático do conceito de minimalismo em software. Definitivamente, é completamente diferente de um ERP ou aplicação que vemos hoje no modelo cliente-servidor onde inúmeras funções são executadas pela aplicação. A app executa uma única função e deve fazê-la bem. Apenas isso. E nos leva a repensar um pouco os princípios do desenho de sistemas. Nos acostumamos a pensar de forma abrangente e so- mos treinados para criar aplicações complexas. Nossas práticas e métodos de desenho de sistemas são aderentes à complexidade e portanto são também complexos. Tanto é assim que nos últimos anos, devido à velocidade com que TI deve responder às demandas dos negócios surgiram novas propostas que dessem mais agilidade ao processo, como o “Agile Development”. Bem, falando em simplicidade, vejam este filme do TED, de 2007, onde John Maeda, que escreveu o livro “Laws of Simplicity”, fala sobre simplicidade: http://www.ted.com/talks/ john_maeda_on_the_simple_life. html . Os softwares atuais embutem tantas funcionalidades que não usamos a maior parte delas. Um exemplo? Peguem o Word e vejam quanto de suas funções são realmente usadas. Um estudo da própria Microsoft em 2006 mostrou que cinco comandos (paste, save, copy, undo e bold) correspondiam a 32% de todos os comandos usados. Eu pesssoalmente uso pouco mais que meia dúzia de comandos no meu dia-a-dia e apenas de vez e quando uso algo mais sofisticado. Afinal escrever um texto que 61 \ vai para um blog não demanda nenhuma sofisticação artística do editor de textos, apenas conteúdo que tenha algum valor. Um ERP também é uma peça de software extremamente complexa. Precisamos de cursos de várias semanas para saber usá-los. Claro, a proposta deles é integrar todos os processos de negócios, o que indiscutivelmente traz inúmeros benefícios para as empresas. Mas, em smartphones precisamos integrar todos os processos ou podemos pensar de forma diferente, olhando funções específicas e criando um app que seja ótimo para satisfazer esta única e determinada função? Vamos exemplificar a ideia. No meu Android instalei um software chamado Camera360. O que ele faz? Tira fotos, claro, mas permite criar efeitos especiais simples, porém interessantes. Obviamente não é uma ferramenta profissional, mas atende a imensa maioria das pessoas que, como eu, gosta de tirar uma foto e criar um efeito especial divertido. Just for fun...E você não precisa de nenhum manual para usá-lo. Isto é simplicidade. Outro aspecto interessante das apps é que ao contrário das aplicações tradicionais, onde você tem um road map que mostra suas novas funcionalidades no futuro, aumentando, em consequência, a complexidade, pois muitas destas funcionalidades têm pouco a ver com a proposta inicial do softwa- re, elas devem conservar a simplicidade. Ou seja, voltando ao Camera360 ele adiciona, a cada nova versão, alguns novos efeitos, mas mantêm-se fiel a sua proposta de ser unicamente um software para tirar fotos. A resultante? Uma app só tem versão 1. As evoluções são ajustes finos, melhorias de performance e correções de bugs que não alteram o objetivo básico do software. Comparem com um Office, por exemplo, e vejam as diferenças em novas funcionalidades entre a versão que veio com o XP e a 2007. E quantas destas novas funcionalidades usamos realmente no nosso dia-a-dia? A conversa girou sobre estes assuntos e concluímos que as apps precisam ser realmente simples. Primeiro porque muitas têm vida curta. Se olharmos o que baixamos para nossos smartphones, vemos que usamos no nosso dia-a-dia poucas apps. Como muitas são gratuitas, fazemos o download por impulso e as usamos uma ou duas vezes. Depois as deixamos de lado e às vezes as desinstalamos. É provavel que tenhamos umas 60 a 80 apps em nossos smartphones, mas usamos constantemente apenas uma meia dúzia. Outra meia dúzia usamos eventualmente e as outras estão lá porque simplesmente não as desinstalamos. Além disso, as telas são pequenas e colocar muita coisa nelas desestimula seu uso. Diferente do paradigma cliente-servidor, onde aproveitávamos as telas grandes do PC para criar uma infinidade de abas e ícones para as aplicações. Outro desafio é que a experiência do usuário deve ser bastante similar, qualquer que seja o hardware que ele usa. Assim o princípio do menor denominador comum deve ser aplicado ao projeto de apps. Evitar ou não o uso de alguma funcionalidade que apenas um smartphone específico implementa deve ser bem balanceado pelo projetista. Enfim, as apps representam uma nova maneira de ver o desenvolvimento de software. Se quisermos explorar este potencial para o ambiente corporativo, devemos ter em mente que elas terão que observar o princípio da simplicidade, que para nós, que paradoxo, é complexo de observar. Os sistemas abrangentes e integrados estarão na retaguarda, abrindo suas funcionalidades via arquitetura baseada em serviços (olhem o SOA) e APIs para explorarmos estes serviços. Mas, na ponta, as apps, devem ser desenhadas para aproveitar apenas o essencial de cada serviço. Elas não devem ser projetadas para serem novos ERPS, olhando processos integrados, mas devem ser escritas para criarem uma nova experiência do usuário para uma única, simples, mas útil atividade de negócios. Cezar Taurion | [email protected] | www.ibm.com/developerworks/blogs/page/ctaurion Formado em Economia e Ciências da Computação, atualmente gerente de Novas Tecnologias Aplicadas da IBM Brasil. Também pode ser encontrado no Twitter, em @ctaurion. / 62