Tod means Fox

Business Intelligence, Data Warehousing, SQL, Visual FoxPro.

Archive for ‘Personal’


Published March 20th, 2008

More Reviews on the Way

Anyone have some good reading suggestions?

I read a lot, and now that I have a long train commute each day into and out of Brussels, I’ll be reading much more. Some books on my radar include “Blink: The Power of Thinking Without Thinking” by Malcolm Gladwell, “SOA Approach to Integration” by Ramesh Loganathan, et. al., and a re-read of the “Data Modeler’s Workbench: Tools and Techniques for Analysis and Design” by Steve Hoberman.

I really enjoyed Gladwell’s “Tipping Point”, and have had Blink on my shelf for several months. As soon as my US taxes are finished (*sigh*), I’ll start on it.

On the tech front, I’m pretty excited about reading “SOA Approach to Integration”. The book focuses on WS-BPEL (see WS-BPEL 2.0) as well as Enterprise Service Bus.

I read the Data Modeler’s Workbench a few years ago. Since I’ve matured as a data modeler and have entered a few new industries (clinical, financial), I think it is time for a re-read. But I’ve got to buy it (again) first! Steve gets my money twice :-s

Published March 14th, 2008

Site Update: Resource Page Additions

This quick post is to alert you to some additions to my resource page. Some of the new additions include links to DM Review, TDAN, SQL Server Magazine, and FoxRockX Magazine.

I’ve been rummaging through my bookmarks and favorites and should have more pretty soon. If you know of a good (or even better: excellent) resource in either Visual FoxPro, Business Intelligence, or Database categories please contact me.

Published March 5th, 2008

Gary Gygax, Co-creator of D&D, Has Died

It’s a sad week for Dungeons & Dragons fans, players, and enthusiasts. Gary Gygax, its co-creator and lead cheerleader, has died at the age of 69.

Although it has been a few years since I’ve rolled twenty-sided dice, I’m still very much attached to D&D. We just moved to Belgium and while setting up my office, I set aside a shelf specifically for my more than 30 books, boxed sets, and notebooks. For the past 4 years, these things have been boxed up.

As one article puts it: “Dungeons & Dragons formed a bridge between the noninteractive world of books and films and the exploding interactive video game industry”. Created in 1974, the role-playing fantasy game was a huge success (mostly among geeky teenage and twenty-something boys).

D&D is a complex game. It takes months to learn (although new players can start playing with some experienced players almost immediately), and you need hours to play per sitting. But, the main rule is to have fun and enjoy its social and collaborative nature. D&D is also a game that stresses and embraces imagination.

I’ll always be thankful for Mr. Gygax and his partner Dave Arneson for their invention. It taught me how to be a team player, collaborate, and most of all, use my imagination. The complex rules also got me focused, and with the myriad tables and charts, I felt well prepared for my career as a software developer and business analyst. In fact, my very first FoxPro program was a D&D Character database, where I stored all of my player characters and produced a few interesting reports about them. It wasn’t perfect, but it gave me plenty of motivation to learn Fox2.6. I was also a “Dungeon Master” and created several hundred adventures across multiple campaigns. I wrote a lot and I studied history, mythology, and religion.

The game is still in production today (Hasbro, in my home State of Rhode Island is keeping it alive) even though online gaming has taken a large percentage of its audience.

I think I might just go order a pizza and roll some 20-sided dice for fun now…

Published February 23rd, 2008

Some Time Off with Sara

On a personal note: My wife and I had a baby girl this past weekend. Her name is Sara, and she weighed in at 7 pounds, 11 ounces. Now that we’re finally in our new house here in Belgium, it feels good to have the family complete to enjoy it! I am fortunate enough to have 10 paid days off for paternity leave — and I’m taking advantage. I’m reading a few books, catching up on some unpacking, and of course, spending lots of time with Sara.

Sara about a two hours old


I’ll be back on track in a few days with my postings. Cheers!

Published February 15th, 2008

Cooling Down

It is (or should be) common knowledge that you should never send an email, write a blog or forum post, or make a phone call when you’re totally ticked off about something! You are likely to say something you don’t mean or perhaps you’ll be a little too honest.

First cool down, and then respond. Easy enough, but what if you can’t wait to cool down using traditional methods (you know like, take a long hot bath)?

The solution: Simply write your name a few times on a piece of paper using your non-dominant hand. Apparently, it will force the logical side of your brain to start working, giving your emotional side a few seconds to forget why it is so upset (or sad, or excited, etc.). For all the neurosurgeons out there who might want to debate brain lateralization, I’m not the guy for you! But this technique has worked many times for me (and it recently got my sister-in-law out of a funk).

Over the past several days, I’ve also been looking into other ways to train my brain to either help in logical tasks, management tasks, programming, motivation, etc. I stumbled upon a blog entry (from Gary’s Historical Art) that spoke of the book “Drawing on the right side of the brain“. I remember this book from my childhood and was thrilled to see it has a new addition. It contains some additional information on (a) the latest developments in brain research, and (b) information on using drawing skills for problem solving. I plan to get a copy soon.

Published September 3rd, 2007

The 80/20 Principle and Software Development

In the book “The 80/20 Principle: The Secret to Success by Achieving More with Less“, author Richard Koch describes how a minority of “causes, inputs, or efforts” will lead to the majority of “results, outputs, or rewards”.

A great demonstration of how the 80/20 Principle (aka Pareto’s Law) works can be seen through examining source code. Clearly, a small minority of code in an application produces the vast majority of business benefit to the user. Usually, this code is well defined, tested, and performs great — after all, it is the core of what the application does. Once in production, this code is low maintenance. Any changes or enhancements are usually well scrutinized and will be tested thoroughly. Your applications are bought based on this core minority of code.

Then there’s the other code.

The other code plays more of a supporting or supplemental role: It’s the code that handles your ultra-cool menu system; It’s that extra group of reports that seldom get run; It’s that cool Calendar control that seemed like a good idea at the time; It’s all the extra features that you’ve tacked on over the years. This vast majority of code contributes least to the business needs of the application, costs you the most money to maintain, and is likely to contain the most bugs.

So what’s a developer to do?

Surely bells and whistles, gold plating, and other extras help sell the product. So I am not an advocate of stripping software down so that it is only functional. Software users expect to have a somewhat enjoyable experience behind the keyboard. Boring, functional applications would look a lot like a dos window and be the subject of many scornful conversations at the water cooler.

Instead, get the most bang for your buck. Identify the 20% and expand it. Identify the 80% and depreciate it. Revisit and repeat at each release cycle. Easier said than done? I’ll give you an example:

80/20 In Action

The volume of user reports in a mature application can get out of hand. I’ve worked on Applications in the past that have had more than 100 user reports. One day I wondered (out loud to my coworkers) which reports were actually being used. No one truly knew the answer, but we all had a hunch that the answer was “not many”. So, I added a secret logging script in my report class that logged report usage to a flat text file stored in the root directory of the application. I stored the report name, the user, and the timestamp. We retrieved the file when dialed in for support services. I found that out of 130 custom reports, only 6 were being used on a regular basis at about 100 installed locations, and a whole 50% of the reports were never run at all over the test period (11 months).

Whoa. Consider now that we spent time regression testing these reports during our latest release, that we regularly trained our users on how to run them, and that they are all included and dutifully updated in our documentation. Bad management? Poor software design? Scope bloat? Or just a perfect demonstration of how the 80/20 Principle works in software development: you decide.

The solution in this example was simple: We stopped supporting the unused reports (we continued to monitor the usage logs) and would not add any new reports without careful consideration. It felt good to trim the fat and in the end, we saved ourselves a considerable amount of work.

80/20 Analysis

During the different release periods of the software life cycle, an 80/20 Analysis should be done to both identify the core minority and the excess majority. Start with actual features (User Reports, Ad hoc Reports, Custom Query Engine, the Internet Backup Utility, Etc.) and then drill down into each feature and look for low hanging fruit. Once identified, monetize its impact on your engineering, quality, and client services teams. Also, place a value (using real sales dollars if available) on the feature itself.

This kind of analysis should reveal some interesting things about the software. If there are gray areas, for example if you are unsure of what is being utilized, consider doing something like I did to track report usage. Coverage profiling engines will allow you to identify seldom run or never run lines of code. These areas might give you clues as to what code will buy your house or pull you under. You can create a simple but professional survey on your website and ask your users what features they find most helpful and which features they don’t use. Not only would this survey tell you what is not being used, but it could also help you identify areas where you can increase the 20%.

For more information on the 80/20 Principle, I invite you to pick up Richard Koch’s book at Amazon. Have a read, and share with me your thoughts!

Buy The 80/20 Principle: The Secret to Success by Achieving More with Less now at Amazon.