CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Brendan Tompkins [MVP]

Blog First. Ask Questions Later.

Applying Behavior Analysis Theory to the Software Industry

Citing Bob Reselman’s “Coding Slave” Darrell gives his take on how to fix the software development industry

In addition to paying great programmers more, we need to pay crappy, or maybe "less sophisticated", programmers much less.

On one hand, he’s absolutely right : great programmers should be rewarded. On the other hand, I don’t normally see overpaid software developers.  And the “fat” that I do see that should be cut, can never be because of politics, policy, etc.  I do, however, run into lots and lots of under-paid, overworked developers – this the is part of the problem that the guild idea from Coding Slave is meant to address. But the interesting thing about this thread, however is Bob Reselman’s comment to Darrell’s post:

You bring up some interesting thoughts on the nature of human motivation. I am very interested to know your thinking on this question: What do you suppose motivates (motivated) an artist such as Van Gogh, Jackson Pollock or Charles Ives? Pollock made some money for his art, but Van Gogh and Ives made not a cent from an endeavor to which they devoted their lives. I wonder, is there something intrinsically motivating in the act of creation?

In my previous life as a student of behavioral psychology, one of the things we were taught was to be very careful about guessing what may be motivating for someone.  We called this Putative thinking.  What is motivating to one person may not be for another – there aren’t really any generally accepted motivators. 

Say you take Darrell’s assumption that money is motivating and you give your good developers raises.  You may find that you wind up reinforcing some adjunct behavior - behavior that has nothing to do with your target behavior.  Wearing ties, showing up early, speaking up in meetings, gossiping, whatever.. The point is, you have no idea if your money has had any real affect on the target behavior writing better code, until you see the better code being written.

Okay, now take Bob’s idea that the act of creating is motivating.  Well, he could be on to something here, and it certainly costs a lot less than Darrell’s idea, but I have a feeling that this may only be motivating for some. Again, the idea is Putative.  You may end up affecting your target behavior, you also may reinforce some other strange behavior that you didn’t intend to reinforce.  You may even end up with some avoidance behavior.

So what you do to increase the target behavior of writing better code?  Well, my point is, you won’t know until you try something, and see what happens.  Now, this idea isn’t any great help if you’re an IT manager, but a behavior analyst would change the environment until there was an increase in the target behavior. When they see an increase, they know that the change they made had an effect. They've then isolated the variables that affect their behavior, and they can begin to make real changes.

What I do like about Darrell and Bob’s ideas are that they focus on the environment.  This is in stark contrast to what I’ve been noticing lately – a lot of what I call “individual differences thinking.” In this type of thinking people say “some developers are good, others aren’t, that’s just the way it is.”  This kind of thinking focuses on identifying and weeding out the superstar developers, not on creating the conditions that foster coding better. 

Since I’ll always be a behavior analyst at heart, I believe this type of indiviual differences thinking is flawed, and is a bad trend in our industry.   I think we all can learn to code better, superstar or not.

-Brendan



Comments

Brendan Tompkins said:

Ben,

You're right, nurses and um how about teachers? They're the real underpaid professions here... They have the same problems as us, I'm sure. Education is always struggling with how to teach better.

Funny, I've always said - pay them more. I wonder why I think that would work for them, but not for us....
# March 29, 2005 4:22 PM

JuanBarbatos said:

I agree with alot of what is said here. This doesnt just apply to programming. A while ago I read an article that dealt with non monetary things that could be done which could have the same effect, such as more vacation time or something as simple as a group lunch/outing.

It does kind of suck to know you are way more productive then other people, but paid an equal amount or less then them for whatever reason. It's really difficult when these people are stubborn, like you said we all can learn to code better. It just seems like some choose not to.
# March 29, 2005 6:45 PM

Ben Bryant said:

Brendan, yeah, the thing about paying teachers more is to get more capable people willing to do it as a career. Its the reverse problem of the computer industry. If teachers were paid a lot you would still have the same issues with the brilliant ones kept at the same level as the regular ones. But anyway, the big thing is that there is the freedom for the brilliant ones in any field to pursue entrepreneurial aspects of their industry and satisfy their need to excel and succeed by finding and creating new ways. So ultimately there is no way to "fix" the software industry despite inequities, the thing is to protect our freedoms to branch out and find our own business opportunities, and in that sense it already "works". It is every mature person's challenge and responsibility to find their success, the unfairness will always be there... and that's okay. :)
# March 29, 2005 6:56 PM

Ben Bryant said:

Oh, and the glaring problems we see in the companies where we work are symptoms that generally lead to the downfall of the company, at least when there is a competitor that does not have the same glaring problems. Good startups are built around certain star performers who end up making a lot off of the company's success while sending those dumb companies to their end. That's the kind of turnover I like to see.
# March 29, 2005 7:04 PM

Udi Dahan - The Software Simplist said:

If there's one motivation that I think will positively reinforce the wanted behaviours, I'd have to say that it's training.

Send your best people to the best conferences. Make sure developers have all the books they need, motivate with the technical books they want; "I know we're not using BizTalk today, but I'm really interested in it, do you think we could get a book?" is just the sort of thing you want.

The higher quality developers are always looking for ways to improve themselves, subsidized training both rewards them and makes them more productive. It also positively affects loyalty, which is a tricky thing when only rewarding with money. There will always be someone who can pay more for your best developers.

Like all the "marketing-heads" say, don't compete on price, compete on value. It's true for products, and it's true for employees.
# March 30, 2005 6:31 AM

darrell said:

You can't correlate "overworked" with "underpaid". It all goes back to the business value created. I didn't make that clear in my post, and I'm going to address that in my next post.

I didn't target writing better code because I don't feel like motivating people that don't want to be motivated is a good use of my time. In "First, Break All the Rules", one rule (haha) is that you don't spend a lot of time, money, and effort putting in something that isn't there; instead you work with what they already have.

Also, there are plenty of people out there educating, so no need to go where everyone else already is.
# March 30, 2005 6:49 AM

Brendan Tompkins said:

Darrell,

I hate to be argumentative, but I really think the kind of thinking that says "Developer A is motivated, so let's get more like him" is counterproductive in the long run.

The biggest problem here is that it leaves the motivation issue to chance - since you never figured out why developer A was motivated in the first place, your never going to figure out how to get your other developers to be more like him or her.

A lot of places are pretty much stuck with the developers they have. Making them better coders is their only choice.
# March 30, 2005 8:59 AM

Dan said:

Great post and comments!

Just my 2cents : What motivate me is the promise of new challenging projects to work on. The human side is often underated, i've seen a group of good developpers code for peanuts just because they were a team and they had a carte blanche to work as they wanted. Also, when people do a good work, i think we should listen more to them, it's motivating.

Joel on Software had an interesting opinion about rewarding employees :
http://www.joelonsoftware.com/articles/fog0000000070.html
# March 31, 2005 10:16 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Brendan Tompkins

Brendan has been programming with .NET since the first public beta and is owner and operator of Port Technology Services, a consultancy company providing .NET application development services to the Maritime industry. In July, 2007, he was awarded the Microsoft MVP award for ASP.NET. He's also a proud co-founder of failed .COM startup Intrinsigo, and has had a hand in the failure of numerous other businesses. He currently runs CodeBetter.Com and Devlicio.us, and lives in Norfolk, Virgina with his wife Tiara and son Ian.

View Brendan's profile on LinkedIn

Check out Devlicio.us!

Our Sponsors

Free Tech Publications