Going from the 80% to the 20%

posted on 03/25/08 at 10:18:35 pm by Joel Ross

Back in November, Jeff Atwood put together a post about the two types of developers: The 80% and the 20%. The 80% are the 9-5 type developers - they may be great at what they do, but they don't have an overwhelming passion for it - it's a job, and nothing more. Once they leave the confines of their office, they don't think about writing software until they return to the office the next morning.

The 20% are the people who are passionate about software development and are constantly looking for ways to better themselves. They read blogs. They speak at user groups and code camps. They're active in the community and are constantly pushing themselves to learn new things and find better ways to do what they're already doing.

In reality, it's probably more like 95% / 5%, but the definition of the groups remain the same. The real question isn't what group you're in - if you're reading this, you're most likely in the 20%, The real question is at what point do you (or did you) transition from the 80% to the 20%?

I know it's possible. I did it. I used to come to work at 8 and leave at 6 - not quite 9 to 5, but the bottom line was the same - when I left the office, I didn't think about work until I came in the next day. Nor did I think about software development. I learned what I had to learn to do my job, but nothing more. I was putting in my time and taking home a paycheck. I was good at what I did, but I didn't really do anything to push myself.

I don't remember exactly when it happened, but it did. I started finding blogs when I did searches. I started to wonder what this whole blogging thing was bout, and I felt like I needed one. So I started one, and I started following a few blogs. The key to switching from the 80% to the 20% was when "following a blog" went from a bookmark in IE to a subscription in Newsgator.

Eventually, I started doing other "20%-ish" things. I was writing software for fun. I started a side business specifically to fill in some of the gaps in my experience. I started speaking (although infrequently) publicly at .NET user groups. I used the best tools for my projects regardless of what the Microsoft corporate line is. I still feel like I'm barely in the 20%, but I'm there. I made the transition.

One of the questions that keeps popping up is, "How do we reach the 80% and teach them the best practices and the best software to use?" What we should be asking is, "How do we get more of the 80% into the 20% so they have the knowledge to learn that for themselves?"

Think about college. How much of what you learned in college applies to what you do right now? For me, it's next to none (of course, I wasn't in any of Professor Elder's classes!). So does that mean I don't think college is worthwhile? Absolutely not. Going to college was great for me. Not because of what I was learning, but because of the process I used to learn it. College taught me how to learn, which is more important to me than what I learned.

The 20% would be doing the community a disservice if at the end of the day, the best they did was teach other developers the best practices for software development today. How many people thing NUnit will be the unit testing framework of choice in five years? Some would say MbUnit has already usurped NUnit. The 20% would be much better off to show them the process to learn that for themselves.

I don't see a lot of discussion about people moving from one group to the other. But remember, some of the developers in the 80% are very smart. While some are content with where they're at, there is a good percentage that just haven't been exposed to the community and aren't even aware there are other options out there. Once they're aware, they may jump in with both feet and have lots to offer, and in the end, we'll all benefit.

I don't have the answers as to how to affect that transition process. I won't pretend to. But I know that the focus on Us vs. Them is the wrong approach. We need to start thinking about how we as a community can grow that community as a whole, and push that 20% to actually be 20% or even more.


I wrote this post last night. For the first time since I started writing here, I considered not posting it. Yes, I've thrown away posts before, but those were because they no longer applied. I think this one still applies, but I struggled with posting it. Obviously, I decided to go ahead. Also, just because I feel like I should disclose where this is coming from, there is a post by Dan Hounshell that prompted me to write about some of these thoughts. His post is worth a read, as are the comments.

Categories: Consulting, Personal, Development

15 comments »


 

15 comments

Comment from: Michael Eaton [Visitor] Email · http://michaeleatonconsulting.com/blog
I think that was a very well written, thoughtful post. :-)
03/25/08 @ 22:35
Comment from: Matt Blodgett [Visitor] Email · http://www.mattblodgett.com
I started out in the 80%, too.

In my first job after college, I found myself with a lot of time on my hands so I thought, "Maybe I should spend this time learning more about my profession." I kept stumbling across Coding Horror in search results, and eventually I just started reading through his archives. I was fascinated, and I soon found my way to Joel on Software. Joel had an even better archive! It was all downhill from there.

It's funny, because I find Coding Horror more and more boring with each passing day now, but it was definitely my gateway drug to the 20%.

I guess what really hooked me was that I discovered there were people out there talking about software in a way that no one around me was. It's bittersweet, because I now can plainly see how crappy most of the software around me is and I'm mostly powerless to do anything about it. Very few of the 20%ers are in positions of power.

I think the answer might have something to do with getting more 20%ers into management roles or decision-making roles where they can have a widespread influence in a company.

Hey, I know that TDD and Agile (for example) are almost universally accepted as great ways to improve software development, but what does it matter if the decision makers above me don't understand that?
03/25/08 @ 23:16
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Mike,

Thanks. I appreciate the support. Of course, thoughtful and well written can still mean wrong, right?

Joel
03/25/08 @ 23:52
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Matt,

I don't necessarily think you need to have a 20%er in management to convert people. I'm not in management, yet a lot of the reasons we do continuous integration is because I established myself as a leader in the company and said "We need to be doing this."

It's more than that though. We proved over and over that adding certain pieces to our process wasn't just cool, but it added value - either by allowing us to write better software or for us to reduce expenses. Once you establish that, you can really start to push the envelope and try other things.

When you get on a project, you need to look at it as an opportunity for you. You're not a mindless sheep to handle tasks. You need to take ownership of what you're doing and if that means bringing in a new tool or process, then do it - ask forgiveness instead of permission. If you know it's right, there's no asking for forgiveness anyway.
03/26/08 @ 00:01
Comment from: Dan Hounshell [Visitor] Email · http://danhounshell.com
Great post, Joel.

I remember pretty clearly when that transition occurred for me because it wasn't that long ago - probably only two years ago. Before that time I thought I was a great developer: I subscribed to MSDN magazine, I read books, I looked at an article online a few times a week. I soon found out how not great I was.

I didn't just magically become smarter at that time, I found the community. I started a blog, somebody dragged me to our local .NET User Group meeting. I went to code camps and local conferences. I met some really smart and cool people. I met some uber-geeks. I realized how naive and ignorant I really was. I then began playing catch-up (learning about patterns, unit testing, and continuous integration).

For me the biggest factor was probably attending my first .NET user group. It opened my eyes.
03/26/08 @ 01:19
Comment from: Bruce Abernethy [Visitor] Email · http://blog.bruceabernethy.com
Joel,

In this case I think your post is well written and right on - I was wondering what post might not see the light of day.

But I would disagree with the premise that you can, should, or even need to move people from the 20% into the 80% (and do think that the 20% is high). I believe that the dynamic that you are describing is true of any community or group of people in a variety of topics or interests. I?ve seen it in sports, cub scouts, speed boats, hunting, teaching, churches, robotics, writing, political campaigns, astronomy and yes software development. In any topic of wide enough interest you will have some people who are the "champions" who will tell anyone who will listen about the topic and help them get started or keep going. These are the people who have a passion for what they are doing, are gifted in that area, and have a ?fire in their belly? to help/push others along.

You can?t manufacture passion. You can?t take someone and just give them a natural gift for something. I?d argue that if you did add someone to the 20% they were more "discovered" than "created" in that they had a latent passion and gift that was waiting to come out.

Now here is the deep part of all of this. I believe that those in the "80%" in software development ? the ones that are more absorbing the material or more static/complacent in their learning ? are probably in the "20%" in some other area. It is true that some people are passionate by nature and may be in several "20%" groups, but I believe it is unhealthy or distracting to be a leader/champion in too many different areas. Also, I think that some people are willing to be in the 80% part of all areas of their lives ? this is unfortunate as well. If everyone could find something that they are passionate about, and get into the "20%", then they could help the masses in the "80%" (and the world would be a much better place).

So the trick then is convincing people that they are "20% worthy" in one area or another ? and yes this does mean keeping an eye out at all times for those with passion and ability. If there are too few people in the "20%" in any area then the overall passion fades and the area becomes stagnant and leaderless.

I remember when we were at Spout we reviewed some research concerning online communities. The research found that, in many cases, that 3-4% was a "magic number". That is, if you could get a community where just 3-4% of the people were active, and knew what they were doing, then the online community would thrive. Less than that (or just a bunch in the "80%") then it would fail.

Anyway, that?s my opinion on the matter ? might be 3-4% right. Nice to have you in the 20%.
03/26/08 @ 06:36
Comment from: Matt Blodgett [Visitor] Email · http://www.mattblodgett.com
Joel,

Point taken, but how does someone in my position "add TDD" to a project? It's a big shift, and it would add quite a bit of time to the first several projects that use it, and would therefore need serious buy-in from management. I'll just say that it'd be nice if managers kept up on best practices in the field. We can all dream, can't we? :)
03/26/08 @ 09:29
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Dan,

Thanks for the comment. Your post and our conversations spurred this whole thought process. I think there's a large portion of the "80%" who would do more if they were just aware there was more. The people who've commented here so far are proof of that.

Joel
03/26/08 @ 10:06
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Bruce,

I think we're on the same page. There are some of the "80%" that have no desire to go above and beyond what they're already doing, and that's OK. But I think there's a significant portion that just aren't aware there's more to it. And you're right, it is more "discovering" than converting.

I think there's still a perception problem of us versus them, and that's part of the reason I hesitated to post this. It should be about how we can come together and build better software. The us vs. them is the problem - the reason that more aren't getting involved. There's an air of superiority that needs to go away.

I like how you started. "In this case I think your post is well written and right on" - implying that most aren't. That's probably true!

Joel
03/26/08 @ 10:18
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Matt,

You're thinking too big. Yeah, ideally every project would be doing everything that we should be, but in reality, it's not going to happen.

The key is to figure out the right time to do things. For example, we added continuous integration to a project without the client paying for it - I did it "on the side." They eventually saw the value in it, and it became key to their development process.

After seeing it's value, we try to add that to just about every project - because I took the initiative to make it happen originally.

Start by adding unit tests - it's not TDD, but the value is still there, and can be demonstrated. Show them that value. The next time, they'll come to you to do the same thing on the next project, and you'll suddenly be looked to as the go-to guy for those things.

Bottom line: Don't expect management to come to you to ask what they should be doing. And don't expect them to know it - they're at a higher level than that and don't all have the time to stay up on the latest and greatest. But what they have done is empower you to bring things to them. Use that power and make your projects ones you want to work on.

Ok. That's enough career advice that you didn't ask for!
03/26/08 @ 10:35
Comment from: Michael Eaton [Visitor] Email · http://michaeleatonconsulting.com/blog
"Of course, thoughtful and well written can still mean wrong, right?"

That's true, but in this case, I don't think you're wrong. :-)

hehe...my only dispute with this post now is @mattblodgett's assumption that he's in the 20%. :-p -- BTW, this is payback for Matt's comments in twitter a few weeks ago. ;-)
03/26/08 @ 11:09
Comment from: Bruce [Visitor] Email
Joel,

Sounds like you are your own biggest critic :-) - I've appreciated and agreed with all or most of your tech-related posts (on football we differ much more often).

I'd only add, that if there is a tension between "us" and "them" (which I think is more rare than you think) it is either because one of "us" is trying to pull one of "them" in too far or too fast and making them uncomfortable, or one of "them" thinks they can do it better than "us" (and in that case they should just give up and become assimilated).

Oh and if one of "us" is putting themselves on some kind of pedestal of superiority then the rest of "us" need to help bring them back to earth. An "us-only" feel to any community will destroy most of the value. User groups should be a "we" group which is "us" && "them" (mostly "them").

This reminds me of the Jeff Daniels song "If I Weren't So Stupid, You Wouldn't Be So Smart." You'd have to hear it to understand, but the basic analogy here is, if it wasn't for "them" there wouldn't be any "us".
03/26/08 @ 11:19
Comment from: Michael Letterle [Visitor] Email · http://blog.prokrams.com
Honestly, if "20%" is defined by passion for programming, then I've always been there. I grew up writing little programs on my Atari, I started using Linux in the mid 90s because of the development environments. Heck, I took a "demotion" in my last job in order to become a professional coder.

One thing I do notice, is a lot of people that began developing with Microsoft technologies, had to bring themselves out of the 80%. In my experience people who were programming on other platforms previously did so because they loved to do it, not because it was a job, so the passion was there from the beginning.

I think it has a bit to do with Microsoft development basically being commoditized. That isn't to say that all Microsoft-based development is so, but I'd guess that.. oh 80% of it is ;)
03/26/08 @ 11:50
Comment from: Joel Ross [Member] Email · http://www.rosscode.com
Michael,

I think if you look at any platform, they all have their "80%". You may not have seen it specifically because you didn't see it because they weren't doing it as a job - which, almost by definition means they have a passion for it.

Java has its 80% - there are lots of LOB Java apps that have developers that are just in it for the paycheck. Honestly, there's people just sliding by in every profession and there's people passionate in every profession.

We see it in the .NET world because that's where we are focused right now, and there's a lot of "one off" apps that are quickly built to be thrown away, and the people building them wonder what we're talking about with Agile, TDD, CI, etc. Why use that for a simple Excel report? And to a point they may be right.

But there are those who have that passion, and the struggle is helping them realize that passion and how they can grow it.
03/26/08 @ 12:14
Comment from: Erik Lane [Visitor] · http://blog.eriklane.com
Great post Joel and I like the discussion it brought up in the comments.
03/26/08 @ 17:20

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)