Software development is still so crude as to be at the dry stacking rocks stage. We've just become really good at stacking rocks and finding the right shaped rocks to really fit together just so. One day we will build software like we do normal engineering.