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.
Architecture is concerned with the selection of architectural
elements, their interaction, and the constraints on those elements and their interactions…
Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.”
Let me first thank you for taking the time to put down your thoughts. Okie, now let me tell you that I still cant find something that is clearly different between the two . Your definition is a little recursive in the sense :
Architecture is concerned with architectural elements and Design is concerned with design elements.
Would you be able to specify the actions involved in each of the process ? Maybe with an example ?
I was just looking for this info for a while. After 6 hours of continuous Googleing, finally I got it in your site. I wonder what’s the lack of Google strategy that do not rank this type of informative web sites in top of the list. Normally the top sites are full of garbage.
Whoah this blog is fantastic i really like reading your posts. Keep up the great paintings! You recognize, a lot of people are looking round for this info, you can aid them greatly.