Maxims

I've learned many things over the past thirty years and some scenarios play out in my mind over and over. 1) You're focused on delivering a product.   Or you're focused on something else.  Most software people believe they're focused on a product but rarely are.  Their focus is their political

I've learned many things over the past thirty years and some scenarios play out in my mind over and over.

1) You're focused on delivering a product.   Or you're focused on something else.  Most software people believe they're focused on a product but rarely are.  Their focus is their political situation, a promotion, building their resume, virtue signaling, mating...

2) The IT world has many people who care too little about software.  They care about money but not work.  They make poor decisions because they don't grasp implications.  The industry also has people who care too much, who always find a reason to write code even if it's counterproductive.   They like complexity or the mystical powers of coding.   You should avoid both to achieve point #1.

3) Organizational problems are often treated as technical problems because nobody recognizes it or wants to deal with it.  It's easier to say "My e-commerce system is broken" than to say "We hired a moron".

4) Be suspicious of motives and situations.  I was misled or blindsided in about half of my contracts.  In one contract, I asked the director for a list of libraries and versions to keep our team on the same page.  His exact reply was "We're not doing that BULLSHIT!"    At that moment, I realized this guy had no experience and this would be a problem project.  As it turned out, the new CTO wanted him gone, I was an unwitting pawn and he was fired a few weeks after I finally quit.

5) When you reward lies, you get more lies.  These days I try not to reward liars.

6) Projects have a natural outcome, whether it's to succeed, fail, or twist endlessly in the wind.  You might force a different outcome but it's a lot of risk and effort and perhaps you shouldn't.  I've made projects succeed which should have died quietly.

7) Technology is rarely a deciding factor.  You can make many sub-optimal technology choices and still succeed.   Projects fail mostly from political turf battles, personal animosities, poor grasp of business requirements, poor funding.

8) Complexity is multiplicative but human perception is additive.   It's easy to underestimate how fast complexity will grow and get out of hand.  

9) Time is finite.  Which means conversations are finite.  When someone speaks of their "collaborative" environment, it means they don't have a clear plan or design.  If you have well-defined interfaces, you don't need a "collaborative" environment, work can be delegated in a more efficient manner.  But working isn't as much fun as talking, right?

10) "Inclusive", "diverse", "collaborative" are today's red flags.  See point #1 above.  Is the goal to deliver a product or to virtue signal?

11) Math doesn't care about skin color or gender.  The widely touted idea that "diversity improves our code" is a popular delusion.   However, hiring people because of their color or gender does make code worse because you're bypassing better candidates.   See point #1 above.

12) Dishonest money creates dishonest people.  The current crypto bubble is a great example of the Federal Reserve system.

13) Successful systems aren't designed around exception cases.   They're designed around majority (happy path) cases.  But you may have noticed that almost all political discussion in the USA is now about... exception cases.

14) Perfectionists and physicists are usually a poor fit for development.   New development has too much ambiguity and their ego is unable to deliver a flawed product.  Because nobody writes perfect software.

15) If I offer a 5-year old child the choice of a platinum coin or a candy bar, he's always gonna take the candy bar because that's all he understands.  And that applies to about 95% of you reading this.  :)

16) People have finite mental bandwidth.  They will almost always conserve bandwidth by delegating"thinking" to a 3rd party that they trust.   So how is that working out with the MSM in 2022?  :)

Recent Posts

Flickr Stream

Text Widget

Aliquam eget arcu nec nisl imperdiet semper mollis sit amet tortor. Ut ultrices pharetra urna id cursus. Aenean ligula dolor, mollis id eros id, hendrerit malesuada nisi. Suspendisse et pellentesque est. In lobortis velit nec diam sodales, vel gravida nibh porta. Curabitur faucibus lacus ac tellus faucibus posuere. Nam lobortis