Everything on a website must exist for a reason and many techniques must be applied within reason. There must be reasons why we work in a particular way; why we create this site when many similar ones already exist; why we choose one layout over another or even one photo over another; why we leave X pixels of white space between different content sections and why the pixels on the screen have certain colors; why buttons have a particular shape, color and size; why we select a particular tag over another; why we choose to name our ids and classes in a certain way; why our content needs to be written in a specific way and why it must be relevant and timely; why we apply a decorative style via stylesheets with hacks; why we write our code differently or with the help of a framework; why we stay away from certain technologies; why we use Flash/Silverlight or why our videos are encoded in a specific format; why we name our links and their corresponding files in a certain way; why we target a particular category of users; why we freelance for clients or not; why we cooperate with other companies or why we allow them to acquire/acqhire us and many others. We must be able to name these reasons when asked and this requires an almost encyclopedic knowledge. Being able to clearly articulate these reasons and persuade a client through our own opinion after we have heard his/hers is a vital skill for every web designer.