Olá, sou Renzo Lucioni, um veterano da Universidade de Harvard. Eu me diverti muito neste verão como estagiário na edX. Tenho trabalhado para permitir e promover uma abordagem objetiva para o gerenciamento de produtos. Meu projeto de verão consistiu em várias melhorias discretas no LMS e na equipe de Analytics recém-formada. Meu projeto era tanto para acertar o “processo” quanto para remediar a maneira do LMS de mostrar aos alunos seu progresso. Por “processo” quero dizer: identificar e validar mudanças, implementá-las e então quantificar seu impacto. Viabilizar e promover esse “processo” é o guarda-chuva que cobre o trabalho que fiz durante o verão.

Aqui está um esboço do processo que tentamos seguir aqui no edX. Começamos identificando concretamente um problema e o efeito que esperamos ver ao corrigi-lo. Identificamos problemas a serem resolvidos usando dados analíticos que coletamos. Em seguida, fazemos um brainstorming de possíveis soluções. O próximo passo é a validação. Antes de implementar totalmente as alterações, queremos validá-las. As mudanças podem ser motivadas por várias coisas, mas queremos ter certeza de que as mudanças propostas corrigem o problema. Há muitas maneiras de validar. Pode significar mostrar a mudança internamente para um punhado de pessoas, executá-la por um grupo de usuários que trazemos para testar a mudança ou realizar testes A/B. Se vemos que a mudança ajuda, nós a implementamos. Se isso não acontecer, ele está de volta ao passo um. Depois de fazer a alteração, queremos medir seu impacto real na produção para ter certeza de que estamos obtendo o retorno que esperávamos da etapa de validação.

Para ajudar nas etapas de identificação e quantificação, meu trabalho se concentrou em analytics e qualidade de dados. Segment.io é um serviço de terceiros que nos permite enviar nossos dados de análise para qualquer serviço de análise que desejarmos sem ter que integrar cada serviço individualmente. Integrei o Segment.io com a plataforma edX e limpei os eventos que registramos. Agora usamos o Segment.io para rastrear o que os usuários estão fazendo enquanto interagem com o material didático, encaminhando essas informações para Google AnalyticsMixpanele  Chartbeat.

Para melhorar a etapa de validação do nosso processo, desenvolvi uma abordagem flexível e leve para testes A/B. Também conhecido como teste A/B, o teste A/B consiste em dividir nossos usuários em grupos, controlar o que esses grupos veem (queremos mostrar algo diferente para cada grupo) e monitorar e comparar o comportamento de cada um. Queríamos que nossa abordagem de teste A/B fosse flexível, permitindo aplicá-la em toda a plataforma edX a mudanças que vão desde alterações cosméticas a recursos totalmente novos. A estrutura de teste de divisão que implementei depende Waffle, um flipper de recursos do Django. Decidi não usar uma das várias estruturas de teste A/B de código aberto disponíveis para o Django porque a maioria não é compatível com o Django 1.4, não é mais mantida e está mal documentada ou totalmente não documentada. Além disso, em uma tentativa de abstrair o processo de teste de divisão, descobri que esses frameworks são muito rígidos para nossos casos de uso típicos. A maioria é projetada com o propósito expresso de rastrear inscrições ou compras de usuários. Usar o Waffle em conjunto com o Mixpanel constitui uma abordagem mais flexível e leve.

O Waffle fornece três ferramentas para controlar o que os usuários veem: sinalizadores, opções e amostras. Minha estrutura usa os sinalizadores baseados em sessão do Waffle para alternar recursos nas visualizações do Django e nos modelos Mako. As bandeiras se encaixam bem no projeto de teste de divisão. Eles podem ser atribuídos a todos os usuários, um grupo de usuários ou uma porcentagem arbitrária de usuários. Dadas as permissões apropriadas para o modelo “Flags” no banco de dados, os sinalizadores podem ser criados, alternados e excluídos usando o site de administração do Django sem envolver o DevOps. Além disso, as alterações feitas nos sinalizadores entram em vigor imediatamente, sem a necessidade de enviar nenhum código. Minha estrutura acompanha quais sinalizadores estão ativos para um usuário específico adicionando uma propriedade às chamadas da API Segment.io que contém uma string listando sinalizadores ativos; essa mudança específica foi feita em segment-io.html. O Segment.io encaminha essas informações para o Mixpanel, onde podemos estudar os dados, permitindo comparar o comportamento de diferentes grupos de usuários.

Aqui está um exemplo do processo em ação. Conversando com grupos de usuários do edX, descobrimos que havia um forte desejo de uma exibição contextualizada do progresso. Os alunos historicamente tiveram dificuldade em visualizar seu progresso em um curso. Eles também tiveram ajuda mínima ao navegar no material didático. Atualmente, a página de destino do curso informa ao aluno onde ele esteve pela última vez e vincula a esse componente. No entanto, o acordeão do curso não indica o que o aluno concluiu, o que o aluno está trabalhando atualmente ou o que o aluno ainda não iniciou. Para piorar a situação, a guia de progresso é separada do material didático e também é muito detalhada, o que significa que a página não é imediatamente útil para um aluno. Os alunos não têm como medir de forma confiável seu progresso dentro do contexto do material didático.

Tentei resolver esse problema exibindo as pontuações dos alunos ao vivo, ao lado dos títulos dos problemas em que estão trabalhando. Para fazer essa alteração, modifiquei capa_module.py e exibir.café. Tentamos reservar testes A/B para mudanças grandes e arriscadas, não para vitórias claras como essa mudança; queremos validar no nível certo. Assim, a validação desta mudança consistiu em mostrar a mudança internamente. A implementação deste recurso está agora sendo seguida pela quantificação. Observamos uma queda de 8% no tráfego do material didático para a página de progresso e usaremos esses dados para informar alterações futuras.

Embora tenhamos apenas começado a usar dados analíticos para informar nossas decisões e essa nova estrutura para testar novos trabalhos, estou confiante de que essas ferramentas nos permitirão fazer melhores escolhas. Um dos objetivos da edX é descobrir o que ajuda as pessoas a aprender online. Uma abordagem mais quantitativa combinada com testes de divisão nos ajudará a atingir esse objetivo.

 424 visualizações totais