7 ms·
Manifesto for Responsible Software Development
- ams6110 10y agoThis is a nice feel-good but utterly meaningless.
- jraedisch 10y agoI would like there to be some promise of not wasting people's attention. Or maybe that is one of the "resources"?
- crawfordcomeaux 10y agoI'm developing a scientific theory of design that includes preserving attention. I'd like to hear more of your thoughts on this.
- jraedisch 10y agoDid you see this article? https://medium.com/swlh/how-technology-hijacks-peoples-minds-from-a-magician-and-google-s-design-ethicist-56d62ef5edf3 https://medium.com/swlh/how-technology-hijacks-peoples-minds... Apart from that I'll gladly try to write down my own thoughts, but that might take a while. Is the progress you are making accessible somewhere?
- crawfordcomeaux 10y agoI was really excited when I read that article a few weeks ago because I'd like to find more people working on this. What I'm working on only just started taking shape a couple weeks ago, so all I have are some pages in a notebook. I've been laying out observations & hypotheses. Over the last few days, I've started looking into the structures of scientific theories and will be typing up my notes starting today. It'll all go into a repo under this org: https://github.com/mindfully https://github.com/mindfully
- worldsayshi 10y agoNice. I've had some thoughts related to this idea. How do you test such theory? I think there is some profound idea lurking where "cache-misses" and convenience are overlapping. We can only keep so much information in our short term memory. The more convenient an interface is the more space is left for information that is strictly important for the task that the user is trying to solve. Also, as humans I believe we use association for populating our "cache". So if we have an intuitive interface it helps us to "pre-cache" information because it will trigger the right associations at the right time. Distractions will trigger the wrong things to be "cached" by association and this will slow us down. Yet another critical factor is derailment. Or the opposite of being in the zone. If we miss the cache too much we tend to start analyzing ourselves rather than the problem. A second layer of distraction occurs. Or perhaps avoidance behaviors are triggered which further distracts us.
- crawfordcomeaux 10y agoThe current plan is to build an emotion recognition machine (http://eqradio.csail.mit.edu http://eqradio.csail.mit.edu) and experiment on myself, combining that input with video and activity tracking.
- JanAhrens 10y agoDo you mean something like http://timewellspent.io http://timewellspent.io?
- surfmike 10y agoWhat does not collecting too much data mean in practice? It seems a lot of analytics would be in the grey area, esp. when trying doing reverse geo lookups. A more simple example: can I use Apache which gathers people's IP addresses, browser info, referring links if I don't necessarily know how I'll use it?
- NilsLoewe 10y agoWhen you need the data to fulfill your business goal, it is ok (as long as your users know that you collect this type of data). What we encourage to avoid is "collecting everything, just in case..." As long as you anonymize things, analytics are fine :)
- bahjoite 10y agoAn example: I have a website and I don't need to know the IP addresses, browser info or referrer urls of visiting User Agents. So allowing Apache to log that information would be "collecting too much data". Thus, Apache is configured with the following LogFormat[0] which associates an explicit format[1] with a nickname (here, "essential"):- LogFormat "%{%FT%T%z}t \"%r\" %>s %B %D %L" essential and in VirtualHost contexts, a CustomLog[2]:- CustomLog ${APACHE_LOG_DIR}/access.log essential [0]: https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#logformat https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#lo... [1]: https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#fo... [2]: https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#customlog https://httpd.apache.org/docs/2.4/mod/mod_log_config.html#cu...
- matt4077 10y agoIP addresses have been ruled to be "personal identifying information" in Europe, which is why Googla analytics offers an option to anonymize the last set of digits.
- adrianN 10y agoYou can get in trouble in the EU if you log IP addresses without explicit consent: https://www.eff.org/deeplinks/2010/06/european-officials-google-yahoo-microsoft-breaking-law https://www.eff.org/deeplinks/2010/06/european-officials-goo...
- NilsLoewe 10y agoHi, I just saw that someone posted our manifesto here. Thank you! If you have any questions, please ask me here. I will try to answer them. Best regards, Nils
- throwaway729 10y agoFirst, thanks for setting this up! It seems like everything in the manifesto boils down to #1 ("I will act according to my conscience"), because everything else is vague enough to be debatable. Some engineering disciplines augment high-level oaths (such as this one) with concrete, enforceable codes of conduct. They also put in place a barrier to entry, so that phrases such as "will do my very best" carry with them the force of assumed competence -- i.e., there's a limit on precisely how bad "best" is allowed to be. Do you support the professionalization of Software Engineering? Have we reached a point where software is important and pervasive enough that legally enforceable professional codes of conduct are now reasonable? I ask because it seems odd to me that someone would think something like this pledge is necessary and good, but also not support treating Software Engineering as a proper engineering discipline. So I'm very interested in your reasoning, especially if your answer to the above question is "no". Again, thanks!
- NilsLoewe 10y ago"It seems like everything in the manifesto boils down to #1 ("I will act according to my conscience")" Yes I think software engineering has reached this part of professionalism at many places. There, these specific codes of conduct are already in place (DO-178b, IEC 61508, ...). But software is reaching more and more places and the barriers are lower every day. I believe that we need the discussion about ethics across all layers of professionalism. This manifesto is of course not enforable. But it is meant as a basis for discussion.
- crawfordcomeaux 10y agoI'm with the earlier commenter noting the code of ethics from IEEE & ACM. I think there are aspects of human life not being addressed in either their set or yours, though. What's missing: - minimizing attention required - preserving human connection - digital addiction prevention, detection, mitigation - ethical software that knows how we're feeling (we need to start thinking about this one now before the tech becomes ubiquitous) The problem I see with each of these is that we have very few design processes for addressing them, so asking people to focus on them leads to continued naive harm due to a lack of understanding. Most social media serves to connect humans, but actual human connection is poorly maintained through it. I'm working on a scientific theory of design that combines neuroscience with mindfulness & design thinking. The list I mentioned above are the core problems in trying to tackle with it. I'm curious...what are your thoughts on all this as they apply to the manifesto?
- javaguy98 10y agoACM and IEEE collaborated and agreed on a Software Engineering Code of Ethics decades ago http://www.acm.org/about/se-code http://www.acm.org/about/se-code Can we not reinvent this particular wheel please? Codes of Ethics aren't JavaScript frameworks.
- GrumpyYoungMan 10y agoThe National Society for Professional Engineers, which, among other things, is the body that runs the exams for licensing professional engineers in the United States, has a similar code of ethics: https://www.nspe.org/resources/ethics/code-ethics https://www.nspe.org/resources/ethics/code-ethics
- clifanatic 10y agoAnd a professional licensing infrastructure (hint hint)
- glibgil 10y agoYes! If a person has taken an ethics course as part of a computer science degree, they would know this
- Bartweiss 10y agoHow many computer science degrees include an ethics course? That's not a sarcastic question, I genuinely don't know. It seems to be less common than in other engineering disciplines, probably because the harm of misused civil or environmental engineering is so much more blatant. (And perhaps, because so much of professional software - like tracking ad networks - is rather grey morally.)
- jraedisch 10y agoWhy shouldn't there be many codes along with lively discussion between supporters? And even if there was only one true "Code of Ethics" (which seems dangerous to me), there could still be different representations.
- coldcode 10y ago"I will not develop software that is intended to violate human rights and civil liberties." is a nice concept but every country's idea of what these things is both highly overloaded and mutable. What you find a violation another programmer might find acceptable. Of course you may be free to agree and someone else might argue the opposite.
- NilsLoewe 10y ago"What you find a violation another programmer might find acceptable" That is exactly our intention. We want every one to think about and reflect his or her own values. We believe there can't be the single one truth for all. But the real danger is, where people don't think at all about what's right or wrong.
- exstudent2 10y agoDo you really think that this is needed? Are developers not operating within their own ethical guidelines? Seems weird to assume we/they aren't.
- matt4077 10y agoThere were some Yahoo employees who implemented the firehose delivering their users' data to the government. Considering the general political climate in the US tech scene, I can't believe they thought they were doing something good. They either didn't think about it at all, or decided their job was more important to them. Symbolics like this pledge might help with the former, because it raises the idea that software may have an ethical component. For the latter: its kind of sad that these people at yahoo – being incredibly more employable than average – still couldn't muster the courage to say no. Could've done it quietly and found a job somewhere else. Could've done it publicly and be a hero (and probably still find a job – some companies out there would've wanted to support them, or use their hiring as marketing).
- ryandrake 10y ago> For the latter: its kind of sad that these people at yahoo – being incredibly more employable than average – still couldn't muster the courage to say no. Could've done it quietly and found a job somewhere else. For this tactic to achieve its goal (that the software doesn't get written), you'd have to ensure that literally zero developers now and in the future would be willing to write the code. As was discussed in a previous thread [1], when faced with the prospect of writing "unethical code" the consensus seems to be even if a few developers take an ethical stand, there will always be some other developer out there without such strong convictions willing to write the code instead. I'd also like to point out that being employable does not necessarily mean you're in the position where you can put your job on the line for something. I consider myself an "employable" software guy but I've got bills to pay, and 3 months of unemployment while I find my next job is not exactly compatible with that. 1. https://news.ycombinator.com/item?id=12965589 https://news.ycombinator.com/item?id=12965589
- kolbe 10y ago2 is problematic, because it applies to a moving target of "human rights and civil liberties." I may agree with society's definition of these terms today, but the world changes, and with it the definition of "human rights." And while 4 is applicable for many programmers, it's not even close to universal enough to warrant a blanket pledge.
- rodrigosetti 10y agoI will not sign the manifesto. I prefer to do whatever I want with software, thanks.
- mstodd 10y agoWe could write a manifesto for that, or not and just get back to our lives
- dbg31415 10y agoWe call this the Chaotic Neutral Manifesto, and it's grand.
- geofft 10y agoIt's not a bad analogy; a software engineer is in many ways modern society's equivalent of a spellcaster. And, while a high-level chaotic neutral spellcaster might be great to have in your party, it is quite legitimate for the average village to be terrified of one who's just getting a drink in the tavern.
- banach 10y agoI wish I had the moral fortitude to sign and stick to this manifesto.
- bluejekyll 10y ago> I will not develop software that is intended to violate human rights and civil liberties. This one doesn't work especially in regards to cryptography. For example, if I develop the greatest end-to-end cryptography, I can almost guarantee this will be used by both good and bad actors. There's nothing I can do about that. IMO, a manifesto like this should really be much closer to the hippocratic oath; which is to say that my responsibility belongs with the patient, disregarding personal feelings toward the patient. So for us, that should be to write code that does the best job that it can; b/c at the end of the day we can't control who uses it.
- DanHulton 10y agoI would argue that cryptography wouldn't violate that aspect. The intent isn't to violate human rights or civil liberties, even though it can certainly be used that way. So too can a text editor or a printer driver or scheduling software. I think you're being a bit broad. To me, it reads fairly clearly as a stand against code whose specific intent is unethical, not it's potential and unrelated uses.
- bluejekyll 10y agoYeah, I get the intent argument, but I don't think it has a good separation of concerns, for lack of a better term. It's written in such a way as to state that if I know it will be used for bad purposes, then I should not write the software. And as you stated, even a text-editor could be interpreted that way. I could even turn this around in a different way, let's assume I decide that I want to help catch bad people. I do this by writing some software that helps deanonymize connections. This can be used to help stop DDOS attacks, track down sex traffickers, etc. So it's intent is good, but it will also be used by Iran, Syria, Russia, China, USA et al. to track down dissidents. I believe this software should be unethical by these standards, b/c of it's potential misuse/abuse, it was written with good intent! So is that unethical or not? The reason that I dislike that rule, is that it places the use/abuse on the developer, it's really the operator of the software that is at fault. Right?
- 10y ago
- agentultra 10y agoA manifesto is not really useful unless it's enforceable. I can sign this but I'm still compelled by my employer to act as they say with the threat that I could lose my job if I disagree and they will hire someone who will do it anyway. My employer wouldn't do that I'm sure but it's no reassurance to me or anyone else. A professional licensing organization has more weight. I would be beholden to the manifesto and would have an organization with the weight and resources to litigate if my employer tries to fire me to get around my ethical responsibilities. Fortunately there is one such program developing in the country in which I live and I'm doing what I can to pursue the education requirements to be licensed. I believe that liability and professional responsibility are going to become necessary to develop many kinds of commercial software.
- mstodd 10y agoToo bad a manifesto that states "I will not waste the most valuable resource: time" can't exist
- mstodd 10y agoToo bad a manifesto that states "I will not waste the most valuable resource: time" can't exist
- aethertron 10y agoSeems to have good ideas, but focuses on the negative. Here are some high-minded principles about what sort of software we should be building: http://www.loper-os.org/?p=284 http://www.loper-os.org/?p=284
- dooglius 10y ago> I will do my very best to prevent the waste of energy and resources What determines whether something is a waste? Is writing a game that use lots of power on GPUs a waste, because it doesn't further society?
- NilsLoewe 10y agoCould you reduce the power consumption by just optimizing the most critical parts? If yes: Not doing it would be waste in my view. Is writing or playing a game waste? No (in my view).
- asciimo 10y agoGaming is a human necessity, in my book. I read it to mean "be efficient." For example, if your "frivolous" game requires an army of servers devoted to processing data, try to optimize their effort and be clever about scheduling uptime.
- jsnsimpson 10y agoLol @ the sql injection attempt
- jsnsimpson 10y agoLol @ the sql injection attempt