\chapter{Metodologias} % TODO: Rewrite this thing, Jesus De forma a prosseguir e conseguir viabilizar construir um software com qualidade, é necessário adotar algumas metodologias para fundamentar a ideia do projeto em si, como primeiro passo. Isso ajuda tanto em como priorizar funcionalidades quanto no aspecto de conseguir gerar dados para construir o mesmo de forma que entregue o que de fato é necessário para utilização do mesmo. Com esses elementos em mente, esse capítulo se debruça tanto na abordagem da metodologia de pesquisa do projeto quanto detalhar o método de desenvolvimento de software utilizado no projeto. \section{Metodologia de Desenvolvimento de Software} Existem diversos métodos de desenvolvimento, cada um com seus respectivos prós e contras. Todos tentam, de sua forma, responder à necessidade de dar forma ao processo de desenvolvimento, de forma que ele tente fluir e assegurar que os requisitos daquele software sejam atendidos, que os membros envolvidos no processo, tanto de desenvolvimento em si, quanto dos atores envolvidos e interessados no sistema tenham seus anseios respondidos de forma minimamente transparente e satisfatória. Além disso, a escolha de uma boa metodologia, adequada para as necessidades do sistema, permite que os prazos de entrega sejam melhor controlados e mais precisos \cite{pressman:2021}, minimizando a ocorrência de falhas e gestão do tempo. As ideias fundamentais que norteiam esse projeto são baseadas em dois conceitos chaves da engenharia de software: desenvolvimento incremental e desenvolvimento de software ágil. O IEEE define que a engenharia de software é: \begin{quote} Engenharia de software: A aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, na operação e na manutenção de software; isto é, a aplicação de engenharia ao software. (INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, 1990, p. 421, tradução do autor) \end{quote} Portanto, a engenharia de software propõe estruturar a criação de software de forma mais organizada e eficiente. Pressman vai destacar os modelos de desenvolvimento de software sequenciais e incrementais que moldam boa parte das práticas de engenharia de software nas últimas décadas. O modelo em cascata (waterfall) é um modelo sequencial, dos mais tradicionais e antigos a existirem, cujo qual necessita que cada etapa – levantamento de requisitos, projeto, implementação, testes – estejam concluídos antes da próxima etapa começar. Embora forneça uma estrutura rígida e lógica, é frequentemente criticado pela baixa adaptabilidade em relação às mudanças durante o processo de desenvolvimento. Em outro âmbito, o modelo incremental, trabalha com a premissa de um desenvolvimento feito em pequenas partes, que se agrupam para totalizar o projeto em si, trabalhando com a concepção de incrementos funcionais, cujo qual permite maior flexibilidade com as mudanças no processo. Também ajuda a iterar rapidamente em cima do desenvolvimento do sistema, criando um produto mínimo viável que possa preencher a proposta usando o mínimo de tempo, reduzindo as funcionalidades ao seu estado basal. Essa metodologia também ajuda a reduzir custos e riscos, já que necessita que as funcionalidades estejam em seu estado mais reduzido, porém funcionais. Outros modelos tradicionais citados por Pressman incluem o modelo de prototipação e o modelo em espiral, o primeiro trabalhando na ideia de elaboração de protótipos pequenos que validem a hipótese, e depois passe para a implementação final; e o modelo em espiral une a natureza iterativa da prototipação com os aspectos sistemáticos do modelo em cascata, sendo que acaba por ser um modelo geralmente usado para desenvolvimento de aplicações em larga escala, visto que oferece mais segurança ao processo de desenvolvimento. Apesar da influência histórica, tais modelos acabam por serem um tanto quanto burocráticos e em um projeto com um escopo de equipe reduzida e onde necessita um nível de flexibilidade maior, como este, portanto, uma adoção de uma metodologia mais flexível se faz necessária. Pressman, comenta que, por meados de 2001, um grupo de desenvolvedores deflagrou o “Manifesto Ágil”, um documento desenhando uma nova metodologia de desenvolvimento, destacando a satisfação dos patrocinadores do sistema, entregas mais rápidas, flexibilidade durante o desenvolvimento do software de forma a evitar que os desenvolvedores ficaram empacados e reduzisse rigidez. Os principais destaques da abordagem ágil é a proposta de que a mesma não é escrita em pedra, ou seja, permite flexibilidade no como aplicá-la. Nesse cenário, existem algumas abordagens sobre ela, como o Kanban e o Scrum, que dão um pouco mais de forma a ideia apresentada com o desenvolvimento ágil o que casa relativamente bem com o modelo de desenvolvimento incremental. Com base nesse panorama, o presente trabalho adota uma abordagem baseada na filosofia ágil, estruturada por meio da utilização de um quadro de Kanban, adaptado à realidade de um desenvolvimento individual. Diferentemente de modelos tradicionais que envolvem um maior formalismo, o Kanban permite visualizar e gerenciar o fluxo de trabalho de forma contínua, com foco na entrega incremental de funcionalidades. Por ser um método não prescritivo, o Kanban oferece liberdade para que as tarefas possam ser priorizadas, ajustadas ou redefinidas conforme a evolução do desenvolvimento, característica especialmente útil quando há apenas um desenvolvedor responsável por todas as etapas do processo. Vale ressaltar também, que a metodologia adotada acaba por ajudar a manter o fluxo de desenvolvimento contínuo sem sobrecarga, já que limita a quantidade de tarefas em progresso, gerando um movimento de maior produtividade e entregas. \section{Metodologia de Pesquisa} \lipsum[1-2] \subsection{Tipo de Pesquisa} \lipsum[1] \subsection{Instrumento de coleta de dados} \lipsum[1] \subsection{Análise de Similares} \lipsum[1] \subsection{Relação entre os dados coletados e o desenvolvimento} \lipsum[1]