Introductions
As new boy on the block, I think it behoves me to give a little introduction: my experience, my interests, and what subjects I intend to cover in this forum.
The bio at the top of this forum describes much of what you need to know about my experience, so I won't bang on too much more about that. Professionally, I enjoy leaving behind happy clients, and in particular I take it as a point of pride to build systems that don't break. Not always easy to achieve, of course. Although I primarily work for clients within Australia, I do occasional work with overseas clients . The common factor between them all is that they want reliable software.
Unprofessionally (that doesn't sound too good, does it?) Non-commercially, my interests are pretty cleanly split into two:
- Examination of what software quality actually means. Though more than a little philosophical, there're also a lot of practical aspects to my search. The Quality Matters column I write for ACCU is the main forum for my ruminations, but that's not to say such issues aren't going to spill over into observations here (e.g. how String.Split inhibits expressiveness, or how String.Join inhibits flexibility)
- Building software libraries and programs that assist me in my professional work, or that enable me to master a new language/technology, or that simply interest me. It's nice when it's all three, of course.
Officially, my remit is Windows/.NET. And that's a pretty good fit, as I've been focusing on .NET more in 2009 than ever before. Since I'm currently actively working on my next book, Imperfect C# (to be published next year), there are bound to be some good crossovers. So a lot of what I'll cover will fit into that characterisation. As something of an unconstrainable polymath, however, it's impossible for me to promise not to stray onto other subjects, most likely C, C++, Ruby.
I'm also going to be publishing several C++/C#-related articles in DDJ over the coming months, and this blog will allow me to discuss and expound on issues raised in the articles.
In terms of style/approach, I'm known for being a bit, er, wordy. So, inevitably, some of these posts will go on a bit. But I am going to really try to be as short and sweet as possible. Similarly, while I tend to spend forever researching an issue - hence why it takes me 2-5 years to write a book ;'( - I am also going to my hardest to publish early, publish often. Obviously, there may be the occasional hasty post, but any time I do make a mistake - and I count on you all to tell me! - I will make the suitable corrections (and attributions). Along with the occasional long-planned (and possibly long) post, I'm going to try and do the stream-of-consciousness stuff that others seem to find so easy, and post regularly about the things I'm currently working on.
So, while I hope to primarily interest Windows/.NET programmers, I also hope to say things worth listening to C/C++/Ruby programmers, along with anyone who's interested in the various factors influencing software quality. And, of course, I look forward to getting lots of feedback - good, bad, weird, whatever - and engaging in feisty debates online. :-)
Finally, I'd like to say a big Thank-You to Jon Erickson for again giving me the opportunity to make my presence felt to the DDJ community. It's been a while, and I'm very glad to be back.

