She co-authored Accelerate: https://www.amazon.com/Accelerate-Software-Performing-Techno... . She is also currently at Microsoft Research and was previously at Google and GitHub. This may be a hot take you disagree with, but she's no newbie.
I took her point to be "make sure anything you build is a lot better than anything you can buy, because there are a lot of unexpected expenses in building".
One possible tl;dr is:
Objective analysis and queuing theory leads to _rejecting of_ all kinds of Talylorian cogs-and-factory-lines style organizational models and hypotheses in software work.
Here is btw. a book with empirical results about software work perhaps pointing a bit in the same direction: https://www.amazon.com/Accelerate-Software-Performing-Techno...
https://www.amazon.com/Accelerate-Software-Performing-Techno...
Nicole Forsgren PhD and 2 more Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
https://www.amazon.com/Accelerate-Software-Performing-Techno...
Yes, I read it. Yes our org put it in use.
Actually for today's year (2022) the book is not so much of a great news compared to when it was released (2018). Today almost everyone already understood that software development is done this way (at least the right software development process).
In 2018 for me this was an excellent book, it changed the way our organization positioned ourselves regarding software development, and we are very grateful we did that. At that time, before 2018, the "modern" software development companies were talking about "digital transformation", we were already in the agile world for some years but the book gave us a name to go for, "accelerate".
It's an excellent book and I agree with almost everything that is written in it (I work in the software development business for over 26 years).
Hope I helped with this comment.
What I mean with this, is that there'll be many opinions and feelings posed as a fact. About testing too.
Which is why I dislike the OP's article, as I pointed out elsewkere in the comments: the things he poses as "rules" (earlier on he calls them tips, which is better imo) aren't rules: they are highly controversial opinions. As would the statement you read be.
Daily TDD, is more of an "art" than a science. It requires experience, and fingerspitzengefühl.
Though, the science on TDD and BDD is strong and convincing, summarized in "Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations"[1]: TDD and BDD significantly helps to build better software.
[1] https://www.amazon.com/Accelerate-Software-Performing-Techno...
Isn't devops the next generation? (I mean devops as promulgated by Accelerate: https://www.amazon.com/Accelerate-Software-Performing-Techno... , not 'smoosh the devs and ops teams together, add Jenkins and hope for the best'.)
First, I am not aware of any operating systems that are developed using agile methods, and second the empirical evidence is in that agile improves quality, so it would be better if they were.
https://www.amazon.com/Accelerate-Software-Performing-Techno...
[1] https://www.amazon.com/Accelerate-Software-Performing-Techno...
According to this study, you can measure a team's progress and ability with:
* number of production deployments per day (want higher numbers)
* average time to convert a request into a deployed solution (want lower numbers)
* average time to restore broken service (want lower numbers)
* average number of bugfixes per deployment (want lower numbers)
I am curious about other studies in this area and if there is overlapping or conflicting information.
This is well researched and discussed in Nicole Forsgren's book: Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
https://www.amazon.com/Accelerate-Software-Performing-Techno...
If it takes 10 people and six hours to accomplish the release of even the smallest of features, then it sounds like there's a bug with your "ship fast" feature and the team should invest some or all of its resources in fixing that. You probably can't do it over night, but you gotta chip away at it over time at the very least.
If you are looking for justification backed up by real world numbers, I highly recommend the book "Accelerate" by Nicole Forsgren, et.al.[2]
[1] https://a16z.com/2014/04/16/shipping-is-a-feature-some-guidi...
[2] https://www.amazon.com/Accelerate-Software-Performing-Techno...
Most software is used by customers with changing needs and competitive pulls. I've built software in the last 2 years that we would have taken a radically different approach to if LLMs were available, because they're great at summarising natural language. But they weren't. Imagine if we'd been building something for 2 years and never learned anything about changing technology or customer expectations - instead we shipped something fast, and then looked back after we learned about new things and made it better. That's how the World should work, and why software is not like building a bridge or a house or basically anything else in the history of engineering.
As to your specific exampleS: I have some detailed knowledge of hospital EHR systems, and they are so massively, hilariously broken in ways that modern software practices could easily help address. I suggest reading Accelerate [1] for data and examples of how agile applied to DevOps practice in particular means you can be more responsive and produce safer software, especially in that context.
I, like you, also prefer software for stuff that matters. I've been trained in formal methods, I've done embedded systems development, I've worked in medical/healthcare contexts. Your statement that what I've written above does not apply to those environments (including the use of formal verification methods), doesn't make sense to me.
[1] https://www.amazon.com/Accelerate-Software-Performing-Techno...