Skip navigation.

exploreopera

| Help

Sign up | Help

There is no spoon

It is not the spoon that bends, it is only yourself

Ranting: Types of software developers

, , , , , ,

I already mentioned Jeff Atwood's blog post about the 80-20 division between software developers. It started a lots of comments and the author felt obliged to explain in more details what he meant.

Interesting enough, he discusses the "human models" used by Microsoft to define the requirements for their software development tools and frameworks:

We have three primary personas across the developer division: Mort, Elvis and Einstein.

Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed.

Elvis, the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learn while working on the solution.

Einstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution.

These personas helped guide the design of features during the Visual Studio 2005 product cycle.

The description above is only a rough summarization of several characteristics collected and documented by our usability folks. During the meeting, a program manager on our team applied these personas in the context of server controls rather well:
* Mort would be a developer most comfortable and satisfied if the control could be used as-is and it just worked.
* Elvis would like to able to customize the control to get the desired behavior through properties and code, or be willing to wire up multiple controls together.
* Einstein would love to be able to deeply understand the control implementation, and want to be able to extend it to give it different behavior, or go so far as to re-implement it.


I've already stated my opinion about the way Microsoft sees software development. What I didn't say back then is that I knew that Microsoft uses the model above. I also knew that they constructed all the .NET ecosystem with the model in mind.

From my point of view, this model is broken because it doesn't encourage every programmer to learn more about what is happening under the hood; it just gives the impression that programming is easy. This model helps polluting our software ecosystem with people who think that they know programming and that it's easy. I have a hunch that if we analyze the way the 80% got so many, we will find out that they worked with tools promoting the idea that programming should be easy.

Or is it because they are good for business? Could it be?
Any company trying to sell software should know a little secret of software development: a good programmer can have a productivity as much as 10 times bigger than that of a poor programmer, and he's never paid 10 times more. Therefore a good programmer is, maybe despite normal intuition, a very good value.
It is most probable that the 20% programmers are good programmers, because they care about their craft and they are continuously learning and improving themselves. Some of the 80% could be good for repetitive tasks a.s.o., but I would rather choose a very young 20% programmer-to-be instead, for an even better value.
There is however one place where the 80% programmers are better for business: when the company is not selling software but man-hours. In this case, the profits scale with the numbers.

I don't know if there's an end to this discussion, but I'm certainly happy that it gains momentum. Maybe something will change...


Personal advertisement: I am PassionIT and help teams that develop high quality software. I train, I help improving and I work hands-on, depending on the needs. Contact me if you need help.
Alexandru Bolboaca-Diaconu



Add to Technorati Favorites  Digg!

Continuous integration server: CruiseControl .NETThe pain named XSL

Comments

avatar
I agree with the fact that .NET is not real programming. Before going for C# I was coding with C++ builder 6. After a good day of coding I end up the day knowing that I have coded at least a part of my big pogram. but with .Net, I get the feeling that all the codes are just there, am just copying and pasting codes. That is why I stepped back and began using turbo C++ 6.

By SuperMahen, # 4. December 2007, 17:18:35

avatar
I believe that you can do real programming in .NET (true, not with the same control as in C++; there are many times when I really miss C++), but you are not encouraged to do so. This happens because, instead of giving to the good programmers the power they want and need, it gives less control so that the less gifted programmers aren't able to mess up so easily.
From the point of view of business, it makes sense because in this way they are selling Visual Studio to more people. But from the other points of view it's just plain wrong.

I like what Joel Spolsky said in his Yale speech (http://www.joelonsoftware.com/) about a computer science lecture:

"The best thing about CS323 is it teaches a lot of people that they just ain’t never gonna be programmers. This is a good thing. People that don’t have the benefit of Stan teaching them that they can’t be programmers have miserable careers cutting and pasting a lot of Java."

Microsoft is on the opposite side of this stream.

By alex_boly, # 5. December 2007, 09:05:29

avatar
Lol, Can I have the link:

"The best thing about CS323 is it teaches a lot of people that they just ain’t never gonna be programmers. This is a good thing. People that don’t have the benefit of Stan teaching them that they can’t be programmers have miserable careers cutting and pasting a lot of Java."

By SuperMahen, # 5. December 2007, 15:55:03

avatar
That's the link to the published speech: http://www.joelonsoftware.com/items/2007/12/03.html

By alex_boly, # 6. December 2007, 07:43:57

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

Please type this security code : 0f2b61

Smilies