Sunday, January 20, 2008

Agile methodologies and Spelling bee?

Yes, I am the proud father of a little walking dictionary. My oldest son qualified to be part of the team that might be representing his school to compete against other schools for the Scripps National Spelling Bee Competition. Now, how do you study those 870+ words needed for the competition with a 11-year-old whose parent's first language is not English?...

Geek time.! I have an old iPaq 5555 that is pretty much sitting collecting dust. So I decided to write a program that will allow him to practice those words. A pocketPC seems to be the perfect platform for it, since it has built-in support for hand-writing and sound. So it is like having an interactive flash card.

My idea is to have the word being pronounced by a native speaker, and then have him write the word. This is my first take on this idea:

image

I also put a show button for studying/reviewing. So that as he moves around the list of words, not only he can click on the PLAY button and hear it, but he will be able to see: language, definition, sample use.

One of the trickiest part of the program was getting it to play those wave files.! Yeah. My Google skills are either fading out, or there was not that many people writing media applications for the pocketPC. :( I have to admit it took me longer that I expected to find the right information.

Here is the link to MSDN to the article that I use http://msdn2.microsoft.com/en-us/library/ms229685.aspx

Basically, it uses the CoreDll.dll library to accomplish this

[DllImport("CoreDll.DLL", EntryPoint="PlaySound", SetLastError=true)]
private extern static int WCE_PlaySound(string szSound, IntPtr hMod, int flags);

In true agile fashion, I have written the alpha 1.0 and tested it with my *end user*. Feedback is always good when you are writing an application with so little requirements. This version 1.0 is very crude, but it accomplishes the primary objective. Now while he is *testing* the first iteration of the application, I am working on features for the 2nd iteration.


Then I have shown the program to the PM of the Wing's house(aka. Wifey), and now my feature list has grown by 2x, and of course my deadline is still the same... :'(


I have put this program on Codeplex/FlashBee. It is more of a rough 6hr-POC. The cool thing is that he and me sat down and wrote the application together (not all 6hrs). Anybody said pair programming? ;)

2 comments:

Randall Drum said...

Great idea on the application! Good luck to your son and the team.

You should have known better, though. You know your feature list is going to grow exponentially after you show it to the PM!

sqlblindman said...

What, no Biztalk component?