Yesterday Rachel and I met to discuss the outcomes of https://github.com/openfoodfoundation/openfoodnetwork/issues/4127 and see what
the next steps should be.
It was quite exciting to see improvement is within our grasp! So bear with us.
Proposal
We release and deploy twice a week and manual release testing will only include the tests cases listed in https://github.com/openfoodfoundation/openfoodnetwork/issues/4127#issuecomment-519114962 that are not yet automated. In the meantime, PRs labeled with pr-no-test
can have a release prepared right after.
For this to work, we need to be aware of the size of the PRs and people need to organize in a way that keeps a constant throughput of merged PRs so both releases have a similar size.
While we put this in practice, we’ll try to have an issue per delivery train to automate one of the missing test cases up until the point where no manual release testing needs to be done.
Hypothesis
- The big reduction in manual testing should give us room to release in this
frequency. As a result, with this new strategy in place the time Rachel tracks undertesting
in Toggl should keep the same or even reduce a bit. - Less merged PRs means the time it takes for the release manager to prepare the
notes are also greatly reduced. - The resulting smaller releases should boost the confidence the whole team has
in them. - Smaller releases also greatly reduce the risk of breaking things in
production. - Smaller release should also result in stress reduction in the testing team.
- They should also make people understand that releases are metros. If you don’t
catch this one, you can catch the next one and therefore, reduce the last-minute merges or delays. - It should remove the situation where testers have to chase the release managers to prepare the release. This happens sometimes with the people that work fewer hours.
We need to be agile here. Let’s try two weeks, evaluate this hypothesis and decide where to go next. Rolling back is also an option.
Other considerations
Something we realized is that we do all this manually because we have quite a few testers and can afford it. There will come a time when we don’t have that many testers.
Also, as we gradually move towards fully automated release testing we want to investigate exploratory testing and whether adopting it would be beneficial and affordable. None of us is familiar with the topic. We thought about you Filippe. Would you be up for that investigation?
Testers are also concerned about the fact that some days there are no PRs in “Test Ready” and suddenly the day after it gets overwhelming. This delays everything. It’s not clear if this initiative will help mitigate that but it’s something the dev team should be aware of. It might be a matter of reducing the number of WIP PRs.
Related to that, some PRs are still too big and they take too long to test. This leads to testers choosing smaller PRs first to keep the throughtput. This happens with tech debt PRs. It’s a pitty because this prevents us to benefit from the other improvements introduced by the PR when we move it back to “In Dev”. We might need to starting using feature toggles more effectively.
Finally, something we tend to forget is that the release manager doesn’t have to be the one deploying but ensuring the release gets delivered. By the same token, we also acknowledge that this higher frequency won’t be feasible for devs that work less hours. Does everyone have room for release management/deployment? Perhaps is better to let that people focus on bringin more value out of their time?