Sigh. I’m just ramping up on a project. Client sez all the right things: “best practices,” “do the right thing,” etc. We develop an architectural proposal; they sign off on it. We develop our first prototype, they say “Whoa, nelly! What’s with all them thar interfaces and patterns and whatnot? Couldn’t you just… you know… simplify things?” It drives me crazy: this idea that fewer classes (or, what they really mean, fewer source code files) means “easy to understand.” I’m not talking about “you ain’t gonna’ need it,” either – I’m talking about people complaining about separating interfaces from implementation. Why are all the good clients taken?