Opinion: On some aspects of modern software development and distribution.

DZone 's Guide to

Opinion: On some aspects of modern software development and distribution.

· ·
Free Resource

Software came a long way since its first days, when in some cases accessing a computer was more of a luxury than a necessity. Today, applications and games became such a standard thing that you won't surprise anyone with the fact that you've installed the latest version of some operating system. However, some aspects of software development and distribution changed as well and some of them aren't changing for the better.

There are some points that I strongly believe should change because their effectiveness is equal to zero. I didn't plan on writing this post as a rant (although it might look like it is), but rather as a "what you should avoid doing" type of post for those who develop and distribute software. Additions and comments are welcome, of course.

1. Stop customizing the UI without a need for it. If you do, make it usable.

I should mention that this mostly applies to software installed by default on new PCs, but also to tons of additional products that users download on a daily basis. Honestly saying, I don't need a huge round button that will say "OK" instead of a regular system button. When developers overdo their custom UI, they forget about one important concept - intuitive design and integration with the existing system UI.

A good example here would be Norton AntiVirus (and the related security suite in general). The custom UI thy provide is not needed at all and instead of being really efficient, the whole custom chrome consumes a lot more resources than it should.

When a person gets used to a system, he expects every component in that system to be consistent with the main user interface structure. That's what we, as developers, often see in system development guidelines - keep the UI as consistent as possible with what's given to you by the OS.

When these guidelines aren't followed, well, chances are the product will be:

  • uninstalled
  • never used
  • mentioned here

If you are a developer, none of these do look like attractive options, so make sure you know the usability limits when it comes to UI customization and if there is no need for it, don't do it.

2. Do you really need to bundle that with your product? I don't think so.

Let's start with saying that bundling additional products (also known as "since nobody downloads it anyway we're just going to bundle it with something better") isn't a good move from the consumer's point of view.

A good example is shown above. Why would I need Security Scan Plus when I download a PDF reader? And why is the actual "Include in your download" somewhere on the right side and not above the "Download now" button? Because that way someone might feel like he doesn't need the product and will uncheck it before the download. Other people will notice the presence of the software only after it already installs. Does Adobe really care about my PC security that much? I don't think so (since when it's their concern anyway?).

Same applies to HP, that bundles un-needed software (e.g. 20+ games that take an hour to uninstall) on new machines in quantities larger than you can imagine. Lots of them are trialware. Logically, if I wanted games, I would download them separately. Same applies to regular software - if I ever wanted to try it, I will do that separately - thank you, but Internet is way more widespread so there is no need to keep something thinking that you won't be able to get that later.

Absolutely the same thing applies to manufacturers that distribute hardware drivers, but with every 1MB of driver size comes 50MB of software I will never touch (e.g. photo galleries, web photo sharing on some unknown third-party web site, data backup for photos and what not). Lots of those register as Windows services and are constantly running, becoming resource hogs.

3. You don't need a custom download manager for your product.

If I am not using a download manager, there is probably a reason for that. That being said, why would I need a download manager when I am downloading Adobe Flash (yep, Adobe does that)? I am not downloading anything else from their website, so there is really no need in that additional plugin they try to push. And that is the default option. Alternatives? You have to search around the website to finally find the link to the actual executable.

If I would need a download manager, I would be looking for it first, otherwise - if you decided to distribute a product, distribute it the normal, "link-to-file" way.

4. Do not use aggressive/invasive brand promotion

This is mostly targeting beginner users and I've seen cases when developers (or product vendors, for that reason), after installing a product create a bunch of shortcuts on the desktop with names that will most certainly attract those who don't really keep track of the installation. For example, "Easy Internet Access". Sounds tempting for a beginner, right? Who wants to mess with Internet connection configuration and so on - just click on "Easy Internet Access" and you'll be there. Not so fast. What this does is it simply opens Internet Explorer with the vendor URL passed as a parameter. The most frustrating thing is that this "technique" is promoted by large companies (especially hardware vendors).

Your brand is the key, this is understandable. But please - there are limits between what can be done to promote the name and just using the consumer. If the end-user bought/downloaded the product, he probably already knows who developed it, so there is no need to say "Hey, you just got [product name] from [company name]! How lucky you are!" at every possible occasion.

5. Do not duplicate system functionality and force its usage

Applied to different developers who try to build on top of the existing system functionality. One of the examples - Google Desktop (specifically the sidebar - available in Windows Vista/7 as a separate component). Another example? Game managers (those that manage existing game collections on a local machine) - why not just integrate the games you decided to publish with the game manager provided by Windows? Every developer wants to have something of his own, but admit it - having three pieces of the same software installed on a local machine because each of those developers decided to be "unique". The stimulants in this case are once again hardware vendors, who ship PCs with pre-installed bloatware.


At the end, it is your choice as a software developer/distributor on what to do. However, always remember that the central part of your work units is going to be the user (even though marketing plays an important role here as well), and if the user is not happy, chances are you won't see that many additional downloads or recommendations. 


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}