SCRUM russo. Sem sentido e sem piedade

Boa hora do dia, querida Habr!

Sou programador da “velha escola” com mais de 20 anos de experiência. Ele participou do desenvolvimento de muitos projetos, muitos dos quais bastante famosos e bem-sucedidos. Em alguns projetos, ele ocupou cargos gerenciais e alcançou um bom nível salarial. Mas não nos reunimos aqui para medir nossa experiência, experiência, salário etc., certo? Vamos falar melhor sobre como as startups usam métodos modernos de gerenciamento do desenvolvimento de software. E o que vem disso.

aviso Legal Esta publicação reflete apenas a opinião pessoal do autor sobre o desenvolvimento e a aplicação de métodos modernos de gerenciamento de desenvolvimento de software e só pode ser considerada uma leitura divertida, ilustrando aqueles momentos que você pode encontrar repentinamente no trabalho diário de um programador.

Isenção de responsabilidade-2. O uso de emoticons não é recomendado em publicações sobre Habré. Mas eles estão implícitos.

Então, falaremos sobre a inicialização mais comum.

Era uma vez uma empresa de produção comum em que um processo de produção bem estabelecido opera há muito tempo e com sucesso. Todas as etapas do processo de produção mencionado são exibidas no sistema de informações da empresa. As matérias-primas e os componentes chegaram ao armazém - uma linha sobre esse evento apareceu no banco de dados do ERP ( Enterprise Resource Planning, Enterprise Resource Planning ). Os produtos manufaturados foram enviados ao comprador - mais algumas linhas foram adicionadas ao banco de dados. Rotina, tecnologia da informação comum a serviço de um negócio real, nada de interessante.

Mas o tempo não pára, as tecnologias da informação estão se desenvolvendo, o ERP banal não parece tão "elegante" (até, francamente, parece "ultrapassado" em alguns olhos) e um grupo de gerentes de iniciativa teve a ideia de "amarrar" o blockchain ao processo de produção. Não, não assim. BLOCKCHAIN. Moderno, poderoso, eficaz e incorruptível (todas as palavras com letra maiúscula).

Uma equipe de desenvolvimento reuniu - a mais comum, na composição mais clássica - desenvolvedor front-end, desenvolvedor back-end, desenvolvedor de banco de dados. 3 desenvolvedores e gerente de projetos. Embora não, realmente não há gerente de projetos ( - Você vê o esquilo? - Não ... - E eu não vejo. E ele é. ), Embora este autor esteja um pouco à frente.

Não havia nenhum especialista em blockchain na equipe jovem, nenhum dos desenvolvedores, incluindo o PM ausente, nunca havia lidado com o blockchain - portanto, o autor desta publicação, que tem experiência no desenvolvimento de vários projetos de blockchain, foi contratado como desenvolvedor de blockchain.

Como a tecnologia blockchain de informações planejada para uso no momento é a mais moderna, o método mais moderno de gerenciar o desenvolvimento de software foi escolhido - a saber, o SCRUM.

O autor tem certeza de que a maioria dos leitores de Habr conhece os princípios básicos desse método, mas como o próprio autor, na prática, encontrou esse método apenas neste projeto, ele se permitirá expressar de maneira muito simplista os pontos principais.

  1. (Project backlog) « » (user story) — , . «, , ...» ( — . ).
  2. . , «» « » .
  3. «», 1 . ( , ())
  4. «» « » ( , . )

Então, aqui está a resposta para a pergunta "por que a equipe de desenvolvimento não teve um PM de repente" - é muito simples - essa posição não é prevista na ideologia da SCRUM, assim como a posição de arquiteto de software não é fornecida ( Olá, Matrix! ) E cargo de redator técnico ( abaixo a burocracia! ). A equipe estabelece a posição do mestre do SCRUM, que apenas realiza reuniões, formula e registra os resultados da discussão. Livre desenvolvimento da gratuitos pessoas desenvolvedores .

E que comece a diversão !

Deixe-me lembrá-lo de que o objetivo da startup em discussão é desenvolver um "sistema no qual os processos de produção e negócios de uma empresa sejam exibidos na blockchain" (em vez de um banco de dados desatualizado).

Um método de desenvolvimento de engenharia clássico, desatualizado e desinteressante envolveria a implementação consistente de tais etapas.

  1. Descrição das entidades (matérias-primas-componentes-processos de produção-fornecedores-compradores etc.) com as quais o sistema de informações desenvolvido funcionará.
  2. Estabelecer relações entre entidades (o fornecedor fornece matérias-primas, o comprador compra as mercadorias, etc.).
  3. Desenvolvimento de arquitetura de sistema.
  4. Descrição dos componentes do sistema.
  5. Desenvolvimento de termos de referência para cada componente do sistema.
  6. Implementação.
  7. Depuração, otimização.
  8. Implementação de sistema.

Mas tudo isso é muito longo! O cliente não poderá ver o resultado dentro de UMA semana!

Portanto, usamos o SCRUM moderno em vez do método de desenvolvimento desatualizado.

  1. 1- — «, , , - » (… - ...).
  2. , 1 .
  3. ; -; ; ; - - .
  4. , .
  5. ( ). : 1, 2, 3, 5, 8, 13, 21. , 21 , 20. 21 () , 13 ( ), ? , SCRUM.
  6. , ? ! , 20 — 1 . — 5 8 .
  7. , .
  8. … — SCRUM- , 1 . .

Como resultado, após uma semana, o cliente verá um site no qual 1 botão. Quando um botão é clicado, uma transação será enviada para o blockchain - “um evento do processo de produção foi criado”. Ainda não haverá feedback. Sim, esta é uma descrição completa da história do usuário resolvida com sucesso "Eu, como usuário, quero obter um sistema no qual os processos de produção e negócios da empresa sejam exibidos na blockchain". Não, o autor não está exagerando.

O custo de desenvolver uma solução desse tipo é 1/4 do salário mensal de 4 desenvolvedores e 1 Scrum master (a preços em abril de 2020 - cerca de US $ 6.000).

Aqui está ele, o SCRUM russo. Sem sentido e sem piedade.

All Articles