With the recent confusion of the patch release, I have sought the experience of someone to help us understand and to explain to all of us Civfanatics just what goes into creating a patch. This will be based on assuming a usual publisher-development relationship and not a self-publishing developer (like Valve), nor a developer with a lot of independence.
Patch Decision: Simply put, first off the process starts with the decision to make a patch. That is a publisher decision, not a developer decision. Much of the time, however, it's an automatic decision. Making the first patch for a game is pretty much always automatic. Generally speaking, the likelihood of patch development being approved drops as a) more time passes since the game's release; and b) add-ons come out for the game.
Development: Once the decision is made to make a patch, the normal development process starts. A list of issues to fix is compiled and the programmers begin writing the code. Builds are given to some of the QA people who test these fixes and identify new problems, which are sent to the programmers to write the code, therefore repeating the cycle. This continues until either the development team is satisfied that the patch is ready or the deadline comes. While patches generally have a more flexible schedule than full products (for which the release date is usually set many months before being ready), deadlines still exist
Just like in development of normal software, patch development also has lockdowns, usually. A lockdown (also known as feature freeze) is when the patch is said to be feature-complete. No more fixes and/or features will be added, barring critical discoveries, and the rest of the development time is spent on testing and perfecting/re-fixing the existing fixes/features. This then continues until a release candidate is made.
QA (Quality Assurance): Here it's important to make a note on QA. There is not a single QA department. There are at least two, sometimes more (as in the case with Civ4). First, there's internal QA. These are people who are employees of the developer. They typically get the most versions to test. Their primary focus is on making sure that the things that were supposed to be fixed are indeed fixed. Internal QA will usually create special circumstances, if needed, to test these existing fixes.
.
A possible second level of QA is the testers taken from the outside public, not employees of either company. Generally these are volunteers, so it's hard to say much about their testing methodologies, as they will vary from one group to another and differ between people in each group. Such groups are typically in direct contact with the developers.
The final level of QA is the publisher QA. In addition to checking the existing fixes, they do hardware testing, trying the patch out on different hardware configurations to make sure that it hasn't broken, for example, the game on a certain brand of video cards. Publisher QA may also test for installer issues and such. Typically the people from publisher QA are not specialized on the particular game and instead deal with a wider array.
Release Candidate: So, when the developer makes a release candidate, it means that it's a version of the patch that may be ready for release. The version is submitted to the publisher (text for localization, if necessary, is submitted earlier, at around lockdown time), and then the developer waits on the publisher's word. The publisher may reject the patch, identifying new issues that the developer has to address, in which case the process repeats itself with a new release candidate. If the patch is approved, then it's ready. This can take some time if the publisher has other games to deal with at the moment or other high-priority matters.
Patch Approval: However, when a patch is approved, it doesn't mean the developer can release it. Releasing a patch is also the publisher's prerogative most of the time, so it'll be out when the publisher posts it to the relevant websites.
At some point, a public beta version may be made available but it's not a move that many publishers would approve of. Hence, it's something that usually happens with independent developers, Stardock being a good example.
As you can see above, the full process of creating a patch is very complex and time consuming. Its not something that can be done very quickly. Even if it is completed and deemed ready for release, its still up to the publisher on when to release it.
Patch Decision: Simply put, first off the process starts with the decision to make a patch. That is a publisher decision, not a developer decision. Much of the time, however, it's an automatic decision. Making the first patch for a game is pretty much always automatic. Generally speaking, the likelihood of patch development being approved drops as a) more time passes since the game's release; and b) add-ons come out for the game.
Development: Once the decision is made to make a patch, the normal development process starts. A list of issues to fix is compiled and the programmers begin writing the code. Builds are given to some of the QA people who test these fixes and identify new problems, which are sent to the programmers to write the code, therefore repeating the cycle. This continues until either the development team is satisfied that the patch is ready or the deadline comes. While patches generally have a more flexible schedule than full products (for which the release date is usually set many months before being ready), deadlines still exist
Just like in development of normal software, patch development also has lockdowns, usually. A lockdown (also known as feature freeze) is when the patch is said to be feature-complete. No more fixes and/or features will be added, barring critical discoveries, and the rest of the development time is spent on testing and perfecting/re-fixing the existing fixes/features. This then continues until a release candidate is made.
QA (Quality Assurance): Here it's important to make a note on QA. There is not a single QA department. There are at least two, sometimes more (as in the case with Civ4). First, there's internal QA. These are people who are employees of the developer. They typically get the most versions to test. Their primary focus is on making sure that the things that were supposed to be fixed are indeed fixed. Internal QA will usually create special circumstances, if needed, to test these existing fixes.
.
A possible second level of QA is the testers taken from the outside public, not employees of either company. Generally these are volunteers, so it's hard to say much about their testing methodologies, as they will vary from one group to another and differ between people in each group. Such groups are typically in direct contact with the developers.
The final level of QA is the publisher QA. In addition to checking the existing fixes, they do hardware testing, trying the patch out on different hardware configurations to make sure that it hasn't broken, for example, the game on a certain brand of video cards. Publisher QA may also test for installer issues and such. Typically the people from publisher QA are not specialized on the particular game and instead deal with a wider array.
Release Candidate: So, when the developer makes a release candidate, it means that it's a version of the patch that may be ready for release. The version is submitted to the publisher (text for localization, if necessary, is submitted earlier, at around lockdown time), and then the developer waits on the publisher's word. The publisher may reject the patch, identifying new issues that the developer has to address, in which case the process repeats itself with a new release candidate. If the patch is approved, then it's ready. This can take some time if the publisher has other games to deal with at the moment or other high-priority matters.
Patch Approval: However, when a patch is approved, it doesn't mean the developer can release it. Releasing a patch is also the publisher's prerogative most of the time, so it'll be out when the publisher posts it to the relevant websites.
At some point, a public beta version may be made available but it's not a move that many publishers would approve of. Hence, it's something that usually happens with independent developers, Stardock being a good example.
As you can see above, the full process of creating a patch is very complex and time consuming. Its not something that can be done very quickly. Even if it is completed and deemed ready for release, its still up to the publisher on when to release it.