Software professionals face the difficult challenge of keeping up with
today's fast-paced technological environment. There has been much dis
cussion about technical obsolescence in a field where the half-life of
an undergraduate education is only a few years. Moreover, assessments
provide measurable proof of behavioral changes, legitimizing the huma
n resource department's role in improving productivity by rendering it
quantifiable. In this paper, we describe an empirical study of the sk
ills assessment of software practitioners. This study is based on a su
rvey performed collaboratively by the Software Engineering Research Ce
nter (SERC), Purdue University, and IBM Training and Education, with d
irect participation from the IEEE. The goal of this research was the d
etermination of the critical skills necessary for software professiona
ls. This paper describes the survey, the structure of the questionnair
e, and the skills assessment process. Skills assessment stages such as
data collection, data analysis, data representation, and follow-up re
assessment are also described. Detailed results of the survey and sele
cted critical skills relating to both object-oriented and client-serve
r technologies are presented in this paper. These assessments provide
a systematic approach through which human resources departments can im
prove productivity during downturns by increasing the working effectiv
eness of software developers. We believe that university software engi
neering students must understand the differences between academic prog
ramming and industry software development and engineering. They must a
lso be able to perform the activities involved with plan development,
project management, and software product evaluation. We also conclude
that these assessments will foster genuine commitment and motivate sof
tware practitioners to grow in a field of technology that changes dail
y.