domingo, 7 de julho de 2019

Passamos em PGP!

No dia 27/05, entregamos o documento corrigido e apresentamos a versão final do UniLoL. Após a apresentação, os professores nos desejaram boas férias...os dias seguintes não foram de férias, mas de muito F5 no SUAP. Não foi pedida uma terceira entrega, o que só podia significar aprovação, mas isso não impediu a gente de querer saber logo qual a nota final; não, 6 não é 10. Tiramos mais do que isso, aliás. Valeu o esforço, principalmente dos desenvolvedores, que devem ter encontrado alguma forma de diminuir o ritmo do tempo, ou de parar ele mesmo...

Aprendizado. Oportunidade. Desenvolvimento pessoal. Experiência. Aperfeiçoamento profissional, etcetera, etcetera, etcetera...agora, falando sério, não posso falar pela equipe inteira, mas foi sim um bom aprendizado, especialmente das várias ferramentas que nunca tínhamos visto antes e, no meu caso, do Scrum.
Gliding over all...da esquerda para a direita: Emilaine, Ana (a Ana é o celular, não o Nildoardo), Nildoardo, Victor, Andrei, Pedro

sábado, 6 de julho de 2019

Dicas para a produção do documento

"Vocês olharam a lista de requisitos?"
Parte da experiência de PGP/PI consiste em revisar continuamente a lista intimidadora dos pontos importantes sobre a disciplina, disponível no site de dicas do Prof. Ivan, para ver se não está faltando nada no desenvolvimento do projeto. Essa lista contém tudo que você e sua equipe precisam fazer para passarem na matéria, mas não explica como atender tantas atividades. É aí que entra a tal da "prática de gerenciamento"...e algumas dicas das gerações passadas sobre como ter um bom fluxo de tarefas, pelo menos na parte de documentação:

Esqueça o Word, use o LaTeX!

 A exigência principal dos documentos (a Proposta Inicial, a Prova de Conceito e o Documentão) é que eles sejam formatados em ABNT. Por isso 9 entre 10 professores recomendam que seja usado o LaTeX, que automatiza as tarefas de formatação. Por exemplo, no ABNT, cada Figura deve ser numerada de acordo com a ordem em que ela aparece no texto. Acontece que, durante o desenvolvimento do projeto, várias Figuras vão entrar e sair. Se você tiver que adicionar uma Figura entre a Figura 2 e a Figura 3, todas as Figuras subsequentes deverão ter sua numeração alterada para ficarem de acordo. No Word, você teria que alterar legenda por legenda. O LaTeX faz isso sozinho, além de outras coisas como a geração as índices e listas, o formato correto das referências, onde cada coisa foi citada...o problema é que dá um pouco de trabalho para aprender a usar a ferramenta. Acho que demorei mais de duas semanas até ter o domínio. Mas, mesmo assim...não use o Word. Você vai enlouquecer. 
Esse é o Mario. O Mario fez PGP/PI e usou o Word. Não seja o Mario.

Use o modelo em ABNT do site do Prof. Ivan

No site do Prof. Ivan, na seção de Textos, você vai encontrar um Modelo de LaTeX com toda a formatação ABNT já feita, com formatos específicos para o curso de Análise e Desenvolvimento de Sistemas, para o Curso Técnico em Informática e Pós-graduação. Usamos esse modelo do começo ao fim da matéria, e não precisamos fazer nenhuma alteração nos arquivos que cuidam da formatação; das várias correções feitas pelos professores após a primeira entrega, nenhuma delas foi relacionada à alguma violação do ABNT, então pode ser usado tranquilamente.

O Overleaf

O modelo acima se encontra no Overleaf, uma ferramenta de edição online de arquivos LaTeX. Ele permite que várias contas diferentes editem um projeto ao mesmo tempo...mas, na versão gratuita, só é possível compartilhar um projeto LaTeX com uma conta diferente. O que dá pra fazer é que uma conta pode ter múltiplas sessões, então criamos uma conta comum para que todos pudessem editar simultaneamente. O único problema é que não é possível saber quem editou o quê, pois todas as sessões levam o mesmo nome de usuário. Usamos o Overleaf do começo ao fim, sem problema nenhum.
The PGP Murders: 6 sessões diferentes, todas com o mesmo nome; quem adulterou a Introdução, um dia antes de imprimir o trabalho? Não aconteceu isso, não se preocupem

Drafted

Você já passou horas tentando resolver um problema que tinha uma solução estúpida de tão simples, e "ah não como foi que eu não vi isso, tava na minha cara"? Nós também, e vários outros grupos de PGP/PI. Sabe o modelo do Prof. Ivan? No arquivo principal dele (main-texto-completo.tex), você vai encontrar essa linha:


O que o draft faz é exibir apenas o caminho de cada Figura ao invés da Figura em si (com os PDFs é a mesma coisa), para não levar minutos para compilar, caso o projeto fique bem extenso. É útil pra quando a equipe estiver editando bastante o texto, mas, por algum motivo, todo mundo esquece de comentar ou remover o draft depois, levando a episódios de pânico e desespero quando as Figuras simplesmente se recusam a aparecer por alguma razão misteriosa, ainda mais na época da entrega da Proposta Inicial, quando a experiência com o LaTeX ainda é pouca.

Retratado: Episódio de pânico e desespero

Falando em PDFs...

Nos apêndices do Documentão, você precisa incluir tanto a Proposta Inicial quanto a Prova de Conceito. Mas esses dois documentos serão entregues separadamente ao longo da disciplina, logo terão sua própria numeração de páginas. Essa numeração deve ser mantida, então não é possível apenas reproduzir o texto no Documentão. A solução é incluir a Proposta e a POC como PDFs. O tamanho do PDF deve ser diminuído para aparecer tanto a numeração do PDF quanto a numeração do apêndice onde ele se encontra. O jeito de fazer isso é...olha, eu não explicar, mas copia e cola o que eu fiz que vai dar certo.

Atas de reunião: devem ser feitas no mesmo dia

Um dos itens obrigatórios é o conjunto de atas de reunião. Não deixe para fazer as atas depois, é muito difícil voltar atrás e tentar lembrar tudo que foi discutido. Caso o membro encarregado de fazer a ata falte, ela deve ser feita por outra pessoa no mesmo dia. Anote a data, horário, local, membros presentes e tópicos discutidos. Até as tretas? Sim, inclusive as tretas

Histórico das atividades: anote todas

Outro item obrigatório é o histórico de atividades com informações sobre a gestão do projeto. A forma de registrar as atividades no documento deve estar de acordo com a metodologia usada. Por exemplo, se a equipe usar o Scrum, no documento ela deve registrar os Sprints. Nós usamos o Trello para organizar as tarefas, mas cometemos alguns erros. Por exemplo, o nome das atividades deve ser descritivo e não ambíguo. Na hora de documentar as tarefas, voltei pra um dos Sprints anteriores no Trello e encontrei o card: "Documentação". Mas documentação de quê?! A experiência foi semelhante ao olhar um código não-comentado que eu mesmo havia feito algumas semanas atrás. Não entendi nada nem no código nem no card, e foi uma trabalheira para lembrar o que havia sido feito de fato.
É interessante escrever uma descrição para cada atividade, e após conclui-la, revisar o texto para ver o que foi realmente feito. Se surgirem tarefas não-planejadas, elas devem ser anotadas e descritas também. Anote as datas de início e de entrega, os membros responsáveis, etc. Tudo isso é bastante facilitado pelo Trello. Também é interessante detalhar as subtarefas, especialmente as de desenvolvimento e programação.

A Saga das métricas

É obrigatório ter uma tabela com a evolução das métricas do projeto. Mas quais métricas? Elas estão na página de dicas de PGP do Prof. Ivan e devem ser medidas mês a mês. Para as linhas de código e quantidade de arquivos, por exemplo, usamos o Cloc. Idealmente, as Classes, Atributos e Métodos devem ser contados. Não encontrei um programa para contar esses três itens, mas uma alternativa é os desenvolvedores irem contando eles ao longo das atividades. É...bem chato. Não esqueça de contar as métricas ao final de cada mês, e também não deixe pra depois.

Sobre a última compilação antes de imprimir  

O Glossário e a Lista de Abreviaturas e Siglas são gerados automaticamente no LaTeX. Você só precisa incluir os itens de cada um nos seus respectivos arquivos (defs-glossario.tex e defs-siglas.tex), referencia-los no texto com o comando \gls{} e ele gera as listas sozinho, contendo todas as páginas em que um item foi citado.
Acontece que, nessas listas, o Overleaf vai mostrar as páginas erradas em que um item foi citado por causa de...acho que algum problema no cache, não sei. O que você precisa fazer pra corrigir isso é clicar no menu Logs and output files, próximo ao botão de compilação. No final dos logs tem a opção clear cached files. Após limpar o cache a compilação é demorada, por isso é melhor corrigir o problema só na última compilação, quando for imprimir tudo.

Conclusão

É isso :). No geral, use as primeiras duas semanas para aprender o LaTeX e Overleaf, e comece já escrevendo nele, mesmo que a equipe ainda não tenha domínio da ferramenta, para evitar o retrabalho de transferir tudo do Word. Outra coisa que pode dar trabalho é a modelagem de Quadros e Tabelas. Nesse caso, dê uma olhada nos trabalhos anteriores no repositório do SVN. Talvez o seu problema já tenha sido resolvido.
Boa sorte :). E não use o Word. Libreoffice também não
Não use Word...use LaTeX...

domingo, 23 de junho de 2019

Relatório de atividades: Semana #18

Ana: user story de Análise geral do usuário, user story dos Feitiços, user story dos Itens e Runas, implementações back-end, implementações na tela das informações dos Campeões;
Andrei: revisão da documentação, complementar user story Campeões e Itens, user story da dashboard analítica, explicação da modelagem, edição da Conclusão, índices no banco de dados, implementações back-end;
Emilaine: edição do resumo e abstract, introdução, problema identificado, edição da documentação de gerenciamento;
Pedro: reformatação e edição de toda a documentação de gerenciamento;
Nildoardo: edição da documentação de gerenciamento;
Victor: ausente.

domingo, 16 de junho de 2019

Relatório de atividades: Semana #17

Ana:  revisão de user stories, continuação da tela dos campeões, alteração de UX da timeline;
Andrei: nova implementação para uso da chave da API da Riot, user story de análise geral do usuário, início da user story de dashboard analítica, correção de scheduler, correções de code smells, endpoints da fila de processos;
Emilaine: inserção de todonotes para indicações dos professores, correções da documentação conforme indicações dos professores;
Nildoardo: afastado por problemas de saúde;
Pedro: novo template da tabela de gerenciamento, ajuste de métricas na documentação, correções da documentação conforme indicações dos professores;
Victor: ausente.

domingo, 9 de junho de 2019

Relatório de atividades: Semanas #15 e #16

Ana: tela dos campeões;
Andrei: criação de endpoints para informações dos itens runas, spell e campeões; revisão das descrições das tabelas do banco;
Emilaine: correções da documentação;
Nildoardo: correção da parte de infra da documentação; correção do desenho da arquitetura; adição de capítulo e imagem de arquitetura;
Pedro: listagem das alterações solicitadas pelos professores; correções da documentação;
Victor: review do capítulo de gerenciamento da documentação;
Todos: brainstorm para a feature de sugestão de comportamento.

domingo, 2 de junho de 2019

Sobrevivemos à apresentação da primeira entrega

Neste sábado (1), realizamos a apresentação do nosso projeto, uma semana após a primeira entrega da documentação. Foram semanas de muito trabalho, dedicação e ansiedade - ainda mais acentuada pelo fato da nossa equipe ter sido escolhida para o primeiro dia de apresentações. Reunimos nesses posts os materiais que produzimos nessas duas semanas.

Primeira entrega e avaliação

A noite de entrega da documentação não é dedicada à apresentação dos trabalhos. Nela, os professores solicitam que as equipes se autoavaliem. Tivemos que analisar o nosso progresso e também dar notas para cada um dos membros, incluindo a justificativa para cada uma delas. Pode ser uma ocasião de muito conflito para as equipes que estão desalinhadas, mas é importantíssima para entrar nos eixos a tempo da segunda entrega.
» Baixe a nossa primeira documentação no SVN.

Apresentação

Estes foram os slides que utilizamos na nossa apresentação.

Gource do dia da apresentação

Geramos mais um vídeo do Gource no dia da apresentação e upamos no nosso canal do YouTube:

Nossa aplicação

Neste vídeo, o Andrei Teixeira apresenta a nossa aplicação. Ele foi gravado na semana da primeira entrega e entrou no CD que acompanhou o nosso documento. :)

segunda-feira, 20 de maio de 2019

Relatório de atividades: Semana #14

Ana Carla: checklist do SVN; tela de histórico do jogador; tela de timeline; documentação de gerenciamento e sprints;
Andrei: complementar back-end para o front; tela de histórico do jogador; tela de timeline;
Emilaine: documentação; gource; posts do blog;
Nildoardo: documentação; diagrama de classes; validador HTML; envio de URLs para professores; formatação da documentação.
Pedro: complementar documentação; formatação da documentação.

terça-feira, 14 de maio de 2019

Relatório de atividades: Semana #13

Ana: documentação das user stories; planilha de custos mensais da Amazon; diagramas de sequência; documentação de gerenciamento dos sprints anteriores;
Andrei: documentação das user stories; configuração de scheduler para leitura de registros; processamento de dados do scheduler;
Emilaine: diagrama de classes; revisão da documentação; edição da documentação;
Pedro: revisão de literatura; documentação de gerenciamento dos sprints anteriores; edição de documentação;
Nildoardo: diagrama de atividades; diagramas de sequência; documentação das user stories.

domingo, 5 de maio de 2019

Relatório de atividades: Semana #12

Ana: organização do Trello; diagramas de sequência do script; ajustes no script;
Andrei: revisão da user story de histórico de partida; realização da process queue e do scheduler de atualização de informações;
Emilaine: diagrama de classe;
Nildoardo: diagramas de sequência e de atividade de todas as classes;
Pedro: documentação, configuração do StatSVN;
Victor: configuração do StatSVN.