Just saw a mini review of Rootkits: Subverting the Windows Kernel over on Ted Neward’s blog. Looks like the perfect follow up to Undocumented Windows 2000 Secrets as I continue my slow progress towards being able to write Windows device drivers… From the sound of Ted’s review it’s written in a similar way to the Undocumented secrets book; showing you how to write drivers which aren’t for real hardware… Anyway, I popped over to Amazon and it was being recommended on the front page for me due to my past purchases.

Undocumented Windows 2000 Secrets

Just finished reading Undocumented Windows 2000 Secrets: A Programmer’s Cookbook by Sven B. Schreiber. Well, I say reading, it was really just a first pass through the book. The text and code spends more time in kernel mode than user mode; there’s a lot of information in there and it’s all relatively new to me so it’s the kind of book that needs a fair bit of work. Sven starts by explaining how to set up a system that you can use for kenel mode development, you don’t want to use your main box as it will be blue screening a lot of the time.

Currently reading

Just before I dive back into my other project, the one I don’t talk about, I thought I’d post a short note about the pile of books that I’m currently reading… Working Effectively with Legacy Code by Michael C. Feathers. Roy Osherove has this as his book of the month and I’d previously read some of Michael’s writings on testing and found them useful. The book’s great. If you ever have to work with the kind of code that I wrote about at length as ’the refactoring project’ then this book is for you.

Currently Reading

I’ve been reading mostly fiction recently. I’d kinda stopped reading anything non-technical for far too long; there was always some new techie book to read, but there always will be… I used to read masses of fiction, mostly SF and fantasy stuff; but recently I’d only read fiction when on holiday, and then only as a backup to the techie stuff I had with me… That changed, on holiday, when I read Dan Brown’s The Da Vinci Code.

Mythical Man Month

I finished re-reading the Mythical Man Month today. It was a good read, and, just as when I read it just after the 20th anniversary edition came out, still very relevant to software development today. I found Brooks’ enthusiasm and attitude to be quite compelling; it’s so obvious that he loves his work. This quote from the epilogue sums it up and reminds me not to be so grouchy; “To only a fraction of the human race does God give the privilege of earning one’s bread doing what one would have gladly pursued free, for passion.

More than 20 years on and still as much to say

I’m currently re-reading The Mythical Man Month 20th Aniversay Edition and I’ve just finished watching Apocolypse Now Redux. Both seem to have as much to say now about their respective subjects as they did in the day. Brooks’ treatment of the “Joys” and “Woes” of The Craft as poignant as Coppola’s tale of the lies and horror of war.

Currently reading

Agile Software Development - Principles, Patterns, and Practices by Robert C. Martin This book is physically heavier than most of the books I’ve been reading lately but I’m still carrying it to work even though I only get around 5 mins reading done on the tube during the journey. It’s a beautiful book; the typeface and illustractions are stunning, the paper feels rich, the cover is cool and colourful. The content is pretty good too.

Waltzing with Bears

Finally finished reading Waltzing with Bears: Managing Risk on Software Projects and it was well worth the read. Waltzing with Bears is a book about managing project risk. It’s a slim volume, but packed with useful information. As usual, DeMarco and Lister present the topic in an approachable and readable way. The text is full of anecdotes that flesh out the theories with practical examples. In a nut shell; most project managers on software projects fail to adequately manage risk.

Test-Driven Development (By Example) - Kent Beck

Kent Beck demonstrates the testing side of XP by separating it out into its own simple methodology. Test-Driven Development is exactly what it says it is. The entire design and development effort is driven by the tests that you write and you’re encouraged to write those tests first… Parts one and two contain worked examples of Test-Driven Development. Some will probably say that they’re too simple, but I’ve found that even the most complex domain usually ends up as relatively simple code if you develop in this way.

Slack - Tom DeMarco

I’ve always been a fan of DeMarco’s work. I tend to nod my head and agree as I read, and wish that all the software development managers that I work with would read his books. Slack is an excellent analysis of the problems plaguing large corporations’ software development efforts. The book starts off looking at how and when knowledge work gets done; the myth of the fungible resource, and how the drive for efficiency in many corporations leads to everyone being so busy that they have no time for anything but the task at hand.