I've been using DNN since the beginning. I've built my web development and hosting business entirely around it in recent years. But, it hasn’t been easy to build a profitable business around DNN. The primary reason for this difficulty has little to do with DNN and lots to do with the module aftermarket.
I've been burned several times over the years because of poor standards and practices followed by module developers. The DNN community as a whole suffers because some module developers don't really know what they are doing or simply have poor business practices. Many developers are too immature to understand the need for stability in the module market in order to make DNN a viable business platform.
I'd like to admonish DNN Corp to establish some standards and practices module developers need to adhere to in order to be sold through Snowcovered to protect the DNN community and help stabilize the module aftermarket.
Perhaps I should preface this statement with a little background. I’ve been a software developer for 30 years, have owned development businesses, have been involved in several successful dotcom initiatives, have worked on projects for Microsoft, IBM, HP and many others throughout Silicon Valley. I’ve been a well paid strategic business consultant and have written for several tech magazines accurately predicting industry trends.
Now, let me give one example (or many potential ones) to illustrate the need for some standard practices among module developers. I was using Active Tabs on several client sites. Then, the developer pulled the module off the market with no forewarning. As a result, I had to find another solution and convert all my client sites over to it on my dime. First, if a vendor with an installed customer-base pulls their module, they should be required to release all rights to their source code to the market so other vendors could pick it up and continue supporting the installed client-base. Otherwise, we consumers pay the price for instability in the module market. I’ve had a string of such installed modules get pulled from the market in recent months. This involved weeks worth of work for which I could not be compensated. It's difficult to make a living when you have to spend weeks working on things without income.
Next, I chose Live Tabs as a replacement because it had the best reviews on Snowcovered of all the alternatives. After I purchased, installed it and began using it, I found that it was loading extremely slowly (about 20 times slower than Active Tabs had been using the very same data).
After it blew up on several production client sites recently and I went into the database to try to diagnose the error messages, I discovered that this developer had only one table with one field for this module. They simply dumped about 24K worth of data as XML into this field for each module instance. So, when the page loads, it downloads this 24K worth of XML data and then has to parse through it before displaying the tabs and data. This makes it extremely slow, difficult to diagnose problems, to support data integrity, to create adhoc queries and table joins, to leverage SSIS easily, to generate reporting services from, to integrate into other modules like XMOD Pro and many other issues (which some of my clients require).
Any way you look at it, this is just bad data management practices. I've tried reasoning with the developer about the problems but he insists that rather than him considering changing his poor programming practices that I should upgrade my server to solve the problem (which I recently did and DNN and all my other dozens of modules perform perfectly fine on – Intel LGA775 dual-core, 6GB DDR3, RAID 0, Windows 2008 64bit, SQL 2008 Standard Edition 64-bit, IIS7.0, DotNet 3.5 SP1, following all caching and optimization recommendations, located in Dallas’ premiere colo averaging 36MBps through its pipes – which I’ve been running on for 16 years without any problems). We went back and forth in extended emails and forum posts but he insisted that his data storage code was fine and that the problem was with my hardware (even though his is the only one that performs poorly on it).
I hope this helps illustrate the need for some kind of baseline standards and practices DNN module developers should follow to protect the market. Whether a DNN Seal of Approval is given based on compliance or whether these modules simply can’t be sold through the Snowcovered store, we need a layer of protection that separates want-to-be module developers from the real thing. This is why Apple acts as a gate to the App Store. Without such a gate, the entire enterprise will suffer because the practices and behavior of some developers will destabilize the market. The current Snowcovered user rating system just isn’t enough because there’s no way to gauge the level of knowledge one reviewer has from another – and it’s apparent that vendors have the means of carrying over positive reviews from one module version to another and as a result, over time all the critical reviews get left behind. This leaves the onus on the would-be buyer to do all the due-diligence necessary before investing in a module. This significantly devalues the value-add of Snowcovered.
Another issue is that some of the developers tend to raise their prices frequently and significantly without any regard to hosting providers like me who have to figure the cost of upgrading modules into their monthly hosting fees to maintain profitability. Once you’ve installed a module in a production environment, the cost to change it out with another module becomes very high. Vendors realize this and some take advantage of it by raising prices significantly because they know most of their installed user base have little choice but to pay up. It makes it difficult to be profitable when it's impossible to know how much a module is doing to cost to support on an annual basis.
Similarly, there needs to be some kind of standards on licensing practices. If all vendors provided free updates for 12 months, for example, it would be possible to calculate my operational costs and add a margin profit into it. As it is, it's a crap shot. I’ve bought modules for clients before and then a couple of months later they came out with a new version that I had to buy again (often before I’ve even gotten them through development, testing and into production). In such cases, my clients aren't willing to re-buy what they just bought and haven't even seen work yet. In such cases, I have to eat the costs out of my profit margins.
Without some standard practices being put in place, it is difficult to run a profitable business on the DNN platform. DNN has a lot of good things going for it and overall is headed in the right direction. But, if it cannot bring some stabilization to the module aftermarket, it may be confined to the needs of enthusiasts and specialty markets instead of those looking for a viable business platform.
What do you think? Do you see the need for such standard practices? If so, let’s try to bring some attention to this issue in hopes of DNN Corp becoming an advocate to our cause and helps us bring stability to the module aftermarket.