Everyone needs to understand the feature

I had an interesting experience at work this week with a younger developer who began working on a feature but unknown to the rest of the team, didn’t yet know what the feature does and how it worked however the developer later said Ahh I understand now. I believe at the core there is a disconnect between the epic and the stories. A story can be simply Create CRUD endpoint or Create UI component. These types of stories can often be accomplished without knowing the overall feature.

If you don’t know what the overall feature is, you are essentially working with a magnifying glass. You can’t see the whole picture which is bad for a myriad of reasons and I’ll pick 2. If you are working on a lower level you can’t put forward any good ideas and more importantly, you will only be able to implement the feature as stated in the story and won’t be able to anticipate edge cases or even think about how the end user will be interacting with what you are building.

It’s a failure to get to the point where you are actively developing a feature without having confidence in your understanding of the feature. I want to reflect on how I think it happened but first, I’ll briefly explain how we operate.

We loosely follow a scrum framework. I say loosely because we’re a small team of 5 developers at a startup and the priority of backlog can change, even within a sprint, although we try to avoid it. Just briefly following scrum means we:

  • Do sprint planning which involves adding planned stories to a backlog and then creating a sprint from those stories
  • Have a daily meeting to touch base and see how people are doing and if any input or help is necessary
  • Have a sprint review where we discuss at a macro level what we achieved and what we didn’t achieve
  • Have a sprint retrospective to discuss how the sprint went and how to improve the process.

Our sprints are made up of epics (the feature) and stories (the individual parts of the epic). When we are planning our sprints we will first discuss the epic and this is where the high level understanding of the feature should come from. This will likely be your first real encounter with the feature in it’s entirety. I phrase it like that because you probably have heard of the feature. At the end of the epic discussion the person explaining asks everyone if they have questions and if they understand the feature (oops).

From a logical standpoint, I quite like how the epic is introduced. The one thing I want to change is having time after the introduction of the epic to go solo and explore the epic and come up with questions. I don’t know exactly how to implement that, whether we should discuss the epics a day before, then discuss the stories a day later or so on. That I feel is all manageable.

The part that I have a problem with is the ending with asking for questions and asking if they understood the explanation. I often get the feeling that developers don’t understand but don’t want to put their hand up. I guess it’s a personal thing, a company cultural thing, a human nature thing and probably a lot more. I don’t really have any good ideas how to address it.

I’ll keep thinking about that however in the beginning I mentioned that the developer said they understood how the feature worked later on. How this happened is why I wrote above about having time between the epic discussion and story discussion. The developer spent time digging into the story they had been assigned (and mostly implemented the story) and then came up with the questions that they had been missing from our sprint planning. They had good questions that could be answered and demonstrated.

No harm done then? In this case yes but in the past that’s not always been the case. I’ve gone down the wrong rabbit hole because I haven’t understood fully and that’s a huge waste of time, money and resources.

The next steps will be to discuss these ideas with my team during our next sprint retrospective and see if they agree with me at all and if we can come up with any action points to improve how we developers explore epics before jumping into the stories. I’ll keep you posted.

Read more about similar things :)

agilecode
Carpe Diem
2023 — Matt Gould