Então comecei a trabalhar para uma grande corporação, uma daquelas com três letras no nome, e elas estão tentando se tornar Agile, mas têm muitos processos, que eu não acho que sejam Agile.
O que mais me chamou a atenção são as revisões de código. Meu último trabalho foi em uma startup que eu diria que é a equipe de desenvolvimento mais ágil que eu já vi, participei e / ou já ouvi falar.
De qualquer forma, meu argumento é que as Revisões de Código são uma perda de tempo no desenvolvimento iterativo ou Agile, em que a UX / UI é extrema / intensa (pense na perfeição da Apple / Steve Jobs). Talvez alguém aqui possa ajudar a entender antes de me despedir?
Aqui está o meu processo de desenvolvimento e o da minha última inicialização ... muito ágil.
Fazemos o trabalho inicial de recursos para classificar tarefas de desenvolvimento / todos. Zombamos de algumas versões e apresentamos aos usuários, equipe e marketing para obter feedback. Em seguida, fazemos outra iteração de maquete para obter uma rodada das mesmas partes interessadas acima. Então dividimos o trabalho e começamos. Temos marcos e datas a cumprir, mas continuamos nos afastando. Não temos revisões de código durante nada disso. Várias vezes durante as semanas de nosso desenvolvimento, realizamos sessões com as partes interessadas novamente para verificar se elas ainda concordam que recursos / funções / UX / UI ainda são adequados e estão no alvo.
À medida que nos aproximamos do final do ciclo de iteração de oito semanas, o controle de qualidade começa a ser testado, depois ele é direcionado aos usuários alfa e, finalmente, aos usuários beta. Porém, durante os desenvolvedores alfa e beta, revisamos os novos recursos e os recursos mais antigos, fazendo alterações iterativas diárias ou de hora na interface do usuário para melhorar o UX. Portanto, um recurso que estava sendo desenvolvido nesta versão pode acabar sendo alterado mais três vezes nas últimas quatro semanas para aprimorá-lo e aperfeiçoá-lo ou adicionar alguns recursos minúsculos (por exemplo, tornar o componente um pouco mais inteligente ou mais inteligente). Às vezes, as alterações podem ser superficiais, o que significa que nenhuma operação CRUD é alterada ou modificada, mas todas as UI apenas são alteradas.
Portanto, com esse tipo de processo de desenvolvimento, Agile extremo, as revisões de código não seriam uma perda de tempo? Ou seja, se eu tivesse outro desenvolvedor ou dois revisando meu código, mas esse código for alterado mais três vezes antes de sair pela porta, por causa de todas as melhorias na UI / UX, não estamos perdendo tempo nas primeiras 3 vezes em que o revisaram código como esse código / componente / interface do usuário foi descartado?
Nunca tivemos muitos problemas de qualidade nesse processo e sim, se um desenvolvedor deixasse todo o conhecimento fora da porta, mas sempre encontramos desenvolvedores inteligentes para buscá-lo.
E sim, temos muitos testadores porque eles podem ter que testar novamente as coisas 3 ou 4 vezes. Além disso, não se preocupe em perguntar por que todas as alterações na interface do usuário / UX ... é exatamente assim que as coisas são feitas ... é por isso que o aplicativo ganha muitos prêmios por interface do usuário / UX e os usuários matam pelo aplicativo. O processo de pensamento é se eu posso fazer uma melhoria de até 2% em alguma coisa, porque eu tenho uma hora extra e faço isso. Os usuários ficarão mais felizes, o que significa mais $ ou usuários. E sim, nossos usuários estão bem com o aplicativo mudando continuamente, porque é assim que é feito desde o primeiro dia para que eles não o vejam ruim ou negativo.
Espero que este post não pareça pomposo, mas não consigo ver como as Revisões de Código não são um desperdício. Talvez 2% de todo o nosso código no código revisado tenha erros. Em cada versão, podemos encontrar 3 bugs via revisão de código. Portanto, acaba sendo 40 horas de revisão de código por desenvolvedor por versão (4 x 40 = 160 horas) para encontrar de 3 a 5 erros? As chances são de 50% de que de 3 a 5 bugs teriam sido detectados pelo controle de qualidade de qualquer maneira. Não seria melhor gastar 40 horas por desenvolvedor adicionando um novo recurso ou melhorando os existentes?