I would like to talk about requirements in general and non functional requirements as part of whole picture. Developers usually use them and think about them but quite rarely understand why we need it and how significantly hey influence on application architecture.