Skip to main content

Proposals

Approved patterns:

What is this folder?

Treat this folder as a collection of RFCs. If you would like to suggest a change to the codebase, please create a proposal in the folder and open a pull request. We can all have a conversation about it there and if required, we can set up a meeting to discuss it. This folder will also serve as documentation of how our codebase has evolved.

Why have these proposals?

In the pm-netbank team, we are focused on building a codebase that will last the test of time. We want to maintain high standards of quality, readability and maintainability. These proposals are a tool to help us achieve that, and make sure that our codebase is evolving in the same direction, deliberately. Once a proposal has been discussed and accepted, it becomes a pattern, and we would all adhere to it.

Should I create a proposal?

If you have an idea of how we can improve either the quality or efficiency of how we do things around the codebase, then the answer is yes. If the change is applied to one app, and it starts to look different from the other apps, then the answer is yes.

How to write a proposal

Try to write your proposal to be as simple and informative as possible. Remember, this is going to serve as documentation in the future.

The proposal PR

Everyone is encouraged to comment and review the proposal PR. The PR should include the following:

  • The new Proposal
  • An update to this document with the proposal name and a link to the proposal
  • A change to the patterns and best practices documentation with the change proposed (if applicable)

The proposal process

  • The proposal highlights the issue we're trying to solve, and a high level example of how we might potentially solve it.
  • If necessary the author and anyone interested in contributing can have a meeting to further discuss implementation details.
  • Once the solution has been created the examples in the proposal are updated to match the solution in the same PR (preferably).

Thank you for contributing to the quality of our codebase :)