After a conference we were sitting in the pub pouring beer. As the company was quite big and contained mostly developers, our subjects quickly went into area of a software lifecycle. I was talking with a couple of guys with a year or two of professional experience and barely had gone out of the university. They were working in quite a big team developing an enterprise-level solution. I was a bit surprised with several project/program management decisions made in their team, which sounded like asking for failure. No one had objected.
Sure, there definitely was a problem with project management in their team, but lack of protests was a food for thought for me. After a while I came to question.
“Hey, has anyone taught you project management at the university?”
I couldn’t believe. I know the project management is quite a wide and complex field, but in software development world it’s so common that at least teaching basics should be obvious.
Wait, wait, wait. The question was wrong. I played I-am-the-guru guy but was it fair? Should I criticize their university? I corrected the question.
“Hey, has anyone taught me project management at the university?”
Nope. Not at all. I was lucky with my first job, because I landed in quite well-organized team using MSF to organize software development process. I was lucky with my first bosses, who were aware of importance of project management and had decent knowledge about the subject. I was lucky to see my first team (and product) growth and constant improvements in organization. I learnt all the basics of project management because I had good teachers in my first job. My companions landed it a software conglomerate in a team with rather weak leaders and rather poor organization. How could they learn project management?
As I talk with graduates or undergraduates on different occasions I’m still surprised why students of computer science aren’t taught even basics of project management. In vast majority of cases they start the first job with attitude to software development which I call “student’s projects.” Student’s project is the one which is abandoned when it (almost) works in a couple of scenarios. It’s abandoned exactly a moment after a grade is granted. When you’re lucky it’s 90% complete, what means I would implement it in a production environment only if longed serious trouble. The student’s project usually is much more like a prototype than like a product.
Any software vendor I know expects quite different level of quality. The reason is simple – there aren’t many customers, who are willing to pay money for prototypes. So no matter how their development teams are organized, they need to fill remaining 10% of software development cycle. And that’s exactly the place where basics of project management are essentials.
That’s why I believe universities harm their students focusing on development skills, design and architectures only and leaving areas like project management untouched. Even now when hackers get a lot of buzz and money, they are usually the ones who don’t focus on hacking only, but are also able to finish their products.
Before I’m trodden into the ground with opinions about great universities all over the world which doesn’t suit to above picture I explain: I graduated mere single university, and I had contact with students and graduates from another few (almost) all from Poland. My thoughts are based mostly on opinions about them, although commonness of described issues brought me to fearless generalization on the subject.