Beyond Accidental Architecture
Software always has some architecture. Often it just happens based on the conditions at the time of development. That's accidental architecture. On the other hand there are lots of benefits to moving beyond accidental architecture. Check out the slides.