I have been working on commercial products for a long time and repeatedly have seen companies compete with similar solutions. Often one is the technology leader and innovates while the other plays catch up and only survives by clever marketing. Sometimes the laggard can become the market leader, but typically only if the innovator makes a mistake (the classic example of a market leader losing ground due to a mistake is when New Coke came out).
When it comes to software products the rule is pretty simple, mistakes in usability are the ones that cost marketshare fastest. Customers are pretty tolerant of technical issues and bugs since all sofware has them, but if the user feels stupid when trying to use your product, they will switch very quickly to an alternative.
Bottom line is that mistakes of ususability are more costly in a competitive market than almost anything else, design wisely.
I just got back from the Microsoft PDC in LA and have been thinking about what I saw there.
It turns out that I have come to a couple of conclusions that I will surely post more about in the future, but for now here is the overview.
First there were several Windows Azure announcements that have swayed me from skeptic to seeing a real chance for Azure to be a contender. Chief among my concerns was the fact that I just didn’t see companies doing a big rewrite just to leverage a cloud solution. Now it is much easier to port an existing application to Azure and there is the option to customize the hosted image. I also saw a demo that no one else seems to have noticed (or I was imaging things). I could have sworn I saw a demo where SQL data hosted behind the company firewall was opened up for consumption by an Azure hosted application. I plan to watch that keynote again to make sure I know what I am talking about so consider this a disclaimer.
Second, I am now confident that Microsoft will not abandon either WPF nor SilverLight developers since there were already announcements to make both able to run with the same assemblies. A small step, but when coupled with the fact that VS2010 is built with WPF I think the two technologies are both valid for development (I was worried about the future of WPF until recently).
There was of course more, but those will have to wait for other posts.
For many, many years I have been writing and reviewing contracts between my company and clients. As a result I have some insights into how things can be made to work more simply.
First up, this is not legal advice, just me sharing some experiences. You should always run your contracts by your lawyer to ensure you aren’t painting yourself into a corner you did not intend.
Second, I have always tried to standardize contracts as much as possible and educate prospective clients up front as to what our process was for setting up contracts. Often the client will have their own ideas and their own contracts, but life is much better if you get the majority of clients to use your system rather than having to make a project out of every deal. I find that the more reasonable my process and contracts the more likely the client will accept my contracts rather than insist on using their own.
Third, you must always remember that contracts are to govern the relationship between you and the customer when things to wrong. They almost never come up when the project comes off to mutual satisfaction. They are insurance if done well and they are a death sentence if they are done badly in cases where the project goes off the rails.
Fourth, contracts are not personal, they are just part of business. If you are doing business with someone you like and trust then there is a temptation to skip on the contractual completeness or correctness. THIS IS A MISTAKE! Always think in terms of what would happen if the project went sideways and the person you had to deal with was not the one with whom you set things up. This has happened to me on a regular basis and the only defense is to have solid contracts.
I hope to post more information like this in the future.
I am packing tonight to head to the PDC in Los Angeles and wanted to tell anyone else who will be attending that I am hosting a Birds of a Feather session at lunchtime on Thursday on security hype.
The thesis is that we are seeing a steady stream of over hyped security “issues” that tend to remind me more and more of the ads for the evening news that say things like “Your water could be killing your children, details at 11″. We plan to discuss how this trend is hurting actual preparedness for the real threats.
Hope to see some of you there.
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…
A friend of mine pointed out that now Dolly Parton is leveraging SilverLight and IE8 Web Slices on the site for her new album.
I think this is an interesting signpost that SilverLight is rapidly approaching widespread acceptance.
Check it out the web slice at the Add on Gallery.
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.
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.