I think that if the mental model one is using is like the New View on Systems Safety, then the connections between the disciplines in TOAD (Testing, Observability And Devops 🐸) naturally become obvious as you work more and more with software systems. Conversely for people rooted in the traditional / Cartesian view of software systems, it’s pretty much impossible to explain. (edited) For instance…
Feedback engagement is a metric that describes how often and where developers engage with feedback from the CI system. Engagement rates can be calculated using all of the standard engagement measurement tools from production-facing systems: email open rate, the frequency with which developers respond to slack announcements, and most obviously: the rate at which failing tests are fixed or ignored.
Phenotypic conformance analysis describes the practice of establishing a static analysis ruleset based on the observed properties of the codebase rather than on an existing open source standard or a ruleset voted upon by the team. Then the initial feedback loop revolves around How much new changesets resemble the code that is already in the codebase. This gets at the important properties that…
How Change Works In Large Organizations The Kübler-Ross change curve and the Six Phases Of A Project are two time-tested ways of visualizing how organizations cope with change! Here the Kübler-Ross curve and the Six Phases are together for the first time! I hope this infographic helps to achieve every initiative in your portfolio!
If testing software and writing code feel very different to you, it’s only because you haven’t written enough code yet. That is only my own admittedly controversial opinion. I believe that everything we call “software testing” is a subset of the activity we call “programming.” Implementation is a test of a hypothesis. To implement a pattern in code one must first form a narrative or if you prefer…
Software is narrative | Hacker News : Thanks everyone for upvoting my post on HN! It’s always exciting to see my work on the front page of Hacker News :) Full list of Software As Narrative posts.
Software rot The software development life cycle is predictable in that any long-lived product will eventually outgrow some of its subsystems. For instance a Web service that begins life with a single monolithic database server will as it scales need the capacity increase that comes from a distributed database. A historical example can be found in Twitter’s original dependence on the ActiveRecord…
Suboptimization is THE reason for technical debt. But I have to go outside #programming to find discussion of it. https://t.co/cgTN57MrT4 pic.twitter.com/SKjYKUVV4O — Tentacular Devops 🐙 (@noahsussman) June 18, 2017
The uncomfortable truth is that dev is a complex relationship with an increasingly intelligent other. The uncomfortable truth is that dev is a complex relationship with an increasingly intelligent other. — Tentacular Devops 🐙 (@noahsussman) June 28, 2015
Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON. Here’s how I use Miller to pipe CSV data into jq jq is currently my tool of choice when it comes to processing all sorts of data. Except XML and CSV. XML is pretty well handled by xmlstarlet but I have never found a CSV parsing tool that I liked. I just make do with using jq to work with…
Concern troll - RationalWiki : “Testing vs. Checking” “Testing vs. Checking” You will find this meme under discussion at all of the leading software quality assurance (SQA) conferences today including GTAC, STPCon, STAR, CAST and the various Selenium confs. In short the discussion revolves around whether a Cartesian divide can be effected between the human and the computer’s role in software…
Good systems converge on quality. They snap back into shape when deformed. Autoscaling is an example of how Web systems regain their good state after some event has impacted functionality. Bad systems act the same. when pushed toward a better state they gradually edge back toward the bad state. Take for example the familiar case of a legacy system that has been put under test but gradually edges…
“Part of making agile acceptable to management was removing the words extreme and programming” & downplaying quality https://t.co/CdiO1kspF2 — Tentacular Devops 🐙 (@noahsussman) May 14, 2017
“Proposition 3: memes — not programs — co-evolve with human programmers” - Looking for human-like intelligence in algorithms gets the level of abstraction wrong. If we want to see software systems behaving like the cunning, brutal, creative creatures of the animal kingdom (like us) then we should look at computer programs as memeplexes. And we should be looking at the behavior of individual memes.…
“Proposition 2: Programs are composed from memes. Code can be decomposed into individual memes.” - This point of view is expressed eloquently in the white paper The Selfish Class which examines Object-Oriented design patterns not as structural, functional modules but rather as vernacular memes shared by collaborating stakeholders building fluid systems with few over-arching design rules. This…