Monday, August 23, 2004

who can be a software engineer?

Daniel Steinberg has an interesting post on java.net. In it, he briefly describes the lack of standardization and control over job titles in the IT industry. What qualifies someone as a "software architect"? What credentials must a "software engineer" possess? Other disciplines--medicine, for example--have done such a good job of restricting titles to only those who have the necessary credentials. One cannot be an M.D. unless one has successfully completed medical school.

What allows a person to work as a "software engineer"? There is no formal requirement. What if the industry required a B.S. in Computer Science? Or would a language-specific certification suffice (e.g., Sun Java Certified Programmer)? Currently, there are no standards in place that map directly onto job titles. Admittedly, having a B.S. in C.S. is no more a guarantee of competency than an M.D. is a guarantee of proficiency in the medicinal arts (I've known several bad M.D.'s), but it does suggest an employee has superior training and therefore has a higher percentage chance of succeeding.

The term "architect" is especially funny. Architects in IT are generally senior-level people who have software architecture experience and can think in big-picture terms such as reuse, performance, scalability, distribution, and concurrency. Even the best college grads are quite a ways away from being architects, yet everyone seems to claim the architect title these days (even me!). In a humorous side note, I recall interviewing Java/J2EE candidates a year ago. One of the resumes told the tale of a candidate who had been an "architect" his entire IT career... even in his first job out of college (a 3-month stint, might I add)!

I often wonder what would happen if the computing industry spontaneously decided as a whole to standardize on titles. Who would be the body to govern it? Would the ACM or IEEE be good choices? If not, who else?

0 Comments:

Post a Comment

<< Home