Programmers are not interested in quality and Ruby on Rails has some serious short comings

19 February, 2007 (18:52) | General, .NET, .NET Tools, Software Architecture, RoR

Did I get your attention? Good!

I am reading “Founders at Work” – Stories of startups early days – a collection of interviews with the founders of ArsDigita, Blogger, Marimba, 37Signals, Lycos, Flick, SixApart, PayPal and many more, written by Jessica Livingston and published by Apress.

It is part educational, part entertaining and part infuriating – in short it’s a pretty good read.

One of the more interesting bits I came across were the opinions and experience of Philip Greenspun, founder of ArsDigita.  

FoundersWhen discussing the profession of programmers, Greenspun said the following:

Programmers have not been professionals [in the way of a lawyer of doctor –TW] because they haven’t cared about quality. How many programmers have you asked “Is this the right thing, is this good for the users?” They reply “ I don’t know  and I don’t care”.  It’s no surprise that programmers salaries are headed down to what an illegal immigrant working at a slaughterhouse in Nebraska would get paid. …. You never know what most programmers have accomplished…. Its hard to say what the average programmer working at a large company has accomplished. Maybe he or she knows, but from the outside the projects are so big and their contributions were so small….”

Most readers of my blog would vehemently disagree. That’s because most readers of my blog care very much about their work. At the same time I must say that Greenspun has a point about the decline of the value of a programmer. People who were Software Engineers in the 90’s magically became Architects in the last 5 years. All the while the term Architect as used by a majority of companies I’ve talked to simply stands for “ A developer who knows his stuff “.  Seriously. The currency of Architect these days is the same thing that used to be called Lead Devs. That’s before .NET and various Java frameworks came along and folks with a little something on the ball started talking GoF and Patterns. Hey you know Patterns? You must be an Architect. Who can blame them.   

The evolution of our industry continues to amaze and abhor me in equal amounts.  From people who write entire applications by copying whatever they can find on Google, without much understanding of what they are building, to Managers and Decision Makers who really are completely lost when it comes to current technology. It’s scary.  And somebody please tell me why our industry continues to attract these business plan astronauts who have no clue whatsoever when it comes to managing a good tech company.  E

Even Greenspun points out that his company made a mistake of hiring the wrong managers. All in a quest to grow quickly. Here is another quote from the book: “ Consider McKinsey which holds itself out as one of the worlds leading repositories of knowledge on how to manage a business. They say they’ll never grow their company more than 25% in a year because otherwise its too hard to transmit corporate culture. So if you are trying to grow faster than 25% ask yourself what you think you know about management that McKinsey doesn’t know.

Its not just the business aspect of management that has been under fire. How tech managers do you know who are not familiar with anything remotely based on the current crop of technology. Heck I work with .NET every day and even I feel somewhat lost when it comes to latest batch of wonderful stuff from Redmond.  Are we on  .NET 3.5 ?  Holy smokes ! Most people are barely scratching the surface of 2.0.  

While we are on the subject of new and wonderful improvements in .NET Who amongst you does not like LINQ? Dan Madoni and I were commiserating the other day about the state of affairs in ADO.NET. Why try to bolt some declarative semi-SQL like syntax on top of ADO. Where is the syntax checking? Trust me, ORM’s can be built just as efficiently in a way that utilizes all the advantages of a compiled language. Look at Frans Bouma’s product LLBLGen. It does everything that LINQ can do and does it better.  Maybe it’s not so fashionable these days to come down on the side of compiled languages. What with the success of RoR and Ruby.  I’ve been working with RoR on the side, just doing some basic exercises, and you know what –it’s the same friggen problem. I mistyped one little word in Notepad and at runtime everything goes to hell. This sort of stuff is caught in the IDE in C# long before it gets into the compiler. OK, granted both Ruby In Steel and Komodo profess to handle this, but I haven’t worked with them and can’t say.

This weird evolution I’ve been watching does not stop with developers and managers. I’ve also witnessed changes in customer behavior. For whatever reason in the past 3 years I have heard more and more about customers who engage tech companies without any sort of deep reference check. Most of the time it seems that it is the Business Units themselves who engage these tech providers. Consequently there is a distinct lack of tech knowledge at the customers side. The bigger the companies the more prevalent the problem. No reference checks or hard product tests. These sort of sanity checks  used to be done by the customers IT Management .  In many cases the in house IT teams are not able to keep up with the technology used by the consulting and tech solution providers.  In some cases the in house teams were decimated by dreams of offshoring grandeur, or some other aspect of business reorganization. That may also contribute to this issue.

Certain companies take a different, more pragmatic approach. These organizations enter into contracts in a manner that shifts all the risk onto the vendor. I completely sympathize with these companies.  Essentially they stipulate that the project will be built on the basis of a small engagement fee. The customer will not pay the lions share of the money due until the project is done and working.   Of course I’ve also heard it told that these terms were creatively designed by the solution providers sales team.  ( nee Business Mgmt Astronauts) No matter who came up with the idea,  put yourself in the shoes of the management of the tech corp that just signed a LOE or contract containing these terms.  That company is going to be under tremendous pressure because the entire transaction is running in reverse. Instead of selling already built and tested code base, what is frequently being sold is a modification of the company’s product and as such will be susceptible to all the issues and fallacies of new code.

Some shops with very strong quality practices can pull this off and prosper. Most shops I’ve seen can’t. Most shops I’ve seen do not work from the basis of a consistently designed architecture. Instead, whomever is free at a given point is assigned the task to make modifications to the core product. I suppose this is done because Management doesn’t understand some of the finer details of the work. Programmer become blocks on project plans that can be plugged in and moved around as needed. (never mind the fact that this is a huge misconception)  Couple that mess with the fact that  programmer rather rewrite code than refactor it and you have the makings of a continued mess.

I’m not surprised that these various external forces drive so many good programmers into situations where they just become glorified puzzle solvers. If you are part of a good team with high standards of quality, count your blessings. If you work on a solid product that can withstand the vagaries of continuing changes in the business, count you blessings and if on top of that you work in a company that is driven by a sensible sales and growth strategy thank your lucky stars or God or whatever force you believe in that helped you find this place. It is indeed a rare company.

 

 

Comments

Pingback from wagnerblog.com » Blog Archive » More about Quality
Date: 3/5/2007, 7:35 pm

[…] I commented on the book “Founders at Work”. Specifically the interview with the founder of ArsDigita. Some time […]

Write a comment