Technology has evolved from being narrow, niche and for the few, to humankind utterly relying on it. It’s in our homes, our schools, our hospitals and our bodies.
Yet, so much of our tech creation processes are isolated: Get it over the line. Just get it done. On scope, on time, on budget. Add to this, generative AI has us creating an exponential amount of code at an exponential rate outside of the context of the moment.
For builders of the future, so much of what we are doing is shortsighted.
At the Fast Flow Conf, Team Topologies co-creator Matthew Skelton applied a stewardship lens to the tech industry, asking, “How can we build software with a 10-, 20-, 30-year perspective? Where have we been going astray? How can we promote effective ongoing evolution of software-enriched services that humans increasingly depend on?” Read on to consider your own organization’s continuous stewardship and whether you have a holistic approach to this constantly evolving industry.
Software Failure Mode No. 1: Too ‘Done’ Minded
We get so focused on getting the ticket to “done” that we forget the overall service is still being provided.
“People talk about a software factory, which is a hugely dangerous mindset,” Skelton said. “We’re just putting stuff in the top, turning the handle — out comes the sausages.”
“We’re losing awareness of the long-term aspects, how the software needs to evolve.”
— Matthew Skelton, Team Topologies
While many of us wish to remain ignorant to how actual sausage is made, there’s risk in not paying attention to the aftereffect or maintainability of the software we’re contributing to. Tossing over the silo — on time, on scope, on budget — he said, incentivizes mechanistic, “code monkey”-like qualities, instead of creative problem-solving and continuous learning.
“Technology is changing so quickly. We need to be always learning and innovating,” Skelton said. “We need people, everyone in the organization, [to have] the mindset of, ‘I need to be innovating in processing technology and the ways of working.’”
This focus on the short-term deliverable has most software engineering teams optimizing for just one little aspect, he continued, without thinking about the continuity. This results in more rework later, damaging overall viability.
“Sometimes that’s all right, but crucial domain context is often lost and ignored,” Skelton explained. “Development is one of the smallest costs in these software services — tiny, tiny slices — and we’ve got this pool of fungible resources, just mix them in and do the work.”
While software engineering still seems to be a highly in-demand field, there’s also this outdated belief that because there are about 30 million devs, one is replaceable with another.
“We’re losing awareness of the long-term aspects, how the software needs to evolve,” Skelton said, which is, of course, exacerbated by generative AI.
Software Failure Mode No. 2: Faster Code Generation
Generative AI is trained to give the response most likely to be accepted. Not necessarily the best response for any given situation.
It’s most often generating code without consideration of the domain, context or maintainability. And, unless it’s asked, it’s not doing security checks. Add to this, shadow AI means your developers may be experimenting with GenAI without you even knowing it. There’s more code than ever but of measurably worse quality.
And now companies are letting AI start to make decisions on its own.
“Do we want GenAI deciding what services to create and deploy?” Skelton asked. “This is where the industry is going: We’ll get an advantage if we get to market quicker.”
You might be faster, but at what cost?
There’s a rush to adopt generative AI and apply it to what software developers most want to do: write code. And this GenAI is being deployed while ignoring decades of proven best practices of software engineering, Skelton said. Specifically, it ignores technical debt and software effectiveness.
This failure mode can be life-ruining. Skelton gave the harrowing example of “We lost all our money because the AI-generated banking application basically just dumped all the money somewhere, into a black hole effectively.”
He also talked of the incidence of using AI systems for cancer screening. Already it’s been proven that AI automation in breast cancer screening has led to automation bias, where radiologists start trusting by default that the computer is right. When it’s not, these seasoned professionals missed when they would normally have been able to spot the cancer.
A lack of consideration is not always life-threatening, but it can be business threatening.
He referenced the recently released Salesforce autonomous agents, which the platform describes as “an advanced form of AI that can understand and respond to customer inquiries without human intervention.”
This, like speed to market, can be a short-term cost saver for the hundreds of thousands of Salesforce customers, but at what risk for the future?
Humans are important bottlenecks. “The bottleneck is actually understanding,” Skelton emphasized. Software development still needs to take more time, because “GenAI doesn’t understand anything. The bottleneck has never been in been typing or generating the code. The bottom line is understanding and dealing with the difference between this concept and that concept.”
What’s the long-term cost of creating 100 million extra lines of internal code? Will it be impossible to change later?
“There’s decades of awareness in the software community around data migration, backwards compatibility, referential integrity — a whole bunch of these fairly basic things, which are important if we want our bank balance to remain accurate and so on,” Skelton said.
A new antipattern that’s emerged is looking at GenAI as a magic fix: If something doesn’t work, we will just get it to generate a new version. In the end this is why he believes AI is not going to replace software engineer jobs in the near future:
“Humans are needed to distill and curate that organizational intent. If things go down this route, then there’ll be decades worth of fixing for us to sort out.”
Building for Sustainable Stewardship
Skelton likened the software industry to renting out a house that’s falling down.
“I was surprised by how many organizations have no real clue what they are trying to achieve,” he said, with GenAI and their whole software development life cycle. We aren’t being good stewards to our future work, and especially to everyone who has to use or add to our code after we’ve moved on.
Start with the premise that software-enriched services will need to evolve for 10, 20 or even 30 years, Skelton recommends, and then work backward.
“We need a holistic approach to evolving software-enriched services that fits the increasingly life-threatening effects on humans.”
He is calling for a continuity of care for software services, which focuses on stewardship and curation. This involves the core of Team Topologies, including:
- Designing for team cognitive load.
- Long-lived autonomous teams with ongoing context.
- A move from individual ownership and toward collective responsibility.
What he calls continuous stewardship also includes:
- Continuously untangling business concepts and examining “organizational wiring.”
- Ongoing realignment around mission, skills, trust and intent, from the bottom up.
- Cross-organizational service design thinking across people, process and tech.
- Funding that focuses on continued flow of value and health of code.
The latter piece of this stewardship puzzle, he said, demands a change in procurement processes and a move away from project-centric funding. Supplier contracts tend to be different for each project and each stage of the software development life cycle, from testing and building through to different lines of support. Procurement, in its current state, is siloed and works against the goal of collective ownership for fast flow of value.
Build on Software Development Best Practices
Continuous stewardship isn’t inventing the wheel, but rather building on the established gold standards.
“As software-enriched services become ubiquitous and life-altering, I think we need a radical new mindset,” Skelton said, which he is calling continuous stewardship. “Dealing with all these dimensions to help unlock good decision-making for success … a prudent and humane response to the pervasiveness of software in our lives.”
He calls this the next step building on other software best practices:
- Version control
- Continuous integration
- Continuous delivery
- Agile
- Iterative releases
- Domain-driven design
- Observability
- Team Topologies and platform engineering
- Psychological safety
“I want to pull towards a more humane, effective operating mindset, of relations building and running software and web services,” Skelton said. “Getting beyond this mindset of ‘It needs to be Done’ and get beyond this mindset of ‘We just need to generate code faster.’”
Because neither done nor faster means better or more sustainable.
The post Continuous Stewardship for a More Sustainable Future appeared first on The New Stack.
Team Topologies cofounder Matthew Skelton presents a new concept of continuous stewardship to address generating code for the long term.