Zero ghosts

battle with ghosts

Now we have many social networks and all of them want to put likes, pluses or achievements on our websites. The common opinion is that they are needed for better marketing of a website. The truth is that corporations need them to spread their services virally at the expense of site owners. By embedding them, part of the growth of our website gets outsourced to these companies and since they grow from a variety of places (due to network effects), this virtually guarantees that a small website will never be able to reach a critical mass of users in the shadow of a giant network being fed by millions of similar ones.

Another problem is that with 35 services, the chance that at least a couple of them violate our principles rises. Even the combinations in which they start to interact will no longer be trivial and might create future problems that are hard to predict. Every service is a dependency and it becomes much harder to know which one has a new API and when, which increases the chance to use legacy systems. We could ask ourselves: "What is the immediate value for the user this service is providing?" In many cases a service call will be triggered only if a user does something specific, but the code is downloaded every time for every user, no matter if this happens or not. This means that scripts that are hundreds of kilobytes might never get executed.

We should strive for zero ghosts on our websites. This requires to put our whole arsenal of knowledge, methodologies, approaches and gut feeling into it, because doing things simple is often much harder. Not only because the site will save a lot of HTTP requests as a side-effect, but because it will raise much fewer questions. This is good design.