Friday, December 22, 2006

I Hate the Term "IT Professional"

These days almost everyone who is paid to work with computers is referred to as an IT professional. I find that terminology very confusing.

So what is an IT professional? There are many occupations involved with computing: for example, Computer Scientist, Information Systems Professional, Software Engineer (all three of which are accredited professions; their educational programs are accredited by ABET, the Accreditation Board of Engineering and Technology), System Support Person, Database Administrator, Network Administrator, Project Manager, Web Designer, Help Desk Person, etc. People working in each of those occupations have different skills and the abilities to accomplish different kinds of tasks. Calling them all IT professionals blurs these differences and can cause serious problems.

As an example outside of the computing field consider airplanes. We do not call all the people who are paid to work with airplanes APs (Airplane Professionals). We call those people who design airplanes, Aeronautical Engineers; those who service them, Airplane Mechanics; those who fly them, Pilots. We might also talk about Stewardesses, Baggage Handlers, Ticket Agents, etc.

Continuing with the airplane example, if American Airlines wanted a new airplane built, they would not think of asking the airplane mechanics who service their planes to design the new plane; they would, for example, ask the aeronautical engineers who work for Boeing. And Boeing would not think of designing and building that plane without using engineers from accredited engineering programs.

But in the computing field, we do that kind of thing all the time. Since we call everyone in the field an IT professional, people often assume that all IT professionals have the same skills. Companies who want a new software system built often ask the “IT professionals” on their system support staff, who might have excellent skills in maintaining their existing system, to design and build their new system. That often leads to projects that are later cancelled, or, if they are completed, are late, over-budget, incorrect, unreliable, insecure, hard to use, etc. Supporting a large heterogeneous system is a difficult skill, but it is a very different skill than specifying, designing, and building a high quality system, which is also a difficult skill.

Even asking the system support staff to oversee a project performed by outside consultants can be a problem, because the skills required to oversee such a project (as well as to evaluate the abilities of proposed consultants) are surprisingly difficult and again different from those required to support and maintain systems.

The same kind of reasoning often occurs when companies select project managers for their software projects. Many people think that software project managers do not need professional skills in software design, in addition to the obviously-needed skills in project management. However, no one would think that the manager of an airplane design project does not need such skills. Not long ago, I copied the qualifications for a particular project manager position from the Boeing Job Search Web site:

Bachelor’s degree in a technical field with thirteen years experience in an engineering classification. Master’s degree desirable. Training in systems engineering and project management.

No one can even apply for this job without a technical degree and at least thirteen years of engineering experience. Compare that with the current practice in the software area. No wonder so many software projects fail while so many airplane design projects are successful.

Many books and papers have been written on the subject of why so many software projects fail. (Some people would say it is because software design and implementation is so complicated, but few would argue that it is more complicated that airplane design and implementation.) Whenever anyone asks me why software projects fail, I always give the same answer: “incompetent project manager.” I firmly believe in the statement “The buck stops here.” If the software project succeeds, give the project manager a raise; if it fails, fire him.

At a still higher level, many companies have a CFO (Chief Financial Officer) with a professional accounting degree and a CTO (Chief Technical Officer) with some professional technical degree, but the CIOs (Chief Information Officers) of most companies do not have any professional degree in the computing field. The companies would say that it is more important that a CIO understand the business needs of the company than that he have technical skills in the IT area. If that is true, which is doubtful, then why do they insist that their CTO have a professional degree in some technical field? Why is it not more important that the CTO understand the business needs of the company than that he have technical skills. One reason the companies believe that their CIO does not need to have a technical degree is that by calling everyone an IT professional, we have deemphasized the importance of professional degrees in the computing field.

Another related issue is outsourcing. The statement that “X hundred thousand IT jobs have been outsourced” is very confusing, particularly to potential students. Again this is partly the fault of the words “IT professional.” Since we have blurred the distinctions between the various jobs within IT, it is not usually made clear which kinds of IT jobs are being outsourced and which are likely to remain. Thus many potential students have been scared away from Computer Science programs. (See my post dated 12/07/06, Will My Computer Science Job Be Outsourced?)

One source of confusion is that many of the jobs that are called professional within the IT community are not really professions in the usual sense of the word. For example, someone who has a Computer Science degree is obviously a professional, but do we want to use that term to refer to someone who has a Cisco CCNP (Cisco Certified Network Professional) certification? How about someone who has Help Desk Professionals certification? Calling all of these people IT professionals diminishes the reputation of the real professions within the IT community and confuses the companies for which they work and the public in general.

To summarize, the title IT professional can be very confusing at a number of levels. Different people working in the computing field have very different skills. Giving the same title to all of those people, many of whom are not professionals in the usual sense of the word, is a source of confusion and often a recipe for serious failure.

Thursday, December 07, 2006

Will My Computer Science Job Be Outsourced?

Question: I am a student thinking of majoring in Computer Science. If I do, will my job be outsourced?

Answer: You might have been warned not to become a computer scientist because so many “IT jobs” are being outsourced to India and China. Is that a good reason to decide not to become a computer scientist?

First of all, the words “IT” (Information Technology) refer to many types of computer-related jobs other than computer scientist, for example a help desk person or a low-level programming job. And, indeed, many of these lower-level jobs are being outsourced to countries where people are willing to work for a much lower salary than would be required in this country.

But yes, many high-level design and programming jobs are also being outsourced. And several companies have established research and development laboratories in such countries as India, China, Ireland, and Israel to perform research in various areas of Computer Science.

However, even with the reality of outsourcing, computer-related jobs are still predicted to be among the fastest growing occupations over the next decade and beyond. For example:

· The College Board, the organization that administers the SAT examinations, has a Web site with a page, 10 Hottest Careers for College Graduates (2002-2012), and on that page is a list of the “Occupations with the Most New Jobs: Bachelor's Degrees.” Six of these ten occupations are Computer Science related:

o Computer systems analyst

o Computer software engineer (applications)

o Computer software engineer (system analyst)

o Network systems and data communications analyst

o Network and computer systems administrator

o Computer programmer.

· The U.S. Department of Labor says that while jobs for computer programmers will grow about as fast as average through 2012, other Computer Science related jobs (software engineers, support specialists, system administrators, systems analysts, database administrators, computer scientists) will grow faster than average, and jobs for software engineers are projected to increase faster than almost any other occupation.

· The National Association of Colleges and Employers in its 2005 salary survey identified ``Software Design and Development'' as one of the top 10 jobs for students with new Bachelor's degrees, and the job with the highest starting salary among the top 10. Computer Science majors with new Bachelor's degrees earn the second highest average starting salary overall.

· In 2006, Money magazine published a list of the 50 “Best Jobs in America.” Number 1 on the list was software engineer, and number 7 was computer/IT analyst. One measure they used in making up this list was their “10 year job growth forecast.” That forecast for software engineers was 46.07% and for computer/IT analysts was 36.10%.

The technology is changing so fast and the need for new computer professionals is growing so rapidly that there will be plenty of jobs for computer professionals in the United States as well as in all the other countries of the world. In fact, in 2004 Bill Gates predicted that there would be a serious shortage of computer professionals in the United States by the year 2012.

The Real Issue

Outsourcing is not the real issue. The issue is what country will be the world leader in conceiving and developing the coming generations of exciting new applications of computers and in starting the new companies that will produce and sell those applications.

Instead of using outsourcing as a reason not to become a computer scientist, we should instead view it as a challenge. These other countries are challenging our technical leadership in the computer area. That leadership has been an important factor in our economic growth and well being over the past several decades. For example, companies such as Google, Microsoft, eBay, Cisco, and Dell were formed by American entrepreneurs, many of them while they were still in college.

Do we want to retain that leadership? If so, we need to attract more, not fewer computer scientists who will develop the new concepts, technologies, and products that will certainly be developed elsewhere if not here.

If the word “outsourcing” scares off too many young people, and not enough smart, creative, entrepreneurial people in the United States decide to become computer scientists, we might find ourselves giving up our leadership to India, China, or some other country. That would almost certainly be bad for our economic well-being and that of our children.

You are the generation that will determine whether or not we retain our position as leaders in computer technology.

Web Sites Containing the Data Mentioned Above:

http://stats.bls.gov/oco/oco1002.htm

http://www.jobweb.com/SalaryInfo/default.htm

http://money.cnn.com/magazines/moneymag/bestjobs/top50/index.html

ftp://ftp.bls.gov/pub/special.requests/lf/aat9.txt

http://www.collegeboard.com/article/0,3868,4-24-0-236,00.html#table%203

http://stats.bls.gov/oco/oco1002.htm

http://www.jobweb.com/SalaryInfo/default.htm