In this multi-part series, I look at software engineering as a separate discipline from Computer Science. For the software professional’s daily practice, I believe SE is a better degree, and I explain why. I decided to pursue a master’s degree in SE as opposed to CS. Earlier posts are found at:
Part One | Part Two | Part Three | Part Four | Part Five | Part Six | Part Seven
Think of the breadth of skills needed in a typical software company. Yes, there’s the obvious need for programmers. Yes, there’s the obvious need for testers. Yes, there’s the obvious need for designers and architects. Yet the company will rely on a lot more than that: management, marketing, finance, and project management to name several others.
That’s another reason why I decided to pursue an MSE. As a computer science undergraduate, once you end up at some point working as a programmer on your first project, you often find yourself feeling a bit out of your element. For some reason your CS program didn’t cover these strange conference calls you find yourself on, with people who have all kinds of different titles and who you aren’t sure what it is they actually do. They certainly don’t write code. Yet somehow they are vital to the company.
I still sometimes have moments where I am not sure who it is I need help from or why. What is the difference between a technical project manager, a product manager, and a project manager? What is the difference between a business analyst and a requirements analyst? A database architect, a software architect, a chief architect, a principal architect, a software principal, etc, etc.
I could go on…and that’s just to name the people directly involved in the day-to-day tasks of a project. There are other people who aren’t: those who did the analysis on the project’s potential profitability. Those who pitched the idea and secured investors. Those who hired talent. Those who insure legal requirements are included and met.
The point is that there is a lot of breadth in the software industry.
As a true software professional, it makes sense to have some exposure to and knowledge of that breadth.
That’s what you get in a graduate program for software engineering. There’s a lot of reasons to choose an MSE, and breadth is one of the reason I considered when I thought about my own professional development. In the constellation of roles that are needed in the software industry, I am only one star, but to really generate some light I have to work with all the other stars. That’s what software engineering is all about.