Mort, Elvis, Einstein, and You

Early last week I wrote "There are two types of programmers". Based on the large number of comments left by the readers, I seem to want to break a nerve. Or two strings should also. This surprised me quite a bit, because the content of the article was never meant to be offensive or provocative or criticizing as many people misunderstood. The content was so when leaving the original author of the article I cited as Ben Collins-Sussman, I pointed my article with the aim of clarifying his original writing. .

Bạn là kiểu lập trình viên Mort, Elvis hay Einstein? Are you the Mort, Elvis or Einstein programmer?


Many readers were outraged by the idea that I had somehow grouped them into the 80% of mediocre programmers. This is really ironic: because every action commenting on an article about software development means that you are not a person in the group of 80% of programmers going to finish the job just to That is the rice. Trust me. I absolutely did not call any of my readers mediocre. I don't say it because I'm just like you; My blog is not a special case or even particularly good. I say this because if you are reading any programming blog, you have demonstrated a desire to improve your skills and learn more about the career you have chosen.

So if you read this article, then it is almost certain that you are already in the 20% group. The other 80% group is not actively thinking about software development. They will never find this article, let alone read it. They simply don't read programming blogs – they just search for results on Google to find quick answers to a specific problem they are having. And they didn't read any books in my list of proposals either. The characteristic to define most of the so-called "programmers for rice" is that they are inaccessible. No matter what you, me or anyone wrote here – they will never see.

The problem is not that 80%. The problem is that we are trapped inside a little 20% oasis in our world, and we forget that there is a huge group of programmers that we hardly affect them. at all. Few things we do will make any difference outside our small group. The problem is, it's clear that I failed to clarify this in the previous article, which is to find out how to reach those inaccessible programmers . That's how you create permanent and permanent changes in this software development. Not by going all the way to the elite – who can take care of themselves – but by reaching out to the vast majority of "deviant searchers" through the day.

That's my point. I apologize for being so poor in conveying that message. But on the positive side, at least it makes people think and talk about this issue.

Some people oppose any idea of ​​classifying programmers into any form. But history has shown that many people have done exactly that, with interesting and sometimes unintended consequences. In early 2004, Nikhil Kothari wrote about three personality types (personas) that Microsoft offered while working on Visual Studio 2005 products.

We have 3 main personas throughout development sections: Mort, Elvis and Einstein.

Mort , a kind of opportunity programmer, likes to create quick solutions to problems immediately. He focuses on productivity and learning when needed.

Lập trình viên Mort Elvis , is a pragmatic programmer, likes to create long-term solutions to solve common problems, and learn while working on that solution.

Lập trình viên Elvis Einstein , a type of scholar programmer, likes to create the most effective solutions for a certain problem, and often learns thoroughly before working on that solution.

Lập trình viên Einstein These personalities help guide the design of features throughout the Visual Studio 2005 product cycle.

The above descriptions are just a preliminary summary of some of the characteristics collected and documented by our colleagues. In a meeting, a program manager of our group applied those characteristics in the context of server controls:

  • Mort will be the most comfortable and satisfied programmer if the control can be used as its design and the control works well.
  • Elvis wants to be able to customize that control to get the desired behavior through properties and code, or ready to connect multiple controls together.
  • Einstein enjoyed being able to deeply understand that control's execution, and wanted to be able to extend it to bring that control to another behavior, or go beyond that to be real. show it again.

I can't remember exactly the day when those characters appeared at Microsoft. Wesner Moise even had an earlier comment on these characteristics , in which he poked himself by saying he was "an Einstein." Wes, my dear friend, I feared he was one. Einstein prototype, no matter how much you think otherwise.

These personas have caused controversy for many years ; We have created many debates heated . It is clear that there is a boundary between "persona" and "stereotype":

The personalities of programmers at Microsoft including Mort, Elvis, and Einstein are ultimately a moral decadence when people take "locked up" software developers into genres. It's so simple that only marketing employees feel comfortable. While the original purpose was to help this particular parasitic segment of the corporate world, modeling the behavioral tendencies of software developers at their jobs was one way. It is simply impractical, instead it has turned into a system of constraints that developers must begin to impose on themselves to harm the progress of the industry development practice. soft. It seems to be an attempt by developers to free themselves from rational thinking capacity that is conducive to the identification of well-known companies and software brands.

Personas, by themselves, are not bad at all. Previously I wrote about the importance of API usability , and personas give you an advantage of usability by considering different users who will use your code.

But I can understand this. For a long time as a programmer using Visual Basic and VB.NET , I really felt quite frustrated when being included in a group of people like Mort. I am not a "deviant" looking programmer – I am really concerned about the software development career. So what happens if I write code in a language that is not supported in case and both curly brackets? My choice of language didn't mean much more between choosing CocaCola and Pepsi soft drinks , so there's not much difference here.

Paul Vick works at the team that created VB language at Microsoft and he has feedback on some of my concerns:

The fundamental mistake that I think most people make with people is that they see them as mutually exclusive rather than points within the same experience range. When I am working to create a VB compiler, I am definitely an Einstein, always thinking at a very high level. When I'm working on things like VBParser sample, I'm usually an Elvis, thinking at a slightly lower level. And when I am writing a batch script or ad-hoc data analysis tools, I am definitely a Mort, so search around to figure out how to do what I am trying to do.

The real point is that most people are usually Mort, Elvis, and Einstein all at once, depending on what they are doing. And by building tools that will focus on this type of person or person, we're deliberately dividing everyone's work into individual "buckets" without really reflecting the job. their day. (I have also debated whether some of the previously released Visual Studio versions have emphasized personas more than others.) Find a better way to serve people when they follow the daily work flow, and something needs more serious attention.

Mort, like the 80% that Ben mentioned in the original article, is more than a persona or a stereotype. It is a call to action.

I think the solution here is to abandon the patriarchal attitude and look down on thinking about Mort, but instead ask Mort to work better. If the ability of the average programmers is really just as good as it is, we should not just accept that, but work to improve the quality of the average developer. "Medium-type programmers" should be at an acceptable level of competence.

We must realize that Mort is responsible for many important systems. Systems that affect the majority of the population. When I heard about recent account theft at Choicepoint, especially because of security laxity such as using default passwords for databases, I thought about Mort. When I read that the $ 250 million taxpayer money had been invested in the FBI's Case File overhaul, and the system was removed, I thought about Mort.

Given so many responsibilities, we should expect more from Mort. So Mort, I hate to tell you this, but software development is not like working at McDonalds's cash register, where you just come and be there from 9 am to 5 pm is enough. Although we need to balance work and life, you have to understand that software development is an extremely challenging area, requiring high concentration and a strong mental capacity. strong. This is the time you should attend a few workshops to improve your skills. This is the time for you to subscribe to some programming blogs and read some more books. But read deep books, don't read cheap 3-cent books like "How to program a VCR in 21 days". For example, read a book about Design Patterns or Refactoring. Mort, I'm afraid this is the time you should leave the old trail. It's time for you to step up a new ladder in programming.

I firmly believe that it is our job to help software development become better than when we first stepped into it. If you have anything like me, you wrote horribly code when you first started as a fledgling programmer. But through the combination of effort and practice, I tried to write a slightly worse code every year. I will admit that this is quite painful, because programmers we do not know exactly about the skills in themselves. But we have a duty to our profession – and to ourselves too – to reach out and help other fellow programmers, at least in a small way.

Being a professional programmer is not just about writing a lot of great code. Which became a professional programmer meant to help other programmers also become professional. Let's all contribute. Although we cannot reach everyone. But at least reach some of those 80% programmers.

ITZone via vinacode

Share the news now