Posts
822
Comments
686
Trackbacks
1
Monday, April 30, 2012
What really separates Senior Developers from Junior Developers

I’ve posted previously why I don’t like the term ‘junior developer’ as it usually just means you are saying a developer is younger than you, and is often used to be demeaning for no good reason.

There are times when being demeaning is arguably the right thing to do, but it generally isn’t a good thing to do.  It should usually be reserved for when dealing with senior management, though I don’t recommend you practice it unless you really know what you are doing.  Being demeaning to people who don’t have an opportunity to be better just makes you a dick.  And not a good kind of dick, just a dick.

I think there are basically two things that actually make it reasonable to call someone a ‘Senior’ developer:

  1. A Senior developer is someone who can learn a system without any documentation in a ‘reasonable’ amount of time.  What counts as reasonable here is, like much in life, largely contextual.  In the last decade, there have been numerous times in which I was asked to learn System X which currently does Y and needed to do Z.  On approximately zero of those cases, I’ve had any significant amount of assistance, either from documentation or current developers, to learn what System X was, what Y currently does, or what Z is.
    1. Keeping names out of it, the best example came from a particular large organization.  The current developer who would have been the best resource to learn X,Y and Z from was working 60 hours a week on a very important release, the previous release of which had been a disaster.  He was swamped, to say the least.  He was very intelligent, and happened to be one of the people I interviewed with to get the job.  When I asked him what Y was (I knew enough to know what X was) and how it worked, he looked at me and said (only slightly paraphrasing), “I don’t have time to tell you.  We hired you because you seemed vaguely intelligent.  Fucking figure it out.  Please.”
    2. He turned out to be one of the best developers I ever worked with, and though I had maybe 30 seconds of being pissed off at his initial response, it quickly dissipated.  He really did not have time to work with me.  He really did expect/hope I could just fucking figure it out.  That really is why he recommended that I should be hired.
    3. Being able to ‘fucking figure stuff out’ is a largely non-teachable skill.  You have it or you don’t, for the most part.  Younger developers show this ability directly, which is why a ‘junior’ developer is often more valuable than a ‘senior’ developer.
    4. As a side note, if you are in management and you find these younger developers with these skills, it is imperative that you protect and foster them.  I don’t think I can emphasize that enough.  These are resources that are more valuable to you than just about any other.
  2. A Senior developer is able to be self-directed.
    1. A regular reader of this blog will know that I’m kind of a prick (“what do you mean kind of?”…I heard that).  Part of that ‘skillset’ involves being able to take charge and tell people (including especially senior management) when they are wrong.  This does generally take some experience, or a complete lack of tact, or both.
    2. If you can talk the talk and walk the walk, senior management actually doesn’t mind this, but it can be ‘scary’ if you’ve never done it before.  Looking a senior manager in the eye and telling them they don’t know what they are talking about is risky.

I reserve the right to add to this list, but, to be honest, those are the two things that really make the difference. 

One of the the things that should be noted about this is that the ability to write really good code is sort of besides the point.  Obviously, it isn’t entirely besides the point.  But, you can be a good developer in the sense of following all the shit that ‘Craftsmen’ say you should follow, and yet not be a senior developer, no matter how long you’ve been slinging it.

posted @ Monday, April 30, 2012 7:41 PM | Feedback (2)
If you are in the far left lane on an expressway…

and there are cars lined up behind you, and multiple other cars diving into the next lane on the right who pass you and move back in front of you, please move the f%^& over.  Besides being annoying, you are actually a safety hazard to the drivers around you.

Thanks.

posted @ Monday, April 30, 2012 7:04 PM | Feedback (1)
Wednesday, April 11, 2012
Marillion – Invisible Man (Live)

This song pretty much sums up what Marillion is and what they do.  With any band that has been around for this long, saying any particular song is their best is open to interpretation, but this is their best.

Hogarth keeps the theatrics to a minimum.  Actually, not really, it’s still a bit much, but better than other attempts.  Just sing the freakin’ song, dude.

Enjoy.

The world's gone mad
And I have lost touch
I shouldn't admit it
But I have.
It slipped away while I was distracted
I haven't changed
I swear I haven't changed

….

My head is haunted
I will scream again
"I am perfectly sane"
"I am perfectly sane"
But I am
The invisible man
I am
The invisible man

Talk to me
Acknowledge me
Confide in me
Confess to me ... or
Leave me be
Leave me be

posted @ Wednesday, April 11, 2012 10:48 PM | Feedback (0)
Tuesday, April 10, 2012
Words of Wisdom – Doug Gottlieb

"Money doesn’t fix things.  It does make things fun when you have larger problems.”

posted @ Tuesday, April 10, 2012 10:41 PM | Feedback (0)
Monday, April 09, 2012
Repost–Can blargsmack on Tuesdays

This post from K. Scott Allen deserves merit on its own for what he’s trying to accomplish, but I’m reposting largely just so I can reproduce the following sentence:

“Although this code was intentionally obfuscated, it's not unlike walking into the code for a complex domain the first time and not understanding why a wurgled customer can blargsmack on Tuesdays if they hold a vorkenhosen status. All domains are nonsense at the start.”

Brilliant.

posted @ Monday, April 09, 2012 6:04 PM | Feedback (0)
Tuesday, April 03, 2012
Free TekPub Episode – Why you should care about ASP.NET MVC 2.0

Rob Conery has announced the free availability of a webcast on TekPub

I have not yet watched the entire thing, but since it is done by Scott Sanderson and Rob, it is undoubtedly a good thing to watch.

And, did I mention it is free?

Rob lucky bastard starts it off while sitting on the beach in Hawaii.

posted @ Tuesday, April 03, 2012 9:02 PM | Feedback (0)
Wednesday, March 28, 2012
I understand how he feels

Microsoft has decided to accept contributions to a wide range of their asp.net stack.  Scott Guthrie (among others) describes this decision here.

Rob Conery has a post wherein he describes an attempt on his part to setup a repository on GitHub that could tie into the CodePlex respository (see details in his post).  There was apparently some blowback on this, and so he reversed course.

Rob laments this:

“So, when I blasted out my little announcement, people (I spose fairly) thought I was being a jerk (again). Some venom filled my timeline and I even had a rather scathing DM from someone whom I consider a hero of mine.

That sucked a bit.

And I spose I deserved it.

So I’ve deleted the repo and I’ve deleted the account. So much for that idea.”

This might come as a surprise to some readers, but I think this is unfortunate.

Before Rob joined Microsoft as an employee, he was well-known and highly regarded due to his work with SubSonic (among other things).  He then joined Microsoft as an employee.  After a bit of time, he decided to end his employment at Microsoft.

Now, I’m not on Twitter, so perhaps I’m missing some context, but I don’t recall his public posting about leaving Microsoft as bitter or vindictive or anything like that.  He had his reasons at the time, plainly stated them, and it seemed pretty straight forward to me.  The dude took a job, then after some time, left it.

Since then, Rob has done a lot of work outside of Microsoft technologies, embracing Ruby, yada yada yada.  He has at times when discussing that work made comparisons with Microsoft technologies, but I’ve never thought of what he’s talked about as being some sort of “Fuck you Microsoft” message.  He talks about what he does and why he does it.  People (including myself) might not agree with it, but so what?  Maybe there has been some undercurrent there that only his former co-workers see, but I don’t see it.

Rob further laments:

“As for me, I think it’s probably time to stop ribbing my friends publicly – or talking about Microsoft in general. It’s too easy to be cast as an ass no matter how many open source projects you run, or time you take to educate and show people new things. I’ve always thought my actions would speak louder than whatever dumb words I choose.

I was wrong. Shark Jumped.“

Yes, I am now going to make an analogy comparing Rob Conery with Steve Forbes.  Deal with it.

This will age me, but at one point, Steve Forbes decided he wanted to run for President.  No, I don’t know why he did it.  Anyway, during that time, he proposed something (I believe a flat tax proposal) that drew some criticism along the lines of “Of course Forbes wants a flat tax.  He’s rich and it will benefit him.”  Paraphrasing a whole lot (since I’m old and don’t feel like looking it up), Steve Forbes responded with a really reasonable answer:

“Yes, I am rich.  It is true that you could see a flat tax as benefitting me.  The fact is, as someone who is rich, I have the resources to hire people who can find all of the ways that the current tax code gives me loopholes to benefit me with the current tax code.  No matter what the tax code is, I will be rich.  The question is, is my flat tax proposal a good idea or not?”

In other words, don’t judge something based on the identity of the messenger.

Can’t someone else do the GitHub thing?

I would imagine that there might be corporate/legal reasons why this couldn’t be done by, say, Scott H or Scott Gu himself.  Can’t someone else do it?  Is Brad Wilson still at Microsoft?  If so, someone else?  If it helps the overall community, why not do it?  Because Rob suggested it?  That’s silly.

There is some irony here.  Rob sent me an old school DM (called email) about why I was permanently banned from commenting on his blog.  It was due to the fact that it was too easy for him to cast me as an ass (keeping in mind, I am one).  Pot meet kettle and all that.

Yet it remains: if Rob’s idea is a good one, and I don’t see why it isn’t one, why can’t someone else implement it?

posted @ Wednesday, March 28, 2012 8:55 PM | Feedback (0)
Saturday, March 24, 2012
The sort of thing about ESPN that can drive you nuts

Obviously, this doesn’t just apply to ESPN, but since they hold the monopoly….

The Chicago Bears put the franchise tag on Matt Forte, and then signed Reggie Bush.  Forte took to Twitter to talk about being disrespected, yada yada yada.

This is right in ESPN’s wheelhouse.  Let’s discuss athletes, disrespect, money, break!!!!

Anyway, on whichever ESPN radio show which I was listening to while driving home, Three-Time Super Bowl Winner Mark Schlereth decided to weigh in on the matter.

I call him “Three-Time Super Bowl Winner Mark Schlereth” because, without prompting, he inevitably brings up the fact that he was on three Super Bowl winning teams.  I am totally on the fence about this, whether it is annoying or cool or both.  It is annoying in the sense that he keeps bringing it up, and it ties into the ridiculous former athlete promotion that ESPN, well, promotes, as if the fact someone has been a successful athlete means they can say anything coherent.  On the other hand…if you won three Super Bowls, wouldn’t you also keep bringing this up?   Imagine you need a last-minute dinner reservation.  How could you not bring this up? And if he’s doing it tweak someone like Chris Carter, a total tool who won nothing….that’s being a douchebag in a cool way.  But I digress.

Anyway, the host on the radio show thought Forte should shut up, but Three-Time Super Bowl Winner Mark Schlereth disagreed.  Paraphrasing (since the actual comments caused brain damage), he said:

“What this does is totally create a rift in the locker room between upstairs and downstairs.  The players see that someone like Forte is disrespected.  He’s given his all to the team and is not getting rewarded for the effort he’s put into his team’s success.  You can’t be a championship team when you have this disconnect between upstairs and downstairs.”

Thus has spoken Three-Time Super Bowl Winner Mark Schlereth.

Let’s consider this.

Who won the Super Bowl this last year?  The New York Football Giants.

What happened in the previous off-season involving Umi Umeniyora? 

Exactly.

But the radio host did nothing to challenge Three-Time Super Bowl Winner Mark Schlereth about this.

Let’s not let facts get in the way of an ESPN personality spouting idiocy.

posted @ Saturday, March 24, 2012 10:27 PM | Feedback (0)
Harden the f%&k up

So, apparently there is some Interweb controversy about something called Geekli.st.  Scott Hanselman blogs about it here.

As far as I can tell, the issue can be summarized as:

A woman created some marketing copy for a company that another woman found offensive, and the owners/executives/whatever of said company handled it on Twitter in a way that other people found unsatisfactory, and then the owners/executives/whatever of said company apologized for handling it in a way that other people found unsatisfactory and that they really didn’t mean to handle it in a way that other people found unsatisfactory.

I think I got that right.

What’s up with the title of this post?

A comment appeared in Hanselman’s post from some guy named or Dan or Dave, supposedly from Australia.  He included an unredacted version of the post title, which also referenced another of Hanselman’s  posts that included an unredacted use of the N-word.

I was sort of surprised the comment was approved.  Since it was subsequently deleted, it apparently has to do with how his moderation system works.

I’ve talked before about blog moderation, but this isn’t really something that could be criticized.  IIRC, Scott is involved in an interracial marriage.  I have previously been involved in an interracial relationship that came close to being a marriage.  When you are personally involved in such things, you get to learn…interesting things about certain segments of humanity.  Although it was not unsurprising, as the white guy in the relationship, no one ever dared make a comment directly to me, I would just hear about it afterwards, and have to decide how to deal with it (if at all).

So, I understand why he deleted the comment. 

Um, did you click on the link in Hanselman’s post that linked to a woman talking about how “lighten up” is used to cover offensive workplace behavior?  Isn’t “Harden up” even worse?

Yes, I did click on the link and read the whole thing.

A long time ago in a previous career long long ago, I was an HR manager.  Coming into that role, I inherited a copy of the company’s HR manual and company policies, and had them reviewed by legal resources, in one part related to sexual harassment in the workplace.  Outside of that, you again learn….interesting things about certain segments of humanity, some of it being really disgusting.

This is all serious stuff that deserves to be taken seriously.

And yet….

You can’t truly fight Sexism if anything and everything is viewed as sexist.  You can’t truly fight Racism if anything and everything is viewed as racist.

This whole Twitter thing seems much more like really bad marketing.

In some cases, the ultimate word seems to have been said by Bloom County a long time ago.

posted @ Saturday, March 24, 2012 9:49 PM | Feedback (0)
Sunday, March 18, 2012
Stop calling less experienced developers ‘Juniors’

I’ve noticed in some of Greg Young’s videos where he refers to less experienced developers on a team as “Juniors.”  This actually isn’t a criticism of Greg nor necessarily of the use of the term; instead, it’s a note that there can be a mindset that can be damaging, which should be avoided.

Background

I know this will shock many people, but when dealing with developers (or managers or executives, for that matter) who are ‘at my level’ or above, I can be pretty direct and demanding.  When it comes to developers or support personnel at a lower level, either in terms of experience or on the org chart food chain, I tend to be, if anything, more protective and understanding.  This is for a number of reasons.

It can be relatively easy for a person’s opinion to be dismissed by calling them ‘Junior.’  It can also be relatively easy to protect one’s own position by taking said dismissive attitude.  I really hate this.

There are a couple of pretty basic examples that expand on the subject.

Example #1

An overnight support person (a mix of developer and support work) sent an email to me (and others) about an overnight exception in a fairly important process.  They performed a manual step to get around the exception, then sent an email with a bunch of screenshots and other information.  First thing in the morning, I took a look at it and, not understanding the entire import of the information, basically said it wasn’t an issue.

End of the day, the support person came over to my desk to ask about it.  “Look, I said it wasn’t a problem.  Here, let’s look at your email.  Take a look at this.  I don’t see why that’s a problem.”  He then calmly pointed out that I wasn’t interpreting his email correctly.  “Okay.  Let’s look at the code.  I still don’t see the issue.  Here.  When the process hits this part of the code, it will hit this method and then….”.  Long pause.  Longer pause.  He started to say something and I waved him off, “Yeah, hold on a second.”  Longer pause.  “Okay, right, this is a problem.” 

It took two days to correct the issue since my first attempt to correct it produced another error the following night.

Example #2

A person I’ve worked with has this habit that is really annoying.  He asks me a code question, and then I answer it.  5-10 minutes later, he then asks a slightly differently worded but essentially equivalent version of the same question.  I give him the same answer, annoyed.  Depending on the situation, he does it again.

Now, 70% of the time (making up the number), it is because there is some piece of information he is missing.  The other 30% of the time, it is because I am giving him the wrong answer, and his continual questioning is solving a problem I didn’t immediately see.

Create an environment that allows senior members to be questioned

The smart reader will immediately point out that both of these examples involve the fact that I’m an idiot.  This is true, but not relevant.

Within any particular organization, based on the org chart, various people will be classified in terms of seniority (among other things).  However, those classifications aren’t relevant when it comes to solving particular issues.

I think it is vital to create an environment within a software development team that allows every member, no matter their experience level, to give input, to press issues.  Less experienced members are by definition less experienced, and the downsides of that are obvious, but they also can be free of blinders that is the downside of having more experience, if you know what I mean.

Summary

Linus Torvalds was once a ‘Junior.’  Take from that what you should.

It is also, in my opinion, very important, especially when you are in a position to do so, to highlight the efforts of less experienced developers when they go above and beyond doing their jobs, which from the outside, often looks like them ‘only’ doing their jobs.  Positive reinforcement at an early stage of someone’s career, making note of their effort they put into what they do, means that you have a better chance of ending up with a ‘Senior’ who actually knows what they are doing, and cares about it.

posted @ Sunday, March 18, 2012 10:16 PM | Feedback (2)