Because of the nature of information technology projects, the people involved come from very diverse backgrounds and possess different skill sets. Most trade schools, colleges, and universities did not start offering degrees in computer technology, computer science, management information systems, or other information technology areas until the 1970s. Therefore, many people in the field do not have a common educational background.
Many companies purposely hire graduates with degrees in other fields such as business, mathematics, or the liberal arts to provide different perspectives on information technology projects. Even with these different educational backgrounds, there are some common job titles for people working on most information technology projects such as business analyst, programmer, network specialist, database analyst, quality assurance expert, technical writer, security specialist, hardware engineer, software engineer, and system architect.
Within the category of programmer, there are several other job titles used to describe the specific technologies the programmer uses, such as Java programmer, XML programmer, C/C++ programmer, and so on. Some information technology projects require the skills of people in just a few of these job functions, but many require inputs from many or all of them. Occasionally, information technology professionals move around between these job functions, but more often people become technical experts in one area or they decide to move into a management position.
It is also rare for technical specialists or project managers to remain with the same company for a long time, and in fact, many information technology projects include a large number of contract workers. Working with this army of free agents, as Rob Thomsett, author and consultant for the Cutter Consortium, calls them, creates special challenges. (See the companion Web site for an article on this topic by Thomsett and other suggested readings.)