I have downloaded a lot of commercial DNN modules over the years and noticed many of them suffer from deficiencies such bloated screens with lots of text, confusing workflows, bugs, hard to discover options, many submodules, unclear UI divisions and other issues.
I consider myself a developer with a good sense of good design so here are my recommendations on how to improve the quality of your module.
- Polish the UI of your module and make it look professional. Make the UI elements look clean and polished. For example look at the Quform, a popular WordPress plugin. (http://www.quform.com/examples). Clean beautiful buttons, beautiful tabs & lots of color contrast. Notice the amount of white space between the elements, the vertical and horizontal alignments. For example labels should be aligned together and their related textboxes, checkboxes.. etc should be aligned together. Good amount of margins and paddings.
- If you have to add lots of text to explain the purpose of a form element or option, you are probably doing it wrong. The text or caption of the element is probably not descriptive enough which forces you to add more text. Do not add a lot of static text which is always showing. Put the text behind a hovering tooltip or an info tooltip. Use an icon like a '?'. Once a user knows how to use the module, they have no need to be viewing that text any more. Static texts gets in the way, makes your screen look busy and is just plain annoying. Looking a QuForm, you will notice there's hardly any text when you start. Explanations and descriptions are hidden behind tooltips. Don't use redundant descriptions. If the label says 'First name' and its tooltip says 'Enter your First name', the tooltip is redundant and adds zero value. Not every form element needs a tooltip. Too many tooltip icons can also crowd the page.
- Divide the screen into sections with related functionality using UI elements like tabs, panels, treeviews, tab panel, fieldsets, multiview.. etc. A wall of options is confusing. In the QuForm app, they make good use of tabs to partition the app.
- Don't show everything at one time. A web page of more than 2-3 screenfuls is probably too big. Divide the screen into an easy to use workflow using tabs, pageviews, wizards or similar UI pattern. If your app has a lot of functions, put the mostly used ones at the forefront and the less common ones behind. Some desktop apps have layouts for beginners and layouts for advanced users. Usually advanced users can see more options. Put advanced features in a separate view. These options usually confuse beginners and they do not need to see these options during their first uses of the app.
- Test the module before releasing it. Test the installation on a fresh DNN installation and test the functionality. Click on all the options in a random fashion. Make sure options are disabled when they should be. A UI pattern which I personally like and which no one seems to use is to show on hover why an option is disabled if it's not clear why it's disabled. You will save a ton of time and money when you release a solid module which minimizes support calls. Many DNN module vendors went out of business because support costs ate all their profits and more! I personally get annoyed when I install a module and encounter issues because the developer didn't do the first simple tests and I have to spend (waste) time working with the vendor. It happened several times. Do you know the joke about releasing an app as soon as it compiles and builds!? Give the app to some friends and test and get their honest feedback. As the module developer, your field of vision is narrow and you're too familiar with your own work, you won't see the most basic issues. A person unfamiliar with the app is a great help.
- Consider any bug report as a gift and thank the person giving you feedback. Notice they took time of their busy schedule to help you.
- Learn by looking at other popular well written software, plugins, themes & modules. ThemeForset and its companion websites is a great place to learn from. Notice why a particular product is selling very well. Quform is a beautiful app, easy to use and it does its functionality very well and it sold more than 15,000 times. I wish there are more DNN modules like it. I am aware that WordPress is a lot more popular than DNN and there's more competition.
- Include proper and easy to read documentation. Documentation should to be updated and current with the latest app versions and changes. Don't make the docs point to an area which doesn't exist any more. Screenshots need to be updated if the UI changed. Video tutorials are great. Don't make them too long. I find 10 minutes or less a good amount. If you place them on YouTube, you will get free advertising and referrals.
- Make a trial version available for users to download so they can try it and kick the tires. Screenshots or videos only at the app store or your site are not sufficient. They don't show app's performance, stability, ease of use & discoverability. Apps get updated and these screenshots and videos may fall behind and look outdated which give a negative impression about your product.
- Have a site where users can browse your knowledge base, Q&A section or forums when they are looking for answers. This has many benefits. First it will lower your support costs because they can find answers themselves without using your time. Remember support costs are detrimental to vendors persistence. Users can find answers outside your support hours (think evenings, weekends and holidays) and don't have to wait for answers from you. An active community section in your site portrays more confidence that your product is alive and thriving.
- I know every software has bugs but apps which have bugs which could have been found from simple tests have no excuse. Every developer should take pride in their work.
- Use nice presentation in the app store. Use images, links to demos & comparison tables if there are multiple version. . Use bullet points or headers to highlight the best features. Don't use too much text. Make sure to have trial versions available for download and enough time before expiring them.
- Stay up to date with the latest technologies and updates coming out from Microsoft, the web and DNN software so that your modules make use of them and look more modern and fresh.
I hope these suggestions will help you in your module development. Good luck.