Agile – Backend devs put down by user stories

agilescrumteamuser-story

I planned to slice in backend development into to the user stories vertically.
But a backend guy on our team started to complain that this makes their work invisible.

My answer was that

  • at the sprint planning and review meetings we discuss backend tasks
    in front of stakeholders so it makes it visible, and

  • maintaining a high quality during the project will result a slower
    startin pace than other teams, but we will have a stable velocity
    during the project. And velocity is highly visible to stakeholders.

He still insist having stories like:
"As a developer
I need to have a domain layer
so I can encapsulate business logic."

How can I solve the issue before it pollutes the team?

The root of the issue is that our management systematically consider backend work as invisible and call backed devs miners, or other pejorative terms.

Best Answer

There are a few things wrong with the situation described, the obvious problem being the lack of respect given to the back-end developers. As this question is tagged agile I am going to push back on other answers suggesting this is only a social problem. There are several bad smells and possible anti-patterns in your story, none of which have to do with ignorant management or even how you slice the stories.

The fact that a group of individuals on the team feel slighted for not getting glory from work completed smacks of several possible problems.

  • There should not be people who only do back-end development. A common Agile approach is to have cross-functional teams made up of generalizing specialists who practice shared code ownership. Individuals should not be focused exclusively on back-end or front-end development, though they will certainly better more experienced or better at some things than others.
  • Architecture doesn't earn value. From a user's perspective -- the only perspective that really matters -- it does not matter if you have layers or domain languages or even if the solution is programmed. The only thing that matter is whether you created value for the users. The proposed "story" from the back-end developer is a nonsense requirement -- it is a summary of design decisions that, from the perspective of a user/customer do nothing to achieve the functionality desired. In other words, any given user story might be achieved by any number of different architecture designs. It's possible that a user story might be completed with no modification to the back-end at all. This does not make it an invalid story.
  • Thinking systemically is still critical. While architecture may not earn value it is still critical to success. The back-end developer has some valid concerns. You should be thinking about how you will build the system. You should be writing those decisions down. The whole system is important even though only the front-end features are the things that will get all the glory.

My recommendation is to treat architecture as a first class citizen -- but do it the right way. Perform a quality attributes workshop with stakeholders. Involve key stakeholders in architecture reviews, or at least summarize essential design decisions at important milestones. Draw the architecture on big paper and make it visible so the entire team can see it.

Require that everyone develop everywhere in the system (front-end and back-end), pair program if you need to so this can happen effectively. Continue to create user-focused user stories. But also identify key quality attribute scenarios that show why the system is designed the way it is and drives decision making regarding "back-end" design. Elevate the architecture design so that it is not invisible anymore.

Related Topic