cross-posted from: https://programming.dev/post/864349
I have spent some time trying to simplify the release process. For a variety of reasons, we can only release on Thursdays. The code is “frozen” on Tuesday before it can be released on Thursday. But we sometimes squeeze in a quick fix on Wednesday as well.
The question, is when should QA test the code?
Here is what I have seen happen:
- Dev writes code and sends it to QA.
- QA finds problems, sends it back to the Dev.
- Dev fixes and sends it back to QA.
I have seen a Dev fix their code on Tuesday, and then QA comes back on Wednesday with problems, when the code should have been frozen anyway.
I am looking, what should be the best solution here.
We have several problems going on at once:
- Developers test on the same server as QA tests. I am working to switch developers to a separate Dev server, but it is a long work in progress.
- We don’t have an easy way to revert code back from the QA server. It is easier to build revisions than revert changes. We can try to revert code more, but it will require a culture change.
- QA don’t really have a schedule when they are supposed to do functional testing vs regression testing.
I don’t know what is the best way to proceed forward. Thus far, I haven’t thought too much about the QA because I was focused more on getting releases out. Now that releasing is more simplified, that we can potentially do weekly releases, I am trying to see how we should proceed with the testing process.
It sounds like your process isn’t working because you’re treating Tuesday’s deadline as just a feature freeze rather than a full freeze.
If you want to go ahead with the full freeze then if it fails QA the feature should simply be rejected. Revert the change make the fixes and wait for the next Tuesday deadline to resubmit it.
If you’re keen to continue the feature freeze then you need to move forward the freeze deadline and agree very specific timings with QA. For example: Feature freeze at 9 am Tuesday morning - so devs must submit all features before end of the day Monday. QA have all Tuesday to review for a deadline 9 am Wednesday.
That gives the dev at a minimum some time on Wednesday to address any issues, but more likely QA can come back quicker so they’ll have some time on Tuesday as well.
Dev must submit fixes before a 2 pm deadline on Wednesday. QA do a second review and have all feedback by 9 am Thursday at which point it’s simple commit/revert.