At amazon, the Customer is the center of their universe
Old way was to flow from Requirements to Development, Check-in to Testing and QA to Release. Most of the learning from customers is at the end at the Release phase and a little bit on Requirement phase but pretty much none the middle phases so to learn faster, the goal is to make the inner steps smaller and apply CI, CD and Continuous Optimizations
CI
- Goal: to have a working state of the code at any point in time
- Benefit: fix bug earlier when they are cheaper to fix
- Metric: a new guy can checkout and compile on his first day on the job
Poka yo-ke technique
See here: A poka-yoke is any mechanism in a lean manufacturing process that helps an equipment operator avoid (yokeru) mistakes (poka). Its purpose is to eliminate product defects by preventing, correcting, or drawing attention to human errors as they occur.
Ex: ATM machines with card swipers designed so you keep you card at hand instead of those that "eat" your card offering you a way to possibly forget to take it back when you leave the ATM.
Basic lessons
- Keep absolutely everything in version control (scripts, etc.)
- Commit early, commit often
- Always checkin to trunk, avoid branching
- take responsibility for check ins breaking the build
- automate the build, test, deploy process
- be prepared to stop the mainline when breaking occurs
- only one way to deploy and everybody uses the same way
- be prepared to revert to previous versions
Cloud
VCS systems in the cloud, CI servers in the cloud, distributed build in the cloud
They use Jenkins, Team city, cruise control, bamboo
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.