How to develop frontend and backend in the same sprint without code freeze
What are we doing wrong?#
A redditor asked the following question:
Question#
My team works on two-week sprints. The next day after sprint end, we have release. At the middle of sprint, we have feature freeze, where we decide what we for sure able to finish and test, and create release branch with those features. The problem is, we almost never able to finish actual development and start testing until the middle of sprint. Sometimes it makes no sense to divide story to smaller ones. And how can we develop frontend and backend in same sprint, if frontend needs backend to finish first.
My suggestion#
I think your team lacks good engineering practices. Scrum is just a framework, it gives you the structure, but it’s missing a lot of things. If your organisation doesn’t need it, you should drop the feature freeze stuff. Instead, your team should be able to merge code multiple times a day and release frequently. Read more about the engineering practices of Extreme Programming and also about Trunk-Based Development and Continuous Delivery.
For example, you can start development by establishing the contract between two major components - the backend and the frontend. So you need to establish API endpoints and message structures. If it’s hard to drive the frontend code based only on unit tests, you can implement API’s in the most dummy way - just return stubbed responses and put the new API’s behind a feature flag. Now, your team can do the frontend and the backend simultaneously. And it’s still the first day of the sprint, because contract and stubs took like 30 minutes. Code Review was instant because the whole team did it together.