May 29 2008 5:28 AM
by Adam
filed under
ColdFusion (49 comments)
Brian posed an interesting but familiar question with his blog post titled "Does ColdFusion's Cost Inhibit Its Development?". On the surface I thought this post was going to be an argument for making ColdFusion free, but he's crafty… it's really about open source development. Brian argues that, because Adobe sells software it's somehow misguided about what's best for the product. That rather than listen exclusively to developers, we're too focused on pleasing Managers, who in the end… write the checks. A valid argument, but far from the truth.
Brian says:
…each new version ColdFusion includes any number of features intended to impress the person holding the purse strings more so than the developers using the product.
Fair enough. The first part is true. There are a number of features that go into ColdFusion specifically for Management. What is plain wrong is that they go into the product at the sacrifice to what developers want. Since ColdFusion 1.0, the Developers always come first. But there are other forces at play in ColdFusion's growth that need to be recognized.
The Players
'Management' is the group who sign the checks. They don't care about interfaces, JavaScript operators or implicit notation. They don't care about OO, although they'll tell you how important code reuse is. They need to solve problems immediately and writing checks is a strong weapon in their arsenal. In a cruel twist of fate, these Managers who usually know the least of technology end up with the power to make the major technical decisions. The problem Brian outlines assumes this, but it should also be said that there are plenty of good Managers out there. Good Managers who agree that if the Developers and Operations are happy, then they are happy. Unfortunately for us all, good Managers are like good Developers… rare.
Brian focused solely on Management and Developers but there is another group which holds a lot of weight... 'Operations' is the group that is charged with the day-to-day management of servers. This is also the group in charge of upgrading, which is why they are so critical. Regardless of how much Developers want a new version, this group can cite a number of reasons to deny said version (security concerns, effort to upgrade, stability, etc). We won this group over in ColdFusion 8 with the server monitor and performance gains. Upgrading any environment is a pain. With CF8 most SysAdmins were eager to upgrade since it meant better management tools/options.
That being said, it's important to understand these other groups and the role they play. However, I think Brian overestimates the effort that goes towards 'Management' and 'Operations' features. I particularly don't agree with versions of CF being labeled as 'feature' versions. ColdFusion 6 was a brand new platform. ColdFusion 7 (the closest I'll concede to a feature release) was actually a stability and foundation release. In a perfect world, we'd be able to sell stability and foundation. But the world isn't perfect, so we had to sprinkle in a little app.cfc, CFDOCUMENT and flash remoting. ColdFusion 8 was referred to internally as the community release. We basically went through a long laundry list that had piled up since CF5 and went to task. Everything we added to ColdFusion 8 solved a problem for a large portion of our customers. I've heard the argument for and the argument against each and every feature. Brian doesn't think the UI/AJAX controls of CF8 were useful, but the vast majority of our customers are using ColdFusion 8 to build their very first AJAX application.
Did I Miss The Part Where Adobe Became Bad Guys?
In a comment, Matt wants to imply that because ColdFusion is made by a company who employs the best Software Engineers in the world and not by part time coders who donate their skills, that ColdFusion is inherently flawed. He wants to paint a picture of a stark Adobe where everyone wears suits and speaks solely in buzzwords and market share. An Adobe where meetings are held in dimly lit boardrooms and hours are lost debating over the colors of pie chart slices.
Matt said:
I have very grave concerns about the path things seem to be taking with ColdFusion as a product and I personally think it's time Adobe hits the pause button and really thinks about some of these issues before blindly forging ahead and cramming everything they can think of into ColdFusion 9.
Pretty strong words for someone who has no idea what's even being planned for Centaur. He's just making assumptions based on his views of the product, which have drastically shifted since he took a leadership role with OpenBD. If I remember correctly, Matt only caught the last 10 minutes of a 2+ hour open forum we had with developers at cf.Objective() on Centaur. We simply asked for feature ideas and wrote down everything that was said. I guess Matt disagrees with taking direction from the community.
The fact is, while you are asleep, we're actively building ColdFusion. When you drive to work, QA teams are pouring over test cases. When you're eating lunch specifications are being written. While you're spending those precious few hours between work and sleep building an admin console for OpenBD, we'll be hard at work growing the community. We follow enterprise best practices in software development and employ world-class Engineers, QA, Designers, Writers, etc. We can do this, because we sell ColdFusion. Profit doesn't drive us, it funds us.
You assume we only come to work every day to collect a paycheck. On a good week, I'll only put in about 65 hours. I breathe, eat and drink ColdFusion. I'm honored to be part of this team. There isn't a salary high enough to get me to do this job for another product or another company and I'm not alone. We get to build the product we love, and we get paid to do it! In all fairness, I think you and the OpenBD team have a lot to prove before you can start criticizing ColdFusion releases that haven't happened yet.
And I say these things with all the love for OpenBD in the world. J
Centaur
Centaur will be a drastically different release from the previous eight. The success for ColdFusion 8 and strong support from Adobe have given us a bit of creative freedom to re-think what Rapid Application Development means today and what it will mean tomorrow. The vision of this release isn't just focused on Developers; it's focused on Advanced Developers. We'll be introducing a number of features that will probably be outside the comfort zone for most of our customers. This release is about raising the bar. It's about evolving the server. It's about empowering our community.
Open Process Initiative
Announced at cf.Objective() 2008, the Open Process Initiative is meant to bring a higher level of transparency into the development and design of ColdFusion. Committees are now being formed to drive the direction of several areas of ColdFusion (including committees for CFML/CFSCRIPT, RIA Integration and a few aptly named groups that must remain anonymous for now). Adobe's support for ColdFusion is critical. We are working diligently towards the next generation of the web, but we can't get there without you. Just because ColdFusion isn't open source, doesn't mean we have some of the benefits of open source. The OPI will also open up the ColdFusion bug base and feature request system to the public. You'll be able to submit and track bugs, inspire new features, and vote on the features submitted by others. Just be sure not to share the URL with your Manager, or we'll be forced to build <CFSETTING isWeb2.0="true"/>. (I'm joking!)
Todd Rafferty wrote on 05/29/08 7:05 AM
Good post Adam.I'm definitely looking forward to a public bug base and seeing a little bit more of the process. I just hope, if anything, the community will embrace the bug/enhancement a little bit and not turn it into an ego contest of who submitted the most.
Has Adobe figured out enhancement/bug "voting" yet and what it is going to mean? There was definitely some "meh" about the feature during alpha/beta phases.
p.s. Something is wrong with your captcha. It took 3 submits for it to finally display on the screen.