Random Thoughts On Humility and Perfection

(Sorry for the recent codeless posts, but these are just some of the things I’ve been thinking about and dealing with recently)

As I continue down this road as a software consultant (still with a consulting firm), I find myself working more and more with other consultants who are considered “senior”, which for some reason includes myself.  I’m starting to see that this can be one of the biggest roadblocks to change and one of the biggest producers of fear on a team.  At least speaking for myself. 

“We’re ‘Senior’, We Don’t Need No Stinkin’ Code Reviews”

This is the kind of mentality that, though common, is pretty unfortunate.  We all know code reviews have been abused over the years, but does that really mean there is no benefit in “having a 2nd pair of eyes”, as they say?  Isn’t this still a powerful way to learn and grow a team’s skills? 

But this post is not about specific practices like code reviews.  The greater point I’m trying to make is this:  Is it possible for us all to put down our “senior” statuses and strive for perfection as a group of passionate developers without the fear of offending each other?  I’m not sure this is completely achievable as long as we’re all allowed to have opinions, but it certainly sounds like a nice goal. 

Even though perfection is unachievable, I want to get as close to it as I can.  Both, in my walk with the Lord and in my craft as a software developer. 

One of the main benefits I see to all this ALT.NET stuff is that when a group of developers (notice I didn’t say “senior developers”) can get together and critique each other’s ideas in a constructive way that actually leads to overall improvement and learning, then I’d say that’s a huge leap in the right direction.

“Now Let’s Not Get Crazy And Actually Try To Improve Our Code”

Fear quenches the ability to improve.  If Joe Developer is afraid to make a suggestion to another developer or his team because he’s afraid of either a) someone getting offended and/or b) someone biting his head off, then chances are that the team’s overall skills are pretty stagnant and their ability to improve is severely limited.  Fear can also come from working with unwieldy code bases.  When everyone on the team is afraid to change anything because they don’t want to break something, then you’ve got some serious changes to implement.  I’m starting to go through this process now on a couple of my current projects.  One baby step at a time.

“We’re Too Busy To Learn Fundamental OO Principles And Practices”

Well, like a good friend of mine told me recently, “you’re gonna pay for it somewhere”.  Either through lots of pain in the ongoing maintenance of poorly designed software or in the investment into your team to learn/teach better ways of building software in the first place.

Now that I’ve pretty much “settled in” to my new consulting firm, I’m going to really start spreading the knowledge that I have (what little that is) to try and build up the teams I work with as much as I can and perhaps encourage others to do the same.  Because I know that ultimately by doing this, I’ll end up learning much more from other folks that I could possibly teach them.

The end goal of course being that the clients we serve are getting the highest quality work possible.  But more on that in another post…  ;)

This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

6 Responses to Random Thoughts On Humility and Perfection

  1. > perfection is unachievable

    Perfection is achievable once you realize that perfection is a process, not an end-point.

  2. > perfection is a process, not an end-point
    Absolutely agree!

  3. Joey,

    This is really great stuff. I agree with you more and more.

    When it comes to this type of “improvement”, I’ve found that you definately have to be willing to be very flexible. The slightest bit of arrogance or stubborness will destroy this. I try my best to listen to what everyone has to say before making any judgements, especially when it comes to programming. You have to be willing to admit that your’re wrong or that you were thinking about the problem wrong and be willing to be dynamic. Any developer/consultant that is inflexible will quickly grow into a role of being stagnant which is a horrible thing in the software world.

    Best of luck to you!

  4. Martin Nyborg says:

    perfection is a process, not an end-point. Reading this one sentence was a real big aha experience. Thank for that

  5. Bill Campbell says:


    Thanks for some real thought provoking insights!!

  6. Kerry MacLean says:

    Great, thought provoking post! So here’s some of what has been provoked:

    Perfection has only been achieved once, but that shouldn’t stop us striving for it. I agree that it’s more of a process than an end-point, but I would suggest that, like code, it’s definition changes depending on what it’s applied to.

    I disagree that it’s achievable by mere us.

    As to apologies for not having more code in your posts, isn’t the “perfect” developer a combination of attitude and ideas, of which coding ability is actuall a small portion?