Hacker News new | past | comments | ask | show | jobs | submit login

I was a software engineering researcher (Ph. D. and everything) before I actually became a software engineer about 20 years ago. I became one because I realized it was becoming quite awkward that I wasn't one. There was more than a bit of impostor syndrome.

Software Engineering as a science has always been a bit controversial; mainly because a lot of computer scientists are involved with it and it is a bit of a soft science that most hard beta types would be uncomfortable with. Additionally, the whole notion of software engineering actually being an engineering discipline is not something everyone agrees on either.

Software Engineering is fundamentally a process that involves people interacting. That means a lot of the challenges and problems are related to that and a lot of the solutions are related to that as well. Simply put, a tool won't fix your process and people issues, generally.

The software engineering challenges in the industry are numerous. But I'd say the number one problem is that the demographics are completely skewed to propelling very inexperienced individuals into leadership roles because there simply aren't enough more experienced people around. Basically, the number of programmers doubles every five years or so. I'm 47; I routinely work with engineers half my age. Having anyone else in a team even close to 35-40 is very rare for me. The reason is not that my generation chickened out and went off and did something else; it's because we are outnumbered by about 2^5= 32x by people aged 22 or so. And about 16x by people aged 27. And about 8x by people aged 32. The median age in this industry is is 25-28. If you are lucky those people actually finished a degree and had one or two meaningful jobs before they joined you on your current project. Looking back at myself at that age, I definitely wasn't very senior.

But it's great fun to work with young people and it keeps me sharp. The reality is that young people don't have a lot of older peers to learn from. So, a lot of issues in this industry are repetive. Young person gets propelled into a senior role and gets to rediscover all the same issues that people were dealing with 30 years ago as well. And they get to make all the same mistakes before they figure out some solution. The smart ones, pick up a few software engineering books and find out that people were dealing with the same shit 40 years ago and found some pragmatic ways of dealing with stuff.

However, I'd caution anyone to apply anything they read blindly and dogmatically. Very little of it has been empirically validated in a proper software engineering research study. Doing so is hard and requires a lot of work. Most of the software engineering books out there don't bother with doing that work. That doesn't mean it's wrong but just that you need to separate facts from opinions. If it has the word "Agile" on the cover, you might want to keep that in mind. Most of that stuff is written with the same level of enthusiasm and assertiveness as the stuff that came before that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: