DEV Community

Discussion on: What does it mean to be a Software Engineer?

Collapse
 
jillesvangurp profile image
Jilles van Gurp

I have a Ph. D. on the subject and a lot of practical experience gained after I got my Ph. D. From that I can tell you the following:

  • Acadamic research & education on this subject is mostly lacking due to the fact that academics typically have limited experience with doing field work at scale (i.e. in large teams), dealing with customers, or software maintenance (aka. the bulk of most commercial software R&D).
  • Things such as waterfall are still being peddled in universities as the way to do stuff despite being widely discredited in the wider industry. In my case I fixed that by becoming a software engineer after finishing my degree but I've often wondered whether that was optimal.
  • Practical skills such as project management and other soft skills essential to accomplishing bigger tasks in an organized way commonly taught in non beta oriented academic tracks are not subjects that a lot of computer scientists get exposed to a lot during their studies. This is a problem. Trying to function in a big team without such skills is tough.
  • Most experienced software engineers pick up a lot of skills essential to their jobs after they leave university. I like to think of software engineering as something that needs apprenticeships.

Conversely it is true that a lot of the literature on software engineering (academic and non academic) is lacking in academic rigor and the industry is full of "evangelists" who peddle opinion as peer reviewed facts and seem to be perpetually confused about how unscientific some of the stuff they are peddling is in terms of empirical research that validates the effectiveness of what they are peddling. If you've ever tried to deal with some inexperienced developers trying to do scrum "by the book", you'll know what I mean (the book actually says: don't do that).