Back at it!
It's been over 6 months since I was assigned a blog post. I can't say I am excited about it, but I can't really complain. It's not very stressful unless I forget about it until right before it's due... like right now.
What did I think Software Engineering was about before I started this course?
I didn't have much of an idea. The name alone is intimidating. I've been programming for a long time, but I've never done any kind of "engineering" before. My only guess was that we'd be learning new technologies to speed up the process, and we'd be focusing a lot on the software life cycle.
After the first week, in what way has my concept of Software Engineering changed?
Now that I've gone over the introductory material, I know that the main differences between programming and software engineering are longevity and scale. Programs can be written by individuals and may only have a lifetime of a few hours or days (such as a homework assignment). Software engineering involves teams of people (usually 2-pizza size) working on long-term projects. Since those projects are long term, there is more to consider up front (such as how to adapt to code deprecation or changing requirements).
Another issue that is hard to deal with in long-term projects is Hyrum's Law, which states that any change you make to your code (no matter how innocuous) will break someone's code somewhere. Even unintended, undocumented behavior from your code can be an important part of someone else's code. All changes must be necessary and carefully thought out. However, I don't think we should feel too guilty about breaking other people's code with a useful update.
No comments:
Post a Comment