Engineering Human Values in Software through Value Programming
Ignoring human values in software development may disadvantage users by breaching their values and introducing biases in software. This can be mitigated by informing developers about the value implications of their choices and taking initiatives to account for human values in software. To this end, we propose the notion of Value Programming with three principles: (P1) annotating source code and related artifacts with respect to values; (P2) inspecting source code to detect conditions that lead to biases and value breaches in software, i.e., Value Smells; and (P3) making recommendations to mitigate biases and value breaches. To facilitate value programming, we propose a framework that allows for auto- mated annotation of software code with respect to human values. The proposed framework lays a solid foundation for inspecting human values in code and making recommendations to overcome biases and value breaches in software.