HACKER Q&A
📣 lvankeer

How does your company review and approve of code before pushing to prod?


If you work at a medium to large software company, especially if you work at FAANG, what's the process like for pushing code to production?

Is there a central / core team that reviews architecture and/or code of the applications (at request)?


  👤 wbsun Accepted Answer ✓
Reviewing architecture and reviewing code are totally different thing.

Pushing code to production is not a one-step process. It has at least two phases: first push code to the repository, then build the binary and push the binary to production.

Pushing code to the repository requires code review: most reviewers are your peers or owners if you work in other team's codebase. So really no central team to review code. Reviewing architecture, maybe, but it depends on the impact of the system to change.

Pushing binary to production doesn't really need review in normal case, assuming there is a good binary/release qualification and a good release rollout system, all can be automated. Emergency push to production may need a second pair of eyes but it also depends on the urgency.


👤 codeapprove
At all of the big companies I’m aware of (FAANG big) code review is done by peers. There’s no central code review “team”, every single change must be reviewed by one or more peers depending on who owns that part of the codebase.

Some companies have dedicated test engineers while at others it’s the responsibility of each engineer to write tests for their changes and the tests are reviewed as part of the same process.

Plug: I’m working on a much better code review tool for teams who live on GitHub. If you’re interested check out https://codeapprove.com or send me an email at Sam at habosa dot com


👤 mytailorisrich
What we do is tied to hardware products so there's no "push to production" but the fairly typical flow in the industry is:

- Implement feature locally and unit test it

- Push to codebase is gated by code review

- Integration tests

- System tests

- Delivered to customer release by release

- Customer's acceptance tests

- Deployed

In principle I would expect a significant level of testing before pushing to production.