Arquivos da categoria: Metodologias

Tentar ou continuar na mesma?

Qualquer tipo de mudança na organização e pseudo-metodologias de desenvolvimento de qualquer empresa de tecnologia costuma ser um grande pesadelo. Isso é assim por vários motivos.

Geralmente os gerentes e diretores (na maioria das vezes) serão duros e contra qualquer tipo de mudança simplesmente pelo fato de a empresa ter gastado centenas de milhares de dinheiros, logo, pensarão por muito tempo que isso (metodologia customizada) deverá dar algum resultado, o que acaba não acontecendo na maioria da vezes. Essa negligência e fraqueza em assumir logo o prejuízo e tentar mudar – para melhor – acaba acarretando em prejuízos muito maiores no futuro, demissões em larga escala, troca de diretoria e por aí vai, já vi isso antes.

Outra justificativa muito usada para evitar mudanças será a falácia de que “em time que está ganhando não se mexe. Grande parte das vezes falta coragem ou maturidade para enxergar que o time não está ganhando e que precisa ser modificado, sim. Também não é incomum encontrar situações onde a mudança não é vista com bons olhos pois as metodologias pra inglês ver, as certificações (de parede) e demais honrarias são mais valorizadas do que às pessoas e o produto que a organização entrega, então, nesses casos pouca importa se está bom ou ruim.

Mas onde eu quero chegar com esse post? Todas estas situações que falei até agora são conhecidas pela maioria dos desenvolvedores e sabemos que são situações difíceis de serem vencidas, eu mesmo já fracassei em algumas tentativas de mudança diante de tais situações e felizmente já obtive muitos sucessos também.

Recentemente, almoçando com um grande amigo acabamos caindo no papo sobre as nossas empresas e clientes e falamos sobre um caso em especial. Um cliente em que já haviámos trabalhado, onde enfrentamos todas aquelas situações anteriores de uma só vez – acreditem! – continuava na mesma. Com os mesmos problemas de sempre (atraso), mesmos gerentes/diretores e as mesmas pseudo-metodologias e regras internas, a única coisa que não era a mesma eram os clientes, nem preciso dizer o porque.

Mas a disucssão não chegou a ser prática ao ponto de “seja ágil”, “você precisa praticar TDD/BDD”, “agarre-se ao PMBok” ou “se você não aderir ao Scrum não vai ter jeito”, nada disso, não estávamos questionando a metodologia, nem as regras em si, mas sim a resistência em mudar. Fazendo uma breve retrospectiva vimos que 100% dos últimos projetos não haviam sido entregues na data prevista, desses 100%, 100% tiveram o orçamento o estourado e, desses 100%, 100% não atenderam a todas as expectativas do cliente e foram entregues com features a quem do esperado.

Diante de um cenário como esse, por que não deveríamos tentar mudar? Por que não tentar fazer alguma coisa diferente? Se estamos “sendo ágeis com scrum+xp” por que não tentar um modelo mais lento!? Se o RUP/MPS.Br/QualquerCoisa não está dando certo, por que não mudar e tentar outro? Se as metodologias e regras internas não estão sendo suficientes, por que não deveríamos tentar outra? Com um histórico de atrasos e fracassos, o que poderia acontecer de pior, atrasar 9 semanas ao invés de apenas 7!?

Não fique na mesma por muito tempo, mesmo que o seu time esteja ganhando e esteja realmente na frente, experimente mudar, tente melhorar, evoluir. Avalie sempre não só as mudanças, mas veja o que elas poderão fazer por sua organização, por seus projetos, se algo pode ser melhorado, vá em frente, se algo pode piorar, avalie o seu presente e passado e veja se vai, de fato, piorar, ou se você já estava “na pior” e não estava se dando conta. Não seja cético correndo atrás do que está na moda, na crista da onda, isso nem sempre será bom pra você, mas procure sempre avaliar sua situação e ver o que você pode tentar melhorar e o que pode, sem prejuízos, continuar na mesma.

Planning Poker Cards

O Flavio Steffens, que escreve no blog Mudando uma Pequena Empresa publicou hoje um esquema muito legal para usar-se no Planning Poker, são as tão famosas cartas (cards). Pelo relato em seu blog, são os próprios modelos que o Flavio utiliza na empresa em que trabalha e pelo que eu já vi, são bem úteis e aplicáveis a qualquer outra empresa.

Então, se você também faz rascunhos sofríveis em papel chamex ou se você também tem o péssimo costume de perder ou inutilizar as cartas entre uma sprint e outra e precisa ficar fazendo tudo de novo, aproveite o modelo disponibilizado pelo Flavio e mande fazer os seus cartões de verdade numa gráfica.

ASS Certified

Recordar é viver. Já faz um tempinho que eu conhecia a certificação Agile Software Specialist (ASS), mas ainda não havia comentado nada aqui no blog.

Para quem não conhece ou ainda não tem a sua certificação de agilista, CORRA e tire logo a sua também. Vocês vão ver como o mercado se tornará receptivo e aberto, novas oportunidades surgirão o tempo todo, e o salário, aham, o salário você nem vai acreditar:

Certification for Software Professionals. Join the Agile revolution!
http://www.agilecertificationnow.com/
Become a Certified Agile Software Specialist! The Fastest Certification On The Web

Brincadeiras de lado, essa “certificação” é apenas uma paródia, uma brincadeira. É óbvio que isso não vai mudar nada na carreira e nem muito menos vida de ninguém. Mas ainda assim, apesar da brincadeira da certificação, o site passa uma mensagem importante que devemos nos atentar.

Alguns trechos do texto do site expressam exatamente o que muita gente quer, parece brincadeira ao ler, mas já vi muita gente que acreditaria de fato nesta certificação pois é exatamente o que sempre buscaram, talvez eu até me incluiria neste meio se as certificações resolvessem algo de fato. Mas vejamos, por exemplo:

There are no tests, classes, books or interviews!

Receive the benefits and admiration that comes with certification!

Bem ao estilo de comercial milagroso de televisão, aqueles do tipo resolva todos os seus problemas em 1 minuto. Até que seria bom se funcionasse, mas as coisas não são necessariamente assim. E mesmo que hajam muitos livros, testes, provas e entrevistas, isso tudo também não vai garantir nada e nem muito menos servir como argumento ou base para muita coisa, e não vai mesmo.

O que eu mais ouço por aí é que: – A certificação não vai mudar nada mesmo, mas pelo menos vou ter respaldo no que eu falar, pois a certificação me dá esse crédito. Será assim mesmo? Eu já participei de tudo que é tipo de projeto com todo tipo de gente que se pode imaginar e sinceramente, dos poucos que eram certificados, muitos não faziam valer este tal “respaldo” da certificação, muito pelo contrário, as discussões, provas de conceitos e o dia-a-dia do desenvolvimento eram sempre os mais engraçados complicados, devido justamente ao fato de serem ignorantes o suficiente para achar que tinham tal crédito (respaldo) para falar e fazer o que bem entendessem, para tomar decisões teóricas.

E o pior de tudo é que quase todas as situações anteriores aconteceram com pessoas com certificações técnicas, o que é pior ainda, pois nestas certificações uma boa base de leitura, estudos e testes deveriam, ao mínimo, colaborar bastante com o conhecimento técnico destes profissionais.

Não desmereço quem tem ou corre atrás de certificações diversas, muito pelo contrário, sejam elas técnicas ou não eu valorizo e respeito muito a dedicação e o esforço que cada um teve pra conseguir seus certificados. Valorizo sim, os esforços, os certificados geralmente não. Mas por que não? É simples: Certificações não funcionam! Em alguns casos certificações técnicas ajudam muito, sim, mas ainda não servem como regra ou pré-requisito para definir o conhecimento de ninguém, quem dirá sua capacidade como um líder, coach, etc.

Não funcionam por um fato bem simples: ninguém vai se tornar um profissional melhor simplesmente porque leu um livro ou assistiu algumas aulas ou fez uma ou duas dúzias de simulados e testes e no final recebeu um certificado. Isso tudo é um sonho, as coisas não funcionam assim no mundo real e nem tendem a funcionar assim um dia. E o maior problema disso tudo é a falta de capacidade da muitos gerentes/diretores para enxergar isso, hoje em dia as companhias estão buscando cada vez mais profissionais certificados sem dar a mínima para o real conhecimento e experiência deste profissional.

Por essas e outras que não é muito difícil encontrar profissionais (que dizem ser) líderes, gerentes, arquitetos, consultores e qualquer outro cargo bonito que você quiser e que, vivem tomando decisões erradas, não assumindo erros, orientando sem saber equipes que também nada entendem o que lhe fora orientado, e por aí vai.

Onde quero chegar com este post? Talvez nem eu saiba, ele está sendo só um desabafo (antigo) e um apelo para que todos que lerem o post também leiam isso, isso e isso.

Continue lendo ASS Certified

Code To Ruin

Já devo ter comentado em outras ocasiões aqui no blog que eu gosto muito dos posts do blog Worse Than Failure (antigo The Daily WTF). E essa semana saiu um post chamado Avoiding Development Disaster, um excelente artigo que fala sobre os projetos de desenvolvimento de software e as lições aprendidas nestes projetos, mas que muitas vezes gastaram milhões e milhões de dolares, geraram uma excessiva documentação inútil que nunca será lida por alguém e milhões de linhas de código que jamais serão executadas em produção, enquanto poderiam ter sido facilmente encontradas num bom livro de engenharia de software. O artigo mostra também os vários caminhos que os projetos podem seguir – tendenciosos ou não – rumo ao sucesso ou ao fracasso.

Avoiding Development Disaster

SCRUM

SCRUM!? Se você pensou “- Que sigla é essa?” não se preocupe, é normal. Mas se você se lembrou de um acidente feio num jogo de Rugby e que durante a organização para reiniciar o jogo o narrador falou algo parecido com SCRUM (rugby), passou perto, isso é SCRUM mesmo, mas não é desse SCRUM que vou falar hoje.

O SCRUM que estou me referindo é um método simples e rápido para gerir o ciclo de desenvolvimento de software, e sim, teve seu nome baseado no SCRUM do Rugby.

Agilidade, quem não tem lido esta palavra ao menos uma vez por dia? Pois é, esta é a bola da vez, linguagens e ferramentas que facilitam e aceleram o desenvolvimento tem aparecido aos montes, evoluções em várias outras linguagens de programação para acompanhar esta tendência também não param de surgir e isso é bom? Sim, eu diria que é excelente, mas não basta o desenvolvedor ser ágil, será que a equipe como um todo está preparada pra isso, o analista, consultor de negócios e o seu gerente, são ou adotam práticas de gestão tão ágeis quanto você? Talvez essa pergunta renda outros posts por aqui.

O Scrum tem como objetivo principal, definir um processo para projeto e desenvolvimento de software, que seja focado nas pessoas e que seja indicado para ambientes em que os requisitos surgem e mudam rapidamente. O Scrum também é considerado um método específico para o gerenciamento do processo de desenvolvimento de software.

O Scrum baseia-se ainda, em princípios como: equipes pequenas (+- 7 pessoas), requisitos que são pouco estáveis ou desconhecidos, e iterações curtas. Divide o desenvolvimento em intervalos de tempos de no máximo 30 dias, também chamadas de Sprints. Este método não requer ou fornece qualquer técnica ou método específico para a fase de desenvolvimento de software, apenas estabelece conjuntos de regras e práticas gerenciais que devem ser adotadas para o sucesso de um projeto. As práticas gerenciais do Scrum são: Product Backlog, Daily Scrum, Sprint, Sprint Planning Meeting, Sprint Backlog e Sprint Review Meeting.

Numa próxima oportunidade, falarei um pouco a fundo das práticas do Scrum. Por enquanto, quem tiver interesse no assunto, vai começar um curso de Scrum na Caelum e também tem a lista do Scrum-Brasil.