fast, automated feedback on theproduction readiness of your applicationsevery time there is a changewhether code, infrastructure, configuration or database Jez Humble
continuous delivery small feature chunks timesoftware always production ready releases tied to business needs, not IT constraintsminimize the lead time from idea to live concept to cash
systems thinking is [a philosophy] based on thebelief that the component parts of a system can bestbe understood in the context of relationships witheach other and with other systems, rather than inisolation.
value stream mappingprocess tool for improving the flow from a customer request to the fulfillment (concept to cash)emphasis is on improving the whole not just the partsuses quantitative data to identify waste and inefficiencyoriginally developed by toyota to assist in the improvement of manufacturing and supply-chain processes
n tio uc od Pr nt me y plo De off - gn Si n ru y Dr g stin te n sio se es lea ild gr Re Re bu faster feedback nt me n g ple lanni Im p ng stifull production pipeline te al anu d M ate sts tom Te Au ional t nc Fu w slo CI t fas CI -* - in e ck Ch ,*-.$#/#*+/ !"#$%&($ ld bui e r lop ve De ff -o ck ki +&% ion
full production pipelineautomated implementation of your system’s build, deploy, test, approval processes! visibility! traceability! compliance
treat everything like codecheck in, automate, test in CI, promote in deployment pipeline• database: DDL & static data• deployment automation• infrastructure/configuration mgmt• monitoring configuration
adhere to the test pyramid Adapted from Mike Cohn (Automated Test Pyramid) and Lisa Crispin & Janet Gregory (Agile Testing)
trunk based development Professor Plum P1 P2 P3 P4 P4 P1 P2 P3 P4 P5 P1 P3 P4 P5 P2 B2 G3 G1 B1 G2 Mainline B1 B2 B1 B2 P4-5 G1 P1-2 G2 P3 G3 G4 G5 G6 G1 G2 G3 G4 G5 G6 Reverend Green G3 G4 G2 branches discourage refactoring branches delay integration and hide risk merging wastes time and is tedious
trunk based developmentfeature toggles let you deploy incomplete featuresturned offbranch-by-abstraction lets you make architecturalchanges
consistency from development to production accidental >> necessary inconsistency inconsistency deployment process environment configuration testing tools
pull itops onto the delivery teamsit together: biz, dev, qa & sysadminshare KPIs for stability and changesame story wall and iterations
“in production”? “live”?what does “in production” mean today?what does “live” mean? is it a binary state?how can we take advantage of shades of grey in “live”?
concernsreliability & stabilitycompliance & traceabilityreleasing 10 times/day • don’t need to, just keep your code always production releasablecomplexity of my systems • its about continuous improvement. start with low hanging fruitit will take investment • yes it will, but it will also start paying dividends quickly
homework how long would it take to get a one line code change into production using the normal process? Mary & Tom Poppendieck Implementing Lean Software Development
extra credit: lean startup movementapproach to managing disruptive innovationgoal of startups is to learn • true for everyone early in the innovation cyclelearning should not be adhoc • be rigorous & use the scientific method • hypothesis -> experiment -> analysis