Hi everyone! My name is John Mitchell, and I'm a Dev/DevOps Engineer in California. After years of Dev and Web experience, I switched to DevOps and Cloud work over the last decade.
This blog is aimed at Developers, DevOps people, and Business.
I've developed a lot of ideas around Dev, DevOps, and Quality. "Quality" I define as the Business expectation of our work. Each group has a specific, limited viewpoint. Each group interacts with the others, but can easily get confused. Misaligned expectations cause problems.
The following is a rough index of screencasts and articles in production:
(Feature) Developers build out Business features in code. "Speed" means latency between updating a feature and getting feedback on the change. Sometimes the change "works" and we can move on to a different feature. More often the change fails and we try again with a slightly different change.
Feature code is mostly stateless, so we can build extremely fast feedback loops using local unit tests. Also, test automation creates high (business-focused) quality, at the expense of speed.
Feature code uses environments, pipelines, and other resources generally managed by DevOps.
- article: "Fast Development: Speed and Quality"
- Run tests with Entr
- Write feedback loop before code, e.g. Test First (TDD)
- Use CPU not brains
- Assert 0
- Dev via repl
- AI: sharp knife
DevOps Engineers support Developers by creating and managing resources, like databases and networks. They also create and maintain the CI/CD pipeline.
DevOps tasks are always stateful, and often much slower than Developer tasks.
- article: "Fast DevOps: Feedback from State"
- Auto-plan using Entr
- Feedback at multiple levels
- compare: DevOps with multiple feedback loops, e.g. with Terraform
Feedback loops aren't just for Engineering. There's lots of non-technical feedback metrics we use to grow our company
- Developer Experience (DX) features -- speed -- are business features
- create, track, and implement DX features like any others, don't ignore them!
- like investments in test automation, DX creates biz value forever
- Product-Market Fit
- Post-deploy feedback
- business and marketing interact directly with users
- A/B Testing
- Feature Flags
JTA: Speed x Quality
- with investment, Speed can create Quality
- reference: Charity Majors / Honeycomb
Value Stream Map
- high level, for business and eng discussion
- visualize, measure, and communicate the delivery/value path
- enables radical optimization and biz/eng alignment
JTA: Deploy-Value Map
- lower level, tech version of Value Stream Map
- shows effort, products, and feedback for each audience
- Deploy Map: Dev -> PR -> Staging -> Prod
- For each step, 1) change latency, 2) feedback latency, 3) feedback value
Feedback Loops exist everywhere, not just for
Dev/DevOps of course. Here are general resources:
- PDSA: Deming's feedback cycle enabled Japan's explosive postwar growth
- Scientific Method
- alt: Grit, Ericsson
- Gladwell's "10k hours to master anything" needs refinement
- JTA: A-PDSA: after product created, what does that enable?
If you're interested in Dev, DevOps, and Quality, reach out to me! I'm happy to connect.
- Follow my dev.to account
- If you're an old-school Dev there's lots of stuff on johntellsall.com
- Tweet at me @ JohnTellsAll
- John Tells All YouTube channel
- DevOps with multiple feedback loops, e.g. with Terraform
- high level quality visualization ideas -- Platonic Solids of Quality
- Agile Quadrants (Crispin, Gregory, Marick)
- Test Automation Pyramid
- Feedback Loops
- Pomodoro is Agile
- Extended Test Pyramid