Wednesday, October 08, 2008

Bison Stampede 2008

Last Saturday we participated in the Ted's Montana Grill Bison Stampede, a 5K run and kid's fun run. Judy and I did the 5K, and Maddie and Katie did the kid's run (well, Katie did a lot of the kid's run). A lot of fun and good exercise to boot. I ended up with a time of 28:24 (about 9 mins/mile), which was OK for me.

Here's a video montage:









Wednesday, September 10, 2008

It's Wednesday, and I'm going to start a thread of Cool and Interesting Sites. I know others do this as well, so I'm going to try to emphasize the unusual as much as possible.

Being a big fan of history and technology, I was amazed to come across this in Wikipedia:

When Germany invaded Denmark in World War II, the Hungarian chemist George de Hevesy dissolved the gold Nobel Prizes of Max von Laue and James Franck into aqua regia to prevent the Nazis from stealing them.

He placed the resulting solution on a shelf in his laboratory at the Niels Bohr Institute. It was subsequently ignored by the Nazis who thought the jar—one of perhaps hundreds on the shelving—contained common chemicals.

After the war, de Hevesy returned to find the solution undisturbed and precipitated the gold out of the acid. The gold was returned to the Royal Swedish Academy of Sciences and the Nobel Foundation who recast and presented the medals to Laue and Franck.

This is one of the most clever stories I've ever heard out of WWII, the perfect blend of a scientist solving a tough problem with tools at hand.

There's also a thread on Hacker's News with some interesting comments (and tangential discussions).

Monday, September 08, 2008

Blogging Barriers

Until now, my inability to fit regular writing into my schedule has overcome my desire to blog. Starting today, I'm executing a plan to do daily or near daily writing that's done in mostly smaller chunks, with some larger posts thrown in from time to time.

Today I'm going to begin a simple set of posts called Pithy Monday that will allow me to share one or more of my favorite quotes and aphorisms at the beginning of each week.

Here are today's offerings:

If I have seen further than others, it is because I've stood on the shoulders of giants.
-- Sir Isaac Newton

It's amazing what you can accomplish if you don't care who gets the credit.
-- Harry S Truman

If I only had a little humility, I'd be perfect.
-- Ted Turner

Sixty years ago I knew everything; now I know nothing. Education is the progressive discovery of our own ignorance.
-- Will Durant

It's not that I'm so smart, it's just that I stay with problems longer.
-- Albert Einstein

Persistence isn't using the same tactics over and over. That's just annoying. Persistence is having the same goal over and over.
-- Seth Godin

Wednesday, July 16, 2008

Churn, Churn, Churn

A tongue-in-cheek blog posting (Desecrating Rails For A Brighter Tomorrow) laments the increasing popularity of Ruby on Rails because it is eroding the "competitive advantage Rails affords"; the "gorillas" ("legacy web companies that have payrolls 100x greater" than "a programmer or two") are catching on and becoming "nimbler", restoring order to the world. "The horror."

While entertaining, the author unintentionally illuminates an unspoken ugly truth about software development:

Many developers, if not most, are attracted to the software business because of exclusivity, that is, being able to do something that relatively few others understand how to do. This trait, however, is damaging the overall industry in many ways.

Within the software business, developers engage in a continuous cycle of seeking out and immersing themselves in brand-new, leading edge technologies to maintain and enhance that exclusivity, with little regard to any non-technical project considerations such as risk management, robustness, return on investment (ROI), etc.

The manifestation of this cycle is the churn of software tools, and it affects all stacks (Microsoft, LAMP, J2EE, at al). Software developers are under (peer) "pressure" to upgrade, switch or otherwise drastically change their development tools every two or three years, or risk "falling behind", becoming "obsolete" or, worse, being seen as a "legacy" software developer (the horror). Sometimes they reason that it's for "job security" (an argument without any teeth), but it's really about "coolness", a component of which is exclusivity.

One of the most insidious side-effects is promotion of the “not invented here” syndrome, where some developers will spend tens of man-hours or more building something that has been built many times before and can be acquired, completely tested and supported, for little or no cost. The Open Source movement is largely a manifestation of this, under the guise of promoting ABEM (Anyone But Evil Microsoft), but is really just a way to (1) avoid paying for tools and (2) creating a very large sandbox for software developers to play in under their own rules. "But", you may say, "these tools are helping us manage objects and other reusable components better in team environments", which sounds great in theory but there's little real evidence supporting this contention, borne out by the continuing state of poor performance in the software development industry.

Another side-effect is, simply, investment loss (lowered ROI). The most destructive churning occurs when the developer swaps out hard-won habits and knowledge with entirely new ones. There are many examples of this (the evolution of Visual Studio, for example), but we need look no further than Microsoft Office and the new ribbon bar. Over the years, many of us have learned that maximzing use of the keyboard over the mouse dramatically increases efficiency (even more so for software developers working in their IDE); the ribbon bar forces the user in the opposite direction.

Regardless of what you think about the ribbon bar, the point is this: it changed dramatically how I have to work in the tool; my investment in learning how to use the tool goes largely out the window. I have to spend (invest) significant mindshare on thinking about how to do things that were second-nature before. A major league shortstop does not have to think about every little possibility that could occur when a ball is hit to him; he's got so much repetitive experience, he only has to react, and nearly always reacts correctly (the all-time worst fielding percentage for a shortstop is .935, that is, a 6.5% error rate). What would happen to that error rate if tools and rules of the game changed every three years, if the basepaths were extended, gloves were removed and grass was replaced with concrete? Think the error rate would go up?

With reduced ROI comes reduced skill levels. A person who works day in and day out with a tool for six years is more than likely to significantly outperform a person who has worked in it half that time. Tool churn, however, never lets us get that far; few ever really gets good at maximizing the use of their toolset. No wonder there's little predictability in the software development process.

All of this weakens the overall software development industry, especially the commercial side. While many developers hold their own skill levels in high esteem, in fact they are mostly amateurs because they never work with a given tool or set of tools long enough to really attain expert status; what they’ve really attained is expert status relative to their fellow developers. These “experts” are invariably those who get early looks at upcoming technology releases, giving them a temporal head start: they simply have gotten significantly more time earlier with a product than have most developers.

Disregarding jokes about government projects, at least some of these folks get it. Take a look at just about any software development endeavor in the space program, where real money is at stake, as well as lives, political consequences and national prestige. Consider The Software Behind the Mars Phoenix Lander, which describes the antithesis of modern commercial software development practices. In the interview with the project manager, this telling exchange:

Pete McBreen, for example, had a great book a couple of years ago called Software Craftsmanship, where he said that about the only place where you can sit down and design all of your software up front is where you actually have the hardware; you know your exact constraints, and you know you're not going to be able to update the software once you deliver it. What's the process look like there for getting software to get 700+ pounds of metal and equipment to another planet?
"Generally what we do with these proposals, particularly with these kinds of missions, is we try to rely on — in order to cut costs, we try to rely on software that's been previously established and proven to work. So in this case, this is part of a line of spacecrafts that Lockheed Martin has produced, and the software has heritage literally going back to the Mars Pathfinder mission."

The Pathfinder mission landed on Mars in 1997; surely software development on that project preceded the landing by many years. There’s an interesting story about a software problem encountered during that mission here.

This is a project that used, as its base, software developed and tested probably nearly 20 years ago! How uncool is that!

How different would your approach be if it was very hard and expensive to change any code or hardware after putting the system in production? Would you take as many risks with unproven tools with which you only have a few years experience, and bet your career on that?

Some commercial developers may say that “well, we have tighter timeframes and market pressures, we couldn’t do that”, a specious argument at best; interplanetary space travel projects (where the laws of planetary physics rule the schedule) can apply more pressure than just about any commercial endeavor I know. The point is, software developers on any project face the same issues: how do we do more with less, knowing that problems are going to happen. How do we design systems that are truly fault-tolerant. The folks on the Mars missions have to do that; in the commercial space, it seems to be a choice, one in which developers themselves have a disporportionate say.

So, who's making the better business decision here? Who's taking the longer-term view? Who's protecting the large, costly investments made in matering the software development toolset?

To me, the answer is clear: we have met the enemy, and he is us.

It's time to get the foxes, who have failed miserably and consistenly, out of the henhouse; we need technical leaders who put business and project needs (way) ahead of technical considerations, who also extend the shelf-life of the investment made in these very complex endeavors.

What do you think?

Sunday, January 14, 2007

Tagged

I've been tagged! The Virtual Cocktail Party caught up with me this past week -- twice! Both Kevin Ragsdale and Rick Borup tagged me within 48 hours of each other; now I'll keep part of the bargain: I'll do this entry but I'm not going to tag anyone else.

So, here are five things you might not know about me:
1. I have many hobbies outside of the technical arena, including collecting fossils. I was a long-time stamp collector and am an avid garage sale-er. That alone could be it's own blog!
2. I had years of piano training when I was a kid, but my real musical loves are playing the bass (mostly local parties) and listening to old blues and R&B records (I have hundreds of vintage 78's and 45's). I was a big Dr. Demento (Barry Hansen) fan, who happened to also be one of the world's premier blues collectors.
3. My father was a career Naval aviator (anti-submarine warfare), so we moved around quite a bit and was a great, really defining, experience for me. I went to 14 different schools before college (Georgia Tech), which was also the first place inland I ever lived!
4. I'm a "full-bleed" Cajun.
5. I've played a lot of sports over the years; eight or nine years of Little League, lettered in Tennis in high school, won several racquetball tournaments, played in basketball and softball leagues and did pretty well running 10K races for a time. I've done many long-distance hikes, too, in Georgia, Tennessee, North Carolina, New Mexico, Alabama and South Carolina. I'm in the process of getting "back in shape" so I can show my two little girls some of the wonders of nature.

The good thing about this is that it's going to get me back to blogging (like I should). So, thanks guys!

Saturday, June 25, 2005

Business Problems Only, Please!

As a long time professional in the software development "industry", it's easy (and even seems natural) to get caught up in the tool-du-jour or development paradigm-of-the-moment, an addict constantly needing a new IDE feature "fix". I've seen in the cubicles of software developers libraries and software boxes that spanned every programming language and IDE available, all obviously attempted within a short time frame. Software development has been called the most difficult of all human endeavors. As a group, software developers are geeks who revel in creatively solving complex problems with elegant code using the latest cutting edge methods.

It wasn't long into my career before I was being drawn more and more out of my geek shell and into the leadership roles that have been the norm for the last 20 or so years, culminating recently with cofounding and running a thriving information techonology company. Given that, I'd now like to make an announcement:

The ability to effectively wield technology to manage information in pursuit of profit is a good predictor of company success. There are no technology problems, only business problems.

How did I come to this conclusion? The Western Capitalist Economy (WCE) is driven by profit, that is, the amount by which a company's revenue stream is greater than the cost of doing business. In the WCE, profit is the true measure of success; thus, much attention is focused on increasing revenue and decreasing cost. A company that does not generate a profit may not immediately die, but it will certainly not live very long; this is not to be confused with so called "non-profits", which are profit-makers that simply return that profit either to the company itself or to their customers. A true non-profit, that is, a company that cannot sustain revenues greater than costs, is either a future dead company or someone's hobby.

If solutions to technical problems are only evaluated in terms of technology itself, without regard for basic business principles like return on investment and risk management, then it is quite possible to solve a technical problem that leads to ruining the company; you won the battle but lost the war. We can illustrate the principle and it's effects with a contemporary example: securing your web servers. It is impossible to absolutely ensure that a web server cannot be "hacked" or otherwise compromised, other than either (1) disconnecting it from all networks or (2) turning the power off, neither of which are acceptable to most firms. Some companies have information assets (large banks, governments, health agencies, the military) that, if compromised, can bring the company (and others) to its knees. Much money is spent on firewalls, physical security, sophisticated software, highly paid people, redundant hardware, etc., to attempt to minimize the risk. Spending money affects profits, and profits are what makes a business a business. How do you balance the need for security with the cost to accomplish it and the need to sustain a profit? How do you balance risk with cost and the need to make a profit? Sounds like a business problem to me. Working backward, an important component of successful profit-making is a plan to spend money wisely, including, of course, spending money on technology.

Here's a true-life illustration: a good friend and business partner once ran worldwide research and development for a large, well-known specialty manufacturing firm. His group was basically composed of some very smart people who invented things for the firm's clients, things that the client dreamed up and were generally very hard to create. A very important client (read: generated a lot of profit for the firm) called one day with an idea, something they they wanted the firm to "invent" for them, an idea that was potentially worth tens of millions of dollars to the client. My friend dutifully took the request to his scientists, who dutifully assessed the technical possibilities and dutifully came to the conclusion that it couldn't be done. Upon hearing this unwelcome result, the client threatened to pull their entire business away from the firm and find someone who could fulfill the request. At this point, dear reader, the request is no longer a technical problem, but has become a well-defined business problem, one worth untold millions of dollars in future revenue. My friend took this news back to the scientists, careful to instruct them in the finer points of profit-making and it's relationship to the ability for each and every one of them to pay their mortgages and car payments each month. Within thirty days, a prototype was built and delivered to the client.

There are no technology problems, only business problems.

Saturday, May 14, 2005

Does Your Application Understand You?

I recently published an article on an interesting project on which I've been working for the past months. It involves integrating a broad range of technologies (voice recognition, text-to-speech, natural language understanding, RFID, handhelds, wireless networking, etc.) to create a unique art accessibility application.

TechLINKS Article

New Publications

I was interviewed recently by Jennifer Lawinski (of SearchSQLServer.com) regarding the latest release of Visual FoxPro (version 9) and it's relationship to SQL Server. The article includes cogent remarks by Ken Levy and Andy Kramek, too.

Visual FoxPro 9.0 more SQL Server Friendly

Thursday, March 17, 2005

I'm Published!

It's just hitting the stands now: this blogger's first actual bona-fide published article! Wind up the clock and let my fifteen minutes of fame begin!

Actually, the article is very interesting and is a great example of using Visual FoxPro to "glue" together many disparate technologies into something far more powerful than the sum of the parts. The parts consist of voice recognition, text-to-speech, natural language understanding and RFID, all working together to deliver a unique user experience to a PDA.

Read Case Study: Does Your Application Understand You? in the March, 2005 edition of FoxTalk 2.0. Many thanks to my editor, David Stevenson.

Monday, January 24, 2005

FireFox Ruminations

Our firm develops only browser-based extranet applications (VFP COM+ middle tier with SQL Server backend). When we first built our framework, IE had about 95% market share; we determined this by averaging the statistics found on many web sites that track such things.

Because we are a small company, we spend a lot of mindshare on risk management and very carefully manage our scarce resources. We value predictability (of technology and people) above almost anything else, because that's what our clients value in us. Because our systems are not consumed by the general public, we contracturally obligate our clients to use IE 5.5+ with a 1024x768 resolution when using our systems. With that single stroke, we have greatly simplified support, testing and maintenance of our applications, and can much better predict our deliverables and ensure a profit for our company.

We have not had a single instance of push-back on this issue. It's a pure business decision. Too often it goes unnoted: a business without a profit is not a business; it's a hobby.

IE may have taken a hit in market share, but it is still above 85%, a dominant position. FireFox's rise and capabilities have gained my attention, but not to the point of even planning to support it yet.

Our reasons for this, of course, are all business reasons. First, supporting a second browser base essentially doubles your testing hours, at least for GUI issues. In addition, any R&D or library code must be thoroughly tested on the additional browser base, and would probably more than double those hours compared to current cost.

You say he was "not willing to invest the time to program for any other browser as it would perpetually stretch his organization' resources too thin"; a reasonable follow-on question would be "and how much would that be?" If you ask me that question, I would say "prohibitive, until FireFox gets much more marketshare." I would bet your acquaintance would give a similar response. To me, he sounds like an able business person.

A second, lesser reason is that we would rarely bet the company on a 1.0 release of anything. That's almost always too risky for us.

For the time being, we will keep an eye on browser developments. Personally, I welcome the competition; Microsoft has become complacent with their browser. I expect that we'll see a significant response from Redmond in the coming months.

Sunday, January 23, 2005

Let the Ruminating Begin!

I'm finally diving into Blog-dom, something I've intended to do for quite a while now.

As an entrepreneur and technologist with The Intellection Group, Inc., a lot of information and ideas cross my desk throughout the day. I will use this forum to share my thoughts and views on a wide variety of topics in more or less real time, that is, as they come to me. I expect the entries to be small and frequent, with the occasional long-winded rant.

Feedback is welcome, of course.