Software entities are more complex for their size than perhaps any other human construct because no two parts are alike. If they are, we make the two similar parts into a subroutine ― open or closed. In this respect, software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.
― Fred Brooks, Jr.