Get in touch


We use HubSpot CRM to process and manage contact and information requests. Please accept the "Functional Cookies" and reload the page to load the contact form.

Insights / Blog / Inside AOE

Explaining the roles in agile software development – Frontend Developer

January 15, 2024

The world of software development has changed dramatically in recent years. For a long time, software development projects were carried out according to a fixed plan, where each phase was meticulously planned and documented (“Waterfall principle”). However, for some time now, a different approach has established itself: agile software development.

Have you always wanted to know what a typical workday looks like in an agile Scrum team? We'll take you on a journey through the daily life of various Scrum roles at AOE GmbH. Today, Theresa, a Backend Developer with a focus on Security, will take you through her day:

Backlog Refinement

Once a week, I have 'Refinement' scheduled in my calendar. Here, the Product Owner introduces new requirements in the form of User Stories. My task is to question whether the feature described in the story actually solves the original problem – and to do so as cleanly and maintainably as possible. In the discussion with my team and primarily with the Product Owner, I address usual questions such as: Have edge cases been overlooked? Are there technical limitations that could be important for the estimation? Are there dependencies on other teams or microservices that we need to consider? In addition, as a Frontend Developer, my job is to closely examine the design (assuming there is already a dedicated design for the feature). I pay attention to common UX design 'rules' and discuss with the other frontend developers in my team what we need to particularly focus on in terms of Accessibility. Once all these questions are answered (and no new ones have arisen), I estimate the effort of the story in so-called 'Story Points' with my team.

Daily Scrum

In the Daily Scrum a.k.a. Daily Stand-up a.k.a. Daily Sit-down (Homeoffice for the win), I briefly discuss my current tasks with my team. This is not a control meeting for the client who wants to see that I am quickly processing my tickets. For me, it's an opportunity to inform my team about what I am specifically working on, what is going well, what is not going well, and from whom I might need help to complete my task. Ideally, this doesn't take long, but it helps me and my team members enormously, as we can exchange information easily. Especially now, when the team is mainly working remotely, the Daily is perhaps the most important meeting for me.

Dominik

Frontend Developer / AOE GmbH
In my opinion, pair programming is almost always a good idea, regardless of how complex the task is.

Sprint Planning

I would like to write: 'Thanks to our in-depth problem analysis in the Refinement, we can plan the upcoming sprint quickly and easily.' However, the reality is often that by the time of the Planning, I have forgotten half of the content of the story. Thankfully, the Product Owner has meticulously documented everything discussed in the Refinement in the story description. Ideally, it only takes a brief overview of the story and then we can decide whether we can implement it in the upcoming sprint or not. It's important for this decision that as many questions and uncertainties as possible are resolved. The more certain I am about the scope (content) of the story, the easier it is for me to break it down into small tasks (subtasks). At the end of the Planning, we then have a list of stories (with tasks) that we as a team can commit to, meaning that the team says: We can work through this list in the coming two weeks.

Sprint

During the sprint, I work through the board from top to bottom. This means that the stories with the highest priority are addressed first. However, depending on the complexity of the story, it doesn't just stop at plain 'coding – testing – done.' The more dependencies there are, for example, to our own backend, to other microservices of our team, or even to other teams, the more important it is to communicate. In my opinion, pair programming is almost always a good idea, regardless of the complexity of the task. Four eyes see better than two, especially when those two eyes have been reading the same three files all day. Alongside programming, code reviewing, and testing, continuing personal development should not be neglected. Even though I think that the best learning comes from working on tasks, it doesn't hurt to use free minutes and hours in the sprint to expand one's professional horizon through podcasts, articles, or workshops. After all, who knows what challenges the next sprint will bring?

Review

In the Review, I present to the client the features that were developed in the last sprint by my team and me. To do this, I usually guide the client through the application and show 'hidden' features, such as navigation through a form using the keyboard, or how the screen reader interprets the page. If it hasn't happened during the sprint, we gather valuable feedback here. Sometimes new ideas emerge during the presentation, which we can take as requirements.

Retrospective

At the end of the sprint, the whole team gathers for the 'Retro' and reflects once again on the past two weeks. We look at our work, our collaboration, what went well and what didn't – with the goal of working together more efficiently and effectively in the next sprint. Here, I not only have the opportunity to freely bring up things that may have been overlooked in the daily work routine, but also to give kudos to others if the collaboration was not only very productive, but also really enjoyable. #goodvibes