Mapeando requisitos em projetos SCRUM – Uma proposta

As metodologias ágeis de gestão de projeto não estabelecem uma regra para o levantamento de requisitos no começo de cada iteração. De acordo com o SCRUM após as reuniões de Sprint Planning a equipe deve possuir um Sprint Backlog estimado e priorizado em conformidade com o que o Product Owner e a equipe do projeto acreditam que deve ser executado na Sprint atual. Durante essas reuniões, o time inteiro e o Product Owner são incitados a tirar dúvidas e levantar mais detalhes em relação a cada User Story que foi selecionada como escopo da Sprint, porém não há nenhuma recomendação sobre formas de propagar requisitos ou até mesmo descrevê-los.
Gravador
Como os próprios métodos ágeis pregam, devemos tentar fugir ao máximo de documentos e artefatos que pouco agregam ao time. Se no seu caso, as reuniões de Sprint Planning e conferências com o Product Owner são suficientes então nem continue lendo esse post. A nossa proposta é sugerir formas de manter esses requisitos na mente dos desenvolvedores e também trabalhar mais a fundo essas propostas, de forma a estimular a criatividade da própria equipe e disseminar o conhecimento dos requisitos.

A primeira técnica que já utilizei foi o famoso gravador de voz. Durante as reuniões com o cliente, levávamos um gravador MP3 para registrar todos os momentos com o Product Owner. O arquivo era posteriormente distribuído através do repositório da projeto. Os desenvolvedores e o Scrum Master sempre poderiam revisitar o arquivo de áudio e esclarecer possíveis dúvidas que surgem após um determinado tempo.
Apresentação dos Requisitos
A segunda técnica consiste em utilizar um membro da equipe para, após as reuniões de planning, criar uma apresentação com uma visão geral sobre cada requisito/user story e seus impactos. A grande vantagem dessa abordagem é a subsequente reunião que é feita após a definição desses requisitos. Todos os membros da equipe são encorajados a refinar os requisitos e a discutir de forma criativa as soluções que foram dadas aos problemas. Inclusive pudemos observar que a participação de engenheiros de teste foi bastante útil uma vez que eles são capazes de antecipar com maior critérios os fluxos secundários e os impactos de cada User Story no que já foi desenvolvido.

Existem várias outras possibilidades como o uso de vídeos, combinação de ténicas acima, uso de cartões e etc… O que realmente importa é garantir que  a todo momento todos os membros da equipe têm claro o que devem fazer e o que deve ser coberto ou não por cada estória a.k.a definição de pronto.

Novo Colaborador no Blog

Tenho o prazer de anunciar um novo colaborador para o blog Bytes don’t Bite.

Marcelo Nunes é engenheiro de sistemas e líder de projetos de software. Marcelo tem vasta experiência com tecnologia e agilidade, e trará posts interessantes sobre liderança, agilidade, desenvolvimento de software e TI em geral para a audiência do Bytes don’t Bite!

Seja bem-vindo Marcelo!

Ps. Em breve ainda mais novidades!

O Futuro das Redes Sociais: Qual a próxima revolução?

Primeiro de tudo, não sou um pesquisador da área de redes sociais, e o que vou falar aqui é puramente minha percepção a respeito das redes sociais e do futuro delas.

A internet era “individual”, até que a revolução dos serviços de chat começaram a fazer as massas se conectarem (mIRCICQ,  Serviços de bate-papo nos sites, etc). Nesse momento você não estava mais só, você tinha oportunidade de falar, conversar e conhecer milhares de pessoas espalhadas pelo mundo.

Esses serviços de chat evoluiram para serviços de chat via texto  mais elaborados (MSN Messenger, gtalk, Yahoo messenger, etc).  A partir daí a revolução para comunicação via voz (skype, gtalk por voz, etc). Logo em seguida, uma rápida evolução também para comunicação com vídeo.

As pessoas estavam cada vez mais conectadas, mas as “conexões” ainda eram basicamente a dois, ou em pequenos grupos, no caso dos chats. Foi aí onde começou a grande a sacada, reunir todas as pessoas em uma rede social, aonde você pudesse estar relacionado a diversos outros “amigos”, participar de comunidades voltadas para um tema específico, trocar informações com diversas pessoas ao mesmo tempo, compartilhar fotos e vídeos com todos os seus conhecidos, achar pessoas que você não tinha contato a muito tempo (por meio da recomendação). Maravilha!

Começaram a surgir então ferramentas com esse foco, conectar pessoas a diversas outras, neste ambiente altamente colaborativo, onde cada um contribuiria para a submissão de informação, dados e conteúdo em geral. As primeiras iniciativas de sucesso foram o Orkut, MySpace e por aí vai. Até que chegou o Facebook, abalando! Praticamente nessa mesma época, começaram a surgir (e ainda estão surgindo) também redes socias com objetivos mais específicos como o LinkedIn (para conexões profissionais), Last.fm (para compartilhar e escutar músicas e gostos musicais), Votizen (rede social em desenvolvimento com foco político para o povo expressar suas idéias e feedbacks), Flicker para compartilhamento de fotos entre conexões, Foursquare que é uma rede social que envolve geolocalização para fazer checkins (utilizando a app mobile tanto para android quanto para iphone) nos lugares que você frequenta, dentre diversas outras.

E aí veio o Twitter! E o twitter chegou e “pegou”. O twitter cresceu tanto que até o mercado em volta do twitter cresceu com ele (clientes de twitter, outras redes sociais que se integram a API que o twitter disponibiliza, etc).

Então só resta uma questão:

Qual vai ser o futuro das redes sociais? Qual a próxima revolução?

Todo esse histórico das redes sociais é importante pois entendendo o passado é que se constrói o futuro.

  1. Então uma coisa é certa, a próxima revolução vai envolver redes sociais. Mas o que será exatamente?
  2. Dado o sucesso do twitter, podemos concluir talvez que a próxima revolução também vai envolver comunicação em larga escala.
  3. Dado o sucesso do foursquare,  a próxima revolução vai envolver geolocalização.
  4. Dado o sucesso das aplicações mobile, a próxima revolução vai estar no seu celular, no seu tablet e também no seu browser, e não apenas em um só lugar.

Definitivamente, os que sairem na crista da onda da próxima revolução das redes sociais vão ganhar dinheiro e mercado e serão copiados por centenas de pessoas e empresas.

Será que estamos seguindo as pistas certas?

Mais sobre Software Craftsmanship…

Hoje eu escutei um podcast da software engineering radio com o famoso Robert Martin (mais conhecido como uncle bob) a respeito de software craftsmanship, e pude notar algumas coisas muito interessantes que ele falou, que eu concordei e decidi compartilhar.

O link da entrevista é esse aqui.

Aqui estão alguns pontos que ele comentou (não necessariamente em ordem):

  • “Software Craftsmanship é um movimento que está relacionado com o aprendizado da arte com os mestres.” Por trás dessa frase tem muitas coisas, e uma das primeiras delas é que todo iniciante no mundo de desenvolvimento precisa ter “mestres” por perto, para que possamos olhar, e aprender com eles como se desenvolve software. O que você aprende na faculdade não é suficiente para encarar o mundo do software sozinho. Se você acha que sozinho dá para aprender tudo, eu diria que você já começou errado. Como no mundo do artesanato convencional, você primeiro aprende com alguém, depois inicia sua caminhada sozinho e refinando sua técnica, e depois você poderá virar “mestre” de outros artesões. O mundo do software é muito parecido com essa realidade.
  • “Só no seu trabalho (das 8h as 17h)  você não vai conseguir ser um mestre e refinar/melhorar sua habilidade e técnica”. Essa é uma daquelas verdades inconvenientes. Mas a moral da história é que se você não usar o seu tempo “livre” para estudar, aprender novas coisas e aprimorar coisas antigas você provavelmente nunca vai poder começar sua jornada em direção a virar um mestre no futuro (na verdade nunca vai virar esse mestre #fact). Uncle Bob cita que ele acha que o tempo ideal para você dedicar nos seus estudos fora do trabalho é algo na faixa de 20 horas semanais. Acho que a quantidade de horas não é importante e nem existe um tempo para todo mundo, mas o fato é que o estudo fora do trabalho é muito importante nessa caminhada do artesão.
  • “Um médico cirurgião muito bom, depois de muitas cirurgias não vira gerente e pára de realizar cirurgias”. Esse é um ponto bem interessante que trás algumas verdades. A primeira delas é que você só aprende fazendo, e fazendo muito. A segunda verdade é que se você se especializa em um determinado artesanato (programar, gerenciar, testar, etc) você não deveria virar gerente depois de se tornar bom, pelo contrário, aí seria onde você começaria a realmente mostrar seu valor.
  • “Só quem sabe o que a equipe de desenvolvimento está passando (dificuldades, desafios, etc) é quem está botando a mão no código” Na verdade esse ponto é mais um combate a funções do tipo “Arquiteto” e similares, aonde você não codifica, mas você que dita a arquitetura (em termos de caixas e setas em power point ou qualquer outra ferramenta de diagramação) . No momento da criação das caixas e setas no powerpoint as decisões que vão ser tomadas estão em um nível acima das que precisam ser tomadas no código, são decisões diferentes e que as vezes até conflitam entre si. Arquitetura é código! Arquitetura e design é código! E os artesões de software são orgulhosos do código que fazem, e também de COMO esse código foi feito.

é isso, que discordar ou concordar com algo, please leave a comment!