February 14 2009 1:00 PM
by Adam
filed under
ColdFusion | ColdFusion Builder
Tom Jordahl told me that "Building software is a lot like making sausage. You probably don't want to see how it's made". To a certain level he's right. Like food, software goes through an incredible transformation before it's presented that's not always pretty. Software starts off with a grand vision where the possibilities are endless. Over time deadlines get closer and closer while specs get smaller and smaller and eventually you are forced to readjust that vision to fit reality. ColdFusion is no different.
It was a tough week. A make or break week. We're coming down the home stretch for development on Centaur and Bolt and we had to make some tough decisions. Expectations around Bolt are extremely high, not only from the community, but from the ColdFusion team itself. Unfortunately, the reality is that we can't build an IDE the likes of Visual Studio in one release (not if we want to release it in 2009). So the vision needed to be adjusted. Now I know in the past you normally only hear good news about what Adobe's building, but I think it's fair you hear all the news… even if it's not great.
This week we had to cut some features. Features talented engineers spent weeks developing. Features based on innovative ideas that might have patents pending. It sucked… big time.
In a competitive environment like web application servers, there is a tendency to overload each release with features, even when it sacrifices quality. Adobe is lucky to have some incredible engineers who manage to knock out high quality features in very little time. In fact, I'm amazed how many features make it into each release and the proficiency and dedication our engineers apply to them. However, as good as a shot you may be, shooting from the hip isn't the best way to win a gunfight.
We've applied the following principles to how we build ColdFusion and Bolt that I think all software creators should follow. Quality needs to be your top goal, followed by the schedule. Only after those two criteria are met should you ship a feature. This means that features must be sacrificed for schedule, and the schedule can only be sacrificed for quality. You cannot sacrifice quality or slip the schedule just to add another feature to your marketing materials. While a ton of features may give you an advantage in the near term, your competitors can and will copy them. But it's a lot harder to fake quality. Rather than shoot from the hip with a feature shotgun, get to the fight early and spend the time and effort to line up a sniper shot. That way when it comes time to fight, all you need to do is pull the trigger. ¹
This means that if a feature isn't completed by the first beta, you don't ship it. We're sticking hard to this rule for ColdFusion and especially a new product like Bolt. It allows our engineers to spend all the time in between private beta and launch fixing bugs and adding polish. So while we might not end with as many features as we'd first hoped, the ones we've got should be rock solid.
This is how we are building ColdFusion because your expectations are different for us than they are for our open source competition. When you pay for something, you expect more. It's not that big of a deal when something you had little investment in turns out to be less than you expected. I think our critics want to compare themselves with ColdFusion based on checkboxes because at that superficial level they can seem equal. But let me tell you friends, all features are not created equal.
Now before you join me in my lost feature pit of despair, there is a silver lining. We haven't actually dropped any features. We've just postponed them to a later release. Desktop software like Bolt can be rev'd a lot faster than server software can. Meaning, you probably won't have to wait as long as you do in between ColdFusion releases to get to that grand vision we're still chasing.
¹ These principles can also be applied to Halo.
Todd Rafferty wrote on 02/16/09 10:16 AM
"Desktop software like Bolt can be rev'd a lot faster than server software can."Depends on Adobe's pricing.