Monday, March 14, 2005

Fits and Starts

It was becoming quickly apparent, even to lummoxes such as myself, that the timeline was far too agressive. I put together a quick spreadsheet to show that even with another developer (which we didn't have) we wouldn't be able to finish the project in time. I held a meeting with Alec and Rutherford. Rutherford, in classic style, took my two pages of notes and reserved a conference room for the three of us to talk about them.

   "So what are you saying?" he asked, finally giving me free reign without asking a leading question.
   "I'm recommending that if the date is more important than the product, we should do this in Zinc, then back-port it to Windows CE. If the product is more important, then let's do it in CE and move the date."
   The mention of Zinc was like offering to kill his dog, but the proposition to move the deadline made him pale in comparison. He started shaking his head as I was talking, as if to let me know that no matter what I said he wouldn't approve.
   "So what you're saying," he attempted to summarize as he walked towards a whiteboard, "is that for a greater chance of success we could do it in Zinc-DOS. But if we added a programmer," he emphasized, using my project-won't-be-complete-even-with-additional-help spreadsheet in a way I hadn't intended, "we might be able to finish it on time."
   Trying to put it into terms we were all familiar with, he continued. "So if we do it in Zinc, then move it later, it's like getting a...double. But if we hire another programmer and do it in CE Microsoft it's like hitting a home run."

Oh no! The dreaded appearance of a climactic sports term in an Important Meeting! I've seen too many important decisions swayed people who casually threw out phrases like "home run," "slam dunk" and "touchdown." They're great. They get your blood pumping. Yeah! A slam dunk! Let's see the replay! Awesome! Let's go do this, uh, thing! Uh, what were we talking about?

   "Yeah," I allowed, cringing. "We might hit a home run."

Alec sided with Rutherford, and so it was decided--as much as it was ever really a decision--to go ahead with CE and hire a contract worker for additional development. We needed an expert to help show us the ropes. I recommended the instructor from the course I had just taken. He was available. I posted an ad in a CE newsgroup. We contacted Doug Boling, who was busy on another project. You would think these guys would be perfect--after all, they have the guy who wrote the definitive MFC book--but they couldn't get a quote together.

For my part, it was time to sit down and learn all about app development on CE with MFC. MFC isn't Microsoft's darling anymore. That prize goes to C# and the .Net Framework these days. (Don't be surprised if you see a billboard that reads "C# - The official programming language of Microsoft Corp." on that link, although I don't know of any major MS applications written in C#.) As far as I know, no one has written much about MFC on CE. Maybe it's a dying breed. More likely, it's just not cool anymore and it won't sell books.

Despite the lack of printed matter, the web proved to be an excellent resource. I saved some of the links that helped me along the way:

CE Architecture


MFC/Examples

CE Graphics

It was really slow going at first, but I learned in fits and starts. While I'm usually the kind of guy who thrives in a completely new, sink-or-swim environment, it's always tough learning under the gun. The microsoft.public.vc.mfc newsgroup is an excellent resource. I have a theory that if you want to learn something fast, get yourself to the point where you can answer (some) other people's questions. Then you'll know that you at least know something.

Then one week, after almost a month of futzing around with example code, reading books and tutorials, and tinkering with prototypes, it all clicked. I had just gotten back from vacation, it was shortly before Christmas, and I decided to implement what I knew. I figured I could always learn more, but I might as well start somewhere. That was a great week. I wasn't even working very much overtime. I was in the zone. (It must've been all those home runs and slam dunks.) I wrote over 2,500 lines of code that week. And the application started to come alive.

7 Comments:

At 3/18/2005 9:24 PM, Anonymous gnat said...

I know what you mean about the power phases in meetings. Even if the project was a "slam dunk" no one would recognize it because everyone's picture of a "home run" (or whatever catchy power phrase you feel like using) is different and therefore they had different expectations of what and when the end product would be....Great blog...looking forward to the next one.

 
At 3/19/2005 2:48 AM, Anonymous Anonymous said...

It is interesting to read about that dynamic environment you work in... "I recommended the instructor from the course I had just taken. He was available." :) I have trouble in Hungary to find anybody at my university who is interested in CE. (And it is nearly impossible to find someone with experience.) So you really have to figure out everything yourself, the trainings and other face2face experiences impossible.
You mention in your post that book availability is so-so. Yes, I think this is a big problem. Boling's book is good for programmers, but not for rapid development. And there is no uptodate for Platform Builder.:( MSDN is a good source, but not a book, only a reference library and distinct articles…

Bálint Kátay.

 
At 3/20/2005 2:52 PM, Blogger Stacey said...

Wow...impressive descriptive language....you had me looking at my dictionary...stumping the English teacher...I felt like an lummox!

 
At 3/22/2005 6:09 PM, Blogger D. Philippe said...

Heh, I guess the big question is where the plural is "lummoxes" or "lummoxen."

It reminds me of the old joke about the zookeeper who was writing his mongoose catcher. He couldn't remember if the plural of mongoose was "mongooses" or "mongeese" and he didn't want to look dumb. So he wrote: "Please get me a mongoose. And while you're at it, get me another one." (!)

 
At 10/13/2005 2:37 PM, Blogger mia said...

I really enjoyed the content on your blog about Msdn will be back very frequently! I actually have my own Msdn Exposed blog with all kinds of stuff in it. You�re welcome to com by

 
At 2/21/2007 8:34 PM, Anonymous Anonymous said...

Excellent, love it! Blaupunkt mobile dvd players cadillac engine swap Cadillac loyalty bonus Shenandoah national park hiking trail http://www.cheap-bad-credit-merchant-account.info/merchantaccountfloridasoftware.html Discount anit spam filter for incredimail Dallas dealerships in kia Benz sl 500 Free xxx spanking stories rhinoplasty surgeons in western australia Hummer h2 limo price Cayman cruise grand island Delta tire corpus christi Levitralevitra vardenafil hcl Suzuki drz400s mod27s

 
At 3/03/2007 2:38 AM, Anonymous Anonymous said...

Wonderful and informative web site. I used information from that site its great. »

 

Post a Comment

<< Home