Pull Request Template

About

I used a template similar to this at Sun Microsystems. Let me know if you find this useful. I hope you can tailor it to suit your needs. This template mostly useful for small product increments or product fixes. Features that required more than a day or two of development effort went thru a formal design review process.

Note that this process was used in a context where the developer and testing teams were separate, and a mini-waterfall process was followed. This is hopefully no longer the norm and shorter feedback loops are followed.

Process

The process that accompanied this template was as follows:

Template

Part of the reason why the team felt that a very verbose template was necessary is to force developers to think of all the consequences of their changes. In many cases, some sections did not apply. In those situations, the developers simply added an N/A to the template. The mere fact that they had to type this into the template forced that consideration process.

Summary: <one-sentence description of the change>
Ticket ID: <reference of the issue ID in the ticketing system>

Proposed Solution: <description of the changes in detail>

Alternatives Considered: <alternatives considered and why they were not viable>

Release Notes: <proposed text to incorporate into the product release notes visible to customers>

Documentation Updates: <list and type of documentation changes needed and reference to the documentation ticket assigned to the documentation team>

Product Code Changes: <list of files of product code changes>
Test Changes/Additions: <list of automated tests added/changed>

Performance/Scalability Impact: <detail any impact
on the performance / scalability of the product and how this was
tested / confirmed>

Localization/Internationalization Impact: <any changes that may impact
the localization process, any new message catalog keys that need to be
translated, etc>

Sustainability/Maintainability Impact: <include any new considerations that impact product upgrades, any new 3rd party library dependencies, any other consideration that the support team should be aware of>

Security Considerations: <any security considerations tested, taken into account with the product change>