Giter Club home page Giter Club logo

cr-checklist's Introduction

Why (justification, context)

  1. Is it clear what problem the change solves?
  • Is it stated in the commit title?
  • Is there a relevant ticket linked in the commit message?
  1. Are we sure it's worth to make this change?
  • Will solving this problem pay off?
  • Is the cost of solving it lower than the the cost of living with the exisitng issue?

What (functional aspects)

  1. Is the proposed solution the right way to solve this issue, assuming it works as intended?
  • Is the proposed user experience approved or designed by someone entitled to do it?
  • Is it clear or explicitly stated if the solution is short-, mid- or long-term?
  1. Does the happy/common path work correctly?
  • Has it been tested end-to-end that a common scenario works?
  • Is testing methodology described or obvious?
  1. Are edge cases covered?
  • How can we be sure all (relevant) edge cases are identified?
  • Are they handled correctly?
  1. Is the feature ready to be exposed to the public?
  • Should there be grace period before this change is made, if it's a breaking one?
  • Should the feature be hidden behind a feature flag?
  1. Are there any prerequisites or dependencies that must be fulfilled before this change is made?
  • Are all dependencies aware of extra traffic?
  • Are relevant permissions granted on all environments and stages, from all dependencies?
  1. Is there anything extra needed for the customer?
  • Is documentation in place?
  • Does the customer know how to report issues with this change?

How (architectural aspects)

(Raw notes, TODO: clean up)

  • does this change reinvent the wheel (reimplement something)? Can some code be taken from a generic place, to maintain consistency with how it works in other places? Example: there was filtering in some part of the system, custom-made, but only partially. It used some library functions, but some things were done in a custom way. It led to a bug
  1. Are troubleshooting facilitators in place?
  • Is there proper logging?
  • Are relevant IDs (request IDs, order IDs) exposed to the customer wherever needed?
  • Is any sensitive data logged?
  1. Is the change structured properly?
  • Are there any unrelated changes (formatting changes, fixing something "while being there")
  • Are commits small enough to be understood easily?
  • Are there any refactorings that could be separate commits?
  1. In case of bugs, are there regression detection mechanisms in place?
  • Is there a test that would break before fixing the issue?
  • Are the tests good enough to detect accidental changes in code (mutation testing)?
  1. Is the code clean?
  • Does it read like an article (from general description, down to details)?
  • Does it contain logic that is easy to understand, or is it documented otherwise?
  1. Is performance optimal or at least known?
  • Has the change been tested for bigger amount of data?
  • How does it scale in terms of data growth?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.