1. 2

    I wonder how this privacy bug arose. Was it perhaps a developer deciding to serialize information about the users’ friends as JSON/XML “subobjects”, to be “helpful”, without considering the permissions that the friend had given to the app? In other words, was it a Confused Deputy bug?

    1. 2

      It’s a little too close to what happened with Cambridge Analytica for comfort.

    1. 3

      The end-to-end argument challenges this optimism directly. No matter the sophistication of the underlying building blocks, it argues, we’ll always have to define and enforce the essential correctness properties of our system at the topmost end-to-end layer of design. We can’t trivially derive correctness from the correctness of our subsystems: we must always consider it as an end-to-end property.

      Mathematically, this is completely untrue. Many desirable properties can be specified mathematically, and at least in principle, proven of some system in a proof assistant like Coq or Isabelle or Idris. The reason you can’t compose some correct TCP stack with some correct application-level code which assumes the absence of network partitions and have it be correct, is not because “correctness doesn’t compose”, but because TCP does not and cannot guarantee the absence of network partitions in the first place.

      1. 13

        I agree with almost everything the OP has said.

        Where there is confusion is around the case that this is a “quiet crisis”. I used to think that software managers didn’t know that open-plan offices and ageism produced a low quality of result. The older I get, the more I’m aware that they do know. They just don’t care.

        Business has this anti-intellectual culture and the flip side of that is that not knowing how this technical “voodoo” works is a point of pride, because only the low-status peons actually know that “mechanical” stuff. This also makes it really easy to blame “tech” when things go wrong. Executives are expected to be on top of things like the latest corporate logo redesign or the press coverage they’re getting, but technical excellence isn’t valued and technical failure can always be blamed on the programmers– even if it’s a software company– with no consequences for the individual executive. Thus, conditions for programmers will deteriorate. Sticking the programmers in an open-plan cattle pen saves money on paper (that’s a bonus for some cost-cutting shithead who doesn’t actually do anything). When the programmers all become less productive, the blame can be thrown on them as individuals.

        The OP is the rare software manager who actually cares more about doing his job than promoting himself and climbing the ranks. Very few do.

        Is this a “quiet crisis”? I don’t know. I mean, technical excellence isn’t rewarded in the corporate world, and companies are still profitable. I might personally think it sucks that there’s so much tolerance of imprecision-of-thought and half-assed work, but we’re not actually seeing these executives bear the consequences of their decisions, so I’m increasingly convinced that everything we fight for, as principled technologists, actually doesn’t matter to the global economy.

        1. 6

          “Doesn’t matter to corporations” is very different from “doesn’t matter to the global economy”. Robin Hanson, who is a professor of economics at GMU, has uncovered numerous ways in which people behave, to put it bluntly, irrationally and hypocritically, and some of these relate to the corporate world in particular. For example, Hanson claims (I believe correctly) that if corporations really wanted to hear an unbiased view of how likely a project was to come in on time and on budget, they’d get feedback from the people who actually have insight into this, i.e. the front-line employees - in our case, software engineers. Hanson believes that internal prediction markets are a good way of obtaining accurate feedback - I’m afraid (I know you disagree with me here) I prefer Scrum - but regardless of what you think about that, the general principle is sound. But getting accurate feedback from front-line employees is a relatively uncommon activity in the corporate world. Why is this? Well, we can conclude one of two things: either corporations by and large do not want to hear accurate estimates, they instead want to hear political estimates manufactured by managers and executives (and in some cases individual engineers) to make them sound good. Or, alternatively, there are a large number of middle managers and executives who genuinely believe that a military-style command-and-control hierarchy is the best way to obtain accurate estimates. I’m not sure which possibility is worse.

          But neither of these possibilities imply that this local “political” optimum is necessarily economically optimal, either for the corporation itself or for the economy as a whole. Traditional corporate organisation is something humans fell into - it was copied from the military, and we shouldn’t expect that it will continue to be seen as the most effective organisational form forever.

          1. 3

            You’re correct. Also “corporations” don’t have discernible wills. People within corporations do. Executives don’t actually care if projects succeed or fail– only how it will affect them. They’d rather have a major failure that they can blame on a rival than a success that puts them at risk later on.

          2. 3

            What are the options for the peon ?

            1. Go join another corporate
            2. Work at a younger corporate
            3. Become an executive
            4. Join other peons and start a peon collective and wait till the peon leader sells out in the end to become another executive.
            5. Join peon anonymous
            6. Quit / Die

            Some want to work within the system.
            Some outside of it.
            The input of the System is your soul. The output is profit.

            Monsters exist because we lack the discipline to defeat them. That’s the first assumption made by the monster.

            1. 2

              I think we can start by not thinking of ourselves as peons, and to demand that our employers treat us as trusted professionals. Organizing around our interests can help us at denying talent to employers who refuse to do so, and we can make this a global effort.

              So #4 seems like the strongest suggestion. And sure, a “peon leader” is a SPOF. That’s why there needs to be at least the threat of competition. If one programmer collective turns corrupt, then another should replace it.

              The best strategy that I can see is to create an exam system like what the actuarial sciences have, and build up a professional society from that.

              1. 1

                Fair enough. The best-case scenario I can see is for ACM / IEEE like organisations to do it.

                The challenge I see is for selling that idea to the industry and a vast number of hippy-dippy-dropout programmers to actually write it.

                Culturally I suppose the best we can do is to

                1. Increase Awareness
                2. Encourage corporates that do better things.

                I have an idea, let’s build a website that reviews ….. oh wait that’s glassdoor.

                1. 1

                  I think sites like glassdoor are the best hope/tool we have. I left my old job based on being bored of the grind and realising that after being there for 8 years without a significant pay rise i was now being under paid, when i asked around my own work I found out that even the new graduates straight out of uni were paid more. I had slipped through the cracks and was stuck in a rut, half my fault, half my boss’s. It took glassdoor or similar to prompt me initially.