EvilRob.org -> Weblog

Sysadmin Field Notes

Doctors and Laywers and Programmers, Oh My!

January 29, 2004

The software/programmer industry has something it can learn from doctors and laywers. The average doctor is at least minimally capable at his or her job, where minimally capable means they can examine or treat you without causing more damage than harm.

The average laywer can at least typically figure out if you have a case, put together a reasonable argument, file the proper documents, etc...Again, mostly help rather than harm.

However when it comes to software developers, the average developer is likely a no-talent hack (note, I am not necessarily putting myself above that category). Pick a random developer from an internal corporate software organization, and from my experience it's likely that that person is just not capable of independently writing a reasonable volume of production quality code that doesn't cause headaches for others on the team. There's of course a range of skills and talent, but something about the way we train programmers does not weed out the people who are not fit to be programmers, a stark contrast to the medical profession where someone who can't stand the sight of blood will be identified and removed from the program well before graduation.

I'm arguing this is because in the case of both doctors and laywers, there is a much greater emphasis on mentorship of new people to the profession. Law has internships, and by convention new lawyers spend quite a while assisting with and preparing cases, working with more experienced lawyers.

Doctor's have on the job training under skilled doctors as a fundamental part of their curriculum and that continues well after graduation.

This weeding out through intensive, supervised professional training tends to lop off most of the bottom of the bell curve, generally leaving all doctors and laywers at least minimally capable of doing their jobs.

Programmers (from what I've seen), assuming they went to school, graduate without really writing very much production quality code or ever having it really reviewed and been held accountable for its quality (or for that matter ever building robust tests, working in large teams, dealing with changing requirements, etc...). Then they are thrust into a variety of jobs; some (probably few) nuture their programmers and bring them along under careful supervision. Most probably end up in a sink-or-swim situation, and because it's difficult to judge overall project success, and they likely had no direct, careful supervision so it's difficult to determine their true contribution to the project, they may or may not have picked up the skills needed.

Doctors and Laywers aren't typically competent because of licensing, they are competent because at some point, someone taught them how to do their jobs. Programmers often don't get taught how to be progammers, don't get any feedback, and hence, never get any better.

Posted by rmeyer at 12:47 AM
Comments
Posted by Scott Askew at January 29, 2004 9:24 AM

First off Rob, good on 'ya for providing an RDF feed. Now, in response to your post, I think that you're just scratching the surface in drawing the lawyer/doctor/programmer link. I completely agree that basic programming is relatively easy, and good programming is rather difficult and certainly something that takes a few years of mentorship (or at least copious amounts of trial and error) to be done well. This part of the lawyer/doctor analogy speaks to the more tactical parts of each profession; it takes years to learn the nuances of law or to know enough about the human body not to make things worse.

The analogy can be further extended when considering the more human, communication-based aspect of each profession. Not only are new programmers ill-prepared to write production-quality code from a technology perspective, but they rarely develop the professional inter-personal skills required to accurately determine their customers actual needs and the negotiation skills that are so important in balancing those needs with reality. Good lawyers and doctors (especially doctors) are known for their inter-personal skills as much as they are for their technical prowess. This is why mentoring is so important for new recruits.

This is Rob Meyer's weblog, a weblog focused on software development and system administration based on 10 years of experience. Want to explore further? You can find out more me or see the rest of my website.

Wondering if I've written on something in particular? Try searching:

You might want to take a look at some of the more requested postings (as judged by incoming traffic):

Want more? Subscribe to this site or contact me at rob at big dis dot com.

See my writings on:


Powered by Movable Type | Technorati Profile