Tuesday, April 08, 2014

Being a Jerk Is Only the Beginning!

It occurred to me while I was writing yesterday's entry.  That there is a cute little play on words to be had.  I wrote this post then and couldn't resist posting it today when the word "jerk" is flying around like hail in a windstorm.

I'm a Big Jerk

In physics, jerk is the 3rd derivative of position over time.  That is, velocity is the derivative of position, acceleration the derivative of velocity, and jerk is the derivative of acceleration.

In business, if you allow yourself an analogy between value-delivered and position, then some interesting parallels become apparent.  Your product would be analogous to velocity, as it is what continuously delivers more value.  Developers would then be agents of acceleration - constantly working to improve the product and increase velocity of value-delivered.

It would follow that technical leaders who take an interest in developing the skills of those around them would be agents of jerk - working to improve the rate of acceleration.

So yes, I am a jerk.  For the last eight or so years, it's been my primary objective to be a big jerk.

At long last, I can wear the label with pride.  Who am I kidding.  I've always worn it with pride.

To Jerkdom and Beyond!

Sometimes, though, I'd like to think I'm more than a mere jerk.  The fourth derivative of position over time is called "jounce."

Lately, I've not been as interested in being a jerk.  I've wanted to grow beyond that role and jounce seems like just the ticket.  What exactly would parallel that in the software development world?

I think a good analogy is leader-making.

As I get older and wiser, I take more of an interest (and show more aptitude) in developing new technical leaders.  Not that I'm anywhere near the level of Al Shalloway or Scott Bain, both of whom I consider to be my mentors, but I am starting to gain some traction nonetheless.

So, every once in a little while, in addition to being a big jerk, I'm a little jounce but, over time, I'd like to get more jouncy and less jerky.

Orthogonal Kinds of Growth

Anyway, it occurred to me that this is the real ladder of skill to climb.  Sure, having a better product is good but having a sustainable way of making it better is better.  Sure, having a sustainable way of improving a product is good but having an accelerating way of improving it is better.  You get the idea.

Being an expert developer is good and important but it is not the end of the journey.  There are other kinds of learning that are very important.

Going from being an okay developer to being a good developer is mostly a matter of practice and study.  Going from being any kind of developer to any kind of leader is a qualitative change.

At least, for me, it was.  It required (requires?) a fundamental shift in how I think about and interact with people and in what kind of problems I consider.  Going from being a leader to helping develop leaders probably requires just as big a leap but I'm so new to it that I can't really say.

Here is a handy picture I composed illustrating the distinction between kinds of skill and level of skill within an organization.



Planning Ahead

So, if you're a young developer and setting goals for yourself, you might want to consider that there is more than one dimension to your growth.  You can (and will need to) make yourself a competent programmer but you can do the most good by going from being a good programmer, to a leader, to a leader-maker.

If you work hard, maybe one day you can become a big jerk like me.  I'll do my best to be a bigger jerk by the time you get there and, if I'm lucky, I'll be more than just a big jerk too.