Tools for Mort

For those of you not familiar with the term "Mort," it comes from a user profile used by the Devdiv team.  This team has created imaginary "people" that represent key market segments.  They have talents, and goals, and career paths.  An the one that developers love to bash is poor Mort.

I like Mort.  I have hired many folks like Mort.  Mort is a guy who doesn't love technology... he loves solving problems.  Mort works in a small to medium sized company, as a guy who uses the tools at hand to solve problems.  If the business needs some data managed, he whips up an Access database with a few reports and hands it to the three users who need the data.  He can write Excel macros and he's probably found in the late afternoons on Friday updating the company's one web site using Frontpage.

Mort is a practical guy.  He doesn't believe in really heavy processes.  He gets a request, and he does the work. 

One fellow who I know, and who worked with me on a project here in Microsoft  (and who reads this blog) once told me that he considers himself "a Mort" and was quite proud of it.  He introduced me to CruiseControl.  I already new NAnt and NUnit, but he showed me how CruiseControls adds continuous automated testing to the mix.  I loved it.  You see, my friend was a programmer, but he was also Mort.  He believed in getting things done.  He was no alpha geek, to use Martin Fowler's terminology.  (Yes, I know that Martin didn't originate the term, O'Reilly did at MacWorld many years ago.  But he repeated it, and he's a pretty important guy).

My friend had taken a typical "Mort" point of view.  He is a really good programmer.  He could write fairly decent C# code and his code worked well.  But what made this guy "better than your average bear" was the practical point of view that he took to his work.  He believed like I believe: technology is a tool.  It is like any tool.  You can use it too little or too much, but the point is to use it well.

The world needs MORE people like Mort.  In fact, with the movement towards mashups and web 2.0, the world will soon be taken over by people like Mort.  And I couldn't be happier.  Put architects and BDUF designers out of work!  That would really shake things up.

Most of my open source friends either are a Mort or know a few, because the underlying philosophy of Mort is a big part of the open source and agile movements: People come before Process.  Solving the Problem comes before negotiating the contract.

So when I got this reply to one of my posts from Sam Gentile, I have to admit that I was really confused.  He starts by quoting me and then provides his feedback.

>In this response to Martin, Peter argues eloquently for including tools in the toolset that support ALL developers, not just Martin's "alpha geeks."  

I don't think you are getting that point. MSFT is making tools for Morts (the priority) at the expense of every other user (especially Enterprise Developers and Architects). They have nothing for TDD. And I would further contend that making these tools "dumbed down" has significantly contributed to why Morts are Morts in the first place and why they are kept there. Think VB6 and the disatrous code that was unleashed everywhere. If Microsoft took some responsibilty and created tools that advocate good software design principles and supported them then things would be different.

Wow, Sam.  I didn't know you had so much animosity for the Agile community!  Are you sure that's what you intended to say? 

Do you really mean that Microsoft should make a priority of serving top-down project managers who believe in BDUF by including big modeling tools in Visual Studio, because the MDD people are more uber-geeky than most of us will ever be?  I hate to point this out, Sam, but Alpha Geeks are not the ones using TDD.  It's the Morts of the programming world.  Alpha geeks are using Domain Specific Languages.

I think you are wrong about Visual Basic.  As a trend, VB brought millions of people out of the realm of Business BASIC and slowly, over the course of seven versions, to the world of object oriented development.  Microsoft, whether on purpose or not, single-handedly drove millions of people into the arms of C# and Java. 

Microsoft cares passionately about good design principles.  So does IBM and so does Sun. Each of these companies (and others) has one or more dedicated groups of people publishing research for free on the web, supporting university research programs, and funding pilot efforts in partner companies, with the expressed goal of furthering Computer Science.  Do NOT underestimate the value that Microsoft Research and our humble Patterns and Practices group has provided to the Microsoft platform community.  You do yourself a disservice by making any statement that reeks of that.

VB.Net is object oriented.  It is not compatible with VB6.  Microsoft took a LOT of community heat for that... much more so than the current TD.Net dust-up.  If that isn't taking responsibility, I don't know what is.  We alienated millions of developers by telling them "move up or else."  We are the singlehanded leaders in the space of bringing BASIC developers up to modern computing languages.  NO ONE ELSE HAS DONE THAT.  I dare you to find someone else that has forcebly moved millions of people to object oriented development. 

Lastly, where do Microsoft's own add-ons, in the paid version of Visual Studio, actively PREVENT any of the agile tools from working?  Give me a break!  If an agile tool does an excellent job, and it is free, what motivation does MS have for spending real money to add that capability to the product when it cannot possibly increase the value of the paid Visual Studio product for the people who are already using the free open source tool?

We didn't add MSTest for the users of NAnt and NUnit.  We added it for the poor folks who wanted to use those tool but their corporate idea-killers wouldn't let them.  To be honest with you, we made mistakes.  Our first attempt at those tools are flawed, but they are an improvement over the previous version, and I've been told that there is further interest in improving them. 

Just like Toyota's first Corolla was a boxy ugly car that bears no resemblence to today's sleek little sedan, steady improvement is a mindset.  It takes time to understand.  Toyota is winning, and the reason is the same as for Microsoft.  Both companies share a relentlessness of improvement.  Slow, perhaps.  Steady?  not always.  Customer-driven?  yes.  We don't win by being monopolistic.  We win by being persistent.

No one is asking you to stop using the free tools you are using, ever.  If those tools continue to improve faster than Microsoft's attempts (something I expect) then you have won the "uber-geek" for the platform, not us.  Thank you.  Keep it up.