Software engineers vs programmers

A few years ago, this young guy fresh out of university who’d recently joined my team admitted, that he didn’t like programming at all. He was starting to think that he’s career choice was on the wrong track and getting a bit depressed about it. But he was concerned, that if he told anyone then he wouldn’t be able to join any good projects – his assumption was that one must be able to write good code to qualify for good projects.

David Parnas wrote an article for the IEEE Software magazine in 1999 called ‘Software engineering programs are not computer science programs‘ where he argued that computer science is to software engineering what physics is electrical engineering. Science is the discovery and explanation of the new and unknown, whereas engineering is the application of science – or as he states: ‘An Engineer is a professional who is held responsible for producing products that are fit for use. To be sure that a product is fit for use requires an understanding of the environment in which it is used ‘.

‘Fit for use’ is the key – and it is why we have roles such as business analysts, project managers, testers, and a range of other specialists who’s primary role has very little to do with programming, if any. In my experience, programming in terms of project effort is often in the single digits as a percentage of the overall project – unless of course you choose to write everything from scratch, but those projects are far and few between in consulting.

So I told my new team member that a healthy interest in the other 90+ percent of a project probably wasn’t that career limiting – and he should take the opportunity to try as many different roles as possible and be one of those new graduate constantly not asking for coding work. People would be grateful to have someone like him on their ‘good’ project.

I think he felt better afterwards… 🙂