When preparing for some TDD and OOD training, I came across the following definitions that really resonated with me:
– Software Architecture is Software Design that has a high cost to refactor.
– Software Design in an agile world starts with running tests which empowers the removal of duplication, the expression of intent, and the ability to implement using the least amount of code possible.
– Software Development is 90% reading and 10% writing, so it is paramount to make your code easy to read and understand by others