|
I had a required ethics course for my CS degree. I can't recall anything from it. I also took a one day ethics course at a FAANG that was excellent. Far better than a "I'm not stupid" checkbox. I think both of these are true: - Ethics should be a required course for CS. - CS classes in general do a poor job of tracking well with the industry. Fine for some things (eg, theory), but awful for others (eg, any Software Engineering course which touches on waterfall.) For those who have missed out, here's an ethics course in the size of a paragraph: Most engineering ethics focus on life and death, such as making sure your bridge doesn't collapse; Most software is not a matter of life and death, so ethics may seem irrelevant. However, the incredible power of technology means your design choices will have an impact on the lives of many. Seeing red lines where you need to tell your employer no is important, but everyday ethical thinking will find problems other approaches to design will be blind to. This in turn will make better products, and increase your value to your employer. So throw an "ethics" section in your design doc, and ask the question "Does this technology as designed hurt any groups of people with specific characteristics?" You might find that your camera app needs better calibration for dark skin tones, that your UI elements are too hard to use for women with large fingernails or people with minor motor disabilities, or perhaps that one of the JS libraries your considering is very large, and will make a much worse experience for people with rural and slow internet. So simply stop, think, and approach your design from the perspective of different cultures, races, religions, ages, genders, and life circumstances. |
Gone are the days we can just build something and act naive about what ways tech can be abused or think we can solve those issues as they come up.
Most of the time, it's not even in companies interest to look too closely at the negative implications of their products, because then they'd have to act.
Hence, its better to anticipate problems at the design phase than deal with them after the thing is built and corporate inertia and sunk costs demand it stay the same or only get band-aid fixes to those problems.