Gerenciamento ágil para a SEFAZ AL – Scrum e Kanban
Aprenda sobre os principais aspectos dos processos de gerenciamento ágil para a SEFAZ AL, especialmente sobre Scrum e Kanban.
Fala, pessoal! O edital da Sefaz AL trouxe mais uma grande oportunidade para os alunos que se dedicam à área fiscal. Nesse artigo, falaremos sobre o Gerenciamento ágil de projetos: Scrum e Kanban, que se encontra na seção de Conhecimentos Básicos, na disciplina Tecnologia da Informação.
Inicialmente, é importante entender que o gerenciamento ágil de projetos prima pela satisfação dos clientes, através da entrega contínua de incrementos do produto que sejam capazes de adicionar valor. Para alcançar esse objetivo, é fundamental manter um padrão constante de comunicação entre a equipe do projeto e os clientes.
Esse assunto é bastante interessante, pois a aplicação dos princípios envolvidos não se restringe ao desenvolvimento de software; eles podem ser utilizados até mesmo na execução de projetos pessoais, com uma viagem, a compra de um imóvel ou o plano de mudar de carreira e virar um servidor público!
Os modelos tradicionais – Gerenciamento ágil para a SEFAZ AL
Existem diversos modelos de processos, que buscam associar as atividades envolvidas na construção de um produto de software. Dentre essas atividades, estão a comunicação com o cliente, para definição do objetivo e coleta de requisitos, o planejamento do projeto, a modelagem do sistema e a construção do código fonte.
O modelo mais emblemático e antigo é o sequencial linear em cascata, que, como o próprio nome antecipa, refere-se a uma organização linear das atividades, em que uma fase não deve iniciar antes do término da outra. A figura abaixo ilustra essa lógica.
Esse modelo foi muito importante no início da construção de sistemas mais complexos. Antes dele, os projetos eram desenvolvidos de uma maneira informal, resultando em produtos não confiáveis, de difícil manutenção, desempenho insatisfatório e custo maior do que o esperado.
Assim, o modelo em cascata introduziu contribuições relevantes para a engenharia de software, a exemplo da disciplina de planejamento e gerenciamento do desenvolvimento, aspectos hoje considerados tão triviais.
No entanto, logo o modelo começou a apresentar suas limitações. A principal delas está ligada ao fato de o cliente só ter o primeiro contato com o produto depois de um longo ciclo de desenvolvimento. Como consequência, os problemas são descobertos tardiamente.
Esse modelo é adequado em um cenário em que os requisitos são muito bem definidos e têm baixa chance de ser alterados ao longo do projeto. Todavia, o cenário atual de avanço tecnológico e demandas da sociedade digital exige justamente o contrário: capacidade de adaptação a mudanças contínuas.
Com isso, apesar dos avanços trazidos, os modelos tradicionais também passaram a ser insuficientes com o passar do tempo, abrindo as portas para os modelos ágeis.
O que é o Gerenciamento Ágil
Os métodos de gerenciamento ágil surgiram para fazer face a um cenário extremamente dinâmico, que impacta diretamente o desenvolvimento de software. Nesse cenário, os usuários alteram suas necessidades constantemente, muitas vezes não é possível definir todos os requisitos no início do projeto e o mercado se altera com muito mais rapidez.
Caso os modelos tradicionais sejam aplicados nessa realidade, certamente resultarão em projetos de alto custo e incapazes de entregar o que o cliente deseja.
Por outro lado, espera-se que uma equipe ágil seja capaz de responder às mudanças, aceitando-as como parte do processo. Por isso, os métodos ágeis visam a entrega rápida de software operacional, sem priorizar a especificação detalhada do produto no início do projeto.
As entregas rápidas são possíveis graças ao desenvolvimento incremental, em que o produto vai se aperfeiçoando a cada ciclo, ou iteração. Nesse caso, todos os stakeholders, ou partes interessadas do projeto, participam da especificação e avaliação de cada incremento.
Com essa sistemática, a equipe não perde tempo no início do projeto detalhando exaustivamente todas as características do produto. Definem-se, a cada etapa, as características do próximo incremento apenas, o que torna a fase conceitual mais rápida e dinâmica.
Outra vantagem é que, dessa forma, os clientes têm contato frequente com versões do produto e podem, assim, direcionar o produto final com mais propriedade. Quanto mais feedbacks dos clientes ao longo do processo de desenvolvimento, menor a chance de entregar um produto inadequado no final do projeto.
O termo desenvolvimento ágil foi primeiramente utilizado em 2001, quando um grupo de proeminentes especialistas em desenvolvimento de software se reuniu para discutir sobre suas pesquisas e métodos. Como resultado dos debates e discussões, deram origem ao Manifesto Ágil, documento que consolida as principais definições dessa abordagem.
O Manifesto Ágil – Gerenciamento ágil para a SEFAZ AL
O Manifesto Ágil apresenta-se como um documento que surgiu daqueles que precisavam de uma alternativa aos métodos tradicionais, considerados “pesados” e inadequados.
O manifesto apresenta suas ideias principais na forma de uma comparação, resumida abaixo, em que os itens da esquerda devem ser mais valorizados do que os da direita:
- Indivíduos e Interações > Processos e Ferramentas;
- Software funcional > Documentação abrangente;
- Colaboração com o cliente > Negociação de contratos;
- Responder a mudanças > Seguir um plano.
Dessa primeira parte, nota-se que o manifesto representou uma importante mudança de paradigma, reconhecendo e valorizando o talento e as entregas da equipe, bem como o trabalho colaborativo com o cliente.
O próprio manifesto destaca que os itens da direita têm sim seu valor. Porém, é importante que eles não virem o foco do trabalho, para que não degenerem em excesso de documentação, burocracia e disputas contratuais, como acontecia com os modelos anteriores.
Princípios – Gerenciamento ágil para a SEFAZ AL
De acordo com o manifesto, esses são seus doze princípios:
- Satisfação do cliente através da entrega contínua é a prioridade mais alta;
- Mudanças são bem-vindas, mesmo no fim do desenvolvimento;
- Entrega de software funcional com frequência, em curtos períodos;
- Área de negócio e desenvolvedores trabalham em conjunto;
- Desenvolvimento de projetos em torno de pessoas motivadas, oferecendo o ambiente e suporte necessários;
- Troca de informações entre a equipe de desenvolvimento face a face, e não através de documentos;
- Software funcional é a medida primária de progresso;
- Desenvolvimento em ritmo constante e sustentável;
- Atenção permanente à excelência técnica e bom design;
- Simplicidade é essencial – a arte de maximizar a quantidade de trabalho que não precisou ser feita;
- Times autogerenciados e auto-organizados;
- Periodicamente, a equipe reflete sobre como se tornar mais efetiva, e, a partir daí, refina e ajusta seu comportamento.
Existem diversos tipos de metodologias que seguem a mentalidade ágil, como XP (Extreme Programming), Crystal, FDD (Feature Driven Development), DSDM (Dynamic Systems Development Method) e Open Source Software Development. Veremos, a seguir, duas delas: Scrum e Kanban.
SCRUM – Gerenciamento ágil para a SEFAZ AL
O Scrum é o método ágil mais utilizado e, de acordo com a definição do Guia do Scrum, é um framework leve que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas complexos.
O Scrum é uma ferramenta de trabalho, portanto ele não fornece práticas, e sim uma estrutura na qual é possível enquadrar as práticas mais adequadas a cada situação.
Caracteriza-se por ter o fluxo de trabalho organizado em ciclos de desenvolvimento, chamados Sprint. Cada Sprint tem duração máxima de quatro semanas (um mês) e deve entregar um ou mais incrementos do produto.
Papéis
O Scrum define a estrutura da equipe de trabalho através do conceito de Scrum Team (Time Scrum). Trata-se de um time auto-organizável e multifuncional. A primeira característica significa que as pessoas têm autonomia para escolher a melhor maneira de realizar o trabalho.
Já a segunda representa a presença das competências e habilidades necessárias, dentro da equipe, para alcançar sua definição de sucesso e cumprir com a entrega de incrementos do produto ao final de cada Sprint.
Existem três possíveis papéis dentro de um Scrum Team, definidos a seguir:
- Product Owner (PO) – responsável, em nível macro, pela gestão do produto, garantindo que o produto certo está sendo construído, nas condições de negócio adequadas.
- Development Team (DT) – responsável pela microgestão e criação do produto. Garante a qualidade dos incrementos do produto.
- Scrum Master (SM) – responsável pela gestão de pessoas e do processo, garantindo que o projeto aconteça em um ambiente produtivo.
Artefatos
- Product Backlog – consiste em uma lista priorizada de todos os potenciais incrementos do produto. É mantida pelo PO e pode ser alterada a qualquer momento.
- Sprint Backlog – contém uma lista de itens selecionados do Product Backlog e as tarefas técnicas planejadas para torná-los incrementos do produto. É mantida pelo DT e pode ser alterada a qualquer momento.
- Product Increment – é o resultado, do ponto de vista do produto, do que foi produzido durante a Sprint.
Eventos ou cerimônias
- Sprint Planning – o principal objetivo é identificar quais itens do Product Backlog serão desenvolvidos durante a Sprint.
- Daily Meeting – as reuniões diárias ocorrem ao longo da execução e visam estabelecer o plano para as próximas 24h, bem como revisar o que foi feito desde a última reunião;
- Sprint Review – avalia o estado atual do produto, principalmente através de feedbacks que possam contribuir para o avanço do produto. É o momento em que o PO valida ou não a entrega da Sprint.
- Sprint Retrospective – é o último ato da Sprint e consiste em uma avaliação do trabalho realizado, identificando potenciais pontos de melhoria.
Kanban – Gerenciamento ágil para a SEFAZ AL
A palavra Kanban é de origem japonesa e seu histórico está ligado aos métodos enxutos (lean), utilizados com sucesso nos processos de fabricação da Toyota. O objetivo desse tipo de processo é alinhar os estoques ao consumo real de materiais, para evitar seu acúmulo.
De forma mais geral, em um ambiente enxuto, atividades e processos que não produzem valor para o cliente final devem ser eliminados. Sendo assim, o máximo de trabalho deve ser feito com o menor esforço.
Hoje, as equipes de desenvolvimento de software aproveitam esses mesmos princípios para gerenciar e ajustar sua capacidade de entrega às funcionalidades que serão desenvolvidas.
O quadro kanban
Na prática, o método consiste em um quadro kanban, dividido em colunas, que mostra todos os fluxos envolvidos na produção do software. Sendo uma ferramenta visual, o objetivo do quadro é exibir todo o trabalho da equipe, bem como identificar prontamente quaisquer impedimentos.
Um quadro básico contém três colunas: a fazer, fazendo e feito. No entanto, a depender do tamanho do projeto, o fluxo pode ser definido para atender à necessidade específica da equipe que vai desenvolvê-lo.
Work In Progress (WIP)
O WIP é outro importante conceito do Kanban e representa a quantidade de tarefas em andamento. Os seguidores da metodologia entendem que uma equipe multitarefas perde em eficiência, já que se dispersa mais nas trocas de contexto entre as diferentes atividades.
Portanto, um dos princípios máximos do método é limitar o WIP, para manter a equipe focada em um pequeno conjunto de atividades por vez. Assim, novas tarefas são finalizadas à medida que as antigas são finalizadas.
A definição WIP ideal depende das características do projeto e da equipe e deve ser ajustada com o passar do tempo, comparando-se as expectativas com o esforço realmente empregado para realizar as entregas.
Pessoal, por hoje finalizamos! Ótimos estudos e até a próxima!
Lara Dourado
Prepare-se com o melhor material e com quem mais aprova em Concursos Públicos em todo o país!