I was just reading Bill’s blog when I came across this entry. So - whats this Elvis crap that Bill is talking about? Well there are three well known (there are more, but these are the well understood ones) user profiles that the Microsoft developer division uses to describe software engineers – Mort, Elvis and Einstien.

Mort is a productivity or business focused kinda guy – he just wants to get the application out there and doing its job. He’s not going to write too much code himself and where possible he will rely on the tool to generate code. From a business perspective the application probably satisfies requirements (except for a few cross cutting concerns like security and logging etc). From a technical perspective there might be a few rough edges and maybe even a few mistakes that would make an Elvis or Einstien’s skin crawl.

Elvis is more of your professional software developer type – and when I say professional I’m not talking about income (since Mort may well get paid more). I’m talking about the application of professional development practices such as user interface prototyping, repeatable build processes, and use of software quality tools. The Elvis’ in the world tend to address the cross cutting concerns fairly well and holes can typically be referred to as bugs rather than “features by design”.

Thats not to say that Mort is any worse than Elvis, he’s just different. I’ve recently seen a Mort-style application that works really well but has gaping security holes like sweet spots on the screen that allow you unfettered access to the underlying database tables.

Truth be told, I don’t think that there are too many Elvis’ out there. I think the software development world is made up mostly of Morts only the settings change between independent Morts and enterprise Morts – its the enterprise Morts who like to pretend that they are Elvis’, personally I just wish they would embrace their inner Mortness.

Who is this Einstien guy then? You want to have a couple of Einstiens in reserve to solve those really hard problems that don’t have an obvious solution and require a bit of investigative research. To give you an example – an Einstien can be given a problem that most people don’t think is solvable and they will find some kind of a solution.

I think that there are probably more true Einstiens than true Elvis types around, especially in academic circles, but I think a true asset is some kind of cross breed between an Elvis and an Einstien where they can do the investigation and then make it a viable solution for use by the Morts – that is not to say that Morts are dumb, its not the case, they just know how valuable their time is.

What has all this got to do with Bill’s post? Well, notice how I managed to describe these three characters without bashing a language? Thats because these user profiles are actually language agnostic – all three would be completely at home in either VB.NET or C#.

I suspect that Bill was just baiting the blogosphere a bit here because he knows as well as I do that C# is no more or less resistant to SQL injection attacks than VB.NET is, in either its 1.x or 2.0 incarnation. The code surely was crappy – but it could have been just as easily done in VB.NET.

P.S. Bill - get in contact with BizTalkBill, he just bought a pretty slick Tablet PC, he might have some good tips for you.