Devs de back-end descartados por histórias de usuários

10

Planejei dividir o desenvolvimento de back-end nas histórias de usuários verticalmente. Mas um funcionário da nossa equipe começou a reclamar que isso torna seu trabalho invisível.

Minha resposta foi que

  • nas reuniões de planejamento e revisão do sprint, discutimos tarefas de back-end na frente das partes interessadas, para torná-las visíveis e

  • manter uma alta qualidade durante o projeto resultará em um ritmo de início mais lento do que em outras equipes, mas teremos uma velocidade estável durante o projeto. E a velocidade é altamente visível para as partes interessadas.

Ele ainda insiste em ter histórias como: "Como desenvolvedor, preciso ter uma camada de domínio para encapsular a lógica de negócios".

Como posso resolver o problema antes que ele polua a equipe?

A raiz do problema é que nosso gerenciamento considera sistematicamente o trabalho de back-end como invisível e chama os devs mineiros de desenvolvedores ou outros termos pejorativos.

Szili
fonte
7
Eu não tenho as histórias de back-end, elas não fazem sentido .. No entanto, eu não gostaria de ter esse tipo de gerente. Pensei que os desenvolvedores de back-end eram os rockstars há algum tempo
margabit
2
Criar histórias de back-end separadas implica que o trabalho de back-end possa ser priorizado separadamente do front-end. Isso corre o risco de as prioridades serem atribuídas, de modo que o trabalho de back-end seja relegado para a parte inferior da lista de pendências até que seja incorporado novamente nas histórias de front-end. Para o problema com a falta de apreciação da gerência, recomendo que você pergunte sobre isso no Workplace.SE.
Bart van Ingen Schenau
Minha solução de fantasia envolve um tapa ocasional de todas as partes. tapa Pare de choramingar. tapa Pare de ignorar o papel criticamente importante que a lógica de dados e negócios contribui para o sucesso dos negócios que pagam nosso aluguel. tapa Pare de comer o almoço de outras pessoas. Não é a geladeira da sua mãe.
Erik Reppen
11
divida os tópicos na vertical e divida as histórias resultantes em tarefas horizontais.
Jwenting

Respostas:

4

Há algumas coisas erradas na situação descrita, o problema óbvio é a falta de respeito dada aos desenvolvedores de back-end. Como esta pergunta é marcada como ágil, vou adiar outras respostas, sugerindo que isso é apenas um problema social. Existem vários maus cheiros e possíveis antipadrões em sua história, nenhum dos quais tem a ver com gerenciamento ignorante ou mesmo como você os divide.

O fato de um grupo de indivíduos da equipe se sentir menosprezado por não receber a glória do trabalho completou vários problemas possíveis.

  • Não deve haver pessoas que apenas desenvolvam back-end. Uma abordagem comum do Agile é ter equipes multifuncionais compostas por especialistas em generalização que praticam a propriedade de código compartilhado. Os indivíduos não devem se concentrar exclusivamente no desenvolvimento de back-end ou front-end, embora certamente tenham mais experiência ou melhor em algumas coisas do que em outras.
  • Arquitetura não ganha valor. Da perspectiva de um usuário - a única perspectiva que realmente importa - não importa se você possui camadas ou idiomas de domínio ou mesmo se a solução está programada. A única coisa que importa é se você criou valor para os usuários. A "história" proposta pelo desenvolvedor de back-end é um requisito sem sentido - é um resumo das decisões de design que, da perspectiva de um usuário / cliente, não fazem nada para alcançar a funcionalidade desejada. Em outras palavras, qualquer história de usuário pode ser alcançada por vários projetos de arquitetura diferentes. É possível que uma história de usuário seja concluída sem nenhuma modificação no backend. Isso não a torna uma história inválida.
  • Pensar sistemicamente ainda é crítico. Embora a arquitetura possa não agregar valor, ainda é essencial para o sucesso. O desenvolvedor de back-end tem algumas preocupações válidas. Você deve estar pensando em como criará o sistema. Você deve escrever essas decisões. Todo o sistema é importante, embora apenas os recursos de front-end sejam os itens que receberão toda a glória.

Minha recomendação é tratar a arquitetura como um cidadão de primeira classe - mas faça-o da maneira certa. Realize um workshop de atributos de qualidade com as partes interessadas . Envolva as principais partes interessadas nas revisões de arquitetura ou, pelo menos, resuma decisões de design essenciais em etapas importantes. Desenhe a arquitetura em papel grande e torne-a visível para que toda a equipe possa vê-la.

Exija que todos desenvolvam em qualquer lugar do sistema (front-end e back-end), emparelhe o programa, se necessário, para que isso possa acontecer de maneira eficaz. Continue a criar histórias de usuário focadas no usuário. Mas também identifique os principais cenários de atributos de qualidade que mostram por que o sistema é projetado da maneira como é e impulsiona a tomada de decisões em relação ao design de "back-end". Eleve o design da arquitetura para que não fique mais invisível.

Michael
fonte
11
Obrigado por uma resposta acionável! Gostaria de esclarecer um pouco do entendimento causado pela minha formulação errada. Ele não é apenas um "desenvolvedor de back-end", na verdade ele está trabalhando em toda a pilha, mesmo em firmware. Seu ponto negativo é que a arquitetura de back-end não está sendo reconhecida adequadamente. E embora a arquitetura não gere valor por si mesma, uma arquitetura desleixada pode quebrar os sistemas ou pelo menos pode torná-los muito caros de manter. Meu plano era facilitar mais conversas sobre a arquitetura durante as reuniões de revisão e planejamento, e o workshop de qualidade também parece uma ótima ferramenta!
Szili
FWIW, nem sempre é prático ter um desenvolvedor trabalhando na pilha completa. Um requisito da minha empresa atual pode envolver o desenvolvimento do CICS em um mainframe IBM, MQ, Java no Mule ESB, Datapower e, finalmente, uma rica interface do usuário da web com jquery e outros modelos. Outra história de usuário pode envolver o CORBA falando com o VMS COBOL e outro back-end é escrito em Gupta.
Alan Shutko
@ AlanShutko - exatamente. "O front end de uma pessoa é o back-end de outra pessoa", certo? Essa é uma das razões pelas quais eu não gosto de gírias como "back-end" e "front-end", especialmente quando falo de vários componentes em um sistema. Seu ponto de vista é extremamente importante! Até "pilha cheia" é um termo relativo que pode significar coisas diferentes em diferentes partes de um sistema!
Michael Michael
11

Isso parece ser um problema social, por isso precisará de uma solução social.

Se (como eu o entendo) os desenvolvedores de back-end se sentem ignorados e menosprezados, e sentem que seu trabalho não é valorizado o suficiente, então há pouco que o processo de desenvolvimento possa fazer para mudar isso.

Se eu entendi direito, parece que os desenvolvedores acham que deveriam ter pelo menos suas próprias histórias de usuários, para que possam apontar para eles e dizer "Foi isso que fizemos, basta fazer o back-end de caras / moças". No entanto, ter histórias cortadas "horizontalmente" dessa maneira é uma má idéia, e eu concordo que você as corte verticalmente.

A melhor solução é provavelmente conversar em silêncio com o (s) desenvolvedor (es) em questão (individualmente ou em grupo) e abordar o problema subjacente, que parece ser de respeito. Em algum momento, isso provavelmente precisará ser encaminhado para o gerenciamento.

sleske
fonte
Obrigado pelas respostas. O problema é social, de fato. Hoje conversamos sobre o argumento de ontem, e o desenvolvedor em questão me disse que se tratava mais de anos de desrespeito sistemático ao seu trabalho de back-end do que de sua visão sobre o nosso projeto atual e sua compreensão do processo de scrum. Concordamos em avançar com histórias fatiadas verticalmente.
Szili
11
@Szili: O trabalho de back-end é tão ruim que não merece respeito ou ele está irritado por não ser reconhecido?
Blrfl
Seu trabalho de back-end é excelente. O reconhecimento adequado e até o gerenciamento de bullying é o problema.
Szili
4

A raiz do problema é que nosso gerenciamento considera sistematicamente o trabalho de back-end como invisível e chama os devs mineiros de desenvolvedores ou outros termos pejorativos.

Na verdade, este é o problema. É óbvio que você não vai resolver isso com histórias!

Em geral, uma das características do desenvolvimento ágil é a transparência. Isso também significa que isso torna seus problemas organizacionais mais manifestos .

A solução ágil padrão para esse problema é adotar uma abordagem mais "vertical" ou "full-stack" para o desenvolvimento, onde seus desenvolvedores de back-end levam histórias de cima para baixo em vez de simplesmente trabalhar na zona de conforto da camada de back-end e os desenvolvedores de frontend também se estendem para o backend (*).

Em outras palavras: faça com que todos produzam valor para seus usuários finais.

(*) Nota: nem todas as matérias precisam ter um componente front-end ou back-end. Os elementos da interface do usuário podem ser reorganizados sem trabalho adicional de back-end, e o desempenho é um recurso .

Sklivvz
fonte
3
Parece que você tem zero entendimento do desenvolvimento de back-end. Veja quão pouco valor um bom funcionário de back-end atende quando os funcionários de front-end executam toda a modelagem de dados e implementação lógica no front-end e aguardam seis meses. A maioria das boas engenharias não é boa em gerar valor imediato, mas em produzir dividendos a longo prazo. Sua abordagem aplicada à construção de pontes teria todas as pontes feitas apenas para permanecer por uma semana e não teria um plano ou arquiteto, porque esses não têm valor imediato.
Jimmy Hoffa
11
Não, @JimmyHoffa Estou familiarizado com o desenvolvimento de back-end. Minha resposta é basicamente um livro ágil. Como você deve notar, não defendo ter apenas pessoas de front-end. Se você não gosta de agilidade, não a use, mas estou simplesmente descrevendo como uma metodologia funciona; portanto, não assuma coisas sobre mim ou o que quer que seja.
21313 Sklivvz
2
A parte em que ele sai do rumo é onde você diz que o pessoal de back-end não está produzindo valor e deve apenas fazer um trabalho de front-end; se essa não é a sua intenção nesta resposta, você realmente deve reformulá-lo para ficar mais claro o que você quer dizer aqui.
Jimmy Hoffa
11
@ JimmyHoffa Mas eles não estão produzindo nenhum valor para o usuário final. Se fosse uma equipe formada apenas por desenvolvedores de back-end, os usuários seriam os desenvolvedores de front-end. Nesse caso, seu raciocínio faria sentido, mas não parece ser o caso.
21313 Sklivvz
11
Se no seu mundo o valor é produzido apenas pela criação de um produto interativo pelo usuário, e os desenvolvedores de back-end são desnecessários, então no seu mundo, aparentemente, arquitetos e gerentes de projeto, analistas de negócios, RH e todos os outros também são irrelevantes. No meu mundo, o valor é produzido pela qualidade de um projeto e implementação de sistemas, de modo que o desenvolvimento futuro de recursos não envolva a perambulação pela teia de aranha de um banco de dados de acesso, porque somente o produto interativo pelo usuário foi avaliado ... Implementação de qualidade é um valor . Talvez não imediatamente, mas a longo prazo.
21813 Jimmy Hoffa
1

Seus problemas são:

  • Você tem camadas de gerenciamento em seus negócios, onde elas não servem para nada. Scrum, ágil, eu não ligo. O gerenciamento e o desenvolvimento devem ser isolados com as preocupações comerciais tratadas por um gerente de produto que tenha uma pista! @ # $ Ing sobre tecnologia. Talvez tenha funcionado para Steve Jobs, mas eu nunca estive em uma situação em que gerentes não especialistas em tecnologia, estando perto de desenvolvedores, fossem algo saudável ou, finalmente, servissem para produzir o melhor produto de qualidade que uma equipe poderia ter produzido.

  • Você tem desenvolvedores que estão mais preocupados com as aparências do que com os problemas. Esse é um problema de cultura muito sério (parece provável, considerando todo esse fenômeno "mineiro") e / ou você tem um problema de qualidade do desenvolvedor, o que também não me chocaria devido à falta de confiança.

Tire as pessoas que não precisam estar lá fora do planejamento e da postura. Qualquer pessoa que tenha noções de que o back-end é menos importante que o front-end é alguém que não precisa estar lá e está de fato dificultando o processo por estar lá.

Valas de histórias. Sim, estou a falar a sério. Se eles estão causando esse tipo de problema, jogue fora a câmara. No meu trabalho atual, mantemos apenas os critérios "concluídos" para uma determinada tarefa, que normalmente permanece mais focada no aplicativo do que no usuário, o que pode ofender aqueles que pensam que o ágil (que está mudando constantemente há 20 anos) ganhou " Não funcionará se você não seguir as instruções, mas, na verdade, se somos profissionais, não precisamos de nada que esteja causando problemas para nós. Amasse-os, jogue-os por cima do ombro.

E você pode lembrar que os desenvolvedores de que as pessoas com quem realmente precisam se preocupar são seus pares imediatos, não as pessoas que não têm noção de nada para planejar o sprint.

Erik Reppen
fonte
Bom conselho. Lembre-se de que não há nada no manifesto ágil sobre "histórias de usuários" e elas são apenas uma prática popular criada com processos específicos. Você pode ser tão ágil com as histórias de usuários quanto sem ... #
Michael
Isso é verdade. Não tenho certeza de que o manifesto ágil seja considerado o suficiente para "fazer o certo" por muitos dos padrões de toda a indústria de treinamento que foram criados em torno dele, mas, como sempre, as idéias e quais fazem sentido para você e sua equipe deve ter precedência sobre as afetações, IMO. Além disso, você terá tantas respostas dessa frente sobre como "agir com agilidade" corretamente quanto perguntaria aos estudantes universitários quais são as regras do namoro. Não há substituto para o pensamento crítico.
precisa saber é o seguinte
Eu não abandonaria as histórias de usuários. Na verdade, estou trabalhando duro para apresentá-los, pois temos uma tradição de desconsiderar usuários finais. A analogia de Steve Jobs é muito adequada, já que nosso CEO é um técnico brilhante que iniciou uma empresa multimilionária. A única coisa em que ele falhou foi a criação de uma camada gerencial, então ele continuou muito ativo com o trabalho realizado. Isso deu lugar ao surgimento da cultura estelar, o que resulta na preocupação com as aparências. Para resumir: temos um problema cultural. Mas, considerando isso, preciso de ferramentas como as da resposta para dar os passos necessários.
Szili
De qualquer maneira, eu recomendaria um desenvolvedor experiente de interface do usuário com retenção anal, se você estiver tendo problemas de UX. Não há substituto, exceto alguns generalistas impressionantes, dos quais poucos gostariam de pagar uma equipe completa.
precisa