Jeff Atwood has one of his best posts in months that was inspired by Alastair Rankine's post "Blogging Horror" explaining why he's unsubscribed from Jeff's blog. I too, have been less compelled to read Jeff's blog lately, but he's an excellent writer and he's consistent, so I read it at least a few times a week. Kudos to Jeff for keeping up the pace and for inspiring conversation.
"In other words, Atwood seems to be setting himself up as an authority figure on software development and, well, I have some issues with this."
This is something I've struggled with as I've been blogging. I mean, it's just a blog. Look at my first post. Once while presenting in the Midwest a gentleman asked me a question along the lines of "how did you get so good?"
I said, "What gave you that idea? Don't mistake loud with good. Start writing and talking, you can be loud, too."
I like what Dave Winer said that Jeff quoted:
"Blogging is an amateur activity. It's users writing about what they do, not professionals writing about what users do."
I'm definitely not an authority figure on software development. I'll go so far as to put words in the mouth of Martin Fowler (we'll see if he comments), but from my interactions with him, I'd venture to say he wouldn't consider himself an authority either. He's a traveler on the path, as are we. He thinks, shares, asks good questions and starts interesting conversations. What more could one ask from a member of the community?
We're all just learning together. I started blogging so I could Google myself later, that's all. I taught as an adjunct professor so I could know the topics better as there is no better way to learn a thing deeply than to teach it. I worked on a few books so I could really dig deep, but I'm the first guy to say "dude, I have no idea." My brain bit-rots as yours does.
None of us (in software) really knows what we're doing. Buildings have been built for thousands of years and software has been an art/science for um, significantly less (yes, math has been around longer, but you know.) What just know what's worked for us in the past.
There was an interesting conversation in the second ALT.NET podcast (not my show) where the folks in the conversation were disparaging Database Driven Development over Model/Domain Driven Development. It may not be pure, but it must have worked for someone or it wouldn't exist, just like the Scrummerfall Project Management Methodology. ;)
Once years ago when working at a large NW Bank I was in a meeting with a young man who had been hired by a consulting company and had only worked at that one company. He was a "college hire" and had no experience other than "whiteboarding for money." I really don't like to get into measuring contests but I was weak in this instance. I took the bait and said "well, I like to use success as my metric, what have you shipped lately?" It was a nasty room-quieting thing to say and I'm not proud of it. But, I was really frustrated and I didn't know what it was going to take to get it across to this gentleman that we were more interested in shipping software than his brand of architecture astronomy. If you're in college, definitely ship some software or work on some open source applications to get some really good failures under your belt, before you enter the workforce.
One of the things that I enjoyed so much about my recent show with Richard Campbell is that we've both being doing this for so long (15,20 years respectively) that we've go so many stories of failure. Folks are really teasing Twitter for being down all the time. People blame Rails, the blame the team, but think of what they are learning! Even better if they share it with us in detail.
I respect failure a great deal. So does Jeff. Success is a good metric but failure is pretty useful as well - certainly more useful than putting MCSE, MCSD, MC*.* after your name. When I hear that someone has a lot of experience, I'm most interested in their horrible failures and how they dealt with it. My best blog posts have been pulling about success out of crap, fixing bugs, slinging code, fighting with the machine.
Jeff says about himself:
"But I have an ace up my sleeve that most don't: what I lack in talent, I make up in intensity."
Not only am I in no way an expert in software, Microsoft or otherwise, I explicitly assume that you aren't either. I have had conversations with high level VP types at banks who have said things like "I read on this guy's blog blah blah blah, it sounds good. What do you think?" and my questions back at them are "Have you tried it? What do you think?"
The blogosphere is a network of trust, so certainly there are some people that I trust because they make sense and other folks think they make sense also.
Still, ultimately, it's about thinking, talking to each other, and thinking some more. The real content in any blog, this one included, is in the comments, and that's why I like you all so darn much, Dear Readers.
If you've got experience, share it. If you don't, then do some work and fail fast so you can gain experience. Read, write, talk and test. Have fun, write code.
"Talk is cheap, show me the code" - Linus