While I was looking for a job 3 months ago, I had a phone screening by a recruiting guy who asked me about the difference between architecture and design in the context of software development. This question confused me immediately. I had never thought about this. I told him there is no difference between architecture and design, they are effectively the same thing – just different names to the same process. I told him it didnt really matter whether you architect the system or design the system as long as you get what you want. He was not satisfied, he said that architecture and design are clearly different stuff and that he expected me to know the difference since was working with software for more than 4 years. I was ashamed. If there is some difference between architecture and design I should be knowing it – how could I miss something like this?
Even though this interview shaked my confidence, I never bothered to look up this matter somewhere or ask somebody. Yesterday I bought Martin Fowler’s Patterns of Enterprise Application Architecture from Borders and while reading through the introduction this question came to my mind again. I immediately googled for an answer and got this and this and this and this. After reading all these I am still confused and the ideas are still vague. The vague idea that I got from these are that Architecure is more high-level than Design and that Architecture is that what can be explained to people outside the development team (i.e. the business people) and Design is the implementor’s view of the Architecture.
I am not sure whether I got it right, but I really dont think it is possible to clearly differentiate between architecture and design for a software system. I still dont have an answer to somebody who asks me about the difference between the two. Maybe I was right from the start – probably there aint much and probably it doesnt really matter.