News for hackers. Stuff that matters.
Re:A major reason for departures at Slack was “remote work r... by rglullis on Monday May 25, 2020 @07:47PM (#23306064)
From Steve Yegge's famous Rant about Google not understanding platforms:

    So one day Jeff Bezos issued a mandate. He's doing
    that all the time, of course, and people scramble like
    ants being pounded with a rubber mallet whenever it 
    happens. But on one occasion -- back around 2002 I 
    think, plus or minus a year -- he issued a mandate that
    was so out there, so huge and eye-bulgingly ponderous, 
    that it made all of his other mandates look like 
    unsolicited peer bonuses.

    His Big Mandate went something along these lines:

    All teams will henceforth expose their data and
    functionality through service interfaces.

    Teams must communicate with each other through these
    interfaces.

    There will be no other form of interprocess
    communication allowed: no direct linking, no direct     
    reads of another team's data store, no shared-memory 
    model, no back-doors whatsoever. The only communication 
    allowed is via service interface calls over the 
    network.

    It doesn't matter what technology they use. HTTP,
    Corba, Pubsub, custom protocols -- doesn't matter. 
    Bezos doesn't care.

    All service interfaces, without exception, must be
    designed from the ground up to be externalizable.
    That is to say, the team must plan and design to be 
    able to expose the interface to developers in the 
    outside world. No exceptions.

   Anyone who doesn't do this will be fired.

   Thank you; have a nice day!
I think about that a lot when designing any system, machine- or human-centered, that needs to communicate with a disparate group of entities. Encapsulate the implementation details to those who are closest to the actual information and have enough power to take action, and make the contact interfaces very explicit. This alone will get you 85% of a functional system. The rest is just selecting actors in your system that know how to cooperate and understands these boundaries.

There are no comments on this comment yet.