Everyone,

I understand the desire to get things done faster. However, as a developer, I must strongly disagree with both recommendations.

---The first recommendation: Allow users to donate extra money for their pet features.

In the short run, this would be a great idea. In the long run, it could prove disastrous. Right now, bugs are fixed based on usability impact, in other words, bugs that are most prominent to the most users. So a bug that sometimes causes AC to crash when you attempt to log on will be fixed before the bug that causes AC to crash when you click on HELP | ABOUT. As for features, the features that get requested the most or are dictated by government are the ones that get done first. Bert's feature of having his face put on the HELP | ABOUT screen will get done last (if at all) whereas the feature that removes 5 mouse-clicks when entering a new patient demographic will get done first (or sooner, at least).

Let's say Bert is a multi-millionaire and he wants some XYZ feature added to AC and he wants it right damn now. To someone like Bert, contributing a few grand to this end is easy peasy. So what we have is the possibility that Bert's new feature or bug fix - a feature or bug fix that may not help anyone else other than Bert - gets done first because Bert had the cash and you didn't. What we have now is an arms race - a cold war, if you will. You'll have all the new features and bug fixes for the top 5 - 10 AC customers getting done whereas the little JBS's and little Lawrence_Barris's of the world are forgotten.

---The Second Recommendation: Allow outside coders to help.

This sounds so easy - but in fact it is next to impossible.

Problem 1. Sharing the source code. In order for people outside the development staff to contribute the source code for Amazing Charts would have to be shared. Understand that the source code to AC is really the only thing that gives AC a competitive advantage. Once it goes out and gets on some torrent site, it's game over. Obviously, as I'm sure someone is going to point out, that's what NDA's are for. Unfortunately, an NDA is a sheet of paper that says you may be sued for disclosing something. It does not prevent you from disclosing it. While I am loathe to even think of anyone on this forum betraying the trust of AC or their fellow members, I must point out that it takes only one bad apple and then the damage is done. Sure, AC can sue, but the damages collected will not cover the actual damage done.

Problem 2. Actually sharing the source code. An infrastructure would need to be created to actually allow contributing members to download the source code, work on it, upload their changes, have their changes validated, and then built into the new product. The build process would need to be automated. Two readily available products come to mind: Microsoft Team Foundation Server and FogCreek's Fogbugz. Of course, both cost money and will need to be hosted and maintained all of which also costs money.

Problem 3. Give outsiders tools they need. Anyone working on the source code for AC would need, at the minimum, a copy of Visual Studio and a computer to run it on. Plus, any third party tools in use by AC such as the ComponentOne suite (www.componentone.com). We are talking an easy $2000.00 to $2500.00 per contributer to pull this off.

Problem 4. Standardization. AC would need to publish coding standards for everyone to follow so all source code is consistant. Someone would need to watch dog this and reject sub-standard code.

Problem 5. Enforcement. What happens if Bert is asked to work on a feature or fix a bug that does not affect him? How can we count on Bert to not check in code he wasn't asked to work on or make unauthorized changes? Believe it or not, it really isn't cool to "fix this quick bug over here because I happened to notice it when I was looking around over there."

All of these problems would need to be solved.

My apologies, everyone, I don't mean to rain on anyone's parade. However, I have been a software developer for a long time and I constantly - daily even - fight this battle. Everyone wants their stuff quick and easy and cheap and doesn't understand why their feature isn't getting done first because it would really help everyone out. I'm sorry, but it just doesn't work that way.

JamesNT
Disclaimer: My mentioning of Bert's name is for entertainment and example purposes only. Bert is a great guy and goes over and above the call of duty.


James Summerlin
My personal site: http://www.dataintegrationsolutions.net
james@dataintegrationsolutions.net