Desmond File

Blog archive

E-Mail and the Law of Unintended Consequences

I've always been a big fan of the law of unintended consequences. Whether it's Henry Ford's invention threatening to melt the polar ice caps or Ray Kroc's innovative fast-food business helping transform America into the most obese nation on earth, it seems that even great ideas can have terrible consequences.

Ask Ray Tomlinson. He knows. The man who invented e-mail back in 1971 was interviewed this week by the Times Online and said he had no idea how huge his innovation would become and the threat it might unleash.

"At that time, the number of people who used e-mail was very small -- maybe between 500 to 1,000. So if you were getting spam, you'd know who was sending it. You'd be able to say to them: that's not a good thing to do," Tomlinson told the Times Online.

The lesson seems pretty darn simple: If you design something to become a success, you better be ready to manage the wages of that success -- whether it's an unintended side-effect, an environmental impact or simply bad people leveraging that success against others.

What's honestly surprising is that software designers often fail to pay full attention to the law of unintended consequences.

Microsoft's ActiveX is such an obvious case in point that I'm almost reluctant to use it here. But ActiveX should stand as an object lesson of what not to do with a software architecture. Intended to enable rich, desktop-like, Web-served applications within Internet Explorer, ActiveX instead emerged as an unacceptable security risk. The same tight and rich integration that made ActiveX so valuable for applications also made it a perfect vehicle for malware.

As with Ford's mass-produced automobile and Kroc's fast food restaurants, Tomlinson's e-mail and Bill Gates' ActiveX are, to an extent, victims of their own success.

"E-mail is like any tool -- it can be used for good or bad," Tomlinson said.

Have you had a development effort that's run into the law of unintended consequences? What did you do to remedy the issue? E-mail me at [email protected].

Posted by Michael Desmond on 03/13/2008


comments powered by Disqus

Featured

  • Full Stack Hands-On Development with .NET

    In the fast-paced realm of modern software development, proficiency across a full stack of technologies is not just beneficial, it's essential. Microsoft has an entire stack of open source development components in its .NET platform (formerly known as .NET Core) that can be used to build an end-to-end set of applications.

  • .NET-Centric Uno Platform Debuts 'Single Project' for 9 Targets

    "We've reduced the complexity of project files and eliminated the need for explicit NuGet package references, separate project libraries, or 'shared' projects."

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

Subscribe on YouTube