This month's IBM Systems Journal features an article on service-oriented architecture by fellow bloggers Alan Brown and Simon Johnston. I read this a while back in draft and was very impressed with it.
Uh oh, Alan's blog has disappeared off of the main page. That's what you get for not updating more frequently Dr. Brown![Read More]
Jazz platform development
There's been plenty of media attention given in the last part of 2005 to the launch of Microsoft's Xbox 360. On the positive side there's the great graphics and the much sleeker product design; on the negative side there's been the severe shortages and the reports of instability.
I don't see much point buying an Xbox 360 until late 2006 at the earliest, if ever. As someone in the tech industry, I realize it's mildly heretical not to lust after the shiniest of shiny new toys, so let me explain. It basically comes down to this - there are many games for the original Xbox (and the Playstation 2, and the Gamecube for that matter) that you can get for $20-30 that are much better than any $50-60 new game for the 360 ... next-gen graphics be damned!
Great games usually lag new platforms and the Xbox 360 is a great example of this. It takes time for developers to ramp up on new APIs and new programming models, so great games for a given video game platform don't usually show up until year 2. Occasionally there are exceptions to this rule (e.g. Halo on the Xbox and Rogue Squadron on the Gamecube) but with the Xbox 360, I haven't seen any games in that league. I'm perfectly happy spending my limited time on games like Jade Empire (current game) and Ninja Gaiden Black (next game, should I ever finish current game), both of which have received excellent reviews (90+ on the geek-o-meter) and both of which I can get for around $25 used on Amazon. If you really feel the urge to experience the next-gen graphics on the 360, go to Best Buy at 9am on a Saturday morning and play the in-store 360 for a few hours to get it out of your system.
Another consideration for some people is that next year, two more new next-gen consoles arrive - the Playstation 3 and the Nintendo Revolution. One might make the argument that you should wait to see which of the three is best before buying the first one. This argument is bogus though because it's very easy to sell your console back to a store like Gamestop for store credit towards future purchases. Or you could just buy all three.
Contact (or spam) me: email@example.com[Read More]
About two months ago, a bit stretched from the demands of work, fatherhood, and everyday life, I decided to simplify things a bit by moving all of my family's major financial accounts - bank, savings, stocks, mortgage, etc. to one vendor. I did some research and decided on Citi, mostly because of their breadth of services and good reviews of their web capabilities.
I must admit that I was very impressed by the automation of their checking account application process. Now I realize that the previous sentence sounds incredibly geeky, but having worked on IBM's enterprise application portfolio for several years, I realize that making lots of heterogeneous front-end and back-end systems work together to provide a low-friction business process is #1) vital to success, and #2) very hard to pull off.
But Citi's account registration process is really a model of how the "customer self-service" pattern (one of our patterns for e-business) can work well. Believe me, I say this with all of the cynicism of someone who's spent too many hours trying to find a well-hidden phone number on a corporate web site or fearfully punching in numbers on an automated telephone system, hoping that my next selection won't take me down a wrong irreversible path, or accidently disconnect me after putting me on hold for 10 minutes.
But back to Citi's account registration process. Most of it was just standard data collection in the context of a standard 5-10 page web-based wizard. But during this workflow, there were two things that really impressed me. The first was Citi's identity confirmation method. Early in the wizard it asked me for the social security number and drivers license number for my wife and myself. Fair enough. But then it did something surprising and impressive. It asked me several multiple-choice questions that only I should know - along the lines of "We see that you have a mortgage on a home in Durham, North Carolina. What is your total monthly payment on this mortgage?" and then gave four choices with only $100 ranges. It then asked similar questions for my wife. Somewhere in the background it must have taken our identification information (SSN and drivers license) and pulled a credit report and been able to parse that credit report into meaningful multiple choice questions. Since I was indeed the person I was claiming to be, I answered the eight or so questions with no problem, but I think it would have been hard for an imposter to answer the questions on the first try, and I'm sure the application would have quietly (or perhaps not so quietly) raised a red flag on the application if I'd gotten one or more questions wrong and had to correct them.
The second impressive feature of the online account application was the one-click help from a human being. I'm always irked by how hard many companies make it for you to contact a real human to answer questions, but Citi made it easy and in a cost efficient way to boot! Throughout the wizard there was a space on the right side of the web page along the lines of "Got questions? Click here to talk to a live representative" (as opposed to a dead representative). So at one point indeed I did have a question - how could I make the system aware that I have an existing mortgage account that I'd like to coexist with this new checking account? No problemo - I clicked the link to talk to a rep and IT JUST WORKED. No security dialogs asking if I agreed to download such-and-such scary ActiveX component or incompatible Java applet - it just opened a little popup window that allowed me to chat with someone named Monica who was able to answer my question in about four minutes. The efficiency aspect of this from Citi's perspective is that by making the "online chat" link so present in the UI, not only did they make it easy for me to answer questions, but Monica (wherever she was - probably Bangalore) since she was using instant messaging, was probably answering questions from five other people at the same time she was answering mine.
So two thumbs up to Citi for providing an easy-to-use function, making use of a lot of back-end functionality and information, while hiding the complexity.
Disclosure: I think IBM and Citi do business together, though this business didn't prompt me to write this entry. Come to think of it, as massive as IBM and Citi are, it would be surprising if their tendrils were not somehow interconnected...
Contact me: firstname.lastname@example.org[Read More]
26 Dec. 2005 update: Another piece of the puzzle that I forgot to mention below is the nascent Eclipse Beacon project which open sources the process meta-model and some of the code and content of Method Composer.
Just finished another 6-week milestone on my annoyingly (but understandably) secretive project with Rational.
Finally able to take my head out of Java/web development for a few minutes, I noticed that the product now officially known as Rational Method Composer appears to have been made public. What is Method Composer? From the marketing page:
IBM Rational Method Composer is a flexible process platform containing processes and tools for use throughout IT Lifecycle Management (ITLM) that will help you deliver customized yet consistent process guidance to your project teams and IT organization.
Is that a sigh of disinterest I hear? Wait! There's interesting stuff here!
1) RUP shifts more towards agile methods
A big complaint I often hear about the Rational Unified Process (RUP) is that it's too high-ceremony and is concerned with too many non-code/non-test case artifacts (e.g. design models, architectural documents, etc.) What many people seem to miss is that RUP is not a simple process; it's a process framework - a meta-process - used to create a process tailored to a group or organization's needs. That means it can be as high-ceremony or agile as you want it to be. The big value of RUP (in my opinion) is the distillation of many years of experience developing software into concise process guidance. It's like the energy bar of software development educational material.
That being said, as a process framework, it seemed that one of RUP's problems in the past is that it wanted to be everything to everyone - i.e. be able to equally support a large, high-ceremony, waterfall process as well as a small, agile, iterative process. But the new release leans heavily towards agile processes. You can see this somewhat in the repositioned "principles for business-drive development" article that Per Kroll and Walker Royce wrote two months ago. If you're familiar with pre-2005 RUP best practices (manage requirements, etc.), you'll notice the obvious shift towards agile.
2) RUP and GS Method reconciled
As you may know, before joining Rational I worked with IBM Global Services since the start of my career. When we (IBM) bought Rational a few years ago, the first thing I thought of was "how the hell will they reconcile GS Method with RUP?" GS Method stands for "Global Services Method" and is a proprietary process framework, used by Global Services professionals, to guide all GS work from marketing, to proposals, to delivery, to ongoing operations. So GS Method is really comprehensive and useful, but so was RUP, so how do you reconcile their structural and semantic differences? The answer is that you get about five really smart process weenies to work out the differences over the course of a year and a half.
Some of the smartest process weenies (and I use that term with great affection, being a bit of a process weenie myself) from Rational and Global Services, including former members of PriceWaterhouse Coopers consulting (which had yet another method - SUMMIT Ascendant) worked through the basic structural and semantic differences of the three methods (RUP, GS Method, SUMMIT) and came up with a consolidated meta-model (which has yet another IBM three-letter acronym name of which I won't trouble you). This consolidated dev process meta-model basically defines for us things like "what is a process?", "what is a role?", "what is a stakeholder?", etc. Now this may seem really boring to you, but it's vitally important to making these processes coherent with each other - after all it's hard to agree about the best way to develop a business application if you can't agree what an activity is. The other benefit is that having a rigorous meta-model to define a domain is absolutely vital if you want tools to support this domain. So keep your eyes open for further innovation from IBM around the development process space.
3) Method Composer's a great example of an Eclipse Rich Client Platform app.
It's my understanding that interest in the Eclipse Rich Client Platform continues to grow rapidly as a viable desktop application platform. This isn't suprising given the quality of Eclipse as robust container for interoperable and extensible software components. Method Composer is a great example of a pure RCP application - no Java tools here. It packs a great deal of functionality - the Eclipse v3.1 runtime and all of the Method Composer stuff - into 37 MBs worth of plugins.
Contact me: email@example.com[Read More]
Well, though I don't have time to post on my own blog, somehow I made time to write a long response to Bobby's post on Business Week's article on Java being passe.
Read it here.
21 Dec. Update - Mike Milinkovich of Eclipse really nailed this issue in a recent blog entry. Thanks, James for the pointer.
contact me: firstname.lastname@example.org[Read More]