I've learned many things over the past thirty years and some lessons play out in my mind over and over.
- Hubris is the most dangerous sin because it often masquerades as a virtue, like "saving the Earth". The road to Hell is paved with good intentions.
- Complexity is multiplicative but human perception is additive. It's easy to underestimate how fast complexity will grow and get out of hand.
- When you reward something, you get more of it. When you reward lies, you get more lies.
- When you punish something, you get less of it. When you punish honesty, you get less of it.
- Successful systems are not designed around exception cases. They're designed around majority (happy path) cases. But most political discussion in the USA today is about... exception cases.
- You're focused on delivering a product. Or you're focused on something else. The software crew believe their focus is a product but more often it's their political situation, a promotion, building their resume, virtue signaling, mating...
- Second Project Syndrome - the dangerous belief that your second project should have the perfection that your first project lacked.
- Technology is rarely a deciding factor. Sub-optimal technology choices often succeed. Projects fail mostly from improper business requirements, poor funding, political conflicts or personal weakness, not from bits or bytes.
- People have finite mental bandwidth. They will usually conserve bandwidth by delegating"thinking" to a 3rd party that they trust. How is that working out with the MSM in 2022? :)
- Many software folks care little about software. They care about money but make poor decisions because they don't grasp implications. Others care too much and find a reason to code even when it's counterproductive. They like complexity or mystical powers. You should avoid both if you want to deliver a product.
- Be wary of motives and pre-existing conflicts. I was misled or blindsided in about half of my contracts.
- The software world is filled with a surprising amount of ego, fraud, envy, sabotage and hidden agendas. It took me about ten years to discover this, as I don't suffer much from envy or hidden agendas. :D
- Envy - I've had a few people go to extraordinary lengths to derail my career but I outlasted most of them. I was google-bombed from 2002 to 2004 but I put up Realmeme.com in 2004 to foil it. Kurt's dead now and I had the last laugh.
- Projects have a natural outcome, whether it's to succeed, fail, or twist endlessly in the wind. You can force a different outcome but it's risk and effort and maybe you shouldn't.
- Time is finite. Which means conversations are finite. "Collaboration" takes time and a "collaborative" environment means there's no clear plan and design is ad hoc and chaotic.
- "Inclusive", "diverse", "collaborative" are today's red flags. Is the goal to deliver a product or to virtue signal?
- Diversity is always a cost which often has an overriding benefit. But in today's world it's a religion instead of a business strategy and most people can't see the difference.
- Dishonest money creates dishonest people. The current crypto bubble is a great example of the Federal Reserve system, which is a Long Con.
- I avoid perfectionists and physicists for software development. New development has too much ambiguity and their ego can't deliver a flawed product. Because nobody writes perfect software.
- If I offer a 5-year old child a platinum coin or a candy bar, they're always gonna take the candy bar because it's what they know. The software world is filled with 5-year old kids.
- Organizational problems are often treated as technical problems because nobody recognizes it or wants to deal with it. It's safer to say "Our e-commerce system is broken" than to ask "How did we hire a moron?".
Comments