an obession with first principles

Myth of Arrival

Posted: Wednesday Sep 26th | Author: JohnO | Filed under: Philosophising | View Comments

I fear that my writing will become more philosophical; the Lady and I have been watching _The Good Place_ in the evening. My post here is inspired by this reflection on Huxley’s _A Brave New World_ by Harry J. Stead.

There are real world problems with the notion of “having a teleological end”. Much has been written about abuser/victim complexes within Christianity. These are allowed to exist because of Christianity’s teleological end vis-a-vis “Heaven” or the Kingdom of God. The eternal reward the believer expects allows themselves to suffer through to any treatment in this world. But this becomes quite literally abuse when this punishment is meted out by the hand of their husband, pastor, etc.

Huxley’s classic novel uses this concept of the teleological end in his narrative, but instead of placing it into the far distant future, he places it within the achievable now—if only we have the political will to do so. In this case the ends are happiness and comfort. And their civilization is willing to give up freedom, love, and excitement, banishing them medically with a drug “soma” (a perfect word choice; it is the ancient Greek word for fleshly body).

While we don’t (yet) live in dystopia, we often make this some days of our lives. We chase happiness, placing it as a teleological end. Rather than realizing happiness is a momentary state which we pass through. We cannot, could not, stay there, forever. It is not altogether virtuous. And anger is not altogether a vice (when properly directed). Our lives cannot operate focusing on an end, only. The arrival of the teleological end is a myth. It never arrives. Any orientation that presupposes its arrival as a conclusion to justify the means is specious.

“True happiness is to enjoy the present, without anxious dependence upon the future, not to amuse ourselves with either hopes or fears but to rest satisfied with what we have, which is sufficient, for he that is so wants nothing. The greatest blessings of mankind are within us and within our reach. A wise man is content with his lot, whatever it may be, without wishing for what he has not.” — Seneca


Opposite Incentives In Client/Vendor Relationships

Posted: Monday Sep 17th | Author: JohnO | Filed under: Leadership, Management | View Comments

I’ve been an individual contributor software consultant/vendor for roughly ten years now. In every industry vendor/client relationships require careful management and can easily fall apart. However, I think there is something uniquely difficult when it comes to software. The software industry is barely getting started when compared to other industries like commercial manufacturing (Henry Ford), or civil engineering (the Romans). That something is a massive knowledge gap. And in my opinion it eventually creates opposite incentives.

The reality that software has zero tangible presence to humans in this world is what creates this massive knowledge gap. We’re barely are the beginning of creating truly re-usable and truly working building blocks of the software industry. In construction you take for granted that you just have nails, screws, 2x4s, 4x4s, as well as building codes designed by mechanical engineers that say “You will not do …” and “You will do …” otherwise we slap your project with a failing grade.

We don’t have nails, screws, and 2x4s. We might have something called `Screw`, and within it there is every single possible option a screw could have (length, thread width and spacing, head type, finish, which metal it is) and every single time you want to use `Screw` you need to make all those decisions. Some you care about, some you don’t, and if you’ve ever wandered the halls of Home Depot some things you’ve never even heard of before!

When it comes to the building code your client decides what you’re building and whether you get a passing grade. But they have no idea what is involved with their project. After all, they’re the client and they’re paying you — if they could do it themselves they would! Knowledge gap. On the other hand, if they were looking at a mass produced children’s plastic toy, with some common sense, they’d roughly know how it was put together, how many pieces there are, and have a feel for how “cheap” or “sturdy” it may be based on how heavy and pliable it is.

The client, due to this knowledge gap, is generally unable to give you the most important pieces of information you’re going to need to make something that just works. This is why our software elders always say: “Build the first iteration knowing you’re going to throw it away.” Because they know this knowledge gap is real, and its better starting over with what you’ve learned that trying to fight against the grain of what you’ve built.

First Order Incentives

Clients pay you to just do what they want. They have zero incentive to understand what their vendors are doing. They just want results. Developers have every incentive to believe their clients, that they are a good and truthful people who understand their business, their processes, and what they want at the end of the day.

Second Order Incentives

When developers finally get to the underlying truth of the matter, they have every incentive to explain what is happening to their client. However, the client has no incentive to believe the developer understands their issues — just do what I say. Otherwise, it would be an admission that they were wrong. I’m not paying you to tell me I’m wrong about my own things! This isn’t a car where you can take out the broken water pump and show them, or point to the transmission fluid leaking out through a hole in the line. The client has every incentive to believe in forward progress just like every other industry. After you’ve instructed the factory to create one widget, making 1,000 widgets is a lot faster and easier right? There is no incentive to go back to the drawing board.

Ultimately

It comes down to trust, just like every other relationship. But money is involved here. With a giant knowledge gap and money flowing in one direction that trust can quickly erode. All of us find ourselves keeping up these relationships. Niceties and codes of conducts are absolutely necessary, but those cannot fix the structural imbalances in incentives. It is easy to pick on details and specific events for when trust was eroded. But if you don’t realize the game you’re playing you can only keep juggling for so long.

In my opinion, there is one more structure we need to give to this relationship. One that alters incentives. And that is a baseline understanding of being partners with your clients. Not just a vendor.


Similarities between writing and programming

Posted: Thursday Sep 13th | Author: JohnO | Filed under: Philosophising, Programming | View Comments

I’m Toby. My fiancee and I have been re-watching the West Wing to imagine a world where capable humans sit in those offices, and we’ve decided that I am Toby Ziegler. I try to be two steps ahead. I can be a curmudgeon in a group of working people, but I’ve always been a teddy bear at heart.

“Listen, when you get home tonight you’re going to be confronted by the instinct to drink alone. Trust that instinct. Manage the pain. Don’t try to be a hero.”

Can I assume from your total silence and blank faces that you’re all with me?

There is literally no one in the world I don’t hate right now

These are all sentiments I share. And they are phrases which, were I eloquent enough, I might utter in real life. Clearly, I am not.

We were watching the episode where Will Bailey (aside: I wrote “Josh Molina” originally because I feel he is always just playing himself I feel) joins him in writing the second inauguration speech. Toby is failing to write well and burning his pages. It caught me off-guard because I know that feeling. But I don’t work on paper so there is nothing for me to burn for catharsis. (Aside: Hey programmers! Can we solve that?, catharsis is a strong and worthwhile emotion.)

That feeling is the mental load of trying to grapple with complex, large, and sometimes dissonant ideas in your mind all once to come up with something elegant, simple, and coherent. In that way writing and programming are very, very similar. Undoubtedly there are times where you are working incrementally in small steps to achieve a quick goal or change. But there are many times you’ve got a large structure you’re turning over and over in your brain. And its not only when you’re creating something new.

Of course the hardest part can just be getting started. Which reminds me of the old Joel Spolsky article “Fire and Motion” where one of the hardest things to do can simply be to “launch the damn editor”. Your brain is realizing that “Hey, I’m not ready for all of that yet, let me warm up first.” Getting through that period of warming up can be hard. Especially when you’re tired. No one does their best writing, or programming, when exhausted. They are both creative acts.


Boston Mid-term Primaries: Capuano

Posted: Wednesday Sep 5th | Author: JohnO | Filed under: In the News, Politics | View Comments

Boston saw a lot of political change in the democratic party last night. I won’t recap the results, either you already know it, or you’re going to very soon. I want to explain my perspective on Capuano.

I live in Capuano’s district. I have been happy to have him as my representative. I don’t have any bones to pick with him, his policy platform, or his voting record. But I did not vote for him, and I’m glad Pressley won.

I was very curious to understand why he was being challenged in a primary by a Boston city councilor. Like many other, I wondered what they was to gain by replacing a person with seniority; specifically a member of the House Transportation committee when we need all the federal dollars we can get here to fix the numerous transportation problems we do have, with a junior member who would more-or-less vote precisely the same way he has voted, and would likely vote.

In my mind there are two arguments against him, and the first is rather simple. The MA-7th (he used to be the 8th prior to re-districting but his constituents remained mostly the same) is a majority-minority district and it would only make sense that a minority ought to represent them in the House. Pressley will be the very first minority to represent the entire state in the House (there was one previous black Senator). Many have made this argument before but, to many others, this doesn’t pack enough punch.

There is a second argument, that I have, that I have not seen anyone else put forward. And this argument is loosely tied to the first. Based on his response to a question about Kaepernick Capuano had this to say: “I thought that particular action divided America, because he chose to do it during the national anthem,”..”I just thought it could have been done in a way that would have [brought] more people into the discussion, rather than actually anger an awful lot of America”.

As a 20 year Congressman from Boston, a leader in the democratic party (and if we’re not calling him a leader, why isn’t he after 20 years — that is a different failure all-together), if he cannot get the answer to this question right he needs to lose his seat to someone who does get it right. Both he and the GOP share the same framing of the Kaepernick-issue, as well as who is important in this issue: white television watchers.

That is, simply put, not permissible from someone calling themselves progressive. This is not permissible from someone representing a majority-minority district. He lost because he should of. And, he lost the minority neighborhoods hard, while barely coming out ahead in upper-middle class white neighborhoods. This is why he conceded so quickly.

The issue at the heart of these primaries is one of culture. Capuano is not demonstrating a culture in the democratic party that is going to win again the GOP. And this has been a failure of the party for nearly four decades, and why they’ve been losing statehouse after statehouse and governor’s seat after seat. This is what needs to change. And I’m glad its starting.