How is software developed at Amazon?
Key tenets Amazon follows to ensure its obsessive customer focus:
- Decompose a monolithic organization into small, autonomous teams that own each service or product end to end.
- Deploy in a pessimistic fashion, constantly looking for problems.
- Deploy on a small scale, so that you can rollback in case of failure and expand only if successful.
- Start every project with a threat model and have it reviewed by a security engineer; also seek peer feedback before committing to a build.
- Architects do not develop the architecture of a project; developers on each team do.
- Plan from the bottom up, because teams closest to the product know best what the customer wants.
- Accept that keeping teams independent can result in occasional duplication.
Full video here, 41 mins watch time