Chapter 37. Software Architecture Has Ethical Consequences

Michael Nygard wrote Release It! Design and Deploy Production-Ready Software (Pragmatic Bookshelf), which won a Jolt Productivity award in 2008. His other writings can be found at http://www.michaelnygard.com/blog.

Michael Nygard
image with no caption

THE ETHICAL DIMENSION IN SOFTWARE is obvious when we are talking about civil rights, identity theft, or malicious software. But it arises in less exotic circumstances. If programs are successful, they affect the lives of thousands or millions of people. That impact can be positive or negative. The program can make their lives better or worse—even if just in minute proportions.

Every time I make a decision about how a program behaves, I am really deciding what my users can and cannot do, in ways more inflexible than law. There is no appeals court for required fields or mandatory workflow.

Another way to think about it is in terms of multipliers. Think back to the last major Internet worm, or when a big geek movie came out. No doubt, you heard or read a story about how much productivity this thing would cost the country. You can always find some analyst with an estimate of outrageous damages, blamed on anything that takes people away from their desks. The real moral of this story isn't about innumeracy in the press, or self-aggrandizing accountants. It's about multipliers, and the effect they can have. ...

Get 97 Things Every Software Architect Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.