Quando eu fiz meu curso de gerenciamento de projetos (PMBOK) eu percebi uma coisa, que os conhecimento que eles propagavam eram excelentes, mas não cabiam no mundo do desenvolvimento de software, considerando que todo o escopo já deve ser definido quando começamos o projeto, a inexistência de gold plates etc. Não eram coisas praticadas na engenharia de software, mesmo que sejam práticas comuns na engenharia civil, elétrica etc.
Uma das grandes questões a serem considerados é que a produção de software é uma prática nova na nossa sociedade, as pessoas não tem 100% de certeza do que elas querem nesse campo, por exemplo quantos dos seus clientes determinavam um escopo de software, para no mês seguinte, durante o desenvolvimento, descobrirem que não queriam certa funcionalidade, ou que comportamento X só facilitaria o seu trabalho se também existisse um módulo Z, que não está no projeto do sistema. E isso acontece porque quando você apresenta ao cliente um novo software ele passa a querer que ele solucione todos os seus problemas do dia a dia.
Nesse sentido o Manifesto Ágil, determinou a base para um novo paradigma para o desenvolvimento de Software, até mesmo porque ele nasceu das mãos e das idéias de desenvolvedores de software. Mas antes de eleger o manifesto ágil seu novo princípio religioso é preciso entender que você só conseguirá ser ágil com aderência da sua empresa. Mas o que isso quer dizer?
Eu assisti pessoas quererem implementar Scrum em empresas que eram completamente engessadas em sua estrutura e sua cultura, aonde o controle sobre a tarefa do profissional era mais importante do que a meta coletiva, que considerava que o software executando na tela do cliente era o software pronto.
É impossível negar que aqueles que buscam trabalhar de uma maneira ágil devem primeiro conquistar a sua gerência e seus colegas, mas mais do que isso deve entender que o processo não será simples. Em muitos casos a cultura empresarial será o seu maior desafio, e isso vai muito mais do que a cultura da equipe de desenvolvimento, passando pelo pessoal que vende os projetos, como o departamento administrativo calcula custos e o retorno do software, como o RH mede a produtividade e recompensa profissionais etc.
Quando você trabalha em uma empresa que tem como principal produto o desenvolvimento de software a aplicação de metodologias ágeis vai impactar muitos processos dentro da sua empresa. Em contrapartida o resultado pode valer, e muito a pena.
Um grande exemplo de impacto de metodologia ágil no processo de desenvolvimento de software é a interação com o cliente durante o processo de desenvolvimento, vou falar aqui de como rola usando o eXtreme Programming em comparação à maneira tradicional.
Na metodologia tradicional, o usuario e entrevistado no inicio do projeto, e o projeto e desenvolvido a partir daquele escopo, cada alteração gera um novo escopo e deve ser restimado e colocado para depois de terminado o projeto. Utilizando o XP, as User Stories tem interatividade direto com o cliente modulo a modulo, funcionalidade a funcionalidade, o que aumenta a troca de informações entre as partes envolvidas.
A realidade do uso de metodologias tradicionais, que buscam ser generalistas entre diversas áreas da construção de produtos não é muito prática para o desenvolvimento de software. O motivo é que software, diferentemente de um apartamento ou de um carro, pode ser utilizado de maneira modular, ou seja, não precisa ser construído inteiramente para ter utilidade e garantir o retorno do investimento.
Exemplo clássico é da loja virtual que pode começar como um simples site com uma vitrine do que o cliente tem, fazendo com que os visitantes o contatem, ou visitem seu ponto de negócio físico, sendo que com o tempo agregar-se-á novos módulos e funcionalidades.
Isso permite que o cliente priorize novas funcionalidades, conforme as necessidades forem surgindo, e permite que a equipe atenda melhor o nosso cliente. Diversas práticas ágeis são usadas nos dias de hoje. O Scrum que é um framework de práticas, assim como o XP, e como não poderia deixar de ser essas práticas funcionam como design patterns, ou sejam, são interativas entre si. Assim o scrum se mantém utilizando uma diversidades de práticas que podem ou não pertencer ao XP entre outros.
O objetivo dessa seção é falar sobre as mais diversas práticas ágeis e mostrar como eles podem modificar o seu ambiente de trabalho. e beneficiar tanto a você, quanto a sua equipe e sua empresa. Espero que realmente eu possa produzir bons conhecimentos e ajude a todos que estão começando a enveredar pelas práticas ágeis.
Faremos uma introdução de algumas práticas e frameworks ágeis tais como:
Pair Programming
Refactoring
TDD
Clean Code
Scrum
XP
Kanban
Então fiquem ligados!
Related posts: