•
Working Backwards
Lately I keep running into instances where different worlds coincide with a common theme. The theme I’m running into lately is flipping the funnel. Sometimes when you hit a stumbling block, it helps to flip the funnel and work the problem backwards.
For example, consider these three topics:
1. Improving e-commerce sales.
2. Reducing manufacturing cost and lead time.
3. Bringing a software product to market.
Focus on Checkout
In the first case - selling products online - it’s a common mistake to work the process from the front end. The standard logic goes: get more traffic, which will result in more downloads, which will get customers to the purchase page, which will result in more sales.
When you start out, this makes sense. But once you have a steady level of traffic, driving more traffic is expensive. Then you must put more effort into optimizing the landing page to drive downloads. Then, you continually improve the product to drive visits to your checkout process. Then you get the improved revenues, right?
But if you look at it in reverse, you would start with your checkout process. According to Closed Loop Marketing, the average drop-out rate during the checkout process is nearly 60%. What if, instead of driving 10% more traffic to your site, you fine-tuned your checkout process to convert 10% more customers?
If you put advertising money into driving 10% more traffic, you will need to pay that every month. And not all the leads would be well qualified. But putting the effort toward improving your checkout process provides a bigger payoff. The visitors are pre-qualified (after all, they already were interested enough to click your buy button), plus the rewards will be felt long after the improvements are made.
Fishing in the Value Stream
In the second case, I’ve been re-reading Learning to See, a book about Value Stream Mapping. Value Stream Mapping is a tool to analyze manufacturing processes (and recently service-based processes) in order to reduce cost and lead time. The process steps are laid out from start to finish, but the analysis works in reverse order. This is an over-simplified description, but essentially you start with customer demand and work your way back upstream to determine what you need from the preceding process and identify areas to reduce waste.
Write the Press Release First
The third case has to do with my own efforts to develop a new product. I wrote the spec, then started developing to it. It’s hard to describe, but there was something missing. It just felt like bits and pieces of related functionality without any glue.
Then I came across an old blog post by Werner Vogels, CTO of Amazon.com. In it, he lays out 4 steps to the product definition process:
Step 1 - Write the press release. He says, “Writing a press release up front clarifies how the world will see the product - not just how we think about it internally.”
Step 2 - Write the FAQ.
Step 3 - Define the customer experience.
Step 4 - Write the user manual.
Normally, I’m like many developers who market there own products. The press release is practically an afterthought. After coding and testing is done, you want to say, “Phew! That’s a relief. I’m done.” But you’re not. There’s a lot of work left to do, and having to write the press release afterward hits you when you’re running out of steam.
So I took Werner’s advice and did steps 1-3. (OK, so I skipped #4. So sue me.) Honestly, I wasn’t expecting it to have a dramatic impact, but surprisingly it did. I was able to refine what my marketing message would be. In doing so, I was able to refine what the user experience would be in a way that was much more logical and congealed.
I was less impressed with writing the FAQ, because those questions are always contrived until you actually get asked real questions by real customers. But overall, I would definitely recommend steps 1 and 3. It’s one of those things that people read about then forget, but if you actually try it, you’ll be glad you did.
You Might Have Guessed This Was Coming
Yes, I’m currently revamping the BreezeTree checkout process. Not only do I want to improve conversions, but I also need a system that works better for multiple product offerings because I’m working on the product that I pre-wrote the press release for. And, of course, it just happens to be a Value Stream Mapping edition of FlowBreeze.
•
Following MacWorld, Reg Developer started a rumor [1] that VBA would be going away from future versions of Microsoft Office for Windows. The speculation was based on Office 2008 for Mac dropping VBA (a big blunder by Microsoft, IMHO) and on Microsoft dropping their licensing program for 3rd parties to incorporate VBA into their applications.
Sometimes the internet is like a Petri dish for The Stupid Virus. Rumors grow and spread rapidly. This rumor spread wide enough that it even caused Microsoft to take notice. The Excel team at Microsoft posted a clarification [2] that VBA for the Windows based version of Office won’t be going away in the foreseeable future.
This is a good thing.
I’ve read speculation here and there about the future of VBA for a while now. Partly, this was due to the Mac 2008 VBA issue [3] and partly this was due to the huge push Microsoft is making for SharePoint services, relegating Office VBA development to the role of the red-headed stepchild. But no official word from Microsoft was issued until now. It took a widely read site like The Reg to make Microsoft stand up and take notice.
This started me thinking. What about all the other things developers wonder about?
I’d like to port FlowBreeze from VB6 to .NET, but there are still some stumbling blocks. The biggest hurdle is the lack of official support for Excel 2000. The next biggest hurdle is that COM add-ins run in the Excel process, and only one version of the .NET framework can be running in a single process space. If you develop using .NET 2.0 and the customer also uses an add-in based on .NET 1.1, then problems can occur. There are ways of dealing with these problems, but it would help if I had more information on which to base decisions.
I, and a lot of other developers, would love to know the penetration stats for the various .NET frameworks. And what about the user stats for Office 2000, XP, 2003, and 2007? Solid market data on that would be great.
Maybe The Reg can help us out. I’m sure other people could think of more data Microsoft could share to aid the developer community. Could we get a few more rumors out there?
[1] http://www.regdeveloper.co.uk/2008/01/14/office_mac_08_vba/
(See the footnote that the article has been updated. In this case, ‘updated’ means ‘completely rewritten’.)
[2] http://blogs.msdn.com/excel/archive/2008/01/16/clarification-on-vba-support.aspx
[3] http://www.schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/
•
[This is a story about Bob. Bob is not his real name, but he is a real person. The events here were gleaned from intermittent conversations and pieced together as accurately as I could.]
I’d never heard the term “lifestyle business” until I met Bob. It was a few years ago, not long after he started a software company with the goal of being bought out. I told him about my company, and that’s when he introduced me to the term and explained the difference between a startup and a lifestyle business.
When I first met him, Bob was struggling to get off-the-shelf versions of his products to sell, so his company kept afloat by consulting - mainly providing customized implementations of their core product.
Finally they hit pay dirt when a golden trifecta of companies each bought multiple team licenses for his product. I won’t name the golden trifecta, but the three companies make chips, make computers, and sell the software that runs the computers, respectively. This got the attention of some national players, and Bob’s dream of selling his software company for a big payoff began to take shape.
Several suitors made preliminary offers, but one stood out. We’ll called it BigInvestCo. It had a track record of success and made the best offer. So he said thanks but no thanks to the other outfits and settled on BigInvestCo.
Then things slowly went south. It seems that these masters of enterprise at BigInvestCo were con men in $2000 suits. They suggested that the buyout price would be in the “set for life” range. After Bob had said no thanks to the other suitors, BigInvestCo lowered the buyout figure by half - which still would have been very good money. Following that, they did the due diligence and the final offer was to be put together. And that’s where things went bad.
The initial offer (which I assume was non-binding) was back in June, and BigInvestCo told Bob they hoped to close the deal by the end of the month. As part of the deal, he and his team would be given positions in a newly formed company, which would be a subsidiary of the BigInvestCo’s existing business. But the existing channel partners would be replaced by their in-house sales channel, so there was no need to keep nurturing them. Those ties were severed.
The owner of a startup is the rainmaker. Bob had hired a few salespeople, but none of them had the passion and understanding of the products to close deals like Bob did. But with Bob spending weeks away from his business while trying to negotiate the deal, the sales pipeline started to dry up.
Every time the deal seemed to be on the verge of closing, BigInvestCo used all kinds of delaying tactics and legal maneuvers designed to eat up time and legal expenses for Bob. With the sales pipeline sufficiently dry, a payroll to meet, and Bob’s finances getting tight, BigInvestCo came back with an offer at 10% of the June offer (i.e., 5% of the “set for life” figure).
I have to assume that hope overtook logic, because Bob plowed on, convinced he could still pull off a great deal for his company. Then one night, Bob’s out for dinner and drinks with BigInvestCo’s lawyer. After one too many, the lawyer let it slip that this is how these deals are done. They get the prospect all charged up, then as the deal progresses BigInvestCo does everything possible to bleed them out. When the seller is at the point of desperation, they make a lowball offer.
That was four months ago. I just found out the deal has gone tits up. I could tell it was painful, so I didn’t press for details. I don’t even know whether his company is still afloat.
At this point I suppose I could draw some conclusions or point out Bob’s missteps along the way. I assume readers can do that themselves. But I do think that starting a company solely to sell out is a long shot. You’re going up against people that do this for a living. They have deeper pockets, longer time lines, and less risk than you do. This is their game. They’re better at it than you.
Meanwhile, my quaint little lifestyle business looks better every month.
•
I’m always looking for new avenues to get the word out about FlowBreeze, so recently I ran an experiment using StumbleUpon’s advertising program. If you’re not familiar with StumbleUpon, basically it’s just a random site re-director. StumbleUpon users are served up random pages based on their preferences and demographics. If they like a page, they can give it a thumbs up, tag it for their personal bookmarks, or write a review. On the other hand, if they don’t like a page, they can give it a thumbs down. The more thumbs up a page gets, the more frequently it is served.
Occasionally they are served sponsored pages, which is how the advertising program works. They charge $0.05 per visit with a 100 visit per day minimum. When you sign up for StumbleUpon advertising, you can specify the following (see image below):
- Target URL.
- Category. (I tried both the Software and Shareware categories)
- # Visits/day (100 minimum at $0.05 / visit = $5/day minimum).
- Demographics (male/female/both, age, country, state, and city)
My Stats:
- Visits: ~500
- Downloads: 0
- Purchases: 0
My Reviews:
- 3 thumbs up.
- 5 thumbs down.
- Telling comment made by one reviewer: “Boo proprietary software.”
Why I Did It:
1. Because I love StumbleUpon. Of all the social bookmarking sites, it’s the only one I truly use and dig (pun intended).
2. I have actually purchased items from pages I’ve Stumbled.
3. BreezeTree.com has been Stumbled in the past and vistors have converted.
Key Downsides:
- Targetting is too broad.
- Audience probably looking for freebies.
- Targetting is limited to one country or all countries. There is no subset for a single campaign.
- Ads start running at midnight, so targetting global visitors will eat up your visits before the U.S. wakes up for breakfast.
Who I Would Recommend It For:
- People with a lot of money to throw around.
- Sites trying to build a buzz.
- Sites that offer free or cool content.
- Site hoping to gain gain backlinks.
The Bottom Line:
My $25 would have been better spent lighting a $5 cigar with a $20 bill (or better yet, a $20 cigar with a $5 bill).
•
Fog Creek released a new version of FogBugz this week with something called Evidence Based Scheduling. It feeds project tasks and developer characteristics, along with historical data, into a Monte Carlo simulation then builds a probability distribution for project completion.
By coincidence, I was reading about statistical methods for project estimation several months ago. (All I was looking for was a probability distribution that a typical project would meet a set timeline, but you know how easy it is to get sidetracked on the web.) It turns out there are a number of stochastic project scheduling techniques that use Brownian motion (aka random walks), Kolmorogov extensions, and a number of other things that bring about bad flashbacks to my Applied Statistics class (hint: “Applied” in academics means “Theoretical” in the sane world).
In short, it’s the kind of stuff that makes my brain throb. So kudos to Joel Spolsky and the team at Fog Creek for pulling this off (assuming it works as advertised).
But, one of the things that I told myself when I started BreezeTree Software is that I would build to a feature list, not to a set schedule. I never wanted to feel rushed to get a new version out the door before it was feature complete.
I’m starting to realize, though, that this philosophy makes no sense. The problem with it is that the list of planned features exists in my mind. If you don’t make any commitments about a particular feature, releasing a new version without the feature wouldn’t disappoint anyone or break any promises.
As I’ve said in other posts, the road to FlowBreeze 2.0 was pretty rocky. I had “completed” version 2.0 back in early March.
Then I threw it all away.
And I feel fine.
I made the decision at the earlier juncture to pull back 2.0 and refactor the core for a variety of reasons. They were are solid reasons from both a technical and business perspective, so I don’t regret them. As the months wore on, several epiphanies sprang to light and complications like the Software Passport (Armadillo) compatibility problems arose. These pushed the schedule out again.
When I sat down to write up the 2.0 release announcement, I looked at all the features I’ve added. Many of them were completed months ago. Of those, most relied on the new core but others didn’t. So this begs the question, by not releasing the features that were already complete, was I depriving existing customers of valuable improvements just so I could feel it was “feature complete”?
Understanding Opportunity Cost
I made the mistake of telling several customers that FlowBreeze 2.0 would be released by the end of the August. I missed that target date. If I had cut a few features I could have made the target date. As I said, one of my goals was to release to a feature set instead of to a schedule, so I chose not to.
I think this is one of the toughest decisions indie software developers face. It’s easy to become emotionally attached to a feature or two and think they must make the next release. It’s also easy to always view your application as feature incomplete compared to the long term vision you have of it. Meanwhile, customers are blissfully unaware of that feature complete vision in your head.
And that’s where the concept of opportunity cost comes in. Opportunity cost is one of those basic concepts you learn in school or on the job. In a nutshell, allocating resources to one thing means you can’t allocate them to some other thing. That plus the unrealized benefits from the path not chosen are the opportunity cost.
There are probably better definitions out there, but it doesn’t matter. Because you’ll never really understand opportunity cost until you run your own business. When you work for a company or organization, those opportunity costs get absorbed elsewhere, and you usually don’t feel the consequences. When you run your own business, you feel the consequences right in your pocket.
So spending more time on development means spending less time on marketing. Likewise, having longer release cycles means less marketing bursts in the form of press releases, announcements on your blog, site submissions, or simply cool new benefits you can showcase on your product page.
If you don’t work to a schedule, you are not controlling your most valuable asset. The biggest opportunity cost decisions you face are for the allocation of time.
That Damn Monkey
So having already admitted that the cymbal-banging monkey in my brain was wrong about the “build to features” scheduling mentality, I will try (it’s hard!) to switch to a time based release mentality. Ultimately, it would be nice to build a given feature set in a given amount of time, but past history leads me to believe that I would be wrong 99% of the time.
So I will monitoring the airwaves to see what others are saying about FogBugz’ Evidence Based Scheduling. I’d especially be interested in any one or two man shops that use it. Hopefully the feedback will be positive, and it won’t take forever to build up a sufficient data bank of historical inputs.
•
Update: The method described below will cause IE7 to drop the extension. A modified version is pending.
Until recently, I had no idea that IE6 cached downloads. I knew page and image caching were issues, but I didn’t know if affected exe’s and zip’s as well.
FlowBreeze 2.0 was released 11 days ago, putting some of the 30-day trial users in the bubble. They were using the 1.4 version, so they’d come to the site, download the new version, and install … Version 1.4?!?
One customer didn’t think I’d believe him, so he took screenshots of each step: clicking the download button, saving to the Desktop, and running the setup file, which clearly said version 1.4 on the screen.
Thanks to the folks on the BoS forums, I figured out the problem and wrote a little Javascript to resolve it. If you are running dynamic pages, server side scripting would be more robust. But if you’re all HTML like I am here at BreezeTree then this should work in a pinch:
function UpdateDownloadLinks() {
var i;
var linkLength;
var linkType;
var linkCount = document.links.length
var randNum = Math.round((Math.random()*10000));
for (i = 0; i < linkCount; i++) {
linkLength = String(document.links[i].toString()).length;
linkType = String(document.links[i].toString().toLowerCase()).substring(linkLength, linkLength - 3);
if ((linkType == "exe") || (linkType == "zip"))
document.links[i].href += "?fid=" + randNum;
}
}
(N.B.: I haven’t played with Javascript in years, so if this code sucks, leave a comment below and let me how to make it unsuck.)
The script downloaded by clicking here.
•
Until this past week, I’ve never been able to tell whether AdWords was paying for itself or not. Somewhere between my ads and the payment processors, my tracking lost its way. It all hinged on a) the tracking working through the payment processors or b) the customer clicking the link to return to the BreezeTree web site after the transaction. Based on what I’ve seen in the past week, I’d estimate that those two methods were working about 10% of the time.
Tracking concerns anyone running a web based business because the cost of Google’s advertising is going up up up. They just reported a 46% rise in 3rd Quarter profits. While the boys in Mountain View are getting richer, the rest of us are wondering whether we’re just throwing money away. You think that the Chinese government is rerouting Google traffic to Baidu today in retaliation to Bush’s meeting w/ the Dalai Lama? Nah! My money’s on some Chinese hacker ticked off over the rising cost of AdWords.
To improve tracking, I decided to change the FlowBreeze order confirmation email. The old FlowBreeze confirmation letter included the registration information and a long list of instructions for downloading, installing and registering the software. It also contained a mini getting started guide. I decided to go with a minimalist approach in the email but link to a confirmation page (where the tracking code is). The new email looks like this:
###
Dear [BUYER'S NAME],
Thank you for purchasing FlowBreeze flowcharting software. Your product registration information is as follows:
[REGISTRATION INFO]
If you haven’t already done so, we strongly encourage you to visit the confirmation page:
[CONFIRMATION LINK]
On the confirmation page, you will find…
- A link to download FlowBreeze (if you haven’t already done so).
- Installation and registration instructions.
- How to get started with FlowBreeze.
- Over 100 flowcharting templates.
- Links to help and support.
Again, thank you for your order. If you have any questions, please don’t hesitate to contact us.
Sincerely,
BreezeTree Software
###
With this system in place, I’m estimating that close to 100% of my customers have visited the confirmation page. Suddenly the light is on. AdWords is actually paying for itself - much better than I thought.
There are some flaws with the system. I’m using both Google Analytics and Google AdWords tracking systems, and neither does a great job of tracking. So I have to look at them both. My Venn diagram isn’t as cool as any of Jessica Hagy’s (my fav), but basically the tracking looks like this:
I’ll admit I don’t understand this because both systems are javascript based and placed at the bottom of the confirmation page. I cross referenced my own sales data vs. my server logs vs. Analytics goal tracking for AdWords vs. tracking shown on the AdWords Campaign Management page. Of the sales that come from AdWords clicks, some are tracked only by Analytics, some are tracked only by AdWords, and some are tracked by both.
So to get an accurate total you would need to determine A + B - A Intersect B. Figuring out that Intersect number on a regular basis is going to be a real pain.
Overall, I would say the conclusions to be had are:
- Give your customers a reason to visit your confirmation page.
- Offer something free for their effort (in my case, the 120 flowchart templates).
- Don’t rely on just one of Google Analytics or Google AdWords tracking systems.
- Don’t rely on Google Analytics for your web traffic analysis (the holes in this data reaffirm my opinion that Analytics sucks).
•
Fireclick has published some interesting numbers on software conversion rates on their site:
http://index.fireclick.com/fireindex.php?segment=9
Fireclick is a web analytics company owned by Digital River, which owns a huge chunk of the payment processing market for software vendors. The data is compiled (anonymously) from all of Fireclick’s clients across different sectors. The software sector includes benchmarks for overall conversions, keyword conversions, email conversions, and many other interesting stats that help answer the “how am I doing?” question.
Of course, every business is different. You’ll glean only so much from the data, but it’s interesting to peak at anyway. And 1yr graphs confirm what everyone in the software business already has a good sense of - sales peak in March and dip August. At least it’s gratifying to know the climb upward is beginning this time of year.
•
Someone on the Business of Software forum asked how others motivate themselves to get working. This is a timely question. The jump from FlowBreeze 1.x to FlowBreeze 2.0 has been a long struggle. The code base has grown 3X and of course that doesn’t include the re-writes and thrown away code. Facing burn out in the final stretch, I’m pulling out every technique I can think of to get 2.0 out the door.
Below are the techniques I’ve been using. They don’t come from some motivational or time management book, but I’ve found they work for me. YMMV:
- ID all the mundane TODO’s that don’t require much thinking. Do those when you’re tired or lazy.
- Start writing your help file. It’s never too early to begin, and if you put it off until the end you’ll shortchange the effort. Some people might fit this under #1 above, but if you think writing a help file doesn’t require much thinking then you’re either a naturally good tech writer or your user documentation sucks.
- Edge into the periphery of tough problems. Pseudo code, helper methods, data structures supporting the tough problem - whatever it takes. Eventually they’ll suck you in, and you’ll forget that you were tired.
- Print out your existing code, sit in a comfy chair and review it. Make notes in the margins. It’s productive, you’ll find bugs or inefficiencies, and often you’ll spot something that motivates you to take immediate action.
- Back to the comfy chair. Make a list of all your TODO’s and break them into the simplest possible tasks. Find the easiest one and tell yourself you can’t take a break (or go to bed) until you do that one little thing. Typically, you’ll finish it then knock out a few more. Often, you’ll knock out a lot more.
- Use the technique Jerry Seinfeld motivated himself with to write new stand-up material. Keep a calendar and tell yourself that everyday you need to do at least one thing on your application. When you’ve done one thing, you can place an X on the calendar. The goal then becomes never to break the chain of X’s.
- Sit down and work. Sometimes the “just do it” thing really is the best motivator.
•
The Business of Software blog posted Part II of their microISV survey. (Part I van be found here.) I have to admit that I was surprised by some of the low revenue numbers. But I’m one of those obstinate people who refuses to believe something when it doesn’t fit his world view. At least for a while, anyway.
Successful people are often too busy to spend time on forums, so they wouldn’t even be aware of the survey. Others just wouldn’t be interested. Business is war - why share data? My neighbor runs a successful microISV, and he doesn’t hang out in any online communities. He’s too busy. Scale that to the globe and you’ll have a good idea why I think the results of the survey may be skewed to the low end.
Still, I’m a data junkie and there are several data points I’d be interested in seeing. Are the microISV’s with two or more people more successful than one person shops? How do revenues correlate between B2C versus B2B apps? Of the successful companies, what’s the breakdown between those selling a small number of flagship products or a handful of smaller products? I have a gut feel for each of these, but I’d love to see the numbers.