attitude Business culture Business Ethics Competition Direct Marketing Entrepreneurs Getting new customers Leadership Small Business The Best Code Wins

An incredibly dangerous leap

Felix Baumgartner

Thanks Red Bull

People rarely complain about a sales loss when the winning competitor has a higher quality product or service.

Yet it seems natural for some businesses to belittle a competitor and the quality of their products/services when they were marketed well – sometimes taking it to the level of accusing them of being unethical or unprofessional.

That’s an incredibly dangerous leap for a business.

PS: Speaking of dangerous leaps… Congrats Felix. One of the coolest things I’ve seen since the summer of 1969.

Business culture Business model Entrepreneurs Improvement Influence Leadership Setting Expectations Small Business Software business The Best Code Wins

Have you forgotten how to get better?

trust snape
Creative Commons License photo credit: mararie

Recently I had a tech conversation with someone I’ve known for at least a decade and have great respect for.

During a dumb conversation we didn’t even start, we disagreed about spaces in file names and software that doesn’t support them.

My friend is like the NORAD of user interface look and feel.

His work is beautiful and well-tested. If there’s a pixel off, he can see it at 100 yards and it’ll make him crazy until fixed. He noted that every language has syntax rules and if you disobey them, you get bit. The programmer side of me is rather well aware of that, but that wasn’t the side doing the talking.

What concerns me is the ever-present support for what once was in an industry that should be supporting what is, much less what will be.

Defense of the dark arts

It’s so easy to be trained to have low expectations.

Once folks are trained to accept less, some will defend it because it’s their normal.

The guy who started the space conversation was scolded by some of his peers for not playing by outdated rules and for making note of the shortcoming.

That’s why the space in the file name is such a good example. Spaces have been appearing in file names on Windows since Windows NT 3.5 arrived in 1994. For most Windows users, the first experience with these file names came with Windows 95. Worst case, the public has had access to software that can use file names with embedded spaces since at least August 24, 1995.

That’s 17 years,  one month and 12 days (and counting). Yet we’re still defending the inability to deal with it.

Why it’s important

When you turn the left faucet on a sink in the U.S., you expect hot water to appear. It’s an expectation set by standard behavior on almost every sink you’ve used.

Once you encounter a faucet that’s installed backwards (hot on the right), you automatically distrust the next one. And how many more?

Users become accustomed to the behavior of the products they use whether they’re using software or a screwdriver. When the failure to support common industry behaviors shows up in your product, it makes some of your customers wonder what other expectation failures should they be looking for.

Just like that, expectations are lowered and with some, the opinion of everything you do.

Are you willing to risk that?

Reinvention gone wrong

At odds with this risk is reinvention.

Hipster effect” aside, Apple products sell well in part because almost anyone can figure out how to use them. They’ve reinvented common products that by “conventional wisdom” couldn’t be improved.

Yet their iTunes software is the exception to that – illustrating the risk I mentioned.

Of all Apple products, iTunes is the least favorite among Windows users. iTunes has a knack for ticking off users in no time because it doesn’t “work like other Windows apps”, particularly where user feedback is concerned. Many Windows users won’t buy Apple products because of their experience with iTunes. Even Apple “fanbois” have trouble apologizing for it.

Unless you reinvent in a way that’s “Wow, so obvious, where has this been all my life?”, your reinvention (or lack of it) reflects on everything you do.

Expectations are powerful but fragile. Those who star at reinvention know they’re at risk, but the risk of standing still is far higher.

Inbox, railcar, udder, backlog

Where does that leave you? Your day is focused on emptying that inbox, railcar, udder or product backlog.

As you grind through day’s tasks, you’re likely focused on producing today’s revenue built on the last century’s expectations. Rightly so, since bills and payroll loom. Yet that daily effort is no more important in the big picture than carving out quality time to plan and produce for tomorrow’s customers and their expectations.

The type of change I’m speaking of goes well beyond the essential task of continuously improving day to day processes and outcomes.

Look hard at your advances in the last two years. Are they substantial or marginal?

Let’s define substantial: What would have to happen to your business to enable your products/services to produce 10 times more high-quality results for your customers?

Have you forgotten how to improve?

Automation Business Resources Buy Local Competition Entrepreneurs Management Small Business Software Software business Technology The Best Code Wins

Where are all the programmers?

Programmer's aid
Creative Commons License photo credit: dunkv

Yesterday evening I posted a small C# project on Odesk.

By noon today, I had 19 responses.

Most of them were qualified (a few were VERY qualified) and had passed enough of ODesk’s tests for me to know that they could do the job. In the various .Net test topics, several had numerous scores over 95%, with one showing a dozen or more top 10% scores.

Of those, several had 500+ hours of ODesk work, great recommendations from prior jobs and fairly well written replies.

East 19, West 0

Yet none of those replies from countries that you would consider English-speaking, nor were they from Western Europe.

ODesk also has language skills tests to make sure the contractor can speak the language of the person who hires them. In my case, English is required because my language skills are limited to programming languages, English and the occasional ability to read French. In written English, several of the applicants were at 95% or higher, test-wise.

I talked about this with a couple of U.S. based programmers today and wondered aloud if this was a function of Western programmers who have “better” things to do, or that they don’t do piece work. Maybe Western programmers feel that freelance sites are for “commodity programmers“. I’m just not sure.

Many of the previous ODesk jobs listed for applicants as successfully completed (by the happy buyer) were 500 to 2000 hours in length. Full-blown internal development projects, software products and so on. I suspect some of the work is commodity programming, but I seriously doubt all of it is.

The commoditization of programming is not a new situation. Friedman’s been talking about the flat world for as long as anyone would listen, almost…

Where’s the West?

The skills that make a Western programmer valuable these days is business knowledge, vertical market expertise, project management abilities, responsibility-taking initiative, vision AND tech skills, to name a few. Being “just a programmer” is how you end up competing with someone who bills at 30% of your rate.

Perhaps being a Western programmer by the definition above means you’re automatically busy working. I could make assumptions, but I’m curious what your thoughts are – where are all the Western programmers? For my part, I guess they’re busy. The .Net guys I know locally all have jobs or long-term consulting gigs.

PS: Late in the day, I heard from an Ohio-based guy via Twitter who offered to take a look if I sent him a link to the project. I had already assigned the task, but will keep him in mind next time.  In overtime, it’s East 19, West 1.

air travel Business culture Improvement Manufacturing Small Business Software Software business systems Technology The Best Code Wins

Have you perfected the art of flawless first time deployment?

Curiosity’s shadow through the lens’ dust cover. Credit: NASA

Anyone who has built something for public sale has felt both the pain and joy of deployment.

Last night’s Mars Curiosity landing was a deployment that every software team or product developer should be in awe of.

That highly complex, if not seemingly crazy Mars Curiosity landing plan went without a hitch.

The first Curiosity photo returned from Mars showed the rover’s shadow, taken through the dust cover of the lens.

Millions of lines of code. A multi-step time-sensitive deployment where the smallest mistake likely means that we leave a very expensive pile of broken, tangled metal on the surface of Mars.

And yet, it went perfectly.

Thanks to the University of Arizona’s HiRise project, we even have a picture of Curiosity’s chute deployment, despite landing on the side of Mars we couldn’t see from Earth at landing time last night. Simply amazing.

Curiosity hangs below her chute above Mars.
Photo credit: Univ of Arizona HiRise project

Perfect first-time deployment?

Deployment in the field almost always comes with challenges and adjustments.

How can you possibly deploy something perfectly in the field the very first time?

“Simple.” – By not doing it for the very first time in the field.

These things happened perfectly the first time, in part because of redundant systems, but primarily because of testing of all kinds done well before anyone built the device, much less fired it into the sky toward Mars.

NASA does the same kind of testing that we talked about last week re: Intuit’s 10 million lines of code.

Unit testing. Integration testing. System testing. Testing redundant systems. Simulations. Much of it automated so that nothing gets missed and everything possible is tested every single time it or a related component changes.

It’s not “simple”, but it’s what professionals do. Test. Everything. Not just manually, not just once the thing is done and ready to roll out the door. After every build. Automatically. Long before liftoff.

Congrats NASA.

Business Resources Competition Employees Improvement Leadership Management Productivity Small Business Software business Strategy systems Technology The Best Code Wins The Slight Edge

Stop waiting until you’re big enough.

Creative Commons License photo credit: aussiegall

This morning a friend pointed out this story about how QuickBooks maker Intuit manages 10 million lines of code.

The punch line is that they manage 10 million lines of code just like you should be managing your code.


Is your business using professional-grade methods and tools? Are you sure?

Intuit manages their massive code base using the same professional-grade methods that almost every software business should be using. Perhaps you’d choose different tools, but the process is the key.

What does Intuit process include?

Intuit uses continuous integration.

So can you.

Intuit’s continuous integration (CI) tool is Jenkins, an open-source product not unlike CruiseControl and CruiseControl.Net and numerous others. I use CruiseControl.Net. Use what fits you until it doesn’t.

But my programmers will never agree to that”, you say. Aside from wondering who runs the place, I suggest you review this discussion on getting developers bought in to continuous integration. You shouldn’t have to work very hard at it, if you’re working with professionals.

Intuit uses source control.

So can you.

Intuit’s source control tool is Perforce, which offers a free version. If you want something simpler or less expensive, there are plenty of options – including some very dependable free source management systems. Examples include Git, Mercurial, Kiln (a hosted version of Mercurial), Vault, Subversion and several others. I use Kiln and Vault.

Intuit manages multiple builds.

So can you.

You can do that with a source control tool in conjunction with your CI tool of choice. You could make this more complex, but really, it’s about builds and source management. And you *can* do that.

Why do you need multiple builds? For one, when your tools change. You have production code deployed. It breaks. You need to fix it, and you sure can’t wait until all of your testing is done on the new tool set. Check out the code with the old tool set, fix it, check it in, build it.

You won’t believe how simple this is, especially if you manage multiple toolset releases with source control. Your hair might even grow back.

Intuit automates code analysis and testing.

So can you.

They use Coverity in conjunction with their own in-house tools, but you can start today with FxCop, NDepend, Simian, Gendarme, nAnt, various CI tools, Test Complete and a host of other CI-enabled code analysis and test tools. You can use VMWare‘s Workstation for Windows or Fusion for Mac (or both, as I do) to manage the OS snapshots and provide the same consistent testbench for each set of tests without manually having to build a test system, run tests, restore and so on.

Avoid the drudgery just like Intuit does, without losing the benefits of greater and more consistent quality.

Stop waiting until you’re “big enough”

If you’re waiting until you’re “big enough”, you’re not only wasting time, but you’re slowing down your ability to get big in the first place. You can’t wait until you have 10 million lines of code to manage to decide to go pro. By that time, you’re either drowning in code and tests and builds or you’re history. Or maybe you’re surviving as a slave to your software.

For every hour that you spend manually building binaries, building installs, testing installs, testing your app and doing other grunt work that your competition uses CI and source control systems to manage, guess what your competition is doing? They’re spending their time coding, marketing, working with customers, planning strategy, sleeping and enjoying their families.

The earlier you incorporate professional methods and professional tools in your software business, the earlier you get out of “dig a hole and fill it up” mode.

One of the reasons you might not be doing as well as you’d like is that you’re still using the methods and tools that a little software business uses.

Go pro. Start today.

Business model Competition Customer relationships Getting new customers Lead generation Marketing Restaurants Retail Sales Small Business Software business strategic planning Strategy The Best Code Wins tracking

How to give MORE refunds and love doing it


Last time, we discussed steps you could take to reduce the number of refunds or “lost” sales you have.

The idea is that every refund or lost sale costs you money, but if you think about this in the big picture, it’s entirely possible that you want to give MORE refunds.

And of course, I have a story about that, because I used to be pretty proud of the fact that I could count annual refunds on one hand.

A conversation with Dan Kennedy changed all that. He suggested that if we had so few refunds that it was the subject of bragging rights, we weren’t marketing or selling hard enough. Otherwise, we should have more refunds – and the payoff for that would be far greater sales.

He was right.

We didn’t have to get pushy and do the hard sell thing, we simply had to step beyond a strategy of selecting just the right people to attract to our business and turning a crazy high percentage of them into customers.

When we widened our qualifying process just a little – not a lot – it was transformational. We adjusted until we found the sweet spot – and it paid off.

Yes, we definitely had more refunds, maybe two or three times as many – but that was still only 10-15 per year. It also resulted in substantially more sales, so it’s worth a try. Just don’t use this strategy as “permission” to use every living being as your almost-perfect prospect.

Remember Jeffrey Gitomer’s “People hate to be sold but they love to buy.” There’s a lot of meaning in that which goes way beyond turning off the hard sell.

Business culture Competition Customer relationships customer retention Customer service ECommerce Getting new customers Management Recurring Revenue Restaurants Retail Small Business Software business The Best Code Wins

How to cut down on refunds

Creative Commons License photo credit: TeryKats

Do you have problems with too many sales turning into refunds? Or almost-sales turning into no-sales?

Do your demonstration projects frequently fail to reach the buying stage?

Does return-friendly Costco look like a tough return desk negotiator compared to you?

Do people frequently add things to their shopping cart while on your website but decide not to buy them and click away? The industry term is “cart abandonment”.

Do you sell software by offering a free trial and think “if only 10% more people bought”, you’d be doing a lot better?

Do you lose sales or have refunds from people you think should have been perfect for your product?

If you answered “Yes” to at least one of these questions, you need to take steps to cut down on lost sales and reduce refunds. In marketing parlance, you want your sales to be “stickier”.

Where to look

The simplest way to start working on this is to look at the sales you lost. If you don’t keep track of when refunds occurred (by date, for example) and what caused them – start doing so.

Assuming you have a firm date-driven return policy, are you getting most of your refunds just before the end of your refund policy period? You might assume that you can’t combat this, but you can. Better qualifying of leads/prospects will help, at least in situations where you have that sort of buying process. Costco doesn’t ask if you can afford a 46″ LED television or if it’ll fit in your apartment/office, but not everything is sold off the shelf like that.

Doing well-timed things to help folks continue to see a high ROI out of their purchase will help. Training videos, calls or webinars delivered at strategic points in their timeline as a new customer, for example.

Imagine that you offer new car buyers a free oil change for the first year of ownership. While that starts off year one as a sales promo expense, it should end up creating a habit: “Change your oil here”, which produces long term service revenue and as a by-product gets your customer back into the store every 90 days or so.

If you fail to remind them about each free oil change, they might get it done somewhere else – breaking the habit before it starts. If you do the math, the revenue loss after year one is substantial. Worse, you may lose a future vehicle sale because that person isn’t eyeballing shiny new wheels once a quarter while waiting for the oil change. Make yourself an easy habit.

Trials and Tribulations

When it comes to products that are sold via 30 day trials and the like, cancellation timeframes should be examined closely. Just because everyone cancels on day 29 doesn’t mean they didn’t like your product. It might be that they underestimated how busy they were (imagine that) and never got to the point where they could give it a fair shake.

Or maybe they got confused, didn’t ask for help and gave up. That trial ends despite the fact that they were doing well with you until they became confused. Cancellation points can change as your offerings do, so pay attention. Sometimes the problem is as simple as helping people see the depth of the value you deliver.

Tiny little things, ill-timed, can devastate people’s confidence in your product or service.

Think about the last time you put something in a website shopping cart and then clicked away. The tiniest thing is enough to break your confidence (or attention) enough to say “Maybe next time” and cause you to click away. Do you watch to see what page is most frequently used just before a shopping cart is abandoned? That might be a clue that helps you fix a problem costing you thousands of dollars in sales.

Reducing refunds is really about catching the folks who might leave because you’re missing something. It’s not really about turning around a refund as it is doing a much better job of paying attention to the prospect’s needs as well as learning where the failure points are in the process people have to evaluate and use your product/service – and then addressing them.

Those failure points can be moved or even eliminated, if you pay attention.

Business culture Competition Customer relationships customer retention Customer service Improvement Marketing Positioning quality Small Business The Best Code Wins The Slight Edge

Are they sleeping well?

Do you know what’s going on in the minds of your customers?

We’ve been talking about invisible signals a lot lately, but sometimes the signals are far from invisible.

Back in the day, my software company called every customer once a month. We didn’t do it because it was fun. We did it because we felt it was critical that we knew what was on their mind and what their concerns were that month. A tiny side benefit of this frequent contact was that they didn’t expect every contact from us to be a sales call.

During these brief calls, we engaged in meaningful conversation to find out how things were going. Any concerns? Suggestions? Any upcoming issues that we need to be aware of? How’s business? Is your wedding season booking going well? (or whatever)

If you don’t know what’s on your customers’ minds, you’d better find out.

PS: Paying an ESL speaker to call them is the wrong solution, by the way. Whoever calls the client needs to be a native speaker in the client’s language – no matter what it is. This is not the place to save a buck.

Books Business model Competition Small Business Software business The Best Code Wins

The Best Code Wins?

Released the final draft of “The Best Code Wins – What’s wrong with your software business and how to fix it” to a short list of reviewers tonight.

Finally. It’s been a long effort. Giving birth probably isn’t the same, but this took longer.