Interação na Web Trabalho colaborativo Metodologias Aplicações Introdução A Web com sua estrutura hipertexto oferece a ilusão de ser uma grande base de informações. No entanto, ainda existem barreiras significativas à colaboração efetiva entre os usuários. Apesar da informação ser um recurso compartilhado, os browsers ainda: São ferramentas para um único usuário; e Mantém os usuários separados uns dos outros, oferecendo pouco suporte para que um grupo de usuários trabalhe de maneira colaborativa sobre a informação compartilhada. Aplicações colaborativas Visam remover estas últimas barreiras, permitindo que os usuários se contactem, discutam os documentos e interajam com seus monitores em tempo-real. Web hoje em dia: a informação é compartilhada, mas ainda existem para a efetiva colaboração barreiras sobre essa informação. Web colaborativa: os usuários interagem entre si e com o objeto de trabalho em tempo-real. Dificuldades de projeto O projeto de interface multiusuário, além das dificuldades "convencionais" de Interfaces monousuário: Conhecimento do usuário e das tarefas que ele pretende executar; Definição do diálogo homem-máquina; Testes de usabilidade, etc. aparecem novas dificuldades inerentes ao próprio trabalho em grupo. A principal dificuldade adicional está no conceito de percepção ou consciência dos outros usuários (user awareness). A percepção A percepção envolve saber quem está usando o sistema, o que eles estão fazendo (alterações ocorrendo no objeto de trabalho) e como estas alterações aconteceram (o que, junto com a comunicação e o conhecimento do contexto, permitem entender porque elas aconteceram). Esse conceito, altera radicalmente os paradigmas tradicionais para o projeto de Interfaces, pois Interfaces monousuário são projetadas para que os usuários não tomem conhecimento dos demais usuários que possam estar compartilhando uma mesma base de informações. Visualização da aplicação A primeira questão associada à percepção dos usuários diz respeito à visualização da aplicação compartilhada. Uma possibilidade é usar interfaces WYSIWIS (What You See Is What I See), em que todos os usuários compartilham a mesma visão da interface. A grande vantagem do WYSIWIS é ser de simples implementação e fornecer um forte senso de contexto compartilhado.. No entanto, interfaces WYSIWIS são inflexíveis e apresentam uma série de inconvenientes: Não permitem que usuários tenham espaço de trabalho privativo; A tela pode ficar tumultuada com janelas que só estão sendo usadas por outros usuários; Os cursores dos outros usuários (telepointers) atrapalham o trabalho. Relaxamento de dimensões da WYSIWIS Visando uma maior flexibilidade e também a superação dos inconvenientes citados, o WYSIWIS pode ser relaxado em várias dimensões.: As interfaces WYSIWIS mostraram que a representação dos telepointers tendem a distrair o usuário, atrapalhando seu trabalho. Barras de rolagem multiusuário Como alternativa para indicar onde outros usuários estão trabalhando e o que eles estão fazendo, podem ser usadas: São um conjunto de barras de rolagem, cada uma representando a posição de um usuário no documento compartilhado. Radar é uma visão geral em miniatura do documento sobreposta por áreas coloridas que indicam o ponto de vista de cada usuário. Miniaturas são espécies de ícones que mostram a visão de cada usuário. Feedthrough Um outro aspecto ainda relacionado à percepção dos usuários é o feedthrough, que é a alteração da interface em resposta à interação dos outros usuários. O feedthrough se torna um problema especialmente crítico na Web, pois exige um canal de comunicação entre os vários usuários (clientes). As soluções encontradas lidam com a granularidade do feedthrough: nem todas as ações dos usuários precisam ser passadas aos demais, apenas as ações finais, por exemplo: Quando se move um objeto para outra posição, os usuários remotos só precisam receber a posição final do mesmo). Privacidade e anonimato No extremo oposto à percepção dos usuários está a questão da privacidade e do anonimato. A privacidade é importante para que os usuários possam, por exemplo, escrever rascunhos e anotações antes de mostrar algo para os demais usuários. A falta de um espaço de trabalho privativo pode inibir a participação de usuários em um trabalho colaborativo. Aliada à questão da privacidade, está a questão do anonimato. O anonimato é conflitante com a efetiva percepção dos usuários, que exige o conhecimento dos participantes. No entanto, o anonimato é necessário em situações de tomada de decisões (votação, por exemplo), especialmente quando há divergências de interesse no grupo. Em resumo, a "visibilidade" dos usuários deve ser limitada, de modo que as atividades individuais não sejam superexpostas aos demais Outros tipos de dificuldades Controle de acesso, muitas vezes pode não fazer sentido permitir que vários usuários tenham acesso a um mesmo widget simultaneamente. Gerenciamento de sessão, é necessária a figura do gerente, para criar uma nova sessão de trabalho e controlar os direitos de acesso dos participantes. Canais de comunicação, a atividade colaborativa está intimamente associada à comunicação entre os participantes. Obstrução por recursos de colaboração, é comum em aplicações colaborativas que recursos de colaboração pouco usados obstruam na interface os recursos mais utilizados. Dificuldade de avaliação, é relativamente simples levar um usuário para um laboratório e, em algumas horas, testar a usabilidade de um software monousuário. Entretanto, captar em laboratório a dinâmica social, econômica, motivacional e política dos grupos é praticamente impossível CSCW Computer Supported Cooperative Work CSCW é uma área de estudo interessada no trabalho em conjunto de grupos de pessoas com a ajuda de computadores. É um tema multidisciplinar que envolve profissionais das áreas de computação, automação, antropologia, sociologia, psicologia social, economia, teoria organizacional, educação, e de outras áreas interessadas no estudo do trabalho colaborativo. Talvez por essa razão, sempre houve muita discussão na definição do escopo de CSCW e muita confusão com termos afins, tais como groupware, workgroup computing e group support systems Diferença entre CSCW e Groupware CSCW leva em consideração os fatores humanos do trabalho em grupo para auxiliar o projeto e especificação do suporte computacional a este processo. Com relação ao CSCW, deve ser entendido como um esforço no sentido de entender a natureza e as características do trabalho cooperativo com o objetivo de projetar tecnologias computacionais adequadas". O foco é entender para melhor auxiliar o trabalho cooperativo". Groupware é uma área mais técnica, voltada para o desenvolvimento de software que auxilie no trabalho em grupo. Uma definição bem aceita para o termo groupware o considera como sendo "sistemas computacionais que auxiliam grupos de pessoas engajadas em uma tarefa (ou objetivo) comum e que provêem uma interface para um ambiente compartilhado". Interdependência nas tarefas A noção de interdependência nas tarefas serve para diferenciar colaboração de outros tipos de tarefas em grupo, como a interação, por exemplo. Considere a diferença entre dirigir em um comboio e dirigir no trânsito de uma cidade. No primeiro caso, os motoristas têm algum sistema de comunicação préestabelecido e um objetivo comum que depende do sucesso dos outros motoristas nas suas tarefas (todos os carros do comboio devem chegar ao destino; se algum precisar de ajuda, os outros certamente o socorrerão). Isso caracteriza uma colaboração. No segundo caso, ao dirigir no trânsito de uma cidade não há colaboração, há apenas interação entre os motoristas, pois não há nenhum planejamento prévio das tarefas e o sucesso de cada motorista em atingir seu objetivo não depende do sucesso dos demais motoristas. Dependência entre os participantes Outra característica do trabalho colaborativo é a dependência positiva que um participante tem do outro. Em outras palavras, um participante precisa que o trabalho do outro seja bem sucedido. O caso oposto é quando várias pessoas simplesmente compartilham um recurso. Nesta situação, é preciso haver uma certa coordenação entre as tarefas, mas o trabalho de um apenas atrapalha o trabalho dos outros. Apesar da interdependência positiva entre as tarefas, ela nem sempre é harmoniosa. É preciso haver coordenação entre as atividades para garantir a eficiência da colaboração. Sem coordenação, há o risco dos participantes se envolverem em tarefas conflitantes ou repetitivas. Coordenação entre os participantes A Coordenação entre os participantes é definida como "ato de gerenciar interdependências entre as atividades realizadas para se atingir um objetivo". Coordenação é uma das partes constituintes do trabalho de articulação, que é parte integrante do trabalho colaborativo. O trabalho de articulação é o trabalho extra, necessário para que o trabalho conjunto seja obtido a partir da soma dos trabalhos individuais. O trabalho de articulação é definido como "conjunto de atividades necessárias para gerenciar a natureza distribuída do trabalho cooperativo" . Taxonomias • A taxonomia mais utilizada na classificação de sistemas colaborativos leva em consideração dois fatores: 1. 2. O modo de interação, sistemas colaborativos podem ser síncronos (interações ocorrendo em tempo real) ou assíncronos (interações ocorrendo em momentos diferentes); e A distribuição geográfica dos usuários, um sistema pode ser presencial (usuários presentes fisicamente no mesmo local) ou não-presencial (usuários em locais diferentes). Classificação de sistemas colaborativos Conforme pode ser observado na figura, nem sempre é possível enquadrar as aplicações em apenas uma classe. Há exemplos como os espaços de trabalho compartilhados que não dependem da localização geográfica dos usuários; eles são simplesmente ferramentas síncronas. O mesmo é válido para algumas ferramentas de co-autoria (editores multiusuários), que são simplesmente assíncronas. Classificação de sistemas colaborativos • Outra possível extensão da taxonomia apresentada é subdividir as aplicações não-presenciais e as assíncronas em duas categorias: Aplicações não-presenciais previsíveis permitem uma certa noção dos locais onde se encontram os demais participantes (e-mail e ferramentas de co-autoria são exemplos); e 2. As aplicações não-previsíveis interagem com usuários em locais não conhecidos (mensagens enviadas para grupo de discussão, por exemplo). De maneira similar, as atividades: 1. As assíncronas previsíveis restringem ou pelo menos oferecem uma noção do tempo em que ocorrerá a interação (ao enviar e-mail para um colega, por exemplo, é possível prever com certa segurança quando ele será respondido); e 2. As assíncronas não-previsíveis acontecem em tempos dificilmente conhecidos a priori (autoria colaborativa em ambientes abertos, por exemplo). 1. Categorias dos sistemas colaborativos • Além da classificação espaço-temporal, os sistemas colaborativos também podem ser divididos em quatro categorias, de acordo com o tipo de aplicação: 1. 2. 3. 4. Comunicação; Espaço de trabalho compartilhado; Informações compartilhadas; e Suporte à atividade em grupo. Estas quatro categorias não são mutuamente exclusivas. Um grande número de sistemas possui ferramentas em mais de uma das categorias acima. Um sistema para reuniões, por exemplo, pode possuir recursos de videoconferência (comunicação) aliados a uma área de trabalho compartilhada, onde todos os participantes podem fazer alterações em documentos. Aplicações de comunicação As aplicações para comunicação são os exemplos mais conhecidos de groupware. Em geral, sistemas de comunicação não provêem nenhum tipo de suporte especial para o trabalho em grupo. Nesta categoria se enquadram ferramentas de e-mail, chats e videoconferência Aplicações de espaço de trabalho As aplicações de espaço de trabalho compartilhado provêem uma área de trabalho comum, onde dois ou mais participantes podem trabalhar conjuntamente. Exemplos de ferramentas nesta categoria são os whiteboards compartilhados e os editores multiusuários (nos quais vários usuários têm acesso a um documento sendo editado, e podem estar simultaneamente alterando Aplicações de compartilhamento Aplicações para compartilhamento de informações permitem que duas ou mais pessoas armazenem, acessem e manipulem informação compartilhada. Bancos de dados compartilhados são exemplos deste tipo de ferramenta. Aplicações de suporte a atividade em grupo As aplicações para o suporte à atividade em grupo provêem facilidades para atividades específicas do trabalho em grupo, tais como agendamento de reuniões, brainstorming, auxílio na tomada de Requisitos de interfaces A seguir será apresentada uma proposta informal para a análise de aplicações colaborativas baseada em um apanhado geral de requisitos de interfaces encontrados na literatura. O primeiro aspecto analisado é a comunicação, que é parte essencial da colaboração. Sua importância pode ser verificada nas taxonomias apresentadas anteriormente, pois a comunicação estabelece a dimensão temporal dos sistemas (comunicação síncrona ou assíncrona) e também define uma classe de aplicações na segunda taxonomia apresentada. A comunicação também é o núcleo do trabalho de articulação das atividades colaborativas . Comunicação x CSCW O desafio que CSCW apresenta às tecnologias de comunicação é como tornar a comunicação entre usuários remotos tão eficiente quanto a interação face a face. Na verdade, sabe-se que a tecnologia não substitui a interação face a face, mas apresenta meios alternativos de comunicação, que podem ser mais apropriados em certas situações. Comunicação informal Um tipo de comunicação durante muito tempo negligenciado nas pesquisas de interfaces groupware foi a comunicação informal. Hoje em dia, os pesquisadores de interfaces reconhecem a importância deste tipo de comunicação em um ambiente de trabalho. Este tipo de comunicação "acidental" ocorre quando, por exemplo, dois colegas se encontram no corredor e discutem um tópico de interesse comum, ou quando um Comunicação formal Ao contrário da comunicação informal, a comunicação formal segue um modelo de conversação pré-estabelecido, que pode ser representado por alguma ferramenta formal (redes de Petri, teorias lingüísticas, etc). No entanto, é sabido que nem os padrões de comunicação e nem a estrutura dos grupos são estáveis no decorrer de um trabalho colaborativo, o que torna estes modelos de conversação bastante limitados e de pouco "realismo social". Por esta razão, tem sido cada vez mais comum o desenvolvimento de sistemas oferecendo oportunidades para a realização de encontros informais à distância, tanto para a comunicação entre indivíduos quanto para a comunicação entre grupos. Comunicação direta x indireta • Além da diferenciação entre comunicação formal e informal, também é possível classificá-la em: 1. 2. • Comunicação direta (ou explícita), se dá através da transmissão de texto, gestos, vídeo e/ou áudio entre os participantes (é o que se chama normalmente de comunicação); e A interação indireta (ou implícita) se dá através do objeto de trabalho (por exemplo, um texto ou imagem compartilhados). Até o momento foi enfocada a necessidade de flexibilidade para o modelo de comunicação utilizado no trabalho colaborativo. Flexibilidade • A flexibilidade de uma aplicação colaborativa pode ser analisada dos seguintes pontos de vista: 1. 2. 3. 4. Técnico, está relacionada à portabilidade e capacidade de adaptação do sistema nos diversos ambientes computacionais; Funcional, está relacionada à classificação espaçotemporal apresentada na seção anterior; Do campo de aplicação, está relacionada à outra taxonomia; um sistema que suporte mais tipos de aplicações (de comunicação, de espaço de trabalho compartilhado, etc) é mais flexível sob este aspecto; e Do ponto de vista social, social é bem mais complexa, tendo sido tema de vários trabalhos que tentam alertar os projetistas de sistemas colaborativos sobre as características dinâmicas e pouco previsíveis do trabalho Implementação • Um último aspecto da análise de aplicações colaborativas diz respeito à implementação. Com relação à arquitetura utilizada, os sistemas podem ser: 1. 2. 3. 4. Hard-wired, os componentes da rede são construídos com o propósito de realizar funções específicas do sistema; Centralizada segue o modelo cliente-servidor, onde todos os participantes só podem se comunicar com o servidor central, que realiza o processamento necessário e retransmite as mensagens; A configuração replicada ou distribuída executa uma cópia da aplicação em cada máquina; e A configuração híbrida. Nesta configuração, cada cliente executa uma cópia (completa ou parcial) da aplicação e há também a presença de um servidor central, responsável por tarefas como a garantia de consistência entre os clientes, sincronização e tratamento de colisão de eventos Implementação • Aplicações colaborativas também podem ser implementadas como: 1. 2. Conscientes da colaboração são aquelas desenvolvidas especialmente para o trabalho colaborativo e têm conhecimento do número de usuários e seus papéis individuais na colaboração; e Colaboração transparente são aplicações originalmente desenvolvidas para um único usuário, usadas de maneira colaborativa através de um sistema de compartilhamento de aplicações. São chamadas de colaboração transparente porque, embora múltiplos usuários possam interagir e compartilhar visões da aplicação, elas não têm "conhecimento" de que estão Aplicações colaborativas resumo Em resumo, para serem flexíveis, aplicações colaborativas não devem impor padrões de trabalho (ou comunicação) préestabelecidos. Na verdade, elas devem prover facilidades que permitam aos usuários interpretar e explorar estes modelos formais, mas deverá sempre caber ao usuário a decisão de usá-los, modificá-los ou rejeitá-los. Exemplos Em seguida serão analisadas algumas aplicações colaborativas para a Web, utilizando as taxonomias e os requisitos de interfaces levantados nas seções anteriores. Foram escolhidas aplicações para a Web que fossem atuais, bem documentadas e com alguma repercussão nas publicações mais GroupWeb O GroupWeb é um browser que permite a um grupo de usuários compartilhar visualmente e navegar conjuntamente através de páginas HTML em tempo real. Ele foi desenvolvido pelo Departamento de Ciência da Computação da Universidade de Calgary, Canadá. Como qualquer Web browser, o GroupWeb é capaz de visualizar páginas HTML. No entanto, usuários geograficamente dispersos podem realizar sessões de trabalho onde suas janelas principais se tornam espaço de trabalho compartilhado. Além da janela do browser, uma sessão GroupWeb oferece uma janela de gerenciamento (onde são indicados os nomes dos participantes da sessão) e uma janela de anotações (que serve também para a comunicação textual - chat - entre os participantes). Classificação do GroupWeb O GroupWeb se enquadra nas categorias de ferramenta de comunicação síncrona não-presencial (chat), espaço de trabalho compartilhado síncrono não-presencial (anotações na página Web) e compartilhamento de informações não-presencial tanto síncrono (navegação conjunta) quanto assíncrono (browser convencional). Basic Support for Cooperative Work - BSCW O BSCW é uma ferramenta desenvolvida pelo GMD FIT (Institute for Applied Information Technology, German National Research Centre for Computer Science). Uma de suas metas principais é ser acessível a partir dos browsers convencionais, sem a necessidade de instalação de nenhuma ferramenta adicional nos clientes. Para isso, são usados servidores Web convencionais, estendidos com o sistema BSCW através de scripts CGI (implementação centralizada, consciente da colaboração). O BSCW estende a capacidade da Web com recursos sofisticados de armazenagem de documentos, gerenciamento de versões, administração de membros e de grupos, edição colaborativa e conferências textuais. O sistema é baseado na noção de espaço de trabalho estabelecido por membros do grupo para coordenar e organizar o trabalho. BSCW Um espaço de trabalho pode conter vários tipos de objetos, tais como documentos, imagens e links para outras páginas. Estes objetos estão organizados em hierarquias de pastas. Membros de um determinado grupo podem colocar objetos no espaço compartilhado e também transferir objetos de lá para o seu sistema local (para ler ou editar um documento, por exemplo). A colaboração assíncrona se dá através de espaços de trabalho compartilhados, onde os membros do grupo podem armazenar, gerenciar e editar conjuntamente os objetos. Há também uma ferramenta para discussão assíncrona (newsgroup). Portanto, o BSCW oferece recursos para comunicação, compartilhamento de espaço de trabalho e de informação de maneira assíncrona e não-presencial. Classificação do BSCW Em suas versões mais recentes, foram incorporados recursos para o planejamento, preparação e documentação de reuniões (suporte à comunicação formal) servindo para colher as informações necessárias ao estabelecimento de uma reunião síncrona. Assim pode-se classificar como uma ferramenta assíncrona nãopresencial com suporte a reuniões. A comunicação e a colaboração síncrona são feitas por ferramentas externas (embora o acesso a elas seja automático, desde que o cliente esteja devidamente configurado). O único recurso síncrono diretamente incluído no BSCW é uma ferramenta de chat (comunicação). Collaboratory Builder’s Environment - CBE O CBE foi desenvolvido pela Universidade de Michigan com o objetivo de ser uma ferramenta para o desenvolvimento de "colaboratórios" (laboratórios virtuais, onde pesquisadores de interfaces podem interagir com os colegas, compartilhar dados e informações, ter acesso a instrumental, etc, independentemente da localização geográfica). Ele foi implementado em Java e é acessível através de Web browsers convencionais (desde que suportem Java). A arquitetura do CBE é baseada nos conceitos de salas, usuários, applets e grupos de applets. O conceito de sala é semelhante ao de espaço de trabalho do BSCW. Uma sala consiste de múltiplos applets e dados. Cada usuário que entra numa sala recebe em seu desktop uma cópia dos applets daquela sala, de modo que ele possa interagir com os outros usuários da sala, que também possuem os mesmos applets. Classificação do CBE A existência do chat, do whiteboard e de dados na sala, respectivamente, permitem enquadrar o CBE nas categorias de aplicação de comunicação, espaço de trabalho e informação compartilhados. A idéia é que o trabalho nas salas seja realizado de maneira síncrona, mas o CBE garante persistência no estado das salas depois das sessões de trabalho, de modo que as interações também possam ocorrer de maneira assíncrona. O CBE trata de maneira eficiente a questão da privacidade (há salas particulares). Também existe uma diferenciação de papéis entre os usuários. Há o administrador, que controla o acesso a cada sala, cria ou retira grupos de applets da sala e interage com os applets. TeamWave O TeamWave é um sistema para trabalho colaborativo baseado na metáfora de "locais virtuais compartilhados", semelhante à metáfora de salas do CBE. O grupo de trabalho pode criar quantas salas forem necessárias, cada uma delas servindo como espaço para reuniões, armazenamento de documentos, trabalho em conjunto e interação entre os participantes. Conceitualmente, o TeamWave é similar ao CBE, com a vantagem de ter disponível muito mais ferramentas para serem usadas nas salas. A desvantagem do TeamWave é ser uma solução proprietária e exigir instalação do software cliente e servidor (não é acessível através de um browser convencional). Classificação do TeamWave O estado das salas é persistente, de modo que elas podem ser usadas tanto para interações síncronas quanto assíncronas. O TeamWave também oferece ferramentas que permitem enquadrá-lo em todo o espectro de aplicações não-presenciais. Há ferramentas de comunicação textual (chat e quadro de mensagens), de espaço de trabalho compartilhado (whiteboard), de compartilhamento de informações (browser Web, base de dados, armazenamento de arquivos, dentre outros) e de suporte a reuniões (agenda eletrônica, planejamento de reuniões, brainstorming e votação). Análise comparativa O BSCW é mais voltado para o trabalho assíncrono, embora esteja caminhando na direção de prover suporte síncrono. Os sistemas voltados para o trabalho síncrono, por outro lado, tendem a garantir persistência de estado entre as sessões síncronas, de modo a suportar o trabalho assíncrono (o CBE e o TeamWave são exemplos). Isto confirma a tendência dos sistemas serem cada vez mais flexíveis no que diz respeito à funcionalidade e ao campo de aplicação. A flexibilidade social, apesar de ter sua importância reconhecida, ainda não está satisfatoriamente tratada, provavelmente por causa da complexidade da mesma e da dificuldade em mapear as questões sociais em soluções tecnológicas. Todas as aplicações apresentadas usam o paradigma tradicional de interação homem-máquina, baseado na metáfora de desktop.