Four things I wish I’d known back then

In the blogging meme of the day, I was tagged by my friend Tim Costello to share four things I wish I’d known back when.  The only hard part was paring the list down to four items.

I think back to 15 years ago, when I was working retail and desperately seeking something else.  Something I could really get into.  Some kind of work I was passionate about.  On a dare, I took the A+ computer certification exam and passed it, and embarked on a career that has led me to where I am today.  Although I miss some of the aspects of that guy I was 15 years ago – bold, fearless, with boundless dreams and ambition – I also wish I could go back and teach my younger self a few things I’ve learned since then.

Failure is a part of growth.

I used to worry a lot more about failure.  I feared that a big failure would end my career, but also worried about day-to-day failures – small mistakes that everyone makes.  I worried that I’d say or do something stupid out of ignorance, and that would be the thing I would forever be remembered for.  It rarely works that way.  In most cases, a person’s career is not measured by their biggest misstep; rather, it is an aggregate of every success and failure – and the attitude they have about those successes and failures.  Failing on the job is a part of the growth process.  As Thomas Edison famously said, “I have not failed. I’ve just found 10,000 ways that won’t work.”  A misstep is only a failure if you don’t learn from it.

jackYou can’t be an expert in everything.

During my first year in IT, I was convinced that I was going to be some kind of technical demigod, and I set out to learn everything about everything – programming, databases, network administration, routing and switching, even Microsoft Access.  You name the technology from the late 1990s, and I probably had a book on it – and intended to master it.  There’s nothing wrong with learning, and to this day I still work regularly to learn about areas outside of my own specialization.  But I wish I’d known back then that maintaining deep expertise in so many different technical topics is exceedingly difficult if not impossible.  I wish I had realized that there’s far more demand for someone who does just a few things, but does them better than 98% of other practitioners of the same craft.

Don’t just have goals. Have a next set of goals.

There was a time fairly recently where I was stuck in the mud.  I was still doing the work I enjoyed, but for a time I was doing it without a real purpose.  Why?  I had met all of the career goals I had set years ago, and I was working largely without a personal charter.  While that’s a great problem to have, I really hadn’t planned for the contingency of completing those objectives.  I wish I could go back and tell myself to be a bit more optimistic about my goals, and to list out another set to be met later, and another after that, and so forth.  Like anything else, goals should be flexible enough to allow you to adapt to changes in the marketplace and your own desires and place in life.  Those goals will be different for everyone, but whatever they are for you, those milestones are critical for measuring progress and challenging yourself to press onward.

Your technical skills don’t matter as much as you think they do.

miltonIn the late 1990s and early 2000s, there was still a great deal of truth behind the antisocial geek stereotype.  One could be a reasonably successful technologist and stay hidden away from the front lines of end user interaction.  And I fell into that trap for a while, spending virtually no time honing my interpersonal or speaking skills and just working to refine my technical abilities.  While the ability to deliver technical solutions is important, being able to talk to people (both one on one as well as in a presentation setting) and understand their business and its pain points is critical for the success of the modern technologist.  I’d love to go back and tell my younger self: Continue to work on your technical skills, but get out of the server room occasionally and talk to people.  Learn about their jobs, and what causes them grief.  Understand how to not just build technical components, but how to solve real business problems.

And to keep things going, I’m going to tag a few people to get their input on this.  I’d like to hear what Marc Beacom, Reeves Smith, and John Sterrett have to say on this topic.

2012 in Review

With the year 2012 now in the rear view mirror, and while I’m still in the midst of my holiday vacation (two whole weeks! Feels very strange…) , I thought I’d take stock of my tasks and accomplishments of the past year.

Sharing knowledge

I must sound like a broken record when I say this, but I feel incredibly honored that I get to spend so much time in the community sharing what I’ve learned.  Over the years I’ve had the opportunity to and speak at dozens of different events, and each time it feels like a homecoming.  To get to meet and get to know all of the great people I’ve encountered, to be allowed to share with them the humble bits of knowledge I’ve accumulated in my decade or so of working in this business makes it feel less like work and more like an award.  A big thanks to everyone in the SQL Server community!

In 2012, I got the opportunity to present 10 talks at six different events in four states:

  • SQL Saturday Houston (2 sessions)
  • SQL Rally in Dallas
  • SQL Saturday Oklahoma City
  • SQL Saturday Dallas – BI Edition (one session plus a full-day precon)
  • SQL Saturday Oregon (Portland)
  • SQL PASS Summit in Seattle (two general sessions plus a full-day precon)

Doing face-to-face presentations is still my favorite way of sharing knowledge, because it allows me direct and immediate feedback from the audience.

On that topic, the Dallas event was the first time I’d delivered a full day of content without a copresenter.  With an audience of about 30 people, I presented “Real World SSIS: A Survival Guide”, which was seven hours of realistic lessons I’ve learned in ten or so years of working in this field.  I really enjoyed the experience – the audience was very receptive, and seemed to get a lot out of our time together.  I’m planning to do this presentation again sometime in 2013.


I also finalized a two-year book project this year.  Along with SQL community rock stars Andy Leonard, Michelle Ufford, Jessica Moss, and Matt Masson, I wrote and published a book entitled SSIS Design Patterns.  When Andy and I first started talking about this book two years ago, I never imagined that it would be so much work – or so rewarding.  This was the first significant book project I had taken on (I wrote one chapter for the MVP Deep Dives v2 book in 2011, but that was a small contribution compared to the time investment in the design patterns book) and it was an enlightening experience.  Though it was a lot of work, I’m already thinking about my next book project.

I also blogged a little – very little.  When I look back at my blog archive, I’m disappointed in myself that I’ve reduced so significantly the amount of technical blog posts I publish.  Where I used to write several blog posts a month (sometimes several per week), I’m averaging less than one technical post a month now.  There’s really no excuse for this – I’m good at writing, I enjoy it, and I just need to make that a priority.  Same thing with technical forum participation.  I used to participate a lot by answering questions in technical forums, which I’ve all but stopped now.  I don’t think it’s an accident that the amount of forum participation and the number of blog posts decreased at about the same rate – I got a lot of blog ideas from answering questions on the forums.  If I increase forum participation, I expect that I’ll have more than enough ideas and motivation to get back in the groove of blogging.


While I spent a lot of time investing in teaching others, I don’t think I did a great job of deepening my own knowledge this year.  Although there is an implicit self-learning component of any teaching endeavor (after all, the teacher should be knowledgeable enough about the topic that he/she isn’t stumped by trivial questions), I didn’t spent a lot of time purposefully learning new things just for the sake of knowledge.

And on to 2013

So it’s been a busy year, no doubt.  Moving on to 2013, I’ve got a few things planned  and a few goals I want to meet:

  • Speak at an international conference.  I’ve submitted to speak at SQLBits in Nottingham, UK, and I hope to be able to present one or more topics at that event.  This is the best-known SQL conference outside of the United States, and has a reputation for treating speakers and attendees well.  (Shameless plug – there’s still time to vote for my sessions!  You can sign up for a free account and vote on the SQLBits website.)
  • Blog real technical content at least twice a month.  Of the 20 blog posts I published last year, at least half of them were nontechnical in nature (where I’m going, where I’ve been, etc.).  I’m going to plan for two technical blog posts per month.
  • Stay involved in social media.  I’m not aiming for specific metrics here, but this year I throttled back how much time I spent using social media.  Though I don’t have the aim to keep my nose glued to Twitter, it is my belief that social media is a key component to keeping in touch with what’s going on in the industry.
  • Define work boundaries.  I can’t tell you how many hours I’ve spent when I’ve been “sorta working.”  You know, that place where you’re trying to work but aren’t really concentrating due to distraction from kids/TV/life in general.  Multitasking has diminishing returns, so I’m going to do better at defining when I’m working and when I’m not.
  • Start writing my next book.  I’m planning at least two new books, one technical and one nontechnical, and I’m going to start at least one of them this year.
  • Continue speaking.  Other than SQLBits, I’ve not yet submitted to any conferences, but I’m planning to hit at least one event per quarter (hopefully more).

The Great Blog Move of 2013

For at least a year, I’ve been considering changing blog platforms.  I set up my blog on using BlogEngine.NET several years back, a decision I made based primarily on the fact that this tool was built on ASP.NET and SQL Server as opposed to the LAMP platform used by WordPress, the real behemoth in the blogging world.  I told myself that I’d be more likely to customize my blog if it was written in languages and tools I use every day as opposed to open source technologies that, while fully capable, aren’t in my wheelhouse.

However, it didn’t quite work out that way.  While the idea of pimping my blog was (and still is) appealing, the fact is that I don’t have the spare cycles to work in a bunch of custom web development work.   An.d while I’m not disappointed in the native offerings of the BlogEngine.NET platform, I quickly discovered that WordPress led the way in features and compatibility.  Therefore, I decided that eventually I would like to move to WordPress.

Easier said than done

Who knew that it would be so much trouble to move blog platforms?  One would think that, since we’re just talking about XML data, it should be easy enough to port from one platform to another.  And it probably would have been, were I more well versed in the ways of XML.  However, since I’m not, I went out to find some tool or utility to allow me to move all of my content to WordPress without having to do so manually.  I found a few vague blog posts about how one *might* do this, but apart from doing a lot of manual data manipulation, there didn’t seem to be a silver bullet for solving this problem. 

After some searching, I did find a CodePlex project named Blog Migrator that purported to handle migration from one platform to another.  Although it didn’t work as coded – all Post ID fields were treated as integers in code, while BlogEngine.NET uses a character field – I was able to tweak the code to get the posts loaded from my BlogEngine site (via the export file in BlogML format) to my new WordPress site.  Sadly, I couldn’t get the comments to transfer automagically, so I had to do some ETL to get them pushed over to WordPress.  My blog categories also didn’t transfer, but I’m not sweating that now – I may go back later and migrate these (or just recategorize everything if I get really bored).

New Host

As part of this move, I also changed web hosts.  I have been using SectorLink for several years, and apart from some recent issues with reliability and customer service, it has been a good web host for me.  However, in moving to WordPress, I wanted to find a host that focused on that platform rather than a generic do-it-yourself site.  I considered going directly through (and actually experimented with a free site there) but found that it did not offer a lot of flexibility in terms of adding new features.  I heard good things about DreamHost, a service targeting WordPress users.  I set up an account there, and found that they offered the structured system I wanted while also allowing for maximum flexibility (for example, I can add new plug-ins to my DreamHost site, which I could not do when using a hosted site).

It’s still very early in the relationship, and I haven’t yet had a chance to experience some aspects of DreamHost’s offerings (specifically, I’ve not yet had to contact customer service, an area where my last web host did not excel).  But so far I’ve been satisfied with the features and documentation that I’ve found.

Moving forward

I’ve still got a few things to check on – for example, some of my older posts used a different image path than the newer ones, so I need to confirm that all of my images are showing up correctly.  Since I’m syndicated on, I need to confirm that syndication is working correctly.  If the worst happens and DreamHost doesn’t work out, I’ve still got my old site intact and can revert to that content in a matter of hours (as long as it takes for DNS to update).  Hopefully, though, I’ll find that WordPress and my new host meets all of my needs.

I don’t really care for the WordPress theme I’m using, but it was easy to use and didn’t remind me of anyone else’s WP theme.  It’s on my list of things to change, but I’m a function-before-form type so I’ll add this lower on my to-do list.

And of course, if either one of you loyal readers finds anything out of place due to the move, please let me know (I have a handy contact form just for that).

When Data Mining Goes Too Far

Data mining is commonly used to find otherwise undetectable patterns in related sets of data.  However, sometimes these patterns provide absolutely useless information.  This story on explains a recent correlation between teens who skip breakfast and those that lose their virginity earlier in life.  Interesting information, yes, but what exactly does a parent or other concerned party do with this?  Is it really valuable?

In the business world, I’m sure we could find examples of data mining “hits” that are just as obscure.  Many of them have value, but the real intelligence – I mean human knowledge, not some component of software – is being able to determine which patterns are actually useful.  Delivering bits of information such as the example above could lead to information overload and defeat the business purpose of data mining.

Now I’m off to evaluate whether I should force Cocoa Crispies into my kids to keep them abstinent :)

Defining Value

I’ve been thinking a lot lately about the concept of value.  Earlier this week a colleague of mine tendered his resignation quite unexpectedly and at a very inconvenient time, a mere four weeks away from the consummation of a 2-year software implementation and data conversion project.  Citing health and family concerns, he decided that the value he received from his work was disproportionately low compared to what he was giving up in return.  Although the timing of this departure bothered me, I can’t blame the guy for looking out for the long-term well-being of his family and his own health.

I’ve always been a busy guy, and I have to be cautious not to overextend myself for fear of shortchanging a consulting client or my fulltime gig.  I must admit that, when it came to crunch time, I chose the option to cut into my family time or my own “me-time” rather than lower my professional standards.  For me, in the here and now, the value I receive from going the extra mile professionally is worth what it costs me.  And even though I have to gently remind them from time to time, my family tends to believe the same.

Whether you are a fulltime employee, a contractor, or somewhere in between, both you and your employer/client must agree on the value of your services.  The value you bring to them will at some point intersect with the value you place on your own time, and it is in that space that both you and the source of your income will be happy with the relationship.  Now that sounds like a little bit of psychobabble, but I mean it to be an encouragement to both employers and employees (or contractors) to set your standards high enough to avoid conflicts in the definition of value.  A good employer will not try to lowball employees or contractors and will spend the time to properly vet candidates (both of which will eventually lead to a higher quality of candidates in the pool).  Smart workers will set their rates or salary expectations based realistically on their abilities and experience, and will not settle for a low offer or substandard terms simply to get the assignment.

Value is one of those concepts that varies widely from one person to the next.  How do you define it?