live slides @ tinyurl.com/py9dev
... a set of practices and principles ... building, testing, and releasing software, faster and more frequently
... put release schedule in the hands of the business - not IT
Automation, pipelines & DevOps.
Tests are fundamental for build pipeline.
TDD good practice
BDD helpful for acceptance
Selenium / performance
!! risk !!
Containers make process easier.
Optional, but makes it easier
Container images built by pipeline
Push complete system
Satisfy the customer!
|Pipeline||CI, automatic feedback, continuous deployment, feature toggles|
|Empower sponsor||review apps, self-service deployment, zero-downtime, canary + b/g releases|
|Prove feature completeness||BDD, TDD, automatic tests (regression, performance, penetration)|
|Error prevention||environment parity, locked-down envs, transient envs, automatic provisioning|
|Visibility||version control, dashboards, monitoring|
|Speed||fast tests, resilient / self-healing envs|
Fix things we first neglect
We're neglecting dev infra
|Automate environment config||Manual setup, "work of art"
|Scripted setup||Notes, documentation of setup|
|Single command builds||Comprehensive instructions|
|Fix broken environments first||Ignore errors, postpone fixes|
|TDD, automate tests||Manual verification + fixes|
|Fully version controlled||Parts not version controlled|
|Visibility, dashboards, sharing||Geeky "secret configurations"|
Automate your setup
Automate your infrastructure
Less pain, more fun.