Bom, na história da computação já existe uma discussão bem forte sobre essa questão da interface. Normalmente ela é colocada como se fosse o lado mole da computação, o lado onde normalmente também trabalham uma parte das mulheres na computação. Então é uma área meio segregada, digamos assim. Tem vários termos que foram sendo atribuídos para descrever essa interface. No começo era interface homem-máquina. Quer dizer, no começo mesmo não tinha esse nome interface, né? Só existiam os engenheiros que construíam os computadores, eles mesmos operavam o computador, não precisava de uma segunda pessoa. Então a noção de interface não era tão importante naquela época. Quando começam a vir pessoas diferentes dos engenheiros para usar o computador e precisa adaptar esse computador para ser fácil de usar para uma pessoa que não entende como o computador funciona, surge essa área de interface homem-máquina, que depois acaba sendo transformada em interface humano-computador e mais recentemente essa área se chama interação humano-computador. Mas o termo que é mais utilizado no mercado é graphic user interface, ou GUI, ou interface gráfica do usuário, ou de maneira bem simples interface do usuário. Então eu quero questionar um pouco essas denominações, você até propô-la de uma maneira diferente de ver isso. Bom, a gente tem um marco muito forte na história das interfaces gráficas do usuário com o lançamento do Macintosh OS 1.0 em 1984. Já existia, porém, o Macintosh consolidou a abordagem WIMP, Windows Icons Menus and Pointers. Isso é, digamos assim, a base estrutural da maior parte das interfaces de usuário que a gente usa hoje em dia. A não ser aqueles iniciados na magia negra do prompt de comando, que utilizam os comandos UNIX fluentemente, a maior parte das nossas interações com computador, até mesmo dos engenheiros, hoje em dia é feita através de WIMP. Só que esse WIMP foi feito há muitos anos, ele foi criado na verdade em 1972 e até hoje ainda é um paradigma de interfaces. Várias tentativas foram feitas para superar, para criar uma interface melhor, mas elas falharam. Inclusive, a tentativa mais ousada que eu considero desses últimos 30 anos é o Windows Metro. No Windows 8 a Microsoft resolveu revolucionar a maneira como ela exibia a página inicial do Windows, quando se abria o computador, e ao invés de só mostrar uma lista de ícones, ela começou a mostrar conteúdo no lugar dos ícones. Então, alguns ícones aqui são ícones normais, por exemplo, Internet Exploria, outros ícones contém um conteúdo já junto, associado. Ele traz um widget, ele se torna um widget na verdade. Então, aqui tem uma mistura de ícones com widgets, com conteúdo, com divisão da tela por regiões e também uma interação rápida sem abrir um programa. Quem teve a oportunidade de experimentar, às vezes quando você clica no meio, você não abre o programa de email, você já abre uma tela para mandar um email para alguém. Essa interface foi sumariamente rejeitada pela maioria dos usuários. Ela quebrou um paradigma e a Microsoft teve que voltar atrás e colocar-se como opção do Windows. Na verdade, a Microsoft nunca bateu o pé e falou "essa vai ser a nova interface", porque sempre tinha como você dar um skip nessa tela do Metro e ir para a tela tradicional com o menu iniciar e tal. Quer dizer, a Microsoft tentou fazer um experimento para ver o que dava e no final das contas acabou retrocedendo. Eu acho que foi uma pena, porque na minha visão essa interface tinha mais futuro do que tem o Wimpy. Porém, ainda a Microsoft continua desenvolvendo ela, como eu falei, de uma maneira um pouco mais secundária. No Xbox, eu acho que essa interface Metro atingiu já uma produtividade muito grande. E eu imagino que isso vai voltar para o Windows futuramente, quando eles estiverem mais estáveis. A Apple também continuou tentando superar o paradigma Wimpy. Eu acho que o grande salto foi o iOS. O iOS, embora não tenha janelas Windows, ele tem e não tem menus, bom, tem alguns menus, mas não seja muito preminente, ela tinha muito ícone. E por muitos anos a Apple tentou se estabelecer como um novo paradigma de interação e especulava-se que o MacOS iria se tornar parecido com o iOS, em estilo de interação. Só ícones, programas abertos pela cheia, senhas múltiplas janelas, múltiplos gestos, só que isso se tornou bastante improdutivo, a ideia de você esconder as pastas, e as pessoas começaram a pedir coisas que tinha no MacOS. Então, a última versão do iOS já lança alguns paradigmas muito parecidos com o Wimpy, quer dizer, implementa o resto do Wimpy que faltava no iPad. No iPhone ainda não, mas o iPad já tem pasta, já tem drag and drop, já tem menus, então já está muito parecido, quer dizer, a Apple se rendeu. Por que as interfaces humanos no computador estão estagnadas? Eu tenho uma teoria, com base na minha pesquisa, de que existem preconceitos que estão sendo cultivados na computação. O que seria um preconceito? Funk não é música, é um exemplo. É um preconceito que é cultivado a partir de um conceito de música de alta cultura, isso é música, e música de baixa cultura, isto não é música. Isso é um conceito de música, é um conceito que foi criado lá no século XVII, quando surge a música clássica, e a música popular que era tocada pelos, enfim, o povo nos bares e tal, foi considerada uma música inferior. Então essa música não é interessante, essa música não é tão boa, não é tão rica quanto aquela que é tocada nas cortes, nos teatros da realeza. E esse conceito de música, curiosamente, ainda é mantido até hoje, música clássica, superior, a música baixa. Não, na verdade, muitas pessoas consideram que o rock, por exemplo, foi uma quebra nisso, demonstrando que o rock também era música, também não era música clássica erudita, mas era uma música, e tinha muita possibilidade de você ser virtuoso com o rock. Então, quando as pessoas vão lá e falam funk na música, elas estão recuperando um conceito que elas já nem sabem mais o que significa, que é essa história da diferença entre a alta cultura e baixa cultura que existia no século XVII. Por que é um preconceito? Porque as pessoas não pensam no conceito, elas tomam aquele conceito sem pensar o que ele significa, isso é preconceito. É um conceito prévio que você não conhece, mas você utiliza para excluir alguém, por exemplo, nesse caso a música dos negros das favelas cariocas. Vamos aos preconceitos que eu identifiquei observando a história da computação. Tem um filme muito interessante chamado "Estrelas Além do Tempo", que conta a história de três mulheres que foram precursoras da programação de computadores trabalhando na NASA. Alguém já assistiu? "Hidden Figures", em inglês. É um filme maravilhoso, recomendo vocês assistirem porque a história da computação está aqui. Mostra a transição da NASA na época em que todos os cálculos eram feitos manualmente para a automatização com computadores. E o papel das mulheres é fundamental em fazer essa transição. Então antes de existirem computadores na NASA, eles chamavam essas mulheres que faziam os cálculos computacionais na mão de computadores. A palavra "computer" era uma palavra usada para um funcionário, ou melhor, uma funcionária, que uma parte das vezes eram mulheres que faziam esse trabalho porque era um trabalho muito desumano você fazer os cálculos manualmente. Quem fazia as estratégias, bolava o projeto, era os homens, e as mulheres é que faziam os cálculos manuais. Então quando começa a surgir a máquina de computar, eles começam a chamar de computador porque substitui o trabalho dessas mulheres. E no filme mostra que essas mulheres foram as primeiras a descobrir como programar esses computadores para as funções, para as necessidades da NASA. E aí surge a partir dessa relação de transferência de um cargo, de uma função para uma máquina, o preconceito de que o computador não é humano. Então o computador desde o princípio começa a se conceitualizar que ele não é humano. Por quê? Porque o trabalho que ele faz é desumano. Ninguém quer fazer manualmente aquilo ali, a não ser as mulheres que faziam nessa época e recebiam salários menores, não recebiam reconhecimento pelo trabalho delas. Inclusive o filme mostra claramente essa mulher que acho que é uma protagonista do filme, colocando o nome dela como autora de um artigo científico sobre as descobertas que tinham sido feitas com o cálculo e constantemente o colega dela, que era o supervisor homem, tirando o nome dela da autoria, porque ele diz assim "computadores não são autores". E isso continua hoje em dia, né? A gente continua acreditando que o computador não é um autor, né? Mas eu acho que é, só que não é o computador que é o autor, é a pessoa que está por trás do computador. Isso que a gente vai discutir. Então na minha visão o computador ele é humano, só que ele é humano tanto quanto a pessoa que criou aquele computador. Vamos continuar, então, outro preconceito, distinção entre grupos humanos. Alguns humanos são considerados mais humanos ou mais do que humanos. Então você tem a mulher, essa chargizinha que mostra a mulher percebendo uma gama de cores muito maior do que um homem e o programador vendo todas essas cores como códigos. Então o programador ele é mais que humano, mais que uma mulher. Então aqui já tem uma visão de gênero de que o homem não tem a necessidade de identificar cores, a mulher tem, então por isso a mulher é responsável por isso, por esse lado mais de estética, de beleza. O homem é o ignorante mesmo, então não precisa dar opinião sobre isso. O programador ele tem que ver o código, ele não tem que ver a beleza. Então aqui você já tem uma divisão entre grupos humanos, pessoas que têm capacidades diferentes das outras e muitas vezes baseado em um estereótipo e não numa versão real daquela pessoa. Então você parte do princípio, se ela é mulher, ela vê mais cores do que um homem, mas não é sempre assim, né? A gente sabe e nem todos os programadores também têm essa capacidade de identificar códigos de cores só por olhar para a cor. Então esse é um preconceito de que o programador tem habilidades sobre humanas ou que a mulher tem habilidades maiores que o homem ou que o homem tem habilidades inferiores a mulher. Tudo preconceito. Terceiro preconceito surge da divisão social do computador. Algumas pessoas programam, outras pessoas não programam, apenas usam. E a vida de programador, essa tirinha famosa da internet, sempre tem alguma história ou outra que deixa claro isso, né? Então você tem aqui uma usuária, mulher, o que é esse monte de texto estranho aí na nossa tela? Aí o programador responde "Isso é código fonte, é isso que cria o programa e faz funcionar do jeito que eu quero". Aí a mulher responde "Ah, então deve ser por isso que sempre eu vi um texto assim e apagava, pensando que era lixo. O programa dava erro e tinha que chamar o suporte". O programador cai para trás assustado, enfim, não sei. O que acontece aqui? De novo, preconceito. Quem é usuário? Mulher. Quem é programador? Homem. Tudo bem, pode ser que a maior parte dos programadores sejam homens, mas não, não tenho certeza que a maior parte dos usuários não é mulher. Aqui está se representando o papel de uma mulher que não sabe muito bem o que é programar, que cometeu uma ação um tanto quanto ruim para ela, por conta da ignorância. Então aqui você tem uma divisão até sexual do computar, as mulheres não sabem computar, então elas são ignorantes, então elas fazem besteira de deletar o código fonte. Isso aqui talvez seja um dos principais problemas do distanciamento da computação do resto da sociedade e de alguns problemas mais graves do que esse, que eu vou mostrar daqui a pouco. Preconceito 4, de respeito à individualização de problemas sociais. Está muito atrelado ao preconceito 3. Quando você percebe que uma pessoa está sendo, por exemplo, machista com a outra, um homem está sendo machista com a mulher, você fala "você é machista", mas o problema não é esse. O problema não é aquela pessoa sendo machista, o problema é a sociedade sendo machista. Esse é o verdadeiro problema. E muitas vezes o homem não consegue evitar isso porque está acostumado, porque a sociedade o treinou para ser machista. Então quando você individualiza um problema social, você coloca o peso nas costas daquela pessoa que está sendo acusada, quando na verdade ela está simplesmente fazendo o que é normal, mas muitas vezes não é dito. Então quando você, desenvolvedor, é chamado de preguiçoso por não ter feito uma interface bem feita, com vários mecanismos de prevenção de erros, você é chamado de preguiçoso. Ou o usuário, quando faz uma coisa errada na interface, "ah, o usuário é burro, o usuário se tivesse extensão seria ponto FDP". Esse tipo de piadinha que tem na TI reflete essa visão de que o problema está na pecinha que está sentada na frente do computador. Esse é o problema. É uma pessoa só. Não, o problema não é de uma pessoa específica, é do grupo social. A diferença entre como a gente na sociedade construiu a nossa relação do computador. De que algumas pessoas são especialistas, algumas pessoas fazem faculdade, fazem estudam, fazem mestrado, doutorado e outras não. Nem sabem como funciona o computador, mas no entanto boa parte das pessoas que hoje trabalham com trabalhos intelectuais só tem que usar o computador no seu dia a dia. Isso é uma decisão da sociedade. Por que a gente não ensina todo mundo a programar? Então, na verdade, existe um movimento hoje muito forte, crescendo, principalmente nos Estados Unidos, de ensinar todo mundo a programar. Na Apple, por exemplo, um dos motos da Apple hoje é "Everyone can code", e a Apple Developer Academy faz parte desse programa. Que todo mundo deveria aprender a programar porque o computador é uma mídia que a gente usa no dia a dia. Se você não entende como essa mídia é feita, você, possivelmente, será vítima de manipulação para essa mídia. É uma das maneiras de você justificar por que todo mundo tem que aprender a computar. Então, esse problema é um problema social, não é um problema individual, não é um desenvolvedor que é maldoso com os usuários, que odeia os usuários. Não é isso. É que simplesmente na posição dele da sociedade não se espera isso dele, não se espera que ele se preocupe com o usuário. O quinto preconceito é a normalização estatística do indivíduo. Quando você fala de usuário, "ah, não, vamos ver as estatísticas". Então, vamos ver qual que é a média dos nossos usuários. Ah, 27% deles são europeus, 28% asiáticos, 30% deles tem, como é que eu nome isso aqui, sardas, 37% usa óculos. Como é que se vai projetar uma interface para uma pessoa tão mediana assim? É difícil, né? Essas pessoas não existem. Não existe uma pessoa que tenha 37% de um óculos, que tenha só um pedaço do óculos. Só que é assim que normalmente os projetos orientados à estatística são feitos. A crença do usuário médio. Então, "ah, por que fazer uma... nosso usuário médio, ele gosta de tal coisa". Muita gente que fala isso, às vezes, no mercado de ter... "não, mas a média dos nossos usuários prefere assim, prefere assado". Isso aqui é um preconceito, porque o usuário médio não existe. Ele só existe enquanto uma abstração estatística. Mas na prática mesmo, você nunca vai encontrar uma pessoa com todas essas características do usuário médio. Então, mais um preconceito. Uma das maneiras alternativas de lidar com os usuários é você ter grupos variados para diferentes tipos de usuários. E o último preconceito que eu identifico é a redução de conhecimento do que é... ao que é computável. Então, só é conhecimento aquilo que você consegue computar, transformar em dados. Aquilo que não consegue transformar em dados não é conhecimento. Então, imagine toda a tradição de conhecimento das comunidades indígenas brasileiras que não conseguem ser transformadas numa base de dados. Você não consegue descrever em números, descrever em fórmulas, descrever em algoritmos. Os índios já perceberam isso. E muitas comunidades indígenas estão adotando tecnologia da informação para registrar os seus conhecimentos. Aí eles estão criando, eles próprios, maneiras de fazer isso. Por exemplo, foto, vídeo, jogos. Tem algumas comunidades que fazem jogos, fazem vários tipos de expressões para não perder essa cultura. Para essa cultura não se perder, uma vez que hoje cada vez mais a cultura que se mantém é aquela que utiliza tecnologias digitais para a sua permanência. Porém, esses indígenas muitas vezes são vítimas de preconceito. Tipo, "ah, está usando o computador, está usando o celular, já não é mais índio, agora já se ocidentalizou, já não tem mais as tradições". Que nada, estão tentando justamente se atualizar e se manter nessa relação. É claro que existem algumas tribos que preferem o isolamento, mas essas tribos sofrem muito, principalmente com doenças. Se um ser um branco vai no meio de uma tribo indígena dessas isoladas, ele espalha um monte de doenças que essa tribo não está acostumada. Então, essas tribos que estão escolhendo se integrar à cultura digital estão fazendo a mesma coisa que é feito no nível biológico, que é desenvolver anticorpos, no nível tecnológico. Então, quais são as consequências desses preconceitos? Eu acho que já deve ter ficado óbvio que algumas pessoas são excluídas dessa esfera digital da sociedade, algumas pessoas são discriminadas, são superestimadas, algumas pessoas têm conhecimento, são desperdiçadas e o resultado que nos interessa mais, que eu estou enfatizando nessa apresentação, é a estagnação no desenvolvimento de novos conceitos de interface. Se a gente quer ter novas interfaces, a gente precisa trazer novas pessoas para a computação. Essa metáfora desktop que a gente utiliza no dia a dia, que deu origem ao WIMP, Windows Icons, Menus and Pointers, ela foi criada, como eu falei, nos anos 70 dentro de um laboratório de pesquisa da Xerox. O primeiro computador que tinha isso era o Xerox Star. Ele tinha já menus, tinha ícones, tinha janelas. Ele foi criado a partir do conhecimento que os funcionários da Xerox tinham sobre o ambiente de trabalho. Eles supuseram que se eles criassem um computador parecido com o ambiente de trabalho, seria uma metáfora suficiente para as pessoas que não conhecem a computação, que estão começando a computação, entender como é que funciona um computador como se fosse um espaço virtual. Só que nem todos os países têm a mesma cultura de escritório, e nem todos os países têm uma cultura de escritório do mesmo jeito. O filme "Como enlouquecer o seu chefe", alguém já assistiu? Não? É um filme que acho que deixa bem claro essa cultura escritória, bem divertido esse filme, vale a pena, recomendo. É aquela cultura do funcionário trabalhando dentro do cubículo, sendo interpelado pelo seu gerente diariamente para cobrar um tipo de resultado. E aí quando o gerente vai embora, começa a fofoca, as pessoas começam a falar mal do gerente, por aí vai. Tem uma história bem interessante. Isso aí, essa organização espacial e social se reproduz nessas interfaces dos computadores. Enquanto a gente acha que isso aqui é o único conhecimento que deve ser representado, a gente não vai ter novas metáforas, novas tipos de interface. Então, o que eu sugiro para a gente ter novas interfaces, novos conceitos que se fundamentam à interface? Então, a base da interface humana no computador, que é um termo bastante utilizado, é, existe um usuário, um usuário que é usar coisas que tem no computador, recursos computacionais, e existe no meio uma camada de tradução, uma camada que traduz 0,1 para uma linguagem mais, um pouquinho mais abstrata, e daí depois tem uma linguagem mais abstrata ainda, quando chega um usuário, é uma linguagem tão abstrata que não tem nada a ver com o funcionamento elétrico do computador, nem tão pouco lógico, tem a ver mais com a tarefa do usuário. Aqui é uma ideia de que o usuário usa o computador sozinho. No conceito de interface humana, que é o que eu estou propondo nessa apresentação, são diversas pessoas interagindo através de interfaces em diferentes níveis de abstração. E quando eu falo diversas, estou querendo dizer diversos no sentido de gênero, de cor de pele, de origem cultural, de etnia, de função numa organização e por aí vai. Então, existem vários tipos de interações que essas pessoas podem ter com o computador, através do computador, melhor dizendo. Em primeiro lugar, ela pode ser síncrona ao mesmo tempo, essa é fácil de você entender, que quando você tem um Skype aberto, um WhatsApp, um Facebook Messenger, você está interagindo de maneira síncrona com aquela pessoa. Você manda um mensagem, outra pessoa responde, então faz sentido falar de interface humana humana, esse tipo de relação, de interação, porque ali a interface está no meio de uma pessoa e outra. Fica um pouquinho mais difícil de perceber quando a interação é síncrona, quando uma pessoa faz alguma coisa no sistema e depois de muitos dias ela afeta outra pessoa. E, às vezes, essa interação fica mais difícil de perceber indireta, ou seja, essa pessoa alterou alguma coisa no sistema e essa pessoa não sabe que foi uma outra pessoa que alterou alguma coisa no sistema. Ela simplesmente tem contato com alguma coisa que o sistema fez. Ela não sabe que por trás da ação do sistema existe ação de uma pessoa. Esse aqui é um caso clássico de uma interação entre um desenvolvedor, um programador e um usuário. Muitas vezes o usuário não está consciente de que existe uma outra pessoa por trás programando aquela interface, mas tem. Então, toda vez que existir um computador, vai existir uma outra pessoa do outro lado. Então você sempre vai ter uma interação humana humana, mesmo que ela seja assíncrona e indireta. Detalhando essa relação assíncrona e indireta, ela pode ser de um para um, quando é uma pessoa para outra pessoa, no caso de um diálogo, de uma interface de tempo real. Pode ser um para muitos quando você, programador, você, desenvolvedor, cria uma interface que é usada por várias pessoas. Aqui você está, através de uma interface de programação, você cria outras interfaces para outras pessoas e essas pessoas que recebem um para muitos normalmente não sabem a fonte dessa interface. E o muitos para muitos, que é bem característico de redes sociais, como Facebook e outras, onde todas as pessoas podem se comunicar umas com as outras. Essas tipos de interações podem se misturar. Por exemplo, no Facebook você tem muitos para muitos a nível de mensagem, mas você não tem um muitos para muitos no nível de programação da interface. Quem programa é um grupo muito pequeno de programadores do Facebook comparado com os bilhões de usuários que estão usando o Facebook. Então lá tem um para muitos também. Então, se você levar a ferra e a fogo esse conceito de interface humana, você vai perceber que não existe uma cloud, não existe uma nuvem onde você vai fazer o upload das suas fotos, dos seus programas, enfim, do que você quiser. Existe um computador e todo computador tem uma outra pessoa por trás. Não existe uma cloud, é só um computador de uma outra pessoa. Coloque isso na cabeça se gostarem desse conceito. Sempre pensar que existe uma pessoa por trás de um computador. Isso, se você perceber isso, você vai perceber que certas transformações hoje da nossa sociedade, grandes desafios da TI, são desafios sociais. Então não há carros autônomos. Assim como não há cloud, não há carros autônomos. Não existe um carro dirigindo sozinho. Existem pessoas tomando decisões antecipadas sobre a vida de outras pessoas. E aqui, obviamente, dilema ético. Quando um carro autônomo está vindo em alta velocidade, existe um obstáculo na pista que faz ele tomar uma decisão entre bater no obstáculo e potencialmente machucar o motorista ou atropelar as pessoas pedestres que estão passando na rua, na frente do carro. Então qual dessas decisões deve ser priorizada pelo carro? Então tem um estudo da MIT sobre máquinas éticas, que eles começam a perceber que o carro está embutindo uma decisão que é ética, não é uma decisão técnica meramente. E eles perguntam para várias pessoas qual seria mais ético. Fizeram um levantamento e chegaram à conclusão de que a maior parte dos usuários que eles entrevistaram acha que o carro deve sacrificar a vida do motorista. Mas aí quando eles perguntam na sequência "Você compraria um carro assim?" Todo mundo fala que não. Compraria um carro que priorizaria a segurança do motorista ao invés dos pedestres. Então a maioria das pessoas, por um lado, gostaria que fosse assim, mas por outro lado, na prática, faria assado. E isso não é um problema só da computação. Perceba, isso é um problema social, que a computação tem o dever, na minha opinião, de discutir, porque a computação tem a faca e o queijo na mão. A gente poderia, como trabalhadores nessa área, tomar essas decisões por conta da sociedade. Mas eu acho muito mais interessante fazer o que a MIT está fazendo, que é colocar isso como um debate público, levantar isso como uma questão social, importante até para a legislação. O que os deputados vão fazer a respeito? Qual vai ser as leis a respeito de carro autônomo? Pouca gente sabe responder essa pergunta neste momento. Beleza? Vocês têm alguma dúvida sobre isso? Não? Então vamos fazer um exercício. Vamos discutir então a questão de processo de design de interface voltado ao humano-humana. Ué, a luz ligou de sozinha? Aqui tem uma primeira recomendação, gente. Quando vocês forem projetar interfaces para humanos, pense em representar as ações que esses humanos estão fazendo ao invés de representar conceitos computacionais. Então aqui tem um exemplo do Facebook, feed de notícias, message, marketplace, todos esses três são conceitos computacionais. Eu fiz uma modificação rápida nessa página do Facebook para mostrar o que acontece se você pensar interface do ponto de vista humano-humana. Então aqui você tem, ao invés de meu nome, minhas novidades. Se você clicar aqui é o que você vai ver. Novidades da minha rede. Conversar. É para isso que serve o message. É essa ação que você vai fazer aqui. E comprar e vender, que é o que você faz dentro do marketplace. Ao invés de atalhos, a palavra atalhos é uma palavra bem ruim para a maioria dos usuários entender. Ver de novo, uma coisa que você já viu. Então aqui eu estou usando um linguajar mais próximo do dia a dia, porque as pessoas no dia a dia falam de ações. Elas não falam de conceitos computacionais. Ação é uma coisa que uma pessoa faz no mundo, que afeta o mundo, transforma o mundo. E é isso que uma interface humana-humana deve fazer. Outra questão, ela deve enfatizar as consequências das ações humanas. Consequências humanas. Então, um dos problemas mais comuns nas interfaces humana-humana é quando as pessoas não sabem a consequência. É muito comum isso. Ela clica, deletou alguma coisa e não sabe o que vai acontecer. Então aqui temos um diálogo de alerta, perguntando, você quer mesmo deletar todos esses clientes que você tem na sua base de dados? Você vai pagar três clientes só para ter certeza, confie o número de clientes que você vai destruir da base. Você tem que colocar o número e ainda tem que marcar que você não vai poder voltar atrás. E aí tem dois botões, voltar para a segurança, não, não tem mais jeito. Vou explodir mesmo a dinamite e acabar com os três clientes. Essa interface é um pouco exagerada, claro. Ela está sobreexagerando o impacto, mas se você pensar que uma empresa pode ter o seu sucesso comercial delimitado pelo número de clientes que ela está dedicando, que ela está cultivando, faz até sentido esse tipo de abordagem. A maior parte dos diálogos que os usuários veem nos computadores são diálogos que as pessoas não prestem atenção e atravessam a rua sem olhar para o sinal. Mesma coisa, a pessoa vai clicando ok, ok, ok, ok, ok, sem ler o que está escrito na caixa de diálogo. Da mesma maneira que alguém atravessa a rua sem olhar para ver se o sinal está aberto. Eu não sei se você ou eu passava retrasado, do ano na rádio, porque um funcionário que trabalha numa profissional da ASO, não é nem o tipo exatamente do país, ele estava desmonilizar um bônus dos clientes, assim, tipo, sei lá, 100 dólares, nem isso, era bem pouco. Ele acabou desmonilizando mil ações para cada cliente. Caramba! Então, gerou um prejuízo de bilhões e bilhões, que nem tinha esse dinheiro. Caramba! E aí as bolsas caíram para caramba. E assim, claro, imensidamente que o pessoal recebia, vive em família errado. Só que teve alguns que se adiantaram em vender aquelas ações. Ah, entendi, o pessoal se aproveitou da situação. Aproveitou do ego e foi vendendo. Então, teve uns 20 lá que, claramente, foi a ideia da E, mas foi isso, né? Não tinha a confirmação da confirmação. Às vezes até tem a confirmação, você tem uma janela, mas essa janela não diz o que vai acontecer se você confirmar. Eu acho que o que é legal dessa interface, dessa janela, é que ela diz o que que vai acontecer. E nesse caso, olha, se você fizer isso, a sua empresa pode ir à falência, porque ela não tem dinheiro para pagar esse prejuízo que você vai causar. Isso seria uma maneira de enfatizar a consequência humana daquela ação computacional. E isso às vezes você não tem o dado para oferecer isso. Às vezes você não sabe como programador, mas quanto mais você puder oferecer de informação para o usuário sobre a consequência, melhor. Enquanto você está projetando, vale a pena você ter sempre com representações mais concretas possíveis. Isso aqui é, já ouviram falar de UML? Já tiveram uma aula sobre UML? Como? UML, ainda não? Mas vocês vão ter, provavelmente, no curso. UML é uma maneira de você representar as estruturas de classes do seu programa. Vocês já viram orientação a objetos? Ainda não, né? Vocês vão chegar ao momento, vocês vão descobrir que a programação que você está acostumado linha por linha não é suficiente para você resolver problemas complexos. Você tem que começar a pensar o seu programa como arquitetura de um prédio, assim, com partes e módulos que se conectam e se complementam. Você pode pensar essa arquitetura de módulos, de classes, que é o termo técnico utilizado, com uma perspectiva do funcionamento do sistema. Então, uma classe vai se chamar funcionalidade parte do sistema 1, parte do sistema 2, parte do sistema 3. Ou você pode chamar aquilo do ponto de vista de ação. É uma recomendação que eu faço. Quando vocês forem ver orientação a objetos, chamar as classes em relação a objetos e dar métodos que sejam parecidos com as coisas que as pessoas fazem no seu dia a dia. Ou seja, se você vai representar computacionalmente uma mesa, uma cadeira, você vai colocar na cadeira o método sentar. Você não vai botar o método XPTO, que é uma abstração. Você vai botar uma coisa parecida com o dia a dia, a relação real da pessoa, representação concreta. Isso aqui é um exercício que a gente fez lá na Apple Developer Academy de usar Lego para criar e discutir a hierarquia de classes de um programa. Para que eu usar Lego? Para as pessoas perceberem que aquilo ali era uma analogia com o mundo real. E ter ações humanas, digamos assim, naquele programa. Na verdade, eu sugiro um processo gradual de começar o projeto de uma interface de maneira o mais low-tech, o mais concreta possível, o mais próxima da ação humana e gradualmente elevando o nível de abstração high-tech até você implementar isso no seu código, no seu sistema. Aqui é um exemplo que eu trago na minha pesquisa de doutorado onde eu estudei o projeto de ambientes construídos, o projeto de sistemas, de centros diagnósticos por imagens hospitalares. Então ali em cima você tem um modelo da planta baixa, as pessoas se movimentando ali, usando uma dinâmica de fios e post-its e tal para a gente discutir. E você sentia esse layout aqui embaixo, a mesma informação representada high-tech usando um programa CAD. A gente usou várias sucessivas representações, eu não vou mostrar todas aqui, só para mostrar que primeiro você toma decisão mais concreta com uma ferramenta concreta para você não se distrair da questão ética, por exemplo, por uma questão tecnológica, que é um dos grandes problemas da computação, ficar distraído com um monte de problema técnico e deixar de perceber que existe um problema ético, um problema social, um problema psicológico, um problema de outra ordem não técnica no projeto. A prototipação com papel, vocês vão ter uma disciplina de HC que vai trabalhar isso, com certeza, é uma das técnicas mais usadas para esse processo gradual de projetar uma interface, então você desenha com papel para você, antes de botar muito esforço no projeto, programar um monte de linha, você ter um feedback rápido do usuário ou de um colega de trabalho para você rapidamente ter um feedback, basicamente você usa o papel. Papel você pode usar de maneira bem criativa, usando post-its, usando coisas coloridas, para representar a interface de maneira bem concreta. A parte de funcionamentos, comportamentos mais abstratos não precisa representar, o importante é representar se aquelas funcionalidades são úteis para o usuário, se faz sentido naquela disposição. Nesse caso aí, desse exemplo, é uma interface para construir um prédio, ou melhor, configurar uma casa. E os meus alunos eu faço muita prototipação com o corpo inteiro, que vem antes da prototipação com papel, mais radical ainda, mais concreta, uma pessoa representa um computador. Então aqui, você já deve ter percebido que aqui tem um mouse, o mouse é a mão desse estudante, esse estudante aqui é o computador, esse aqui é o usuário, e aqui dentro do computador tem algumas representações de coisas, de aspectos que o computador está trazendo para o usuário. Então o computador está trazendo a diversão, o entretenimento, jogos, mas está trazendo também a necessidade de trabalhar, ganhar dinheiro, e por outro lado, o corpo do próprio usuário está trazendo a necessidade de dormir. Então isso aqui é uma representação de uma situação de uso em que o usuário está pressionado por duas ofertas que são multamente exclusivas, jogar ou trabalhar. E aí eles estão prototipando como é que o computador vai ajudar o usuário a tomar essa decisão. Então é isso que vocês vão fazer agora, só que um pouquinho diferente, mais simples. Vocês vão usar a técnica mágico de OS. A técnica mágica de OS, uma pessoa faz o papel de um computador usando uma ferramenta que representa ela. Nesse caso aqui, eles estão testando um protótipo de uma interface com kiosque e tem uma pessoa aqui atrás puxando as folhinhas, atrás você vai clicando e o computador vai mudando as folhinhas e o usuário vai clicando e tendo a sensação de que o computador está funcionando. É claro que você tem que pedir para o usuário abstrair e ter um pouquinho de imaginação para funcionar essa técnica mágica de OS. Vocês vão fazer isso num contexto daqui da PUC. Vocês vão projetar uma interface de menu telefônico para o call center da PUCPR. Menu telefônico sem reconhecimento de voz, apenas 1, 2, 3, 4, 5, 6, 7, 8, 9, é asterisco ou trália. São esses inputs possíveis e você tem que escrever no papel os outputs. Então todas as opções do menu vocês vão escrever no papel e vocês vão depois testar essa interface. Quando vocês forem testar vocês vão convidar alguém de uma outra equipe para vir aqui, tem que testar para uns quatro usuários. Vocês vão fazer o projeto em grupo e vocês vão ter que testar com quatro. Cada vez que vier uma pessoa, o mágico de OS ele tem que ficar, aqui eu coloquei errado, o mágico de OS pode olhar, mas o usuário tem que ficar de olho fechado, botar uma máscara, aqui tem uma específica que cobra o olho, para você não olhar. O usuário só pode se fiar naquilo que a interface falar. E o mágico de OS só pode falar o que está escrito no papel, ele não pode falar mais nada, a não ser o que está escrito no papel. O programa só pode rodar o que está no programa. E é claro que o usuário às vezes não vai achar alguma coisa, vai ficar perdido, pode desistir, pode falar que está uma bosta, essa interface, vou embora, vou tentar fazer de outro jeito. E aí, obviamente que os desenvolvedores dessa interface vão ter que melhorar o programa para testar com o próximo usuário e ter uma experiência melhor. O usuário deve sempre tentar fazer coisas bem difíceis, que você não sabe o que é, porque daqui a pouco vai vir alguém e vai chegar com uma requisição que você não sabe qual é. Beleza? Compreenderam? Então vocês têm 20 minutos para montar a primeira interface e fazer o primeiro teste. São equipes de 3 pessoas. Vocês precisam de uma folha de papel? Vocês têm folha de papel? Pode ser no computador. Ah, tem o rolo de papel? Olha, eu acho melhor vocês fazerem no papel, sabe por quê? Não, eu acho que é melhor no computador, mais rápido, né? No Word, no arquivo de Word, você consegue deletar e apagar mais rápido o menu. Beleza? Então valendo aí, ó.