All posts by phynds

Bugs are in the eyes of the beholder

As I work to build commercial software products I am regularly forced to remember that bug is a relative term. That sounds like a weasely way to explain away a fault in your software, but it really does turn out to be true especially when you have been on the ISV side of the conversation.


Back in August Steven Sinofsky posted a very insider view of how the Windows 7 team triaged bug reports on the Windows 7 Engineering blog. Microsoft products enjoy (a mixed blessing) more previewing eyes and shared opinions than most everyone. The bottom line you have to understand to put these things in perspective is that the creator of the software is on the hook for supporting, maintaining, justifying and profiting from their product. While the customer is always right about what they want, they aren’t always right in their belief of how my product should work.

Case in point. I have worked with and for ISVs for more than a decade now and I have seen time and again the process of a potential or current customer insisting that a feature must be added or a functionality changed. Not always, but often when the ISV has caved and added a feature that they did not feel would add value the negative feedback drowned out the voices that were asking for it.

In software development for commercial use you have to follow the advice of the song lyrics sometimes, namely “If you can’t please everyone, then you’ve got to please yourself”.


Ultimately if your product fails you can’t blame a customer or even a group of them for demanding things that ultimately took you off mission. Each customer complaint or feature request is a gift (as the book title goes), but it is not always one that you should embrace. This also goes for resellers, sales staff, developers and everyone else who is not on the blame line for the acceptance of the product by the market. That responsibility falls on the product owner who is often the business owner and visonary, or in cases like Microsoft a senior manager or executive.


If everyone remembered this we would probably have better software overall…

Change of venue

Most of you know me from Criticalsites or NTP Software since those are the two companies with which I have been associated for over a decade now.


This post is to tell you all that while I am still doing work with both of these companies they are now my clients rather than my employers.


CriticalSites and NTP Software have always been closely connected and with the huge success that NTP Software has been experiencing over the last couple of years, CriticalSites has shifted gears to be more of a services arm for NTP Software and has stopped taking on new clients that are not NTP Software clients.


I wanted to get back into development, training and security consulting work full time and so while I keep both NTP Software and CriticalSites as customers, I have left on the best of terms to pursue my interests through DTS.


DTS offers many of the same services that CriticalSites used to offer to New England companies. Some of you know that I actually started DTS before I co-founded CriticalSites and while not always my primary focus, it has been in business since 1994.


For many it won’t make any difference other than the company name on my name tag at conferences, but I figured it was worth a post to keep people updated.

Countdown to PDC

I am getting ready to go to the PDC this year and I got to thinking that devs need to dig in now more than ever to stay up to date on the latest and greatest tools available to get their jobs done.


I spent this last week teaching a class on SQL Server 2008 at Blended Solutions in Manchester, New Hampshire and I found myself telling many old school stories about how back in SQL 4.2 we had to do pretty much everything ourselves and how Replication made its debut in SQL 7.0, but alot of people didn’t discover it until SQL 2000.

It got me thinking that while you hear it alot you have to keep learning and work pretty hard to stay up to date, which brings me back to PDC. I know it is really hard to get away these days, but Microsoft has been really good about putting content online so watch the web and pay attention. Even dropping out for a few months can really hurt your abilities to get caught back up.

Product Key Rules

Lately I have been working on developing a new product key system and realized that one of the core rules of the road is not documented anywhere I can find (which is crazy in this day and age when everything is supposed to have already been said).


The rule is pretty simple once you think of it. You should never include the numbers 0 or 1 or the letters L, O or I in a license key that you require users to ever type. The reason is that there is too much chance of confusion that will cause the key to fail. Zero looks like the letter “O”, lower case “L” looks like 1 and upper case “I” in many fonts.

A simple set of rules, but ignored way too often. The only exception and I think it should be used sparingly is when the key is all numberics since that should remove the ambiguity provided you clearly state that the key is all numeric.


Random ramblings perhaps, but it will save you down the road on customer support calls and that means money!

ATL Security Vulnerability

Microsoft has just announced that there are security flaws in the Active Template Library (ATL). While many developers will think that this only applies to C programmers and while to some extent they are correct I think it is important to take a lesson from this issue. Micheal Howard has posted a very informative post to the MSDN Security blog that I think is well worth the read for all developers (not just C and C++ programmers).

Too many organizations think that they can ignore code once it has been written, but the price of secure code (like freedom) is constant vigilance.

SilverLight Version 3 Released

Microsoft has always done well with version 3 goes the well worn saying. And so I have high expectations for SilverLight 3 which has just released. Being more involved with Security, Business Processes and Enterprise System Development I have not delved as deeply into SilverLight 1 and 2 as I had hoped. With this new release I feel I just have no choice and I suspect that if you are reading this then neither do you. Rich Internet Applications are really the best of both worlds given their low deployment hurdles (the gift that browser based apps bestowed on us) combines with rich and client processor driven user experience.


I had thought I would have years or at least a year more to wait for the third version, but Microsoft has been driven to outstrip the competition. I hope the competition tries to keep up since I like this pace very much.


If you are just getting started check out the “How Do I” Videos and read regularly Scott Guthrie’s blog.


SilverLight in this new release has the makings of starting the next dev revolution I believe. If I am right this one will have as big an impact as the release of Visual Basic 3.0…

Effort vs. Reward

I am currently reading the book “Outliers, the Story of Success” by Malcolm Gladwell and while I am very interested in the entire book so far I was very struck by a specific passage about half way through dealing with job satisfaction.

The quote is, “three things – autonomy, complexity and a connection between effort and reward – are, most pople agree, the three qualities that work has to have if it is to be satisfying.” I found myself rereading that passage because it sums up so well my experience in working in technology. I have to add that I also found these qualities in my time as an Infantry Officer in the Army. If you are searching for work try to communicate that you want these things to the person doing your interviews. I want this kind of person working for me, but I find that often some of these qualities turn out to be a wish that many regret once fulfilled.

Lets start with Autonomy. I chose the Army rather than the Navy or Air Force precisely because I wanted to have a hand in my fate. A Navy officer in combat dies based on where the ship is sailed by the captain. Twenty yards one way or another on deck rarely matters when the ship is sinking. You can find the same analogy for the Air Force where you life is hanging by the performance of a piece of high tech gear working against gravity. As an Infantry Officer I could choose my path within hundreds of meters most times and the mistake of stepping on a mine was mine to make. Often people get autonomy and then squander it. Autonomy is a form of trust. Can you work at home in your job? If so it is probably because you either work for yourself or your employer trusts you very much.

Complexity in tasks it welcome, especially to technical people. We like a challenge because there is accomplishment in resolving it. The hazard here is to mistake a job with complexity as a license to behave arrogantly and to feel entitled. If you work for a company and make a fair wage by any objective standard (not just your own) then you are unlikely to ever be considered to be given a share in the company. That is reserved to those who take the risk of starting the company and those who negotiate for that right at the right opportunity (which rarely arises).

A connection between effort and reward is the easiest to understand and represents the point where employers should take the most note. If you have two people working for you of equal ability and one works like a dog while the other skates, your treatment of them will be instructive to both. Praise only goes so far and eventually becomes hollow if there is no material benefit included (even if only occasionally).

I like this book very much and recommend it to anyone who wants to conquer the world, but with one caution. It does not sugar coat what it takes to accomplish outstanding success and that means that your long standing beliefs, some of which are likely comforting, will probably be changed fundamentally. I always preferred hard and useful truth to comforting fables anyways…

Marketing Lesson from MS

Over the years Microsoft has pitched alot of product and while I have always liked the technology (MS Bob, et. al. aside of course) they have not always been the most marketing savvy company when it comes to media. Over the weekend I what promises to be the best leverage of new media by Microsoft ever. The people responsible for pushing the MicrosoftWeb Platform have posted a video in the style of Magnum PI called Cannon PI (PI stands for Platform Installer) on YouTube.

Check it out and if you have the same reaction as I did you will be looking forward to where they take this series. It was an added perk to see Scott Guthrie and Soma playing supporting roles. Maybe that is why my interest is so keen?