DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report

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

Denzel D. user avatar by
Denzel D.
·
Nov. 28, 10 · Interview
Like (0)
Save
Tweet
Share
3.99K Views

Join the DZone community and get the full member experience.

Join For Free

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.

Conclusion

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. 

Software development Download Distribution (differential geometry) Aspect (computer programming)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 10 Most Popular Frameworks for Building RESTful APIs
  • Getting a Private SSL Certificate Free of Cost
  • A Gentle Introduction to Kubernetes
  • What Is Advertised Kafka Address?

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: