Never stop learning
One thing I always recommend to my customers is to keep their developers up to speed on the latest Windows driver technologies. I’m thinking about this right now, since last week saw the release of Developing Drivers with Windows Driver Foundation and we are less than two weeks away from the start of this year’s WinHEC.
It is scary how many managers and developers believe that they don’t need to know this new stuff. Even if you are still required to do drivers for NT 4.0 (hopefully not), learning the new stuff can improve your code. Just seeing where Microsoft has put its effort to improve things may suggest to you places in your code you need to review and improve.
Also, just because you can’t use the latest Windows versions does not mean you cannot use the latest tools. I had a customer a few years ago who had been chasing a bug for around six months. I used PREfast on the code and found the bug in the legacy driver in a couple of minutes!
Yes, you can in theory learn this stuff from the Windows Driver Kit documentation, but that is the hard way to do it. There are a lot of great papers on Windows Driver and Hardware Central and at OSR Online . I check them weekly to see what is new. The challenge for papers and documentation is to know how to approach all the information. That is where a book, WinHEC, or one of the excellent classes offered on Windows drivers can help.
This year will be my 10th WinHEC, and at every one of them I have learned something new that I now apply to my work. More importantly, WinHEC is a chance to meet many of the experts in the field. You don’t want to abuse this, but it is extremely useful to be able to drop an email to an expert and ask a question.
People ask on forums, “What book should I get to learn device drivers? “ The real answer is, all of them. Looking up at my bookshelf, I see 17 books on Windows internals and drivers, including each version of some books. This does not count all the class notes, the booklets from WinHEC, and many years of OSR’s NT Insider. It also does not count the draft of the excellent WDF book I mentioned in the first paragraph. I was a technical reviewer of the book and cannot wait to get my hands on the production version.
I’ve been writing drivers and system software for 35 years, and it surprises some of my clients when I mention I’ve taken five classes on Windows driver development. These clients think if you’ve written drivers before, you only have to tweak what you know. Nope. Windows is an incredibly rich development environment for drivers, and there is a lot to learn. Right now if I had the time, I would like to sign up for a couple of classes from OSR and a couple from Azius, about Windows driver development, because there are areas I know I could learn more about.
Never stop the learning process for yourself or your developers. If you do, you are crippling your product’s capabilities and/or time to market, and your future employability as a developer.