As a developer, I generally prefer guidelines to give basic guidance, but not be so strict that I can't code how I like... for instance, if a guideline is telling me what coding patterns must be used rather than allowing me to make my own professional judgement then it's too tight:
For example, these are the type of things I might expect to see:
- Style of variable names i.e. hungarian notation(not that I strictly use those)
- Methods should be commented with their general purpose, including what they return (if anything)
- Classes should be defined with a specific layout: i.e. all private fields at the top, followed by events, public methods, private methods, whether they should be in alphabetical order
- Naming conventions for namespaces, classes, methods, events and properties etc
You get the picture. I shouldn't be restricted to stuff like:
- Thou shalt use If notation instead of int a = (blah)? true : false;
Coding styles obviously need to be common across a team to allow developers to be able to work together effectively. You can't have one person way out there in left field using complex mathematical algorithms that nobody else on the team can understand and have another way out in right field who can barely comprehend the implementation of interfaces. So as a rule of thumb, they should be designed to help keep your team together while not dampening productivity and creativity.
Get some input from your development team as a whole so that a "house" standard can incorporate everything it should and not include a bunch of stuff it shouldn't.