Thoughts on transparency in software development
Corporate transparency has always been a lesson in balance, a constant struggle between altruism and self-preservation, and proves itself to be a different challenge to each company striving to stay as transparent to their customers as possible while maintaining their foothold in their space.
Nearly no other business is impacted by corporate transparency more than software development. Many applications we purchase come with a promise of future updates that are, generally, free of charge. This means that you’re not just investing in the features in the application that you know about, but are also investing in the features you hope will come. Typically, though, you do not know what features are on the roadmap. Most software companies do not let even their best customers know what is coming in future versions of an application unless the company is 100% sure they can deliver those features. In essence, you’re paying for something to be delivered that you don’t know what it is and you don’t know when you’ll get it.
Which leads us to the issue at hand… how do you know when to invest your hard earned money and time into an application?
Some applications are more important than others and, as such, deserve more scrutinization than others in this area. Important applications are the ones we use every day. Even more important applications are the ones that we use all-day every day. But no other applications are as valuable as the ones that we use to make money and have them open all day, every day. The need for transparency should be measured by the importance of the application in a user’s every day workflow. However, it seems like the opposite is true.
Developers of free applications are generally amazingly forthcoming. Open source applications are good examples of this. However, the applications that we generally rely on every day to put food on the table – those companies are generally tight lipped until you see a press release about a new version being released (often times not even on the company’s Web site).
The investment goes beyond dollars and cents, though. Purchasing an application typically isn’t even required to see if the application is right for you. Most applications come with a trial period that gives you enough time to decide if the application will work for you. However, with these types of applications you aren’t just making a decision about whether an application works for you today – but whether it will work for you tomorrow, next week, and next year. Also, you may measure it against how many other applications you will need to buy to complete your workflow.
Not to belabor the point, but lets follow this a little bit further. Some tasks take several applications to accomplish. For example, receiving a photo from a family member via email and printing it to put on your office wall is a task that relies on several applications and pieces of hardware to do. First you receive the email in your email client. Attached to this email is a photo, which you open with a photo viewer (perhaps Preview on Mac and “Explorer” or some crappy thing on Windows (sorry, this is my blog and I am free to call anything on Windows crappy whenever I want, b’okay?)). Then you ask to print it which sends it through, perhaps, your printer software or the printer application included in your operating system. The information is sent to the printer and it pops out.
Lets say you had to buy each of those applications. You knew that you needed an email client, an image viewer, and a printer application. You purchase all three because you need to. Over time, however, the email client is “upgraded” to include the image viewer. This is excellent news! You now only need 2 applications to accomplish the same task you needed 3 for. But wait, you purchased the image viewer. Suck. Next thing you know, the email client is updated again to include the proper features to communicate with your printer for the specific purpose of printing a photo. Superb! Now you only need 1 application where you needed 3 and that 1 application does a much better job than the 3 did a few months ago. For most people who use and care about software the above scenario is utopian in nature. If this ever happened with some of our most used applications there wouldn’t be a single complaint. But I think the process is broken. And it may not be something that can be fixed easily.
Would you have purchased all three applications if you knew that the email client was going to be updated within three months to include the same features? If you knew that an email client could include all three of those features would you have hunted around for a competitor that already included all three of these features?
More pointedly; if you knew what was going to be included in future updates of your most used and important applications would you be more likely to be loyal to that application with both your wallet and the time you’ve invested in your workflow?
I think you would and I think that is why we should call on software developers to be more open about what they are planning to be in future updates of their products. I have several ideas on how this could be done – but I feel as though each company (whether an indie developer or big company) will solve this issue in their own ways. However, I’ll share one of my ideas here.
The struggle with altruism and self-preservation is a valid struggle. There are two groups of people, however, that I think need to be informed of upcoming software updates. Potential buyers and existing customers. Potential buyers may not be able to get the same information as existing customers, since the very real risk of letting one’s competitors know of upcoming features exists, but they should have the proper tools in place to help them make an educated decision. This, for the most part, is already being solved. Full featured trial software combined with free point-release updates is probably one of the best deals in the history of mankind. Name any other product that you’ve ever bought that you can try for free for thirty days and that you get free updates to (sometimes for years). Potential buyers are fairly well taken care of. They get to try the product, every single feature, for an entire month before they decide if they want to pay for it. And they know that they will get at least a few new features and probably a fair amount of bug fixes before their license expires.
Existing customers, however, are sort of left in the dark as to their future with the product. They know that they will get a few free updates but that don’t know what those updates will consist of.
Of course there are exceptions to all of this. Both good and bad. Some companies publish their roadmap right on their site. Others don’t offer free trials or, if they do, offer crippled versions of their products.
Did I say I was going to offer a solution to this issue? With potential buyers being fairly well taken care of lets focus on existing customers. I think having a mailing list or, if your company is really forward thinking, a blog that could offer “what’s next” to existing customers would be a very big step in the right direction. Most software developers will tell you that the list of features that will be done in the next version of their products is typically done long before that version ships. Then, after some development, the list gets smaller and smaller until it is “locked”. The feature list being locked means that no other features will be added to the version. I believe this time period would be a good time to let your existing customers know what is coming in the next version of the product. The earlier the better but you wouldn’t want to let them know something is coming that won’t make the cut. Some companies already do this but many more should.
I think waiting to let the world know about an upcoming version’s features until you put together the marketing for the version is a mistake. If your customers read about the next version’s features of a product they already ow
n on another blog or online magazine then you are not treating your existing customers any better than people who do not own any of your products. Marketing to gain new customers is essential to your company but it shouldn’t be considered communication with your user base.
What does this do? It gives your existing customers a lot of power. If the company that made the email client in our example above let their existing customers know that they were going to include an image viewer in the next update, it could have saved you some time and money.
Based on my thoughts on transparency in software development I decided to ask one of my favorite Macintosh application developers, Panic co-founders Cabel Sasser and Steven Frank, a few questions about Panic’s incredible Web site development application Coda. I’ll be posting that interview on Thursday. How is that for transparency?