Dev (Back & Front)ARTIGO

Simplicidade: palavra-chave das apps móveis

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á varios anos atrás. 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, tipicas do modelo cliente-servidor, se aplica ao design de apps móveis? Concluímos 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 um 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 isso nos leva a repensar um pouco os princípios do desenho de sistemas. Estamos acostumados a pensar de forma abrangente e somos 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 ultimos anos, devido a velocidade com que a 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.

Os softwares atuais embutem tantas funcionalidades e nós 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 duzia de comandos no meu dia a dia. Afinal, escrever um texto que 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 como usá-los. Claro, a proposta deles é integrar todos os processos de negócios, o que indiscutivelmente traz inúmeros beneficios 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, eu instalei um software chamado Camera360. O que ele faz? Tira fotos e permite criar efeitos especiais simples, mas interessantes. Obviamente não é uma ferramenta profissional, mas atende a imensa maioria das pessoas que, como eu, gostam de tirar uma foto e criar um efeito especial divertido. Uma questão de diversão! E você não precisa de nenhum manual para usá-lo. Isto é simplicidade.

Outro aspecto interssante 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 consequencia, a complexidade pois muitas destas funcionalidades tem pouco a ver com a proposta inicial do software -, elas devem conservar a simplicidade. Ou seja, voltando ao Camera360: ele adiciona, a cada nova versão, alguns novos efeitos, mas se mantem fiel a sua proposta de ser unicamente um software para tirar fotos. A resultante? Uma app só tem versao 1. As evoluções são ajustes finos, melhorias de performance e correções de bugs que não alteram o objetivo basico 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 tem vida curta. Se olharmos o que baixamos para nossos smartphones, veremos 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 as vezes as desinstalamos. É provavel que tenhamos umas 60 a 80 apps em nossos smartphones, mas usamos constantemente apenas uma meia duzia. Outra meia duzia 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 aproveitavamos 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 principio do menor denominador comum deve ser aplicado ao projeto de apps. Evitar ou não o uso de alguma funcionalidade que apenas um smartphone especifico 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.

É CEO da Litteris Consulting. Profissional e estudioso de Tecnologia da Informação desde fins da década de 70, com educação formal diversificada, em Economia, mestrado em Ciência da Computação e MBA em Marketing de Serviços, e experiência profissional moldada pela passagem em empresas de porte mundial. Escreve constantemente sobre tecnologia da informação em publicações especializadas como CIO Magazine, Mundo Java, além do iMasters, e apresenta palestras em eventos e conferências de renome. É autor de sete livros que abordam assuntos como Software Livre, Grid Computing, Software Embarcado, Cloud Computing e Big data.

Ver perfil