All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Evolutionary vs Engineering Approaches to Complex Software Development

By

r4um

3mo ago· 8 min readenInsight

Summary

The article contrasts two approaches to building complex software systems: evolutionary development (starting small and gradually adding complexity) versus engineering-based development (creating comprehensive specifications upfront). Using the analogy of entrepreneurship versus skyscraper construction, it explores how large organizations often default to the engineering approach despite evidence that evolutionary methods may be more effective for software development. The author shares personal experiences working in a large company where the engineering mindset prevailed, highlighting the tension between these two philosophies in real-world software projects.

Key quotes

· 4 pulled
There are two main schools of thought in software development about how to build really big, complicated stuff.
The most prevalent one, these days, is that you gradually evolve the complexity over time. You start small and keep adding to it.
The other school is that you lay out a huge specification that would fully work through all of the complexity in advance, then build it.
In a sense, it is the difference between the way an entrepreneur might approach doing a startup versus how we build modern skyscrapers. Evolution versus Engineering.
Snippet from the RSS feed
A blog about software development and programming.

You might also wanna read