People who haven’t written large programs think that writing software is easy.
All you have to do is break a big problem into smaller problems until you have something so small that it’s easy to program.
The problem is putting the pieces back together.
If you’ve only written small programs, you haven’t had many pieces to put together.
It’s harder to put the pieces together when you write a large program by yourself.
It’s even harder when you work on a large program with other people.
Synthesis is harder than analysis.
Or as Perdita Stevens put it, integration is harder than separation.
The image above is a screenshot from her keynote at the RC2020 conference on reversible computation.
Related post: The cost of taking things apart and putting them back together.