• RD established ≈ 2015 (Good Eng. culture) • Back to 2018 when I joined: • All run Scrum w/ similar work fl ow • Di ff erent languages, stacks, release process • It’s hard to retrieve SW Px metrics
• New feature code checked in • Code bugs • Test automation fl aky • 數百、千隻的 test automations • Duplicated test coverage • RD 從來也不會來看測了什麼 • Pipeline con fi dence 完全沒幫助 解決⾝邊不合理的流程
• Don’t check in on a broken build • Always run all commit tests locally before committing • Wait for commit tests to pass before moving on • Never go home on a broken build • Always be prepared to revert to the previous revision • Time-boxed fixing before reverting • Don’t comment out failed tests • Test-Driven Development • Take responsibility for all breakages that result from your changes
UT &| AE: IT & E2E Discuss “Acceptance Criteria” TOGETHER KPI Automation coverage rate KEY examples (scenario) coverage Pipeline # Multiple pipelines One pipeline to production De fi nitive Verdict Blue / Yellow / Red, human verdict Success / Fail Automation Strategy What ever works in a 2-week cycle Modularized, stub, test isolation, testContext, … Traits Alpha, beta, staging, production CUJ coverage, Release strategies, O11y Branching Strategy Feature Branches Trunk-based development + feature toggle Continuous Improvement Get “Green” before scheduled release Continuously improve pipeline cycle-time
+ SRE • Communication, communication & communication • Get together, Go fast • Fragmentation (down) • Cost of Maintenance (down) • Support E ff i ciency • Automatically upgrade • Dx satisfaction (up) “Only 10% of elite respondents indicated that their teams have fully implemented every SRE practice we investigated.” Source: state of DevOps 2021
rollout, progressive release • Scalable A/B testing and reduce each experiment costs • Don’t forget the core abilities (UT, code review, …) • Develop “abilities” probably more important than “methodologies” • But “methodologies” provide “de fi nitions” which do matters! Trunk-based or NOT
Aim high, start low and make changes • (Leadership) Increase visibility & in fl uence outside of ur project • (Leadership) Authority comes from an ability to in fl uence others • Consensus and endorsement from mgmt (bonus, OKR also) • One man’s opinion v.s. team consensus • Top-down:短時間要有⼀定成果,對「持續改善」可能有負⾯效果 • Community:進度緩慢、團隊向⼼⼒(team moral )不易維持 Community in a Digital World
• Ex: Trunk-based development Engineering Culture Very very few use trunk- based development Elite companies scale well with it New unicorns advertise it Best-selling books promote it Statistic data prove it