Thursday, September 20, 2007

The 道 of Writing, the sublime of Work Ethics...

Be it software, technical documents or emails.

If any man wish to write in clear style, let him be first clear in his thoughts; and if any would write in a noble style, let him first possess a noble soul.
~ Johann Wolfgang von Goethe

Learn as much by writing as by reading.
~ Lord Acton

I too am an apprentice, always—learning as much by failing as by succeeding, as much by following as by leading.
~ antonius

So don't despair that no one agrees with you and point your mistakes, for "... when you're screwing up and nobody's saying anything to you anymore, that means they've given up on you."
~ Randy Pausch

Wednesday, July 25, 2007

Software Entropy

Software entropy refers to the amount of disorder present in a system.

Entropy usually creeps in by way of logical inconsistencies at the thought-level, even before any tangible work begins to implement said system. As the system and its parts are developed, these logical inconsistencies manifest themselves in various forms of errors of all sizes. The smallest ones considered negligible are typically the clichéd primordial stew of chaos in software systems.

When coupled with what's frequently unfortunate timing of most software development schedules, the hacks we are forced to place into the system here and there by necessity of meeting some established deadline further exacerbate the condition.

Now plagued with such level of anomalies any additional issues encountered are prevented from meeting their resolutions simply because it's no longer feasible.

They say, only two things are certain in life: Death and taxes; well... in software Chaos reigns supreme if unchecked and snipped in the bud. Entropy is contagious.

What's the moral of the story kids?

 

冰冻三尺,非一日之寒
Three-feet of ice didn't result from one day of freezing weather.

 

Do the job right the first time or don't do it at all.
Better yet, get out of the way of anyone who's trying to do the job right the first time.

Friday, June 15, 2007

Consistent Efficiency Is Key

Task:

  • Find today's calendar period starting and ending date, where if the starting date is the 1st then the ending date should be the 15th, and if the starting date is the 16th then the ending date should be the last date of the month.

Short of writing the date with a string, which of the two following methods demonstrates a clear logical thought? (Disregarding the conciseness of the code).

Method #1:

method1 

Method #2:

method2 

When seen from the biggest picture, i.e., a total development project cost (and/or tco) of $1, the two methods above demonstrate a difference between:

  • Getting much less value of the $1 payout albeit with a lot of code line count (and a potential debugging and maintenance nightmare); versus,
  • Getting much more value from the $1 payout including clarity of thought, code conciseness, ease-of-debugging and most neglected value of all savings in maintenance cost.

Wednesday, March 14, 2007

Doing the right thing to do

It's easy to say; it's hard to understand.

The right thing for a relativist unreliably varies from context to context.
For an absolutist with an extremist mentality, the right thing may turn out to be just the opposite.

It's complex, yet so simple.
For when one's inhibition is gone;
when one's civility is in ruin;
when one's regards for morality, law and politics vanished; and,
when one's regards of relationships discharged,
the right thing will still be there down in the heart of heart.

It is the faintest voice that keeps one awake at night when the world is deep in its slumber.
It is the voice of conscience in one's subconscience.

That is the right thing.