Post Mortem
Introdução
Este documento tem por finalidade fornecer uma avaliação crítica quanto ao projeto, realizado na etapa final, é de suma importância sua leitura, pois ele contém informações cruciais para auxiliar no desenvolvimento de projetos futuros.
Pontos do projeto
Positivos
- A integração entre os grupos facilitou bastante o desenvolvimento, o que tornou possível que diversas tarefas pudessem ser "quebradas" em pedaços menores, agilizando esse processo.
- Nosso grupo não possuia conhecimento em várias das tecnologias utilizadas no desenvolvimento do projeto, mas com o tempo fomos criando familiaridade com as novas tecnologias e entendendo suas importâncias e aplicações.
- Aprendemos a utilizar o git e o github e percebemos o quanto são importantes para a vida de um programador. Com certeza levaremos esses conhecimentos para a vida.
- Muitos conceitos foram clareados na nossa cabeça, como o de backend, frontend, SCRUM, Product Owner, entre outros, que são muito falados porém muitos de nós não tinhamos esses conceitos bem definidos, e através de MDS muitos conceitos foram clareados.
- Entramos em contato com muitas tecnologias que não sabiamos que existiam, como heroku e selenium, e outras que ouvíamos falar muito porém não tinhamos conhecimento, como Django e docker.
- Durante o projeto, desenvolvemos muito o nosso vocabulário, tanto de programador quanto sobre métodos ágeis.
- Tivemos a capacidade de evoluir bastante em relação a resolução de problemas que foram surgindo ao longo do projeto, nos deixando mais preparados para projetos dessa magnitude.
Negativos
- Em alguns momentos, a falta de conhecimento em algumas tecnologias fez com que fosse mais difícil solucionar alguns problemas que às vezes ninguém fazia ideia de como resolver, mesmo pesquisando à respeito, ocasionando situações como: atrasar o que foi na planejado na Sprint mais do que o esperado, ou até mesmo ter que retroceder um pouco no projeto, por exemplo.
- Por conta do tempo de dedicação necessário para a matéria, acredito que a quantidade de créditos deveria ser maior. O recomendado é que peguem poucas matérias e foquem em MDS, senão pesa muito.
Conselhos para projetos futuros
- Realizem e valorizem as práticas ágeis, porque além de ser muito útil no desenvolvimento e organização no projeto, ao longo das aulas foi possível perceber o quanto isso também é valorizado e praticado no mercado de trabalho.
- Aprendam a utilizar o git e o github o quanto antes, são ferramentas extremamente poderosas e úteis para o desenvolvimento do projeto.
- Não tenham vergonha de dizer quando não souberem de algo. Pra o projeto dar certo, transparência é essencial. Se alguém tem falta de conhecimento em algo, é bom que todos saibam, para que se ajudem. Não chegue na matéria achando que só você não sabe de nada e todo mundo sabe de tudo. A real é que tá todo mundo perdido.
- Estudem as tecnologias que foram assertadas pela equipe e não deixem para depois, sigam o conselho, vai ser muito pior na frente!
Feeling Individual
Caio Oliveira (Product Owner)
Apesar de não conseguirmos aplicar 100% as metodologias ágeis, ainda assim tivemos um contato muito direto com elas, como o próprio SCRUM, o que foi legal porque nos aproximou mais desse lado "engenheiro" que teremos um dia no futuro, eu espero... O que nos impossibilitou mais foram as diferenças de horários e a falta desses também, várias pessoas falaram que queriam pegar MDS com menos matérias ao mesmo tempo, mas eu discordo disso, você ter que se virar e organizar seu tempo, apesar de ser estressante, te prepara para uma vida no mercado de trabalho, onde você não terá só uma atividade por vez e ficará na tranquilidade.
Além disso houveram vários momentos que realmente nos preparam mais para agir em uma equipe de nível maior, geralmente estamos acostumados com equipes pequenas, com amigos e com trabalhos de semanas, ou até de um mês, nesse caso não, conhecemos várias pessoas novas, pessoas até mesmo que moravam próximas e ainda não tinham tido a oportunidade de se conhecer, e tivemos que nos desenvolver para nos comunicarmos melhor, resumindo, perder a vergonha.
Uma dica para quem ainda não pode pegar a matéria por algum pré-requisito é cursar desenvolvimento de software, eu cursei essa matéria faz alguns semestres e ela deu um preparo muito bom para métodos de desenvolvimento de software, muitos dos assuntos que vemos aqui usamos lá primeiro de forma mais simplificada.
Contudo, mesmo sendo um semestre muito curto, acredito que conseguimos tirar muito proveito da matéria em relação a experiência em si, uma coisa muito boa na matéria, ruim na hora, mas boa depois, são os problemas, vão aparecer inúmeros, mas a parte boa é resolvê-los, o que te deixa mais preparado para tudo nesse mundo de tecnologia. Por último deixo uma observação, não tenham medo das funções, eu pude rotacionar e participar de todas as funções e em cada uma tem uma particularidade diferente, e não fiquem pensando "Ah, não vou pegar a função tal porque eu quero programar", a programação nessa matéria virá no tempo certo, e todos vão ter sua área para brilhar, basta se dedicar e mostrar interesse. Infelizmente no meu semestre acredito que esse momento de programar chegou levemente atrasado, talvez umas 2 ou 3 semanas mais cedo teria sido perfeito.
PS: Meu GIF representa meus sentimentos durante o semestre :)
Vitor Eduardo (Dev)
Esse semestre foi um pouco atípico por conta das complexidades das matérias que peguei, e MDS não foi diferente, muitos desafios tiveram que serem superados. Foi uma matéria onde eu realmente me senti parte de uma aplicação real, utilizando não só conhecimentos de programação como também de trabalho em equipe, métodos ágeis e uso de outras ferramentas, como git e github. Por conta desta matéria, comecei a visualizar a importância do uso dos métodos ágeis dentro de uma equipe e a importância de cumprir cada etapa planejada dentro do tempo previsto. No início eu acreditava que dava para deixar MDS para depois e depender mais do grupo, porém com o tempo percebi o quão errado eu estava em achar isso. Derrepentemente eu tinha infinidade de coisas para colocar em dia para não atrasar o andamento do projeto, e percebi o quão importante é o trabalho em grupo com a participação de todos. Uma recomendação para todos que irão fazer essa disciplina é não ignorar ou achar que tal coisa é inútil, tudo tem seu propósito dentro do projeto.
Em muitas situações me sentia incapaz de solucionar algum problema sozinho durante a etapa de desenvolvimento da API, porém o trabalho em equipe foi essencial para superar muitos desafios. Foi necessário muito esforço e leitura de documentações para que cada função tivesse sua execução de forma correta.
Para quem irá começar MDS agora, eu recomendo que foque na matéria desde o início e aprendam bem como utilizar o git e o github e resolvam o máximo de issues e deem o máximo de commits que puderem.
Entretanto, apesar da correria do semestre, foi muito proveitoso, pois tivemos contato com diversar tecnologias realmente úteis para a vida profissional. Aprendemos a lidar com diversos problemas e imprevistos que fazem parte do dia a dia de um profissional da área. Essa foi a matéria que me fez perceber que a vida de um engenheiro de software não é só programação, existem muitas outras coisas que são tão importantes quanto, pois sem elas é difícil dar sequência ao projeto. Apesar da demora de realmente entrar de cabeça e entender o propósito da matéria, foi muito satisfatório ver meu avanço em conhecimento em muitos áreas.
Queria agradecer também aos meus companheiros de grupos, pois foi com eles que superei muitos desafios, e sem eles o projeto se tornaria quase impossível de ser realizado dentro do prazo.
Esse gif representa meu estado de espírito nesse semestre hehe.
### Laura Pinos (Dev)
Em uma matéria que "já começamos atrasados" é muito importante nos mantermos unidos com nosso grupo para seguirmos até o final e ganharmos bastante conhecimento.
Com muitas responsabilidades dentro e fora do projeto, a perseverança deve continuar até o final.
Com muito estresse e poucas noites de sono, conseguimos botar em pratica um grande projeto.
### Matheus Gomes (Dev)
Eu não tinha a menor ideia do que seria da matéria de Métodos de Desenvolvimento de Software, mas já sabia da importância dela pelo que muitos diziam. Depois que o semestre começou, os grupos foram formados e os temas designados, eu criei uma certa expectativa sobre o que vinha pela frente, achando que seria a coisa mais tranquila do mundo, principalmente por terem vários grupos envolvidos, então pensei que não seria tão pesado, mas com o passar do tempo vi que não seria tão simples assim.
De começo, nós (os grupos em conjunto) tivemos certa dificuldade para escolher quais seriam as melhores tecnologias pra desenvolver o projeto, pois algumas delas seriam novas para todos, já outras eram conhecidas por alguns, mas por outros não, e cada um que trazia uma sugestão tinha suas considerações que pareciam válidas, mas apesar desse pequeno problema inicial do escopo, as escolhas foram feitas e pudemos dar seguimento com o processo.
Depois disso, acredito que a maior dificuldade que nosso grupo teve foi com relação às práticas ágeis. O desempenho das funções de um time Scrum, como Scrum Master e PO, as práticas de Review e Daily, tudo isso levou tempo pra que a gente se adaptasse, o que agora eu percebo como fez falta ao longo do projeto. Mas também foi algo que com o tempo conseguimos melhorar e vimos que fez a diferença.
Desde o começo eu sabia que o semestre iria ser mais curto do que o normal, mas eu achava que seria como qualquer outro, até que as coisas começaram a acontecer e eu vi o quanto esse período mais apertado influenciou muito na evolução de tudo. Apesar de alguns acúmulos de conteúdos, atrasos de entrega e ter que conciliar com outras matérias, acredito que a experiência foi muito rica. Deu pra aprender muita coisa sobre o mundo da engenharia de software, sobre projetos open source, carreira, coisas que nunca tinha visto e experienciado em nenhum dos meus semestres anteriores. Além de todo o processo de crescimento pessoal que estava envolvido nos momentos de pesquisar e aprender por conta própria sobre alguma tecnologia, ou nas conversas com monitores e a professora e até mesmo o contato com os outros grupo do projeto.
Acredito que, sem dúvidas, as coisas que aprendi ao longo do semestre farão muita diferença na minha vida como profissional de software daqui pra frente, e por isso gostaria também de agradecer a todos os envolvidos, em especial a professora, que sempre esteve dando o apoio necessário, e a galera do meu grupo, que foi incrível o tempo todo, e deu pra gente se divertir bastante em alguns momentos hehehe.
Esse gif me representa depois da entrega do projeto, com o fim de mais um semestre e por não ter perdido toda minha sanidade.
### Lucas Queiroz (Arquiteto)
No início do semestre, estava muito animado para estudar MDS. Quando entrei na FGA, iria fazer eletrônica, então tinha pegado poucas matérias relacionadas a programação. Assim, a ideia de cursar uma matéria que seria 100% da engenharia de software me agradou muito. O começo do projeto foi muito caótico, pois não definimos muito bem o que seria implementado. Também, eram muitos conceitos(i.e., SCRUM, métodos ágeis, etc) novos que, sendo sincero, não estudei porque achei que era bobagem. Descobri, mais pra frente, que não era. Por isso, só fomos entender a importância dos métodos ágeis mais ou menos na sprint 5.
Por causa disso, perdemos muito tempo e acumulamos muito conteúdo. MDS é uma matéria que demanda muito tempo, paciência e esforço. Pessoalmente, não recomendo que alguém pegue muitas matérias no semestre que pegar MDS. Eu peguei algumas que também são muito puxadas, então em vários momentos tive que sacrificar uma em detrimento das outras. Isso significa que acredito que poderia ter tido um desempenho muito melhor do que tive em MDS.
Em relação a aprendizado, entendo que, devido ao fato de que MDS te obriga a ir atrás do conhecimento, acabei aprendendo um monte de coisa. No entanto, como fiz a escolha de curso tardia, acabei ficando um pouco atrás de todo mundo do meu grupo em questão de conhecimento. Por exemplo, não fazia ideia de como ajudar o pessoal quando começamos a utilizar um banco de dados. Isso me fez correr atrás de bastante coisa, mas, como nem tudo são flores, ainda assim não consegui aprender tudo que gostaria(pois, como disse, tive que sacrificar a matéria).
Gostaria de fazer algumas recomendações para quem for se aventurar na matéria depois de nós. Em primeiro lugar, a matéria não é sobre o projeto. O projeto é apenas uma forma para se aprender os métodos ágeis. Portanto, deixe bem definido logo no início como farão os rituais e deêm bastante importância aos métodos. Talvez você esteja lendo isso aqui sem entender nada(assim como eu não entendi nada quando li os post mortens passados), mas uma hora esses nomes estranhos vão fazer sentido. Além disso, é legal pensar desde cedo exatamente os requisitos do software. Isso vai evitar muito tempo perdido estudando coisas que não serão utilizadas de fato no projeto. Pensem, também, em uma estratégia para delegar as tarefas, para que ninguém fique sobrecarregado.
Por fim, gostaria de agradecer aos meus colegas, especialmente do meu grupo, por toda a paciência que tiveram comigo. Tive a sorte de pegar um grupo com amigos meus de anos(um deles, meu amigo mais antigo da vida). Então, como sempre, foi um prazer estar lado a lado batendo a cabeça na parede com vocês! E foi um prazer conhecer o pessoal novo! :)
Meu gif representa meu estado de espírito ao longe do semestre.
### Leticia Aires (Scrum Master)
Honestamente, no início do semestre eu estava muito preocupada em estudar MDS, já que muitos me falaram que é a matéria mais trabalhosa do curso e que não é aconselhável se matricular em muitas disciplinas enquando cursa essa. Contudo, conforme fui assistindo as aulas, contribuindo com o projeto e interagindo com colegas, pude regular a autocobrança e perceber o real intuito da matéria: Nos familiarizar com conceitos essenciais para o dia a dia de um engenheiro de software e aplicar esses conceitos em um produto tangível.
Confesso que no início fiquei meio perdida e demorei para pegar o jeito de fazer commits, além de compreender a importância da documentação e dos daily meetings e, por isso, vejo que meu desempenho poderia ter sido bem melhor, mas ao mesmo tempo, aprendi mais que em qualquer outra matéria que estou cursando agora. Nesse sentido, aconselho que realmente não se pegue mais de 5 matérias enquanto se estuda MDS, justamente para disponibilizar todo o tempo necessário para suprir a demanda da matéria, a qual exige bastante paciência e estudo.
Com relação ao aprendizado, percebo que esse não se resumiu só a metodologias ágeis, ou softwares, mas também a como lidar da melhor forma com a dinâmica de grupo, colaboração, bem como o ato de busca ativa pelo conhecimento. Dessa forma, é importante administrar o tempo para ter pelo menos 4 horas semanais dedicadas à matéria, além do momento das aulas.
Gostaria de dar algumas dicas para os próximos alunos que se depararem com esse post mortem. Em primeiro lugar, não se preocupe, a maioria das pessoas também não sabem nada a respeito dos softwares, políticas e metodologias no início da matéria, ou seja, não hesite em pedir ajudar! Isso acaba retardando o seu aprendizado e o projeto como um todo. Além disso, vale salientar que a constância é muito importante, então sempre busque manter o trabalho em dia para que esse não acumule, já que não dá pra correr atrás de última hora.
Por fim, quero agradecer a todos os colegas que contribuíram nesse projeto tão importante para o nosso crescimento acadêmico e profissional e que tornaram a concretização dele possível. Gostaria de agradecer, também, por toda a calma e disponibilidade em me ajudar a entender todo o ambiente do back end, já que tenho muito mais facilidade e afinidade com o front.
Meu gif representa eu quando estava orgulhosa fazendo meu primeiro commit sozinha e acabei não seguindo a política de branch, então ele foi pra main.