I don’t consider myself an “IT Professional” but the press, the IEEE Computer Society, and the ACM seem to have forgotten that not every software engineer or computer programmer works with “Enterprise Applications.” Almost every article I read about computer professionals lumps us all in the same box. I’ve read articles lamenting that we are not outwardly-focused or that we do not have enough business knowledge. Recently I’ve read that the ACM leadership is advocating adding more business oriented classes to engineering education. I believe that this is due to some serious communication gaps between business, the technical community, and higher education.
First of all as an engineer it’s not my job to identify business solutions so much as implement them. What happened to the role of marketing and management in this function? I think that there is often an inability in business to articulate business problems that require IT solutions and communicate these problems to the technical staff. So rather than look for managers that have good communications skills, management blames the IT staff for not understanding business problems.
Another large part of the problem is higher education. Computer Science, Electrical Engineering, and Information Systems Management are three different but overlapping disciplines.
What most managers are looking for are graduates of an Information Systems Management program. This program should be part of the business school and includes a basic education in business management with a concentration in enterprise application development. Computer science classes in database management systems, Java programming, and data communications should be included but are only part of the program. These programs teach both the business skills and technical skills that most managers are looking for.
In the last few years we have seen the rise of Computer Engineering programs in many technical colleges and universities. These programs usually consist of a basic education in electrical engineering and some computer science. I believe these programs should be aimed at training digital designers, systems programmers and embedded systems engineers. These programs should not be teaching web development or database management systems. The Computer Engineering programs do not teach the software engineering or management skills required for large enterprise application development.
Computer Science should be training the hard-core software engineers and programmers needed to implement complex software systems such as the operating systems, network software, and database management systems that enterprise applications are built on. The students should receive a good education in the theory behind software engineering and the best practices for developing complex software. These programs should not be watered down by teaching business and marketing classes.
If an engineer or computer programmer wants to take on more of a marketing or managment role, that’s what MBAs are for.