I have a confession: I’m an early adopter. I like new shiny stuff. And if I like what I see, I’ll continue to use it. I was wondering a few days ago, what is the difference between what I’ll continue to use and what I’ll drop. The first tool that came to mind?
Ask around the Typemock office, and everyone will tell you (even marketing and sales) their favorite tool is Resharper. It makes you productive, and gets you hooked with its refactoring features. If you’ve tried it, you know what I’m talking about. If you haven’t – try it.
A few months ago, I was at a craftsmanship group meeting. Lior Friedman showed an incredibly ugly looking method, and wanted to refactor it. He asked: What should I do first? His answer: Write a test first. And as a unit testing guy, that should have been my answer as well.
Instead I said: If I had R# installed, I’d use it to do some basic refactoring to make it more readable. I’ll write the tests later, as I understand a bit more about what the method does.
Why, Gil, Why?
Because I trust it. The same way I trust tests will save me from doing something wrong, I trust R# to make the code easier to read, without wreaking havoc.
For people picking up new stuff, trust is crucial. If we smell something’s even a bit wrong, we’ll start wondering: What happens on real code? What kind of homework will it make me do? We can endure some bugs, but if the overall feeling is not full trust, we’ll drop it.
I’m on a quest, discovering what makes products sticky. Trust is my first find.
What do you think I should explore next?