Intro to JohnTellsAll: Dev, DevOps, and Quality
Published: 2023-05-17 19:06:59

## John Tells All Intro

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:

## Fast Developers

(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

## Fast DevOps

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](https://www.youtube.com/watch?v=zd7VlmClTDs), e.g. with Terraform

## Fast Startup

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

Feedback Loops exist everywhere, not just for
Dev/DevOps of course. Here are general resources:

* PDSA: [Deming's feedback cycle](https://www.wyohistory.org/encyclopedia/w-edwards-deming) enabled Japan's explosive postwar growth
* Scientific Method
* alt: Grit, Ericsson
* Gladwell's "10k hours to master anything" [needs refinement](https://www.edsurge.com/news/2020-05-05-researcher-behind-10-000-hour-rule-says-good-teaching-matters-not-just-practice)
* JTA: A-PDSA: after product created, what does that enable?


## Community

If you're interested in Dev, DevOps, and Quality, reach out to me! I'm happy to connect.

### John Tells All resources

* Follow my [dev.to account](https://dev.to/johntellsall)
* If you're an old-school Dev there's lots of stuff on [johntellsall.com](https://johntellsall.com/)
* Tweet at me [@ JohnTellsAll](https://twitter.com/JohnTellsAll)
* [John Tells All](https://www.youtube.com/@johntellsall9649) YouTube channel


## References (my YouTube videos)

* [DevOps with multiple feedback loops](https://www.youtube.com/watch?v=zd7VlmClTDs), e.g. with Terraform
* high level quality visualization ideas -- [Platonic Solids of Quality](https://www.youtube.com/watch?v=iJX6h45k_AQ)
  * Agile Quadrants (Crispin, Gregory, Marick)
  * Test Automation Pyramid
  * Feedback Loops
* [Pomodoro is Agile](https://www.youtube.com/watch?v=yCPTc79oVg8)
* [Extended Test Pyramid](https://www.youtube.com/watch?v=zGRyJUro7Tg)

Photo by <a href="https://unsplash.com/@federicorespini?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Federico Respini</a> on <a href="https://unsplash.com/photos/sYffw0LNr7s?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>