A prática do desenvolvimento de aplicações corporativas beneficiou-se do surgimento de muitas tecnologias facilitadoras. Plataformas multicamadas orientadas a objetos, tais como Java e .Net, tornaram-se corriqueiras. Estas novas ferramentas e tecnologias são capazes de criar aplicações poderosas, mas não são implementadas facilmente. Falhas comuns em aplicações corporativas freqüentemente ocorrem porque seus desenvolvedores não entendem as lições sobre arquitetura que outros desenvolvedores experientes aprenderam.