I think I spent five minutes laughing today. It was laugh or cry, really. I had one of those work-related moments where life itself becomes entirely absurd and you realize that there’s nothing worth taking serious anymore. All because of an email I received.
You see, we’re working on a new product at work. And the powers that be have decided that they’re not comfortable with the risk involved in writing the firmware for the product for Linux. They’ve decided that they’d be much more comfortable modifying the code we currently use on other products that runs under VxWorks. So this means a complete change in firmware development. New compiler, new development environment, different baseline code.
That’s all fine for the firmware guys because, quite frankly, they haven’t really been working on the code for this anyway. So regardless of which operating system they go with, they’re still at ground zero. Unfortunately, as I’ve already began working on the bringup code to verify that the hardware is functional (and it only makes sense to write the bringup code and operational firmware for the same operating system for the sake of code reusability), it means setting aside about a month worth of work that I’ve done and starting over from scratch. There’s nothing like saying, “wow, look at all that work I’ve done. It’s great. Now it can sit there and possibly never see the light of day again.” As I said, I laughed because it was easier than crying.
The only thing that really bothers me about this is that I feel like I only found out about this change of direction on “accident.” The program manager for this project just sent out an “oh, there’s been this official decision, just so everyone knows.” No one explicitly came out and said, “you know, this means Jarred needs to change gears too.” So if Mark hadn’t just offhandedly pointed it out, I wonder how much farther they would’ve let me toil away in the wrong direction before I found out. Now that would’ve irked me. It’s one thing to tell me that I need to start over again. It’s another thing to let me keep working in the wrong direction when a change of plans has been made.
In the long run, this really doesn’t bother me that much. Sure, I have to let go of my work from the last month and acknowledge that it doesn’t account for anything now (other than the fact that I’m a hard and dedicated worker). But that’ll be a good exercise in ego dissolution. And my ego could probably use a bit of dissolution, anyhow. But on the true positive, it means that I can write the bringup for VxWorks. And in a lot of ways, writing bringup code in VxWorks is a lot simpler than doing it in Linux. Especially when you consider that I’m still really learning the ins and outs of the Linux kernel.
Of course, that does also mean that this project will be less of a challenge for me. I mean, hacking the Linux kernel, figuring out how to do device drivers, and everything else was new territory for me, so it required learning and a shift in thoughts. And I rather enjoy that. I was looking forward to it. Oh well, hopefully I’ll get another project to do that with.