Update on my Coding Standard for .NET

My second week at PRG-Schultz is now just about over.  I finished my coding standard for all new .NET development and we went over it today.  It went pretty well for the most part, although that's probably equally attributable to my manager as to my work.  As for my part, since I just summarized and referred to the MSDN docs and other similar standards, its hard to argue with the rest of the .NET world.  I think the existence of FxCop for easy self-checking also won a few people over, since it doesn't mean lots of policing.  The consultants on the team were probably the most receptive of all, even though one wasn't involved with .NET and the other is still rather new to it.  They are just more used to change and some type of client standard or other expectation.  On the other hand, I have a most excellent manager (are you reading this Frank?) that actually did a little research and calls to others to prove to himself that this really is the industry standard in .NET.  As a result, he prepped the team so that it was understood it was a done deal and not open to much change, although gripes were more than welcome this one time.  One person that had told me he would not change seemed content with accepting it, and one other is what I suspect is the one that every shop has.  But it went real well overall, and so far they appear to be a very solid team, evidenced even more by a team-building session we had yesterday.  Some of them are going to be very new to .NET, as this is a very diverse team, but I think we'll make it.

3 Comments

  • I realize that this is a public forum, so without being overly specific, what kind of resistance did you expect to encounter, what did you actually encounter, and how did you deal with it?

  • Two main areas of resistance are I think likely in any VB6 group converting to the new standards. First, most people are used to Hungarian naming conventions, and its really hard to convince people you won't miss it. I know I had this same concern when I made the switch, which I shared with my team. Over time this goes away as you realize you are now coding the same way everything else in the framework already is, but it can be a slow painful process. I do think FxCop makes that easier though, which I didn't have (or know about) when I switched.



    The other possible point of resistance with my standard is that I believe projects should be able to be built by automated processes, at least at some point in the future when the team and management is ready for this. That seems obvious, but this is actually not the way VS.NET work with VB.NET projects. For instance, VS.NET stores Option Explicit, Option Strict and common Imports Namespaces in the project file instead of the code files. It also has a root namespace that is stored in the project file, which either means VB.NET code usually has no namespace in the code file, or worse the namespace there is not really going to be the entire namespace in the end since it will be appended to the root namespace in the project file! So to enable automated builds, you have to remove the Imports and root namespace from the project settings, and then manually add these to each code file, along with the Options. Yes, I could create enterprise templates, but that's a lot of work, and it just reinforces not learning what's really going on behind the scenes. I actually don't mind VB.NET, even though I do my own stuff in C# mostly, but I do think it sometimes simplifies things too much for a real software development shop. For this, I simply tell them why these things are done, and I think it became a non-issue, especially since there were far more issues with the naming conventions.



    I briefly described the feelings of part of the team in the original post, and that's about all I can say at this time. Not that I'm really hiding much either, but you have to remember this is a new group of people to me, and me to them, so I simply don't know yet how everything is really being perceived until we get to know each other better. I've got some people with many years at PRG on this team that may very well, and rightly so, wonder who I am and why I'm here, instead of promoting them. Maybe that's not the case, but I think it would be a totally fair reaction to have, and only time with each other can change that, if that's even the case at all. So maybe I answered most of your questions, and maybe this will help someone else considering this route for themselves.

  • Interesting response - again, I wasn't trying to put you 'on the spot', but I was interested in the insights that you could offer. Thanks much!

Comments have been disabled for this content.