Project Management Skills for Software Engineers

I manage training for all kinds of software engineers (developers, testers, support engineers, network engineers, and so on) working at Microsoft. One of the biggest trends we’ve seen over the past 24 months is the increasing importance of engineers having basic project management skills. Software engineering as a whole is becoming more mature — systems are becoming larger and more complex. Larger and more complex software systems require more management. But in general, existing project management resources are not well suited to a software environment. The Project Management Institute (PMI) dominates project management certification, but PMI certification focuses on principles that apply to all industries. Sure general knowledge is vital, but, for just one instance, cost estimation in the software industry is much different from cost estimation in the construction industry. Furthermore, the PMI, like all organizations, has one primary objective: generating revenue for PMI. This leads to over-priced PMI training and an exclusionary rather than collaborative attitude. The CompTIA company has a very lightweight Project+ certification which is aimed more at software engineering. It is pretty decent, but is really a repackaging of PMI essentials. There are no existing project management certifications that meet my personal definition of "very good" in the context of software engineering. The major problem is that until just recently, software engineering was changing too fast for solid techniques and a stable body of knowledge to be established — developing a commercial Web application using Agile methodologies is much, much different from developing an industrial application using a traditional waterfall model. But the software industry is definitely maturing. I believe that there is a significant market opportunity here and that sooner or later (say, within 7 years) some organization will develop and release a comprehensive set of materials for project management in a software engineering environment that gains widespread acceptance in the software industry.
This entry was posted in Software Test Automation. Bookmark the permalink.