What's the best way of thinking to create new and compelx EAs?

 
When you build a house you use a bottom-top way of thinking, when you follow orders from a boss, you are in a top-bottom way of thinking. In books this topic is never well explained, the design itself, if you have a large program, you have problems doing the design, so my question is: what is the best way to design new complex EA's, the top bottom thinking or bottom-top? Thanks
 
complexity starts from simplicity so bottom up will be easiest for anyone