Software Engineering

I have been consulting in IT for over 30 years and have been teaching Software Engineering at the graduate level for most of the same time.

During that time I have noticed a disturbing trend among the individuals I meet within the IT Industry.  Many individuals only have a narrow knowledge of some specialty within IT.  They may know a specific software language such as:  C#, Pearl, PHP or Python; they may know a specific operating system such as: Linux or MS/Windows Vista; or a specific software development methodology such as:  Waterfall, RUP or Scrum, but do not have a broad range of skills.

This lack of overall knowledge of the entire software development, operation and maintenance process often leads to micro-optimization, inappropriate solutions and failed projects.

In other professions such as medicine, an doctor in training in addition to needing a college degree, and a medical degree needs to practice his trade as an itern to learn the general practice of medicine before they learn a specialty.   Learning a specialty takes years more of learning and practice.  Among the trades such as Electrician, Plumber or Carpenter, there is a requirement to learn the general trade over an extended period as a Journeyman before learning a specialty.

Not so in the IT profession.  Individuals in IT often learn a specialty, begin work  and never learn the general principles and practices of software development, operations and maintenance.

Computer software is becoming more complex and integrated with the business organization.  As a result, there is a need to identify individuals who have a broad range of expertise, look at the overall problem and develop a comprehensive solution to that problem.  These individuals should be called: Software Engineers. They should be taught the broad based of knowledge necessary to develop, operate and maintain software solutions.  Then they need to learn to practice software engineering over an extended period of time.  Once this is done, they can focus on a specialty and become certified in that specialty.

I try to correct this lack of general knowledge by teaching Software Engineering at the Graduate Level, but I can not reach every individual going into IT. We need focus on teaching Software Engineers if IT is every to become a true profession.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: