Wednesday, December 21, 2005

360, PS3 and Revolution

As the number of days left for Christmas shopping dwindle, it becomes harder and harder to find one of the most popular gifts this season - the XBox 360. If you can't find one, don't worry - it may turn out that the XBox (and the PS3 for that matter) are missing the boat when it comes to video games.

When you think about the "Jobs to be Done" regarding video games, perhaps the most important job is allowing the game player to escape from reality for a while and become immersed in a new world. Sony and Microsoft have decided that the best way to do this is to make the pictures and graphics on the screen as realistic as possible. Both are moving along the sustaining curve in that the traditional measure of performance for video games has been graphics. Both the XBox 360 and the PS3 have incredibly sophisticated graphics processors and support High-definition outputs. Both produce stunning graphics. And both have hefty price tags.

Nintendo has decided to go a different, and perhaps disruptive, route. No high definition for the new console, the Revolution. And while the graphics processor will be capable, it's not the cell processor that's going into the PS3. The price? Estimated to be half of a fully loaded XBox 360 or PS3. So what's the big deal? The controller.

The wireless controller eschews the typical joystick controllers used by the PS3 and XBox 360 in exchange for motion sensitivity. Imagine your character walking in the forest and encountering a dragon - a quick slash of the controller results in your character making the same slash with his sword. A lunge forward and your character lunges. Don't aim your gun with a joystick, aim it with your hand like a real person would do.

Nintendo is betting that the way to a more immersive experience is not through higher quality graphics. They believe that the graphics capabilities of the new systems are overshoot. Instead, they argue, make the gaming experience more real by having the player get more physically involved.

It's a new approach in an industry that has been focused on graphics for a long time. While it remains to be seen how successful Nintendo will be, they have to be commended on their attempt at disruption.

So if Santa doesn't bring an XBox 360 to your house this Christmas, it may not be the disaster that Microsoft would have you believe.




Thursday, December 08, 2005

xUnit and testing frameworks

Kent Beck published a unit test framework for the Smalltalk language in 1999. The architecture of SmalltalkUnit (or SUnit) represents a sweet spot, an ideal balance between simplicity and utility. Later, Erich Gamma ported SUnit to Java, creating JUnit.
JUnit in turn begat CppUnit, NUnit, PyUnit, XMLUnit, and ports to many other languages. A dizzying array of unit test frameworks built on the same model now exists. These frameworks are known as the xUnit family of tools.

All are free, open source software.

xUnit Family Members

Some of the most popular xUnit test frameworks are listed next, with brief summaries of their target language and testing domain. This is just a sample of the many xUnit-derived test tools. Anything else to add?

JUnit
The reference implementation of xUnit, JUnit is by far the most widely used and extended unit test framework. It is implemented in and used with Java.

CppUnit
The C++ port of JUnit, it closely follows the JUnit model.

NUnit
The xUnit for .NET. Rather than being a direct port of JUnit, it has a .NET-specific implementation that generally follows the xUnit model. It is written in C# and can be used to test any .NET language, including C#, VB.Net, J#, and Managed C++.

PyUnit
The Python version of xUnit. It is included as a standard component of Python 2.1.

SUnit
Also known as SmalltalkUnit, this is the original xUnit, and the basis of the xUnit architecture. It is written in and used with the Smalltalk language.

vbUnit
vbUnit is xUnit for Visual Basic (VB). It is written in VB and supports building unit tests in VB and COM development.

utPLSQL
utPLSQL is xUnit for Oracle’s PL/SQL language. It is written in and used with PL/SQL.

MinUnit
A great example of a minimal but functional unit test framework. It is implemented in three lines of C and is used to test C code.

xUnit Extensions

Beyond the xUnits themselves, many add-on tools are available that extend the functionality of existing unit test frameworks into specialized domains, rather than acting as standalone tools. A representative set of popular extensions is listed here.

XMLUnit
An xUnit extension to support XML testing. Versions exist as extensions to both JUnit and NUnit.

JUnitPerf
A JUnit extension that supports writing code performance and scalability tests. It is written in and used with Java.

Cactus
A JUnit extension for unit testing server-side code such as servlets, JSPs, or EJBs. It is written in and used with Java.

JFCUnit
A JUnit extension that supports writing GUI tests for Java Swing applications. It is written in and used with Java.

NUnitForms
An NUnit extension that supports GUI tests of Windows Forms applications. It is written in C# and can be used with any .NET language.

HTMLUnit
An extension to JUnit that tests web-based applications. It simulates a web browser, and is oriented towards writing tests that deal with HTML pages.

HTTPUnit
Another JUnit extension that tests web-based applications. It is oriented towards writing tests that deal with HTTP request and response objects.

Jester
A helpful extension to JUnit that automatically finds and reports code that is not covered by unit tests. Versions exist for Python (Pester) and NUnit (Nester).

Anything to add?




Tuesday, December 06, 2005

CMMi in a box???

From microsoft's website:

"MSF for CMMI Process Improvement provides process
guidance designed to accelerate the achievement of
Level 3 - Defined Process - in the staged representation
of the model. Using this process template is no guarantee
of receiving a level 3 appraisal, indeed only 17 of the 21
process areas are covered. However, this process template
has been designed to enable a software development
organization to achieve level 3 with a minimum of
bureaucracy and the lightest possible
documentation set."

This whole "Process Improvement in a box" idea wigs me out.

Using a "Process in a box" will give me a requirements template, but it
_CANNOT_ ensure that I will fill out the template _WELL_, and that is the
real goal, right? One of the KPA's for CMM level 3 is Organizational
Training Program, and I don't see any process in a box providing that out of
the box. So processes in a box that promise level 3 are ... I'll let you
fill that in.

I am ESPECIALLY concerned when people try to pair CMMI and Agile.

Those two concepts have very different value systems; trying to mix them
is kind of like making a peanut butter and fish sandwich - yeah, it's
technically possible, but why would you want to do that?

Personally, I am much more interested in accomplishing "People Improvement" to create CMM-X level CULTURES.




Thursday, December 01, 2005

Wallace, Gromit & an Engineer?

Tea has never been the most exciting of products. In fact, the most exhilarating
thing to have happened in the tea industry in the last hundred years was the
invention of the tea bag - that universal, ubiquitous repository for the stuff
that finally put an end to that revolting experience of finding leaves on the
end of the tongue. Nevertheless, even the creation of the tea bag could hardly
be called a revolution.

And sadly, consumption of tea has been declining too. It has been eschewed by
the great British Public, of all people, by that other noteworthy beverage -
coffee. They have, it would seem, been enchanted by the smells of the Ethiopian
Sidamo, Sumatra and Gold Coast blend wafting its way out of one or more of those
US transplants along the local high street.

So what to do if you are unfortunate enough to be a tea manufacturer? Is this
the end of the great British cuppa? Not at all. Not if you are as clever as the
marketing folks at PG tips, that is. They didn't just sit and cry in their beer
and watch their market slowly evaporate, did they? Not at all.

By enrolling the help of the Nick Park's distinguished creations Wallace and
Gromit, this noteworthy division of Unilever shipped an incredible two and one
half thousand million tea bags in the space of one month.

That's right! By inserting a limited edition ( is 1.5 million a limited
edition?) Mug with the likeness of Gromit the Dog into its 160 pack boxes, the
tea flew off the shelves like hot cakes. And put tea back on the map for good.

Since the launch of this highly successful marketing campaign, the Gromit Mug
has been a sought after item world-wide, with collectors in Oregon even paying
over $25 dollars to one underpaid editor who bought entire consignments of the
things from Sainsbury's. (No names, please! - Eddie.).

So what does the success of the Wallace and Gromit characters in the tea
business have to do with an engineer's industry? Quite a lot, actually.

You see, like tea, many industrial products - such as bearings, pumps, memory
devices, air conditioning systems, computers and sometimes, some software
offerings - have also become commodity items. And they've also recently come
under fierce price pressure from far eastern manufacturers in China, Korea and
Taiwan. The makers of such products are clearly in the same hot water 'space' as
the people in the beverage business were.

But taking a leaf out of PG Tips' books, here's their chance to differentiate
their products. And make some money too. All they need to do is to put the same
sort of magic back into their products - to personalise them, to mass customise
them, to create an air of value if you will - in much in the same way as the
folks at PG tips did.

Now I'm not suggesting that a licensing deal with Nick Parks, the gifted creator
of the Wallace and Gromit, is the answer to everyone's problems. But thinking
along the same lines as the marketing folks as PG Tips possibly couldn't do any
harm.