Tuesday, July 29, 2008

Separation of roles

Many (pronounced "most") don't have a clear understanding, nor the willingness to learn what areas comprise the field of computing and what roles they play. So as a public service, I will try to break down and explain how each field contributes to the many end products in the area of tech.

First lets identify these roles. In my estimation they fall in one of the following four categories:

Computer Science

Computer Engineering

Information Technology (Specialist)

Information Systems Management (MIS)

These areas will overlap at the edges in some cases, but the roles can be clearly defined. There are also some niche roles interspersed within the ones identified, but they serve very specific purposes and can in almost all cases be viewed as an extension of one of the top four.

The relationship of the roles are also worth mentioning. Computer Science is perhaps the purest role in the discipline in that it doesn't depend on any lower level concept within its own discipline. Depending on what you're trying to accomplish, Computer Science may lean heavily on another subject area (Language Sciences in the case of Natural Language Processing for example) however at its core it's really just math and logic. Once you start going up the totem pole, each new area depends on the one before it. One way to look at it is this: Computer Engineering is applied Computer Science, Information Technology is applied Engineering and Information Systems Management is applied IT. Each takes from the previous and incorporates it for its own purposes.

These areas are all separate but equal. Each playing a part in the development and delivery of the information based landscape we enjoy today.

Lets get a deeper understanding of what each of these areas in the discipline require and the purpose they serve.

Computer ScienceThe job of a computer scientist is to formulate, test and publish high level theories on computation. The areas of computation are wide and varied and persons will, as is the case with all other scientific fields, tend to focus on a particular area for most if not all of their professional life. The goal is to become an authority on the chosen topic and to contribute to the body of work that exists in hopes of furthering the discipline. This is the top (or bottom if you prefer) of the pile. The work done by computer scientists form the basis of all the technological advancements you see today. Be it the Internet, a PC, or your new iPhone 3G, it all started with a bunch of mathematical formulas scribbled on a black board. The group is manned by scientists and mathematicians.

Computer EngineeringThe next stop along the computing assembly line is Computer Engineering. The job of an engineer is to take the convoluted math spewed by scientists and to create real world applications and technologies. In many cases the end products are still too high level for direct consumer usage (think computer processors or application frameworks), but they are tangible and usable items ripe for integration into larger systems. This is where you actually start to see, hear and touch the products that where once abstractly spelled out in a dimly lit room overrun with grad students looking for a recommendation. Computer programmers and electronic engineers will be found here.

Information TechnologyAn IT specialist has the responsibility of taking the disparate products being produced by engineers and building practical and useful solutions for real world problems. When someone refers to a "computer guy", this is who they really mean as they have by far the most visibility and wear varying hats. They provide the most practical application of technologies and deliver end user solutions. Network and system administrators sit in this group.

Information Systems ManagementThis is the category that brings oversight and management to the world of computing. It is perhaps the least technical of all requiring only a cursory understanding of deep technological concepts. What it lacks in technical requirements it makes up for by demanding an understanding of business processes and requirements. This group bridges the gap between between the IT specialists and engineers and the conventional corporate roles in a business. They are the indispensable go between that has a foot placed in each camp and can interpret and communicate needs in both directions.

The lay description above should give a basic understanding to those who were never really clear on who does what. If you need more insight, check the repository of all human knowledge, Wikipedia [I've picked an apt starting point].