Redmond Developer News reports a cover story on the dearth of talent and its consequences.
One Azher laments:
..numerically it looks like India is producing about 200,000 college graduates in engineering,” Azher explains. “But only about 25 percent of them would be employable in major enterprise projects.”
For the rest of the 80 percent of the IT industry, there’s a massive dearth of talent. Eventually, we get bodies not brains. As a result, our executions run into significant problems. We suffer enormously when we don’t get talented people.
One Jeff Levinson cribs that theory and math are not sufficient:
“CS teaches hard-core mathematics and theory,” he says. “When CS graduates come out of school, 95 percent of the time they haven’t seen or heard of use cases, have never written or read a requirements document, and don’t possess any soft skills or understanding of business consequences.”
Even Stroustrup seems to be agreeing with it:
“The U.S. academic system doesn’t reward professors for spending significant time on problems with current technology. The result is students with a shallow view of software and systems. Many have no clue what their language and system does and think that invoking functions on a library someone else wrote is all there is to developing software. Not all, but too many.”
One Sailesh Chutani says that learning can be made more fun and practical:
Microsoft Research is funding a joint Institute for Personal Robots in Education (IPRE) at Georgia Tech and Bryn Mawr College, which launched in 2006.
“Students purchase a $100 to $200 personal robot along with their textbooks, which they will learn to program and play with as part of their initiation into the discipline,” explains Chutani. “We have a fairly good indication that that approach is far more compelling than what has been a fairly traditional, sort of dry approach to the subject.”
Stroustrup and Chutani on why a masters degree might be useful:
“We need a solid foundation for computer science but we also need to give students practical experience with specific application areas, such as graphics and security,” says Stroustrup. “We also need to expose students to real-world demands of correctness, maintainability, testability and performance together with the tools used for that. Unfortunately, when you complete a list of all that’s needed-even at a minimum-you come up with something a lot of undergraduates can’t handle, and couldn’t reasonably be expected to handle.”
With an undergraduate degree you’re getting very broad exposure, agrees Microsoft’s Chutani. “Once you’ve gone to the master’s level, chances are you have more depth and you’re more likely to fit right into what the industry is trying to do.”
Some universities are coming up to prepare engineers for professional software development:
As an enterprise architect at Boeing, he would have appreciated learning more about organizational structure. “It’s all about understanding how people and processes relate to each other,” he says. “Aside from that, I thought the master’s in software engineering program was a great program.”
Cal State Fullerton based its online master’s in software engineering program, launched in the fall of 2004, on the Carnegie Mellon model. Roughly 160 students are enrolled in the program from four continents, with the majority based in the United States, particularly Southern California. “Because the mission of the program is to provide students with skills that they can almost immediately apply, we’ve included a lot of process and management skills in addition to the traditional software architecture, verification and testing skills,” says Huizinga.
What India and her companies are going to do for this? Infosys and TCS, as far as I know have some extensive training programs for the people it employs.