The great Paul Whitehouse is 68 years old today, which means I am obliged to post this (again!) - arguably the most majestically random but brilliant comedy sketch committed to celluloid for at least the last, what, forty, forty five years?
Yes, forty, forty five years.
Happy birthday Paul 🤘
A brilliant statistician who spent 50 years studying why massive engineering projects fail realized one terrifying truth:
Individual incompetence is almost never the actual problem.
His name is W. Edwards Deming, the man who famously rebuilt Japan's post-war manufacturing empire from scratch. He argued that we obsess over individual performance and completely ignore the environment.
Here are 4 operational frameworks he used to build elite, failure-proof organizations:
I keep hearing that AI has made Agile irrelevant. Okay. I'll throw in the towel. Let's dump Agile altogether.
So, instead, here is by far the best AI-focused way of working that I know:
First,
- The way we treat people and work with them is more important than processes and tools
- Working software is more important than any sort of documentation or other formalisms
- The best work happens when we work collaboratively with each other and our customers. The best environments are based on trust and communication.
- Planning only goes so far, and we need to adapt to what we learn as we learn it
Furthermore, I'd suggest that:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- The best way to build the right thing is to work small and deliver very frequently (at least daily), so that we can get feedback early and adjust based on that feedback.
- That we have to do that by working closely with business and product people. The code is secondary to defining and building the right thing.
- That we have to hire motivated people and get them the best tools that we can for them to do their job. They're the best people to tell us what tools they need.
- Communicating in real time eliminates lots of problems—delays, blockers, rework.
- We'll measure progress (and productivity) by how fast we can get valuable software into our customers' hands. Things like tokens/day, lines of code, and other measures of volume aren't useful. You are not more productive simply because you (or your AI helpers) type faster.
- We'll do our work in a humane environment, relaxed enough that we can come to work every day rested and able to do our best work. People matter.
- We'll focus on excellence and quality. Extensive testing, particularly when an LLM is involved, is essential. Great architecture underlies all great systems.
- We'll strive for simplicity, both in the code and in the product. We'll build exactly what our customers need and no more, and will determine their needs by talking to them.
- We'll trust the teams to figure out the best ways to go about their work.
- We'll constantly look at both what we're building and how we're building it, and continuously improve in both categories.
This is by far the best AI-focused approach that I know. Forget about all that "Agile" BS! 🙄
Tony Tracker, music tracker for Windows, developed in order to make the music for #Atari2600 upcoming game Tony Montezuma's Gold https://t.co/jSqAvOQnLB #atari#chiptune@adamgilmore
Jeff Bezos on why too many ideas can destroy a company, and the discipline that built Amazon's inventive edge:
"Jeff, you have enough ideas to destroy Amazon."
That's what senior executive Jeff Wilke told Bezos after just one year of working together.
Bezos was confused. He pushed back: "What do you mean?"
Wilke was a manufacturing expert. He explained it simply:
Every new idea Bezos released created a backlog. Work piling up, adding no value, creating distraction instead.
The fix wasn't to stop having ideas. It was to control when they came out:
"You have to release the work at the right rate that the organisation can accept it."
So @JeffBezos changed how he operated.
He started keeping lists, holding ideas back, and waiting until the organisation had the bandwidth to absorb them.
But then he flipped the problem entirely.
He asked: "How do I build an organisation that's ready for more ideas?"
His answer was structural: get the right senior team, give leaders real executive bandwidth, and build a company capable of running multiple bets at once.
And there's a benefit he didn't expect. Slowing down made the ideas themselves better:
"If you are releasing the ideas through time, it forces you to prioritise them better. You end up sharpening the ideas better."
The constraint becomes a filter. The ideas that survive the wait are the ones worth acting on.
The result? Faster execution, less distraction, and better ideas.
In computing, we take imagination and make it manifest in the form of software and hardware.
There exists a sequence of barriers through which we must pass to make it so.
First, there are the laws of physics. We cannot send information faster than the speed of light. There are fundamental limits as to the amount of information we can store in a given space. Thermodynamics presents considerable engineering challenges, particularly as we craft smaller and smaller devices.
Next, there is the challenge of computability. We must turn theory into algorithms, and at scale we must make those algorithms fast and efficient.
Design and then architecture are the next challenge. Weaving algorithms and data into systems that are functional, understandable, maintainable, and that can evolve calls us to the exquisite dance between art and science, compelling us to push the limits of our human creativity.
Organizational issues rise to consideration. One developer can do remarkable things, but to release systems that are durable, that are resilient, and that work at global elastic scale requires a team.
And then there are economic realities. Our dreams may be expansive, but in the end bringing them to life may be more expensive to build and to operate that we can afford.
Finally, there are moral and ethical issues. There are many things we can build out of hardware and software, but our shared humanity requires us to examine if we should build them.
This is the nature of development, and why hardware and software and systems engineering remain a very human problem to which we must apply all our knowledge and talent.
It makes no sense to point an AI at a function and ask it to write a test for that function. The AI, if it’s any good, will write a passing test for that function. it will not detect any bugs in that function. In fact, it will codify any bugs as part of the test.
Just released: New AI Climate Simulator that you can play with. Visualize how geoengineering can slow global warming.
There is no longer any path to limiting warming to 1.5 degrees Celsius (Paris Agreement), unless we use geoengineering. Reflecting 1% of sunlight away from earth would lead to an extra ~1 degree of cooling.
Our simulator lets you explore how geoengineering via Stratospheric Aerosol Injection (SAI) gives us new paths to keep warming to 1.5 degrees. I think SAI is a promising technology worth serious exploration. Check out the simulator here: https://t.co/OxtaQMyDuL
Big thanks to collaborators @jeremy_irvin16, Jake Dexheimer, @dakotagruener, Charlotte DeWald, @DanVisioni, @DWatsonParris, @DougMacMartin, Joshua Elliott, Juerg Luterbacher, Kion Yaghoobzadeh