Micro-ISV Insights BlogLooking for the Swift To-Do List Blog?

What we learned during our Micro-ISV startup journey
A blog for mISVs, startup maniacs, and everyone in the software business.

Managing Virtual Machines Efficiently in VirtualBox

Testing your software on different system configurations and versions of operating systems is a good way to improve quality of your application. But how to do this in practice?

Installing multiple operating systems on your computer might solve the issue but you won’t like it. It will cut your hard drive into multiple partitions and eat free space from the partition used by your primary system. Also managing such setup is not easy. Each OS will update differently. You will need to install required applications as many times as many operating systems you will install.

In addition, this becomes more difficult if your software depends on another product. Which of course has also different versions and does not offer portable deployment. What than?

Fortunately, Virtual Machines has been invented. However, managing them in efficient way might be very tricky.

This article will describe my current setup of virtual machines in VirtualBox and best practices which I have came up with.

As a developer you will probably need to work sometimes with different systems to test something, debug something or check something. For this purposes, I recommend you to use VirtualBox. I won’t describe how to create your first Virtual Machine (VM) as I expect you are already familiar with it. This article is for those, who are now struggling with their VMs and ask how not to make mess of them.

In short:

  1. Learn how to use snapshots, use them a lot.
  2. Think in advance (this article is good way to start).
  3. Learn how to use clones.

Snapshots

What are snapshots? Snapshot is a saved state of your virtual machine to which you can revert any time. It’s like restore points in Windows but on a very base level – on VM level. You can take snapshot from powered off system as well as from running or paused system. Basically, it will save current HDD state, RAM, processor state, etc. of your virtual machine. This can be very useful.

After snapshot is taken, any changes in VM are recorded as difference to last snapshot. The result is that no data are duplicated after taking a snapshot. This is an important feature to keep in mind.

Snapshots are composed into a tree. Each snapshots has parent snapshot set, except for the first snapshot which is the root of the tree. What it means? When you install/configure/do something in your Virtual Machine and take snapshot of that it will be present in all derived snapshots. That is another important feature worth mentioning.

Best practices for snapshots:

  • Again, use snapshots a lot.
  • Prefer snapshots of powered off system to paused or running system. Even though it’s inconvenient to setup it will save you some hard drive space.
  • Fill in descriptive snapshot names and description. Really, do it. It’s important not to lost track of changes made by a snapshot.

Thinking in advance

This is closely related with the previous section. Try to think of all supplementary software or configuration you will need in future while working with your virtual machine. If you install it in some base snapshot, you won’t need to install it multiple times again, which is both annoying, time consuming and space consuming.

By supplementary software, I mean all useful applications where you don’t need to track their version. It might be 7-zip, Java, PDF viewer, text editor, Total Commander, or even IDEs.

If you forgot to install into the common snapshot some software you will need, you have two options:

  1. Install it separately on all derived snapshots (which will make you swear).
  2. Remove all derived snapshots and correct your base snapshot, than recover deleted snapshots by manually making changes again (will will make you swear even more, and maybe destroy things in reach).

Therefore think twice before branching snapshots.

Best practices for thinking in advance:

  1. Install all supplementary software at base snapshot.
  2. Consider using Ninite. It will install most common applications for you, and you won’t need to go through every single installer. It will save you a lot of time.

Clones

Cloning your virtual machine will result in a copy of selected virtual machine at current state or selected snapshot. There are two types of clones, primarily the latter is similar to snapshots:

  • Full clone
  • Linked clone

Full Clone will copy all the virtual machine data and make a new machine based on this copy. Therefore full-cloning will take up as much space as the base virtual machine takes. All virtual machine files are duplicated.

Linked Clone will create a new virtual machine, but virtual hard drive won’t be copied. Instead, a new hard drive will be made and will link to the base virtual machine hard drive in given snapshot. Linked clones are therefore space-efficient. It’s like making snapshots but with new virtual machine being created.

Best practices for Clones:
Prefer linked clones to full clones (it will save you hard drive space).

  1. Understand differences between clone types
  2. Prefer linked clones to full clones (it will save you HDD space).

Example

Putting all the advice together, I will show you an example how to manage virtual machines:

In this example, let’s assume we need to test an Office Add-In which would be compatible with all versions since Office 2003. That counts 6 versions (2003, 2007, 2010 32-bit, 2010 64-bit, 2013 32-bit and 2013 64-bit). We do not have any VMs installed yet.

Creating base virtual machine

  1. Create new virtual machine called “Windows XP Sandbox”.
  2. Install operating system to the machine.
  3. Log in for the first time and do not install any updates.
  4. Activate operating system.
  5. Configure UAC (turn off most probably).
  6. Configure desktop icons.
  7. Configure task bar (you might want to turn on Quick Launch).
  8. Configure your mouse and keyboard (you might want to turn off mouse acceleration).
  9. I recommend you to turn off system restore at this point.
  10. Turn on Shared Clipboard and Bidirectional Drag’n'Drop. Even though Guest Additions are required for this features to work, the configuration will be stored in snapshot and you won’t have to think about enabling this features later.
  11. Also configure Shared folders ASAP.
  12. Clean up hard drive from temporary files.
  13. Unmount all mounted CD/DVD images.
  14. Turn off the machine and take first snapshot of the machine called “Raw Install”.
  15. Run machine and install the VirtualBox Guest Additions. Still do not install any updates. Restart and adjust resolution, than turn off VM.
  16. Clean up hard drive from temporary files.
  17. You might want to place shortcuts to shared folders to your desktop.
  18. Unmount all mounted CD/DVD images.
  19. Take second snapshot called “with Guest Additions”.
  20. Run machine, install all available system updates and clean up hard drive.
  21. I also recommend turning automatic updates off. Otherwise they will be bugging you every time you start VM after some time it has been inactive.
  22. Unmount all mounted CD/DVD images.
  23. Turn VM off and take third snapshot called “Updated Install”.
  24. Run machine, install supplementary software (eg. using Ninite), clean up hard drive and turn off.
  25. Take fourth snapshot called “with Apps”. I recommend to include installed apps into snapshot’s description.

This machine represents “virgin” installation of operating system with supplementary software. You might reuse it any time later. I think you have the idea.

Installing Office VMs

For each Office version:

  1. Create linked clone of the base virtual machine created in previous section and name it “Windows XP Office [version]”.
  2. Run machine and install given Office version and turn off.
  3. Finally, take snapshot called “with Office [version]”.

Conclusion

I hope you found this article helpful and you got the idea. Management of your virtual machines should be now easier and less frustrating.

Some final notes:

  • Yes, you will need one base virtual machine for each OS you want to play with.
  • I’m not sure if installation of your IDE should be included in base snapshots or not. IDE is space consuming and you won’t need it in most of the cases.
  • If you use shared folders, share them in base snapshots as this information is also stored in snapshots.

Related Posts:

stdl

Swift To-Do List 9

The ultimate to-do list and notes software for Windows.

The new ISVCon

On July 13-15, 2012, a software conference called ISVCon will be held in Reno, Nevada.

It’s the #1 Conference for ISVs. ISVCon is the successor for Software Industry Conference (SIC). I think that the new name is much cooler.

You know how to write software. Selling it, and sometimes prepping it for sale, can be the challenge. That’s where ISVCon comes in.

ISVCon is a conference to help you with the things they don’t cover in programming books. Things you need to build a successful software business.

See the list of talks/sessions here – there are some very interesting speakers!

On ISVcon, you will:

  • Learn from other mISVs and experts
  • Network with other mISVs and people in the software business
  • Get inside information not available freely online

If you are running your software business, I think that this might be the most useful conference you will attend in 2012. You know, you will be getting the sort of ideas that can eventually double your sales there.

Related Posts:

stdl

Swift To-Do List 9

The ultimate to-do list and notes software for Windows.

Appillionaires

Appilionaires
I’ve been reading a lot more since getting Kindle. It’s no wonder – Kindle is extremely convenient, and I can buy and start reading any book literally in less than 60 seconds, even when there is no Wi-Fi (Kindle comes with free 3G internet access). To this day, this is still mind-blowing to me. I used to wait for 3-4 weeks for books to arrive to Czech Republic from Amazon in the past.

As a software author, the little book called “Appillionaires” written by Chris Stevens has caught my attention and found its way to my Kindle. Just as Kindle revolutionized the book industry, the Apple App Store has revolutionized the mobile applications industry. Let me share with you what I learned in the book.

Appillionaires – How it all started

The story starts with the iPhone. Without iPhone, App Store simply wouldn’t be possible. Before iPhone, the carriers had strict control over the design and functionality of cell phones. Cell phone manufacturers had to stick to hundreds of pages of specifications; otherwise carriers wouldn’t distribute and subsidize their phones. Apple’s first attempt at smart phone was called Motorola ROKR. Because Motorola and the industry were tied by the old ways, the phone was a failure. Steve Jobs has realized that Apple will have to build the iPhone entirely on its own. And it did – in complete secrecy. iPhone entered the market thanks to a unique deal with AT&T, which allowed Apple to have complete control over the software and hardware of iPhone, which was unheard of at the time.

iPhone originally came only with inbuilt apps, and it was not possible to download additional apps (unless you “jailbreaked” the phone). Apple realized the opportunity, and launched the App Store, which became instant success. Apple leveraged the payment information it already had for millions of iTunes users. For them, purchasing from the App Store was ridiculously easy.

The gold rush

The astonishing success of the App Store has started a gold rush. Everyone wanted to play the App Store lottery. After all, the successful apps started earning many millions of dollars! But still, it was a lottery, because the luck factor was, and is to this day, a big factor when it comes to success on App Store.

Media has popularized the first successful apps that made their authors appillionaires. Today it’s virtually impossible not to see any Angry Birds reference in any given week.

The media popularization of the App Store success stories skewed the public opinion about the app store market – it might seem that attaining riches there is easy, but the reality is that it is a very tough market.

Some interesting facts

Did you know that…?

  • There are over 530.000 apps in the App Store
  • Over 20.000 news apps are submitted each month
  • It takes about 5 days on average for App Store to approve a submitted app
  • Over $250 million dollars is spent on App Store every month
  • The average app price is $1 for games and $2 for other apps (But there are also thousands of apps priced at $9.99, $14.99, $19.99 or more)
  • The most popular app categories are games, books and entertainment
  • The total cost to buy all apps is over one million USD. Tough for collectors!
  • Apple keeps complete editorial control over the App Store content
  • The entry barrier is relatively low – you just need to pay the $99 sign-up fee and adhere to Apple’s guidelines
  • Apple takes a 30% cut, but you can set any price you want

About the “Appillionaires” book

The book is very well structured. It has three parts, each of which has several chapters. Every chapter has a bulleted summary at the end. The three parts are:

  1. The Birth of the App – the history of the App Store and iPhone
  2. The Appillionaires – covering personal stories of the most successful App Store authors
  3. The App Revolution – talking about the current trends happening in the app business. Large game companies and publishers desperately want to jump on the bandwagon by acquiring app developers left and right.

The Appillionaires stories cover the developers of:

  • Doodle Jump
  • Harbor Master
  • Pocket God
  • StickWars
  • Angry Birds

Incidentally, all of these are games.

The stories are very intriguing – for example, it has surprised me that the Angry Birds authors released 52 games before Angry Birds and were on a verge of a bankruptcy. I was also surprised to learn that Angry Birds earn more from merchandise and licensing deals than the actual app sales (which are in tens of millions of dollars).

Yet another interesting tidbit is that the commercial success is much harder on the Android platform than on the Apple platforms: Sales of Angry Birds on the Android platform were very disappointing – you can now get Angry Birds for free for the Android. The Android version makes money exclusively from advertising – and it is significant revenue.

The unique background of the interviewed authors of these apps – almost always 1 or 2 person teams – has given their games a unique twist that was probably the secret ingredient necessary in order to succeed in the app store.

I disliked only two things about this book: First, there are no stories of successful non-game app authors, which would certainly provide additional perspective and insight useful to mISV like me.

Second, the book omits to explicitly say just how “cold” the hard cold reality is. So let me give you an idea – because it costs about $10.000 to $50.000 to develop an average iPhone app, most of apps never even cover the original expenses. 30% of apps never make more than $1000 in total and majority of apps earn less than $700 per year. The reality is even grimmer on the Android platform – iOS developers make twice as money as Android developers. And the competition is fierce – together, the Apple App Store and Android Market list over 700 thousand app.

That being said, the book is well written and certainly an enjoyable and worthwhile read. Both paperback and Kindle versions are available from Amazon. It has 224 pages, which is just about right. The most valuable part of the book are the detailed stories. The stories of the app developers from their youth might even stir some nostalgia in you. And who doesn’t like to read about the success of fellow developers? We all are “rooting for the little guy”.

- By Jiri Novotny, the founder of Dextronet.com and author of Swift To-Do List, a successful task management software for Windows.

Additional Resources

Related Posts:

stdl

Swift To-Do List 9

The ultimate to-do list and notes software for Windows.

Better ListView

Better ListView

Ultimate .NET ListView replacement control
for WinForms (C#, VB.NET)

Are you a Zen Coder or Distraction-Junkie?

I just posted a new must-read guest article “Are you a Zen Coder or Distraction-Junkie?” on Component Owl blog.

It’s not just about coders or programmers; and it’s not just about productivity and time management. It summarizes a lot of things I’ve learned by trial-and-error in my career.

What you do when compiling can ruin your life. And not just when compiling.

Go read it now – “Are you a Zen Coder or Distraction-Junkie?” – There are pictures! ;-)

Related Posts:

Better ListView

Better ListView

Ultimate .NET ListView replacement control
for WinForms (C#, VB.NET)

30 books everyone in software business should read (and why)

I have personally read every book in this list. The enormous value I’ve gotten out of these books is the sole reason I am recommending them. These books helped me to make my Swift To-Do List very successful. There are no affiliate links in this post. If you have suggestions for other books that would benefit people in software business, please post them in comments, and I will update the additional list at the end.

There are both new and old books in this list. For the naysayers: Don’t forget how easy it is to succumb to hype and to phrases like “anything older than 3 months is irrelevant”, “it’s the age of the app”, “desktop is dead”, and so on. That’s simply not true. Reading these books can be very beneficial for you and for your business. The concepts are still valid, the ideas can be still utilized. Even if the world has fatalistically moved on (and it hasn’t), you can’t catch it up without a strong foundation. Many things are cyclical or ageless. You can re-combine ideas, find patterns, get inspired and most importantly, learn new things. These books are a nourishment for your mind. And hey, it can’t hurt to read something different than you are used to read!

The books are ordered randomly; it would be nearly impossible to come with a satisfying ranking. Apples and pears, you know.

Writing this post took me 5 hours (plus 5 years to find and read the books). Enjoy.

  1. Dreaming In Code (Scott Rosenberg) – The definitive lessons about over-ambitiousness and idealism in software. True story about spectacular software failure. Dream team, dream budget, and a undreamed-of failure. Reads like a novel. The subtitle of the book is “Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software”.
  2. Peopleware: Productive Projects and Teams (Tom DeMarco and Timothy Lister) – Are you sure you are not chasing marginal productivity gains while the fundamentals are eluding you? Also, chances are, you are not working alone. If you have not read this yet, then better start whistling and go secretly read it under a blanket with a flash light.
  3. Startups Open Sourced: Stories to inspire and educate (Jared Tame) – Entertaining read. Not immediately actionable, but definitely worthwhile. Even if you have a mature business, the fresh look from the startup perspective can give you some ideas what you might improve upon. Interesting tidbit – reddit founders used to create hundreds of fake user accounts, submissions and comments to get their site started. Kindle edition is listed separately.
  4. GUI Bloopers 2.0 (Jeff Johnson PhD) – If you think your GUI design could use some improvement, read this. It even includes images! ;-) Negative examples are not only useful, but also fun, and they give you warm fuzzy feeling that your GUI is better. Or is it…? Some of the bloopers reminded me of Interface Hall of Shame.
  5. The Elements of Style – You write a lot of text. This will help you write it better. Your code, writing for web, blog, emails – all that is text. (The book is public domain now.)
  6. In Search of Stupidity (Merril R. Chapman) – The subtitle of this book is “Over Twenty Years of High Tech Marketing Disasters”. It’s fun to read because it’s about failures. It will make you feel good, because you are not failing on such a huge scale. But do not be deceived by that false positive feeling – unless you are not failing at least a bit, you are not experimenting enough, which is a failure by itself. Even giants like Google are constantly scraping ambitious projects because they simply didn’t work out.
  7. Do More Faster: TechStars Lessons to Accelerate Your Startup (Brad Feld and David Cohen) – Similar to Startups Open Sourced, basically stories of new startups that were supported by TechStars startup accelerator (which is similar to Paul Graham’s Y-Combinator).
  8. Content Rules (Ann Handley, C.C. Chapman) – A must read. And if you are struggling to grow your businesses to a certain extent, chances are, this book will tell you exactly how to do that.
  9. Code Complete – In case you have not worked in any software company or team, but just on your own, your code will be probably greatly enhanced once you implement the ideas presented in this awesome book. Many developers swear by it; it’s their bible.
  10. Maximum Achievement (Brian Tracy) – There is not much self-help books that I would readily recommend to mISVs. However, Maximum Achievement will help you to live up to your potential, and that has significant impact on your bottom-line.
  11. Founders At Work (Jessica Livingston) – Inspirational and motivational read. Not immediately actionable, but might make you excited again about the fact that you are are in software business.
  12. Blue Ocean Strategy – If you are feeling like innovating, or feel stuck with your current market positioning or product/services portfolio, read this. The subtitle of this book is “How to Create Uncontested Market Space and Make Competition Irrelevant”. It is written by example – lots of cool stories. The stories clearly tell how important is the presentation of your products/services.
  13. Hackers & Painters (Paul Graham) – Really great stuff (that you’ve probably already read). Paul is excellent essayist, and has some refreshing insights. If you don’t know Paul Graham, he is the founder of Y-Combinator. All his essays are also freely available on his website. The book includes only some of them. My favorite essays are How to Make Wealth and Why Nerds are Unpopular.
  14. Joel On Software (Joel Spolsky) – Joel is my hero. Joel is a spectacular pragmatist and software business owner with deep knowledge of Microsoft technologies. This book will bring you loads of ideas to improve your business, and will definitely change your views on many things related to technology, Microsoft, development and software business.
  15. More Joel On Software (Joel Spolsky) – Same as above. Really, you can’t get enough of this stuff.
  16. Best Software Writing (Joel Spolsky) – That’s right, Joel now occupies 10% of these 30 books.
  17. Outliers (Malcom Gladwell) – Ever wondered why is Bill Gates so successful?
  18. Eric Sink On The Business Of Software – This is a classic book from a man who coined the term “Micro-ISV”. Everyone in the TBoS community knows the book. You’ve probably already read it; if not, you can still pick a thing or two out of it.
  19. Words That Sell (Richard Bayan) – If you do your own copywriting, this book will save you hours of work, help you quickly overcome writer’s blocks, and enable you to create texts that you will finally feel proud about. Just don’t overdo it with the buzz words ;-)
  20. The Pragmatic Programmer (Andrew Hunt and David Thomas) – Another classic full of great guidelines and principles related to programming. For example, if it has never occurred to you that it is fairly easy to write code that writes code, and you could probably utilize that in your own projects with great success right now, then this book is a must read for you.
  21. The E-Myth Revisited (Michael E. Gerber) – At first, the principles presented in this book might seem not much applicable to mISVs, but if you switch the word “employee” for “script”, the book gets whole new (and useful) perspective.
  22. The Business Of Software (Michael. A Cusumano) – Another (perhaps outdated) classic. Read it, it’s well worth the time only if to gain some structured thinking about (your) software business.
  23. Anything You Want (Derek Sivers) – Useful for gaining high-level perspective. Reminder that there is more than money in business (and life).
  24. Permission Marketing (Seth Godin) – If your email marketing is underutilized, this book will give you the basics for successfully building relationships with your customers via email.
  25. Ikigai (Sebastian Marshall) – This book presents sharp unique thinking related to many areas of life. It is not directly related to software business, but to personal achievement, individualism, productivity, negotiation, and similar things. Both enlightening and entertaining read. For Kindle only.
  26. Copy Hackers (Joanna Wiebe) – If you write text for web, you are a copywriter. In such case, definitely read these 4 short e-books. Highly actionable advice that can improve the bottom line of your business.
  27. Head First Design Patterns – If you don’t know what is a “design pattern” in the OOP world, don’t think twice before buying this book. Don’t be discouraged by the fact that the samples are in Java, the sample code is easy to understand even if you don’t know a thing about it.
  28. The Art Of Ignoring (Alwin Hoogerdijk) – This is not really book, but a presentation with slides (and an accompanying video), but reading this stuff is simply not optional. And it’s free!
  29. The Dip (Seth Godin) – Not sure if you should abandon one of your products/services, or not abandon them? Subtitle: “A Little Book That Teaches You When to Quit (and When to Stick)”.
  30. Personal Development for Smart People (Steve Pavlina) – This is probably the best book on conscious self growth ever written. The ageless principles described in this book can be actually implemented into your business, which gives this book a whole new perspective.

Books that didn’t made it into the list

These books were a bit disappointing to me, but they might be awesome for you.

Better ListView

Better ListView

Ultimate .NET ListView replacement control
for WinForms (C#, VB.NET)

stdl

Swift To-Do List 9

The ultimate to-do list and notes software for Windows.

Optimizing your installer (setup) for higher conversions

Increase your conversion ratios by improving your software setup. The installer of your software application is an integral part of your product. It is the first thing the user sees, and yet, it is often overlooked. First impressions matter, and more importantly, if installing your software isn’t as easy as possible, you are losing installs, potential customers and revenue.

When it comes to installers, what should you try to improve? The goals are to:

  • Make the installation process as short as possible
  • Make the installation process as easy and simple as possible
  • Make a solid and professional impression
  • Use the opportunity to install shortcuts to the software, as well as links to your website(s), to the proper places

Basically, we are trying to maximize the successful install ratio, make a good impression, and utilize the opportunity to install shortcuts to your product and your website (without annoying the user, obviously!).

You can also use the setup (installer) as a sales tool in some cases. I will write more on that in the future.

Eliminating steps

Modern installers, like the Opera browser installer, have just 1 or 2 step. Chrome installer has zero steps – it asks you whether you want to make Chrome the default browser, and whether you agree to the EULA, before you download the actual setup file! When you run the setup file, no user interaction is required. It just installs and runs Chrome.

Majority of currently used setup creators, including Inno Setup and NSIS, are wizard-based. Unfortunately, most of these packages have far too many unnecessary steps.

For example, the default steps in Inno setup installer are:

  • Welcome
  • License Agreement
  • Select Destination Location
  • Select Start Menu Folder
  • Ready To Install
  • Installing
  • Setup Completed

Making the user to go through 5 pages before the actual installation begins is usually completely unnecessary.

In an ideal world, there could be just one page with big Install button, and pre-checked checkbox “I agree with the EULA”. There should be a link to display the EULA. Optionally, the page can also contain “Advanced…” link/button that will display a small modal dialog that will allow the user to customize the destination folder, and possibly shortcuts. And that’s it! You don’t need anything else.

The installer of the Opera browser is a great example. Check it out at http://www.opera.com/download/ – it has just a single page, and is absolutely beautiful.

So, what you should do is to go through all steps of your installer, and eliminate everything that is not necessary.

Let me give you a couple of examples from Inno setup -

The “License” step of Inno Setup requires the user to click the “I agree” option button, and then click the “Next” button. You can simply remove the option buttons, and change the text of the “Next” button to “I Agree” in this step.

Please note: I am not a lawyer, and I am looking at this purely from the perspective of maximizing the number of successful installs. It is possible that making it “too easy” to accept the EULA can undermine its validity. Do your own research first.

Even the destination folder is sometimes unnecessary, and can be entirely skipped, especially when it comes to simple consumer apps and utilities.

Start Menu folder selection step is completely unnecessary, too.

“Ready To Install” step is useless. Get rid of it.

With a little effort, your refined wizard can be like this:

  • Welcome
  • License Agreement (simplified)
  • Installing
  • Setup Completed

You can even remove the “Welcome” step, but you will probably want to make the “License Agreement” step look pretty, as the Welcome step usually displays some fancy graphics.

Making it easier and simpler

There are many things you can do. All general principles of user friendly design apply to installers as well. Some tips -

  • If possible, don’t require elevated admin privileges in your installer. Many users are not running an admin account. This can be a big problem especially at their workplace, where they need to ask for permission the IT manager or boss. If your setup works even without the elevated privileges, it is a big win – you will most certainly get more installs. For example, Chrome installer doesn’t require elevated privileges and installs into the current user AppData\Local directory (this also allows automatic updates without elevated privileges).
  • Eliminate all unnecessary text and controls. For example, Inno setup displays free disk space on the directory selection page, which is useless for majority of applications, because Windows display warning when the disk space is lower than a few hundred of MBs anyway, and your application is probably much smaller.

When building wizard-based installers:

  • If possible, make the “Next” button large and prominent.
  • Make sure that the “Next” button is selected (has focus) by default. So when someone just runs the installer and presses the spacebar key, he will always proceed to the next step of the installation.
  • In many cases, you will discover that you can simply hide the “Back” button. How likely it is that someone will want to re-read that EULA?

Shortcuts and Internet Shortcuts (.url)

I recommend installing these shortcuts:

  • Application shortcut on the desktop
  • Application shortcut in the Quick Launch toolbar
  • Application shortcut in the Start Menu
  • Company website link in the Start Menu
  • Purchase link in the Start Menu
  • “Contact Us” link in the Start Menu
  • Help file shortcut in the Start Menu

Other ideas include:

  • Online FAQ/knowledge base link in the Start Menu
  • Online forum link in the Start Menu
  • Blog link in the Start Menu
  • Facebook link in the Start Menu
  • Twitter link in the Start Menu

All Start Menu links should be placed in a subfolder named after your application.

Definitely place a shortcut to your application on the user desktop. You don’t even need to ask the user in the installer. You can do the same for Quick Launch toolbar.

Avoid placing generic shortcuts to your website(s) on the desktop – having a shortcut named “Buy” placed on the user’s desktop is a big NO-NO.
All shortcuts created by the installer must be either placed in the proper subfolder of the Start Menu, or, contain the actual name of your software product, e.g. “Buy My Awesome App”, not just “Buy”.

Also, never place a shortcut “More Software from My Company” on the user’s desktop. As a rule of thumb, anything that could be considered an “ad” should be avoided. Feel free to go link-mad in the Start Menu folder of your application, but be careful when placing links to the user desktop.

Making a solid impression

I have three quick tips to offer here:

  • Make sure that your installer is code signed. This is a must. Installer is by far the place where having a signed executable counts the most. You can get a code signing certificate from K Software for superb price, and Mitchell, a fellow mISV vendor, offers great support, too.
  • Include an attractive graphics in the installer. Don’t settle for the default images. Ideally, get it made by a professional designer.
  • Don’t change the default installer icon, or at least make sure that it looks like an actual installation icon. Using the same icon as your application has might seem like a good idea, but the installer icon shouldn’t be confusable with the icon of your actual application.

Conclusion

Simplifying the installation process and making your setup more polished and professional is an area that offers excellent ROI revenue-wise, especially if you have yet not touched your installer a lot.

Easier installation => more installs => more users => more customers. It’s really that simple.

Related Posts:

Better ListView

Better ListView

Ultimate .NET ListView replacement control
for WinForms (C#, VB.NET)

stdl

Swift To-Do List 9

The ultimate to-do list and notes software for Windows.