This is an attempt to explain to all non-IT personnel, as well as upper IT management who may have lost their touch on reality, how exactly IT functions.
IT is generally split off into two categories, Operations and Development. Depending on the company, a few groups can be in different sides of this equation, but for the most part what I am about to share with you still holds true.
Operations is generally defined as Systems, Network, Telco, and Help Desk. These groups sole responsibility is keeping the day to day operations functioning. There may be times when things are running smoothly, and all research is complete, these are times that the casual observer may think they are just goofing around and doing their jobs. This is far from the truth. These guys are paid well to keep things running smoothly. If things are smooth, they are doing a good job. When crisis happens, they coolly and methodically assess the situation, and fix what needs to be fixed where they can fix it. Any development that needs to happen, they will pass over to Development.
Development consists of Production Support, Build, QA, Project Management, and Developers. Production Support is the development sides front lines. They are the ones who fix all software problems without doing any development. The ideal situation would be for them to be surfing the web. Build should be the ones deploying software developed. They are required to drop everything they are doing like surfing the web, when something is in the queue to be built. It is not a tough job, a monkey can be trained to do it, but sometimes a real brain is required. Project Management should always be working. If they aren’t researching a project, following up on a project or issues, then they should be hob nobbing with the clients. QA is the key to great software. When something is ready to be tested, they should do everything they can to break a piece of software so that it can be fixed, or at the very least, documented. The rest of the time they can be surfing the web. However, if the other groups are doing what they should be doing, QA won’t have much down time.
Developers really should be in a class all to themselves. Every developer should include skills from every other group. The obvious job is coding, but in order to code, they have to know how everything else functions, in order to create solid code. Because of that, developers will tend to spend most of the day chatting, playing foosball, surfing the internet, and other slacker appearing activities. You must NEVER assume that they are not working. They are constantly pondering their projects, problems, and possible solutions. When a good solution is discovered, they will sit down, and pound out the solution. It then only takes a small amount of effort to clean up, and refine what has been coded. This type of work ethic generally rubs others the wrong way. Everyone else appears to be working hard while the developers are goofing off. This is far from the truth. You want to give the developers as much time as possible to goof off because that is when they are the most creative. They know what the deadlines are, they know how important that project is. They don’t know how to solve it, and so need that Play Time to discover the final solution.
Everyone please, give your IT department a break. Get off their backs. Help them do their job. Most importantly, do not interfere with the developers. Some of them tend to have potentially dangerous hobbies which may include medieval weaponry. Others may have an extreme knowledge of chemicals, and they all know how to hack into systems and destroy/steal data. After all, it is they who created things in the first place.