Happy new year :)
A new year is a great time to start off new things, or to renew old commitments that have been somehow left behind.
I'm excited to announce that starting Jan 1 I will start working at TypeMock as a senior developer. I will help create the next generation of unit testing tools for .NET developers focusing on new and exciting areas in the unit/integration testing world that have yet to be fully addressed at the developer testing level.
I will continue to speak and train on my favorite topics (so send an email through the blog if you need something) but the majority of my time I will get back to basics: real code on a real product, not just consulting to other teams.
I feel I have grown too far from real world work and in the long run that makes me less relevant to real developers as a consultant. That's why it's time to get back to being a real developer so I can face some real world scenarios once again and learn better ways to do things.
But why TypeMock? Aren't you contradicting yourself?
In the past I've let my feelings about using TypeMock known. mostly I said that I think using TypeMock for new code is making it way to easy for developers to shoot themselves in the foot later with bad design. Eli, the founder of TypeMock, disagreed with my views on design for testability on his blog. I still hold the same views, but in the same breath I will say that TypeMock is great for many other scenarios where a regular Mocking framework just doesn't have any way of helping. Mostly, I'm talking about Legacy code that is hard or unrealistic to refactor into testability, or when using testability-disabling frameworks such as WCF, WF and even LINQ Queries. It's ability to isolate a class from its dependencies is second to none (it's the only tool I've seen that does this, and does it well).
Even if TypeMock is "too" powerful to be used everywhere, I would much rather have a choice by having it when I need it than not have it at all.
These differences in opinion between me and Eli are, what I think, will eventually make the company and the product better. A company like TypeMock cannot afford to sit in its own echo chamber, but instead be made of multiple views and opinions to make a better product.
What will I do exactly?
I will work on a future product which I cannot discuss yet. Also, I will start doing some TypeMock support work so I learn the product better, and contribute from my thoughts and vision into its next versions and design.
All the while I am continuing with my quest to finish the never ending book of Unit Testing. Here's to me finishing it in the next few months. (BTW, In my book I still use Rhino.Mocks for examples, since TypeMock is a commercial product)
Will you blog about it?
yep. I hope that my little blogging "break" in the past few months will fade away now that I will have more things to write about. One of the reasons I haven't been writing a lot to the blog is because I was too busy doing things that I eventually found drew me away from what I really love doing - coding and technology. Now, I'll have something to write home about.
Here's to making a difference.