So, what exactly is a standard and why is it so important in the world of IT? I suppose that the first thing some wise guy will say is to look in the dictionary. So, although there are many different definitions of the word, I will choose to look at the following from merriam webster:
Standard – something established by authority, custom, or general consent as a model or example.
As read above it sounds pretty simple. The end is the benefit. There will be a meaningful model or example which will be followed by the group which works on the system(s) in question. The problems reside along each of the other breakdowns in that sentence.
First off, it is "Something established". Well, how does that happen? When does it become glaringly obvious that something NEEDS to be established, that it needs to be set up and followed? What is the tipping point wherein it is worthwhile to the group or organization to start the battle of establishing a best practice? What if you already have an established code base, data repository or other structure that will require quite a few resources to go back and do things right? Will you be allowed to go back and right the wrongs of the past, some of which were written by those whom may be in a position over you now? I am beginning to come to the conclusion that this is the number one show stopper. That without some sort of push from upper management, no matter how much you beg plead or push, it just will not happen.
Which leads us to the second portion of the sentence "by authority, custom, or general consent". Who are these strange people? Well, authority seems to me to be pretty straight forward in most cases. It is the guys in the suits who get paid a lot more than you or I to think about things which are very important to the business. Perhaps these people reside in the IT department, perhaps they don’t. Hopefully they think about things such as standards, data quality, etc. Funny thing though, I have found it very rare that this actually happens. Not saying that they aren’t thinking of some very important things. As a matter of fact, I am sure that they are. It just doesn’t quite relate to what IT is doing most of the time. Perhaps my experiences, limited as they are, have led me astray on the usual path of those IT workers throughout the world. I don’t know.
Custom is a somewhat tough one. Here we are talking about something done by habit or tradition. This is actually, in my opinion, one of the more dangerous aspects of standards. Here we run into the problems of doing things because that is the way it has always been done. For instance, you can run into naming standards that still rely on columns of only eight characters, because that was the limit on the system that was built 30 years ago even though that constraint has long since been lifted. In either case it is the least likely to affect new IT initiatives.
General Consent would be what I would hope to be the driving force behind most standards (I know, I know, I’m a bit too optimistic). Here, a group is able to look at the work that they have ahead of them and come to a willing conclusion to follow a set of rules or best practices. Seems like the best of all possibilities in that these are the people who will be impacted the most now and in the future by what is being decided. It will be these people who will gain the benefit of a system which will be easier to maintain as the years go by. They will be the recipient of less phone calls or emails in the middle of the night for a production problem. It will be easier to train the next guy coming in to the office as most everything will be laid out in a methodical and logical fashion, etc.
Unfortunately general consent is also the driving force which has the least amount of force behind it. When someone breaks a standard that was set by "Authority" there is probably a more meaningful reaction from that authority than if someone were to break from a standard set by "General Consent". Furthermore, when someone from the Authority group states that project X needs to be done now, and the team needs X+1 days to do it if they are to abide by the newly set standard, which way do you think the project will be done?
I guess this rant comes from the fact that I see so much room for improvement nearly everywhere I go and yet am nearly powerless to affect the environment around me in a meaningful way. If I see that there are no business names or definitions associated with a database, no profiled values, no quality checks, no strong security etc it makes me cringe. If I state that these items need to be addressed there is usually a consensus that it would be nice, and that the people have in fact tried to start their own implementation (or at least thought about starting their own implementation), but that they did not have the time. And that is the argument that it usually boils down to. Time… And yet, if these standards were implemented and followed that would be the number one benefit of the future. Things would take less time to do because there would be less confusion about what the systems actually do and how they work (or how safe they are).
How do you convince the business that it is worthwhile to take this initiative? Do you try to take the monumental task on by yourself? Would you even be allowed to? I really wish I knew the answer to some of these questions. As I try to push ahead with some of my own standard initiatives I will try to post follow up thoughts on this subject…