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!
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.
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 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:
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.
De acordo com o manifesto, esses são seus doze princípios:
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.
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.
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:
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.
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.
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!
Confira quais são os hospitais de lotação! Iniciais de até R$ 17,9 mil! O edital…
Neste artigo você encontrará um resumo do Transtorno de Personalidade Evitativa, pertencente ao tópico de…
Olá, pessoal, tudo bem? Hoje vamos falar sobre controle de constitucionalidade. Dada a proximidade da…
Atenção, concurseiros! Neste domingo, 22 de dezembro, encerra o prazo para garantir sua inscrição no concurso…
A área fiscal é uma das mais prestigiadas no mundo dos concursos públicos, com salários…
Olá, tudo bem? Hoje responderemos ao questionamento acerca da possibilidade de os sobrinhos-netos serem herdeiros,…