My friend Dave is was looking to get an
iPhone now that his Treo
died. I already
have AT&T service and I’d love to upgrade to an iPhone as well. Being an
old AT&T Wireless customer from before they were purchased by Cingular
and renamed (and now back to the old name) does not appear to be an
asset. I’ve had the service before I was married, consequently if I’m
going to upgrade my phone, consolidating my service with my wife’s
through AT&T’s family
plan would
probably be best for us. Thus I called up AT&T to see if they could
assist me. Unfortunately, my service is through the national business
accounts arm of the company and the family plan is not an option there.
I have no problem being switched off of the national business accounts
(and forgoing my monthly discount), but their system won’t let them
convert my account. I can leave AT&T and go to another service provider,
taking my number with me but I cannot stay with AT&T and switch to the
family plan. If I leave to go to another carrier, taking my number with
me, and then go back to AT&T, I’ll still be stuck on the national
business accounts side of the house. The service representative said she
could set me up with a completely new account (i.e. new phone numbers)
with the family plan. I explained that I’ve had my cell number for a
decade now and I’m not going to change it. I’m willing to pay them more
money (almost double what I pay now) and purchase one (possibly even
two) expensive handsets and they cannot help me out at all. This is
completely insane! AT&T really needs to get its act together and
integrate its back office systems.
On Desire
Last week, I was fortunate enough to be one of the few folks who attended the Northern VA IGDA meeting where Paul Barnett spoke to us about desire. Specifically what you can and cannot control to influence your customers into buying your product (in his case a subscription to a MMORPG). That is, to make them desire your product. To warm up he spoke about the utility of mind maps and suggested reading Tony Buzan’s book on Mind Maps. While speaking about mind maps, he hinted at the mind map he drew on the board in preparation for his talk. As background, for those who may not know what Warhammer: Age of Reckoning (WAR) is, Paul explained that it is not a computer game. As Paul sees it, computer games are like “washing powder” (laundry detergent) in that it is a product which is made, shipped and forgotten about. Next week there is always a better version of washing powder on the market (new, improved, etc), to the point where it seems like just weeks ago we were essentially washing our clothes in dirt. WAR, in contrast, is a hobby game. As a hobby game it requires skill, commitment and imagination. Hobbies are self-obsessed/self-indulgent; a very personal endeavor. And WAR is not just a game that is shipped and forgotten. Since it is a massively multiplayer online game, the developers must constantly work to improve the game while the customer service team resolves issues and others work to lead in-game special events. EA Mythic is providing an experience with WAR (as is Blizzard with World of Warcraft, aka WoW). Getting back to the topic of the evening, Paul spoke of the three thwarts to your product:
- Acts of God. These are causes that you have no control over, so you shouldn’t try to overcome them. Examples included loss of internet, loss of life, bankruptcy, etc.
- Your own fault. These are causes that you have total control over which you can mitigate with planning, investment and training. Examples included unstable code/servers, bad download experience, bad customer service, bad install experience, etc.
- Not any good. These are causes that you have control over which are extremely difficult to mitigate. You cannot just plan to have a good game or invest in a good game. This is extremely subjective, what one person thinks is great someone else may believe to be total crap. Examples included balancing the game, making it engaging, building a sense of community, etc.
Once you’ve built-up desire for your product you have to maintain it. Paul stated that desire is eroded at audit points. Audit points are times when the customer takes stock of their experience and consciously chooses to continue paying you money or not. He compared audit points to the form of interrogation where-by a person’s head is held under water for a period of time and then pulled out — those points when the person comes up gasping for air are audit points. You have to keep people away from audit points. Each of the thwarts mentioned above cause audit points. Thus when you balance (or nerf) the game, you’ve just changed the user’s experience and thus inserted an audit point. In addition, when you release an expansion pack or a patch, it causes an audit point as the user must choose whether or not to go out and purchase the expansion pack which allows them access to new locations/adventures taking them out of their comfort zone within the game. That’s all well and good, but how do you actually build desire for your product in the first place? Paul believes that you must plan and invest in several areas prior to the launch of your product. You should have transparent communication from the very beginning (see Paul’s video blog along with developer interviews/podcasts and other behind the scenes material). You also need to build a sense of community so that your customers and prospective customers feel part of a greater whole. In this regard, EA Mythic has created kits for fan sites, forums on their website, special promotional events and materials, etc. Another way to build desire is to ensure that your product provides a sense of progression. This is very similar to the notions espoused by Kathy Sierra around helping your users kick ass. At the end of his talk, Paul mentioned the ‘innovator’s dilemma’, specifically evolution vs. revolution. He estimated that new products can only support 2-3 innovations per release, any more would simply overwhelm the market. For a product like his, he gave examples like a unique HUD, unique control scheme, completely different questing system, etc. In a related vein, he spoke about ‘crossing the chasm’, loosely related to Geoffrey Moore’s book which discusses bridging the gap between the early adopters and the early majority (the pragmatists). Paul’s example was that of setting for the game, fantsy vs. science fiction. His argument was that people can relate to better to a fantasy world as everyone knows about cutting enemies down with swords or clubbing them but shooting blaster cannons or instaneous space travel, which don’t exist in real life, take more of a leap. Personally, I’m not sure that’s the reason why most Sci-Fi MMOs are having a difficult time but he’s certainly entitled to his opinion. Overall, Paul’s talk was quite enjoyable (in no small part to his bitingly sarcastic British humor) and he has definitely made some interesting observations, though it would seem that many are widely known outside of the “game development” community. I look forward to hearing more from Paul and the team at EA Mythic and will be keeping an eye on the development of WAR.
Implementation of Digg Spy in Rails
Based on a comment from an alert reader, I found out that the link was broken in my Ajax Spy in Rails post. Since I couldn’t locate the original zip file on my powerbook, I rewrote it from scratch using Rails 1.2.3 with REST/CRUD and then updated the link at the end of that post. To save you time, you can download the source from here as well. This (and the prior) version simply uses a timer to periodically call back to the server to see if there were any updates, which places an unnecessarily heavy load on your server. A better approach would be to use something like Juggernaut to push updates out to clients. I’m investigating Juggernaut now for use in my Ajax Rails game — I’ll post more once I have a demo.
April NoVA Ruby Users Group
Tonight we held the April meeting of the Northern VA RUG. Ray Daly presented RSS and novel uses for it while Paul Stadig discussed various methods of screen scraping. Ray provided an overview of RSS, examples of widespread usage (news feeds, monitoring, podcasts, etc) and then spoke about how RSS could be used to tie together disparate systems. He wrapped up with a Rails demo showing how to create RSS feeds and a brief discussion of the available libraries for creating and consuming RSS/Atom. Paul’s presentation on screen scraping started with a discussion of why you’d want to gather data in this way (most of the interesting data lies in the ‘deep web’ where there is no API/RSS to extract the data easily). He then gave an overview, with example code, of N tecniques: POOR (Plain Old Open-URI and RegExps), POOH (Plain Old Open-URI and Hpricot),WWW::Mechanize, scRUBYt, WATIR and FireWatir, and scrAPI. Of the examples shown, Hpricot looks like an excellent HTML parser (though it does require native code) while scRUBYt and scrAPI seem to have the most promise for making screen scraping easy to do. His slides are here. The May NoVA RUG will be held on May 23 as the prior week is RailsConf.
March NoVA Ruby Users Group
Tonight we had the March meeting of the Northern VA Ruby Users Group. First up was Douglas Sellers who talked about Selenium and Selenium on Rails. After a short break, I spoke about RESTful Rails (focusing on CRUD, REST and ActiveResource).
Doug provided us with an excellent overview of Selenium core and went in to how to install and configure it (hint: it’s as simple as downloading and unzipping it into your public web root directory). He then went into the steps involved in manually creating tests and test suites and how it gets tedious very quickly (as you’re writing HTML tables). To make the development tester’s job much easier he walked through the same test using Selenium on Rails which allows you to use Ruby to generate your tests. Doug’s slides are available here. I ended up rushing through my slides and didn’t enunciate well so the listener experience was pretty bad, I’m sure. I need to relax when presenting and slow down. Still, I think that the content stands on its own and many folks seemed interested in my sample application for managing users groups. You can download the PDF-ized slides here and once I get the subversion repository setup, you’ll be able to view and checkout the source code here. Also, here are the two scripts I followed for the demo: REST and ActiveResource.