Skip to main content
Test Double company logo
Services
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say Hello
Test Double logo
Menu
Services
BackGrid of dots icon
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
Cycle icon
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say hello
Leadership
Leadership
Leadership
Accelerate quality software

The myth of industrializing software engineering

Explore why the assembly line mentality is outdated in software development and how embracing flexibility and innovation can drive real results. Join the conversation on transforming tech leadership and fostering creative engineering teams.
Michael Toland
|
February 19, 2024
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Does this sound familiar: a vague feature gets conceived by “the business,” budgeted behind closed doors, and then handed off to a  team in “IT” with fixed requirements and timelines to deliver? You’re expected to deliver it flawlessly, but kept at arm’s length from the problem you’re solving. It’s an assembly-line mentality: rigid, linear, prescriptive. But software engineering isn’t an assembly line, and engineers aren’t interchangeable parts. They’re creative collaborators who could drive real innovation given the chance. The model is broken and there’s a better way, rooted in how assembly lines are made. Let’s rethink outdated assumptions we’ve inherited and move toward a better way.

I continue to find a familiar pattern, whether I was a full-time employee, a contractor, or a consultant – the mentality across so many organizations is the same. When approaching software development, our mental models mimic an assembly line: “draft, plan, deliver, repeat.” However, the assembly line is misapplied to software development because we’ve lost sight of what an assembly line is the result of and what it does. Let’s deconstruct this.

Coding is the creation of a virtual assembly line

I was raised by my grandfather who was a lineman for a major US automaker. Every year, manufacturing plants shut down for about a week to do line maintenance, machine updates, and sometimes refactoring of lines to start making the new year models. These annual shutdowns are the culmination of months of discovery, prototyping, experimentation, and planning to validate assumptions, test hypotheses, and scale production in factories. Teams outside the factory worked to determine changes to implement in factory logistics necessary to solve new problems for drivers, car safety, and innovate into the future. They were determining the methods to deliver end products – the vehicles and the experience of driving – reliably and repeatedly. They created blueprints, documentation, and requirements for updating the assembly lines as a result of these discovery phases.

The problem is that our collective psyche in software has misapplied where this work happens in software development. How many of our software engineers on teams feel like they are merely machines on an assembly line churning out code? This is wrong, and we must course correct this model fast.

Engineers aren’t the machines on an assembly line, but rather, they are the ones building the assembly line. If assembly lines are the automation built by factory planners to deliver vehicle experiences on repeat, then our engineers are the ones writing code to deliver software experience on repeat. That code is the assembly line equivalent, not the engineers. It’s the code that delivers an experience on repeat, but it’s only through trial and error, prototyping and experimentation, discovery and innovation that we can make this work to solve real problems. We cannot achieve this in our current model. Our current model stifles the innovation and creativity of engineers when we don’t allow them to co-discover the problems worth solving for our users, customers, and businesses. This mindset robs our organizations of the potential that our talented engineers can provide. They are the technical experts and understand what’s feasible to solve problems for our customers that drive value back into the business.

Embrace the inherent flexibility software provides to experiment rapidly

Software offers a lot more flexibility than physical hardware. Once I place a machine on an assembly line, there’s a LOT of work to change that. Software, while posing its own challenges, is much more malleable to rapid change and redeployment. On day one, unlike an assembly line, we don’t need all the details to be set in stone; we can gradually solve the problems in piecemeal fashion. Our product teams can co-discover along the way as they build, experiment, succeed or fail, and understand what code needs to be written to solve problems in a way that delights users and customers and delivers value back to the business. Rather than providing prescriptive solutions, leaders should bring engineering teams into discovery to co-create what the future will look like, and let them help drive the plan and budget.

As a product manager, I’ve seen preplanning, SAFe, and a demand for absolute certainty crush innovation and demoralize great engineering talent. The root cause is this misapplied model and a demand for certainty. It doesn’t have to be this way. If you’re a leader who is expected to have certainty, take a step back and acknowledge how many projects go off the rails and are late, over budget, and have ballooned scopes. We’ve never had certainty, but we can commit to strategies that divest from certainty.

Our strategies should focus on understanding problems as we build, learn, and reduce assumptions we make. Engineers can be trusted to help discover the right problem to solve, and allow them the freedom to explore solutions. They have the technical expertise to know what’s possible and where innovation could occur. As a leader, you can shift your mindset away from optimizing for predictability to fostering resiliency and a focus on impact; from maximizing arbitrary productivity to focusing on results that improve business metrics and drive long-term success.

A new path forward can reshape how we build the future

The world is unpredictable. The illusion of control should have been shattered when COVID-19 changed our entire world. “Given our stormy present, the dogmas of our quiet past are inadequate,” as Abraham Lincoln said in 1862. “Our occasion is piled high with difficulty, and we must rise with the occasion. As our case is new, so must we think anew, and act anew.”

As our world changes, so should our approaches. We shifted our mindsets drastically to deal with a sudden shutdown the pandemic brought, and so we should continue to evolve our mindsets. The most valuable lesson the pandemic taught is how our collective ingenuity can be manifested quickly to adapt to new environments. We have the potential to change and pivot our behaviors quickly, and our businesses and our teams need to shift their mindsets now more than ever.

The rigidity of the assembly-line model in its current application prevents our teams from dreaming bigger and better. Software is a fertile ground for creativity and imagination, and our engineers are visionaries whose potential is untapped when given the freedom to co-explore problems and iterate on solutions. Rather than treating them as interchangeable parts, treat them as partners. They are best equipped to uncover and deliver technical feats when unfettered by prescriptive processes. Foster their ingenuity; don’t limit it. The future will be shaped by those who empower their teams to constantly research, experiment, and co-create. The opportunity lies with our talented people only when we have the courage to reimagine how we work.

We see this conclusion from thought leaders like Margaret Heffernan, Marty Cagan, and Melissa Perri. The time for change is ripe, and those who don’t embrace resiliency and plan for inevitable uncertainties will continue to lose to those who do. Our mindsets must move away from the misapplied models of the industrial age and move toward a new age that prioritizes discovery-led development. Nothing is more imperative.

The solutions we build when we’re all involved in discovery aren’t just better for the sustainable long-term bottom lines of our companies, but they provide better solutions for consumers, users, and often result in better benefits for the whole of society.

Join the conversation in our N.E.A.T. forum.

Related Insights

No items found.

Explore our insights

See all insights
Leadership
Leadership
Leadership
The business of AI: Solve real problems for real people

After participating in the Perplexity AI Business Fellowship, one thing became clear: the AI hype cycle is missing the business fundamentals. Here are 3 evidence-based insights from practitioners actually building or investing in AI solutions that solve real problems.

by
Cathy Colliver
Leadership
Leadership
Leadership
Pragmatic approaches to agentic coding for engineering leaders

Discover essential practices for AI agentic coding to enhance your team’s AI development learning and adoption, while avoiding common pitfalls of vibe coding.

by
A.J. Hekman
by
Aaron Gough
by
Alex Martin
by
Dave Mosher
by
David Lewis
Developers
Developers
Developers
16 things software developers believe, per a Justin Searls survey

Ruby on Rails developer Justin Searls made a personality quiz, and more than 7,000 software developers filled it out. Here's what it revealed.

by
Justin Searls
Letter art spelling out NEAT

Join the conversation

Technology is a means to an end: answers to very human questions. That’s why we created a community for developers and product managers.

Explore the community
Test Double Executive Leadership Team

Learn about our team

Like what we have to say about building great software and great teams?

Get to know us
Test Double company logo
Improving the way the world builds software.
What we do
Services OverviewSoftware DeliveryProduct ManagementLegacy ModernizationDevOpsUpgrade RailsTechnical RecruitmentTechnical Assessments
Who WE ARE
About UsCulture & CareersGreat CausesEDIOur TeamContact UsNews & AwardsN.E.A.T.
Resources
Case StudiesAll InsightsLeadership InsightsDeveloper InsightsProduct InsightsPairing & Office Hours
NEWSLETTER
Sign up hear about our latest innovations.
Your email has been added!
Oops! Something went wrong while submitting the form.
Standard Ruby badge
614.349.4279hello@testdouble.com
Privacy Policy
© 2020 Test Double. All Rights Reserved.