Week 7

Software Engineering (CS 373) Spring 2017

What did you do this past week?

We had an exam in Software Engineering this week. It was not what I had expected and some of the questions
were very specific on Python's implementation but overall, it was not that bad. I've been playing around with
edge cases in my free time. I also recently got Docker set up. It is for my own personal project but it will
probably also be quite useful for Project 3. The Mutual Mobile talk was quite interesting. He talked about
his experience in the mobile app industry.

What's in your way?

My Project 3 group needs to come up with an idea soon. The project description is not up yet but even without that,
we should start looking for APIs to use.

What will you do next week?

I will need to submit scholarship applications. I have been waiting for a co-op offer for the Fall but I expect it to
take a few more days. Until that is confirmed, I should proceed normally and apply for scholarships for the next school year.

What’s my experience of the class?

The format of the exam, as mentioned above, was a bit surprising. There was also more focus on the readings than I
had expected. Some were straightforward, others needed some thinking. I wish I could see the questions that I missed.
Other than that, I do not have any complaints. I appreciate the effort to get people from the industry to come
and talk to us. The two people from Mutual Mobile were definitely insightful, to say the least.

Uber is — thanks to its superior software — essentially above the law.

The code
I’m still ashamed of
Many of us will be able to write code that puts us above the law. Zenefits, for example, built a browser extension that
allowed their insurance agents to skip the mandatory 52 hour licensing process. Some of us may be asked to write code
that is legal but still unethical. Bill Sourour, for example, had to built a quiz that would almost always
suggest the same drug because that drug company was their client. People have died. As
software engineers, when we are told to create something, we need to question whether it is right. Sometimes, it is a
matter of trying to engineer your way around a legal requirement. Other times, it could be a manager wanting to push
code that has not been properly tested or that does not have sufficient safety precautions in place. As Bill puts it best,

As developers, we are often one of the last lines of defense against potentially dangerous and unethical
practices.