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?".