Free Newsletters

   All InfoWorld Newsletters
Strategic Developer | Martin Heller » Developer fungibility: discussion

March 26, 2008 | Comments: (0)

Developer fungibility: discussion

Two weeks ago, I posted an entry based on a visit by Richard Rabins, in which he said:

Software developers are not fungible commodities to be bought and sold. You can't grow or train great developers: they just happen.

The emphasis on great is mine: it's something that several readers who contributed to the discussion seemed to miss. It was a good discussion, however, and one which bears a recap shorn of the infighting and personal invective.

I asked two questions:

  1. Does it make sense to replace a productive but expensive experienced developer with an inexpensive developer fresh out of school?
  2. Does it make sense to replace your in-house developers with less expensive outsourced developers?

Reader Bob Grommes answered:

If anyone has improved their time to market or their quality with offshore development talent, I've never heard of it. And I've heard plenty of stories that are just the opposite. So in terms of real dollars and true costs I see no simple monetary savings either.

Reader CharlieL added:

We had an off-shore relationship for a while (that was managed by the vendor through a local PM) and it was great when around 4 p.m. (pacific time) I could send an email to the developer about a problem and leave at 5 p.m. and the next morning at 8 a.m. there would be new code that solved the problem. Basically, it was as if elves had done the work in the night, while I slept.

Chip Overclock provided a link to an interesting essay of his own, "People Are Our Most Important Fungible Commodity".

Wilson Zorn took issue with Richard's statement "You can't grow or train great developers: they just happen." He basically argued that training can create great developers. He also rather persuasively cited experiences where "so long as you pass discrete and well-managed tasks, you can get work done just as efficiently offshore as onshore."

C. Doyle argued:

The key point is that macro-economics will eventually win out; regardless of where they are located, superior software developers can and eventually will get a comparable remuneration, as this InfoWorld article attests to:

http://www.infoworld.com/article/07/05/29/riya-wage-inflation-sinks_1.html

Dr. R. Bartel distinguished Technicians from Artists, and said:

Schools can only teach the "Technician" aspect of programming. The "Artist" as in all art, is unique to an individual and can't really be taught. In the "technician" aspect, nations such as India have done a good job in giving their graduates a foundation to work on.

Finally, Chris Gerrard made the point:

The idea that developers are fungible is rooted in the industrial model of efficient mass production of physical goods that underlies traditional business management.... Unlike industrial mass production, software development has no production component.... Developing software is design...

Great developers are statistical anomalies, just as are great bakers, musicians, mathematicians, or anyone else who excels in a field that requires a very highly developed combination of specific talents, abilities, and skills. It's certainly possible to educate and train someone, or a great mass of people, in the first order technical skills of programming. Some fraction of them can even be trained in second order skills. But no amount of training can create great developers from the large majority of any population.

Garrard went on to address outsourcing:

Fundamentally, developing software at a distance is difficult and expensive. Every unit of distance between the concept and the realization of the software imposes costs in terms of cost, quality, and time to delivery. The increase in cost is more than linear in relationship to the distance. And there are multiple dimensions of distance: geographic, time, language, cultural, experience, and so on.

Outsourcing in the "classic" mode of hiring legions of low-cost foreign workers to work in place of local skilled developers is fundamentally flawed, and is beginning to lose its luster. And good riddance to it.

I personally think that Bartel and Garrard are essentially correct. I also think that when Richard Rabins talked about a "great" developer, he was talking about what Bartel calls an "Artist".

The discussion is still open, however. Feel free to add your own opinions if you feel there's another aspect of these issues that needs to be raised.

Posted by Martin Heller on March 26, 2008 10:49 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Personally I prefer the term "craftsman" to the term "artist". The heart of a craftsman is what's needed; a craftsman still cares about delighting customers / users, working efficiently and accurately, creating stable and maintainable works as well as doing something elegant and pleasing. On the other hand, the term "artist" carries with it connotations of "impractical" and "temperamental", as well as, often, "slow".

There is no fundamental disconnect between loving and excelling at what you do, and still producing something wanted and useful within reasonable constraints and timelines (although of course, some managers have definitions of "reasonable" that must come from another planet).

Posted by: Bob Grommes at March 26, 2008 04:21 PM

There are as many smart people in any country as in ours. We all have the raw material. Other countries are improving training, while our students are less inclined to technology careers.

Outsourcing is primarily a cost-reduction approach. Greatly-skilled people are less inclined to work for less. I think we should not confuse the access to competent people at lower cost (outsourcing) with the much lower availability of artists - people who have that much more than average ability to understand problems clearly and rapidly design solutions.

I think both artists and outsourcing have their place in our business solutions. What I do worry about is that in outsourcing everything we can, we are training our next generation of competitors - the price differential is eventually going to equalize, and we will have fewer trained people than other countries will, because fewer students today consider programming a long-term viable career. I'm 59 years old, and I hear this from young people often.

We need to balance our short term and long term thinking. We will always need our artists, and we will always need to be competitive.

Posted by: Mike Riddle at March 27, 2008 02:33 PM

Rabins comment reminds me of another maxim I have used as a touchstone for decades. I don't remember where I first heard it. Might have been David Ogilvy, John Caples, Claude Hopkins, or similar advertising guru opining on "true creativity." But the point of view is valid for developers as well.

It goes like this (I'm paraphrasing): "You can teach anyone to play piano, but Mozarts are born. There is a finite number of them in the world -- and that number is exceedingly small."

Creativity is not a commodity. Anyone remember when Electronic Arts launched in the 80s? They were among the first, or "the" first, to market their developers as artists (rock stars were the metaphor). People outside the industry laughed. People inside the industry nodded.

Great developers are great artists.

Transparency: Alpha Software is a client of mine.

Posted by: RBL at March 28, 2008 07:45 AM

To successfully develop reliable complex software systems you need software engineers. However, in my experience, good engineering is only part of the solution. It is much like building a bridge - an engineer can design a functional bridge, but it may not be very esthetically pleasing, nor adaptable to future enhancements. For that, you need someone with vision, foresight, and a sense of harmony. That is the role of architect, and good architects are truly artists. However, you still need the engineer to be sure that the vision of the architect is built to standards, on time, and within a budget. The best software developers encompass both traits and abilities, as architect and engineer. I think my cousin is a good example of a person who combines both, in the more traditional sense. He is a top-flight architect (houses, office buildings, towns, etc) with many awards on his shelf, but he is also trained as a civil engineer, so he can build what he envisions. I'd like to think that I encompass such traits as a software architect AND engineer. I don't believe that either of us can be considered "commodities".

Posted by: WB at March 28, 2008 10:11 AM

Software developers are fungible the same as car desingers and accountants are. So are marketing executives and sales managers.
Why can't you have management of your North American sales force by cheaper workers in India?
Hire 100 chinese CEOs to replace your way over priced one. Why NOT?
Software is design, not production. It is crucial business process. Disk reproduction can be done in China, product design needs to stay on shore.

Posted by: SirLanse at March 28, 2008 11:31 AM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links