Under the hood and working with .Net, TDD, Software Design, and Agile Stuff
I've been asked several times over the past month "Should I start a blog? What if...?" The answer is yes, you should. Or more accurately, if you're interested in blogging you shouldn't feel afraid to blog. Here's a rundown of the good and bad things that will happen to you when you blog:
The Good
- You publish something that helps somebody. You've used a lot of tutorials, newsgroups, and other people's posts in your career. Think of your blog as a way to pay it forward.
- By writing out your position on anything, you'll be forced to crystallize your thoughts on a subject. I very frequently use my blog as a way to "pre-can" arguments and explanations for later. I've used my blogging material in consulting roles. I think that the simple act of expressing yourself is a good way to learn. What do you think about a subject, and why? Can you defend that statement?
- It's a way to practice communication
- You'll get noticed in a positive way and turn it into professional gain. Arguably, writing a blog is the best thing I've ever done for my career.
- It'll be funny to go back over old posts and see how your ideas have changed
The Bad
- You end up being wrong. Somebody will write a comment that tells you why your approach is wrong and they'll often say "just do this..." Cool, you just learned a new trick. You end up being wiser for the experience.
- You look like an idiot. Again, you've learned something;)
- "foobar" or another BlogCoward is going to call you a name. Nothing nearly as bad as what my wife says about me. Sticks and stones...
- You're going to make a very opinionated, inflammatory post and get criticized for it. Oh my gosh, somebody might disagree with you! It's okay, just keep it cool. One of our former CodeBetter mates used to make inflammatory statements on his blog, then get really bent out of shape when people wrote in to criticize his position and poke holes in his arguments. If you say something that you know is going to make people mad, expect the flames. Saying that though, I've been surprised several times by the reaction to a post. You might just want to reread your drafts and tone down the language (believe it or not, I do this but things still leak through). Besides, you might have deserved the flames in the first place.
The Ugly
- You'll get fired. It's happened occasionally. A senior consultant at my previous employer was terminated for blogging client information. That's an extreme case, and one that's very easy to avoid. You simply need to know what your company's policy is towards blogging and stay within the lines. If you don't know what the policy is, you don't mention your employer's name at all. That simple. I've had 4 employers since starting this blog with wildly varying policies. Just play nice.
Reasons Not to Blog
- There are so many good blogger's out there, how could I compete? It's not a competition. Besides, good blogger's come and go. There's often a trajectory of writing a flurry of really great stuff, then flatlining. When I was first aware of the blogosphere one of the best blogger's around was Joel Spolsky, but when was the last time he wrote anything worth reading? Maybe one good post a year? Your favorite blogger is going to fall off any day now. Anyway, fresh perspectives are always a valuable addition to the conversation.
- I don't write well. Practice makes perfect. Blogging is usually an attempt to explain or demonstrate some technique, or a persuasive essay. Both types of writing and communication are important for our careers.
- It's all been said. I doubt that's true, and even if it was, not everything said has been read. People don't read old posts, and there's always a whole new generation of developers on the way up that didn't read the past masterpieces. Just because I wrote a bunch of posts on the do's and don'ts of mock objects three years ago doesn't mean there isn't a lot of value in you writing a brand new post on mock object usage. Heck, a lot of what I've written the last three years was originally discussed on Ward's Wiki in the late 90's, but that didn't, and shouldn't have, stopped me.
And finally, if you're really, really lucky and good, you can become a cultural force like Justice Gray.
About Jeremy D. Miller
Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#.