Tuesday, May 22, 2007
Friday, May 18, 2007
After thouroughly reading this article about How To Keep Hostile Jerks From Taking Over Your Online Community from the other day and having some time to really think about it, I'm beginning to rethink a few things. First of all I want CodeGear's online community presence to be as comfortable and inviting both for our loyal customers and “fanboys” ;-) in addition to making sure all the tire-kickers out there are not immediatly put off by a negative environment. Some would argue that “that's just the way it is and to grow a thicker skin.” But the old adage that you can catch more flys with honey than vinegar is as true in the online world as it is anywhere else.
I remember many years ago reading this book, All I Really Need To Know I Learned In Kindergarten. I think that many folks tend to forget a lot of these simple truths because they are somehow “enlightened” or “educated.” Posturing and “oneupmanship” dominates a lot of online communities. I specifically did not use the word “competitive” because what many folks view as competition is in fact nothing of the sort. It is actually elevating oneself at the expense of others. Recognition and prominance cannot be done by yourself. I remember an old story that my father used to tell to illustrate the point that it is perfectly ok to ask for help and that every now and then you need this help to solve problems and get yourself out of a bind.
The basic story talks about a little monkey that rejects everyone's offers for help and wisdom. He is repeatedly told to never go into a certain section of the jungle because of the pools of quicksand. The problem is that it is also the best location to get bananas. So in defiance to his peers and parents, he ventures into that area and promptly gets stuck. The other jungle animals rush to his aid and he just tells them to go away because he can get himself out. The problem is that his solution is grab his own whiskers and pull himself up. Even very young children immediately understand the folly of such a tactic. Yet little monkey keeps eshewing all offers for help and is, in return, abusive and rude to all those who offer help. Ultimately the monkey succumbs and the last thing seen of the monkey is two fists full of whiskers above the pool of quicksand.
What is the ultimate solution for creating an online environment that is provocative, inviting, fun, and most of all informative and helpful for developers of all levels? I don't know if I have all the answers, but ignoring those “hostile jerks” and allowing them to run amok isn't the answer either. Clearly this is not a simple solution because it is not a simple problem, right? In keeping with the whole notion of constructive, reasoned and productive discussion, what do you think? Do we throw up our hands in despair? Should a hard-line no-tolerance policy be put into place? I suspect it is something in between, no?
Wednesday, May 16, 2007
How To Keep Hostile Jerks From Taking Over Your Online Community. Interesting. I guess it's like buying a new car. Before you bought it, you hardly ever saw another one, but as soon as you drive off the lot, it seems like on every street corner there is another one just like yours. Along the same vein, I posted yesterday about the interconnected developer community and mentioned things like wild and wooly newsgroups and flaimbait, trolls and such, so I was bound to find some other information about such things. You can bet I'll be forwarding this article around internally...
Why aren't the so-called “fanboys” taken seriously? Why is it always assumed that a “fanboy” is a blindly faithful, shill or troll? With all the hype and press around Ruby and Rails, wouldn't you classify these folks as “fanboys?” No? So if you're an early adopter of anything new, you're on the bleading edge, but if the technology is more mainstream and mature but is still clearly valuable and has an excellent track record, you're a “fanboy.” One of the comments many folks make in arguments against the “fanboy-ism” is that they don't have an open mind. To me that is simply a “PC” way of saying “you have a closed mind because you don't agree with me.” I'm sorry, but how do you know that?
I was in a very mixed social setting this past weekend with a lot of folks of varying disciplines. There were the financial folks, the sales/marketing folks, there were the sofware engineers (most of which were not from CodeGear). I find that the engineers are usually the most closed minded bunch of folks, yet continue to think they are the most open-minded! My wife was with me and happened to overhear a conversation between two non-CodeGear engineers. She came and whispered in my ear saying, “That group over there is really trash-talking Delphi! Don't they know that there are some folks from CodeGear here?”
Now I don't know these folks and never actually had a chance to engage with them so I'm going to make some wild speculations here. I'm probably wrong, but I'm going to use this to illustrate a point. I've talked with folks that have “trash talked” Delphi and other CodeGear products. There have also been times where I've just let them rant and rave, and when they finally ask what I do... the look on their face is priceless! If they happen to actually remain in the conversation and I ask them what is it they're basing this opinion on, invariably it is either that they heard something about it, or it is based on a mental comparison of what their current tool of choice is doing for them and Delphi 1-3. The former is just inexcusable, and the latter is like comparing and old Ferrari 308 GTB against the new Saleen S7. Both are fine examples of automotive engineering for their respective eras, but the 308 just isn't quite up to modern day technical standards. The comparison just isn't valid.
So, I guess the point I'm making here is that I think it is great to be a fanboy. Passionate, dedicated, excited; these are qualities people view as positive attributes. But isn't that what a fanboy is? Maybe what causes folks to bristle at the notion of a fanboy is that they're not as passionate, dedicated, and excited about their tool of choice? This is something I see in spades among the Ruby on Rails crowd. They're passionate, excited, dedicated to this emerging technology. Why should we be threatened by this? We should be looking at what it is about their choice of tool and library that is getting them excited. So maybe there is something behind that excitement? Should I be looking at that technology?
So, are you a fanboy? C'mon, stand up and be counted! You don't even have to be a Delphi fanboy. What would you consider yourself as being a fanboy of?
UPDATE: “fangirls” are welcome to participate... While I was using “fanboy” in the genderless, generic sense I figured I'd clarify.
During the development of C++Builder 2007 after the release of Delphi 2007, a lot has been happening. We've been getting a lot of excellent feedback on how our drive to increase quality and stability has been going. If you haven't tried Delphi 2007, I think it is worth your time to check it out.
One thing that is really exciting is the potential behind the use of the new installer technology from InstallAware. Delphi 2007 was the first release that was using this new installer so there was bound to be a few rough edges and that need to be polished. We've been able to incorporate a lot of your feedback in a newly updated version of the installer for C++Builder 2007. But that doesn't mean that only the C++Builder folks are going to benefit. Part of the overal design of the installer is that it is the same installer for all the Windows IDE products. So when C++Builder is released, a new install of Delphi 2007 will be available. Here's just a couple of things we've added as a result of direct feedback.
Many folks that didn't purchase a media-kit and used the installer to download complained that they wanted to be able to save off the original download files so they could archive it. We've fixed that. If the installer sees that it will be downloading anything, it will give the user the opportunity to select a local folder into which the downloaded data blocks will be placed. So if you ever needed to reinstall, simply re-run the setup from that folder and since, presumeably, all the data blocks are already present, there would be no need to redownload.
Due to the way the install is designed for flexibility, it does tend to keep a cache of all the data blocks under Documents and SettingsAll UsersApplication Data, which can be fairly large. Another option that has been added is to allow the user to tell the installer to delete this cached information once the product is installed. This does have a down side, but I think it is a fair compromise. The main down side is that should you ever need to do a repair, patch, or upgrade, the installer will need to unpack that cache data again. You will always be able to uninstall without that cache data... but then again... why would you be uninstalling? :-).
Another thing we've done to greatly increase the overall delivery efficiency is that we build one, and only, one install image. Rather than building upwards of 16 (many, many more if you include trials, and Turbos) different install images, we build only one. This also reduces our costs both in terms of time for install testing and also in actual Cost of Goods Sold (COGS). Why should you, the customer, care? Because this means we now have more money available for other things, like more developers, QA engineers and documentation writers. This also goes back to former CEO now advisor, Ben Smith's, driving mantra of simplifying the business.
I hold no illusions that we're done. We will still continue to improve the experience as we move on ahead. One of my favorite sayings is, “How do you eat a 3 ton elephant?” It's really simple, “One bite at a time.”
“If you're going through hell, keep going.” Winston Churchill
Tuesday, May 15, 2007
This probably seems like a stupid question to ask. It's like a teacher asking all those not present to please raise their hands. Aside from that mythical programmer living in a cardboard hut in East Botswana (appologies to anyone who actually live there...) with some strange bastardised bicycle generator device powering their all night binge programming session, I'd say that most folks these days are connected at least some of the time. By connected, I connected to the Internet in some fashion. Of course if you're reading this, you're obviously one of the connected ones. Because of this one of the many things we're always thinking about is what do connected developers mean for how they work and interact on a day-to-day basis. This goes for globally interconnected virtual teams as well as physically localized teams.
What kinds of online resources do you use on a day-to-day basis? Blogs, Newsgroups, forums, chat, IM? For all these kinds of resources, do you prefer RSS/Atom feeds, direct web-browser access, or some combination of these things? Do you like online forums with a reasonable level of moderation or the mad, mad world of open, anonymous, unmoderated newsgroups? What about something in-between?
My personal feeling is that the Borland/CodeGear newsgroups in their current form are not as helpful as they could be. It'd be nice to be able to quickly identify those folks who are the most helpful, insightful, and generally add value to that experience. This is actually one thing I tend to like about web-based forums that have a peer rating system. This allows someone to easily filter out the flame-bait and only look at the stuff that meets certain criterion. NNTP in its current form just hasn't caught up to this kind of online experience. Of course I'm not advocating that we eliminate NNTP, but rather provide a richer experience while still allowing those old-skool folks to stick with their news-reader of choice. I'm sure there will be many of you shouting “Heresy! You'll pry my news reader from my cold, dead- fingers!” But maybe it's time to mix in a richer, more interactive experience? Not just in online discussions but in all aspects of the developer's everyday online experience...
Just some links to some news: