The agile dentist

A dental x-ray.
Photo by Umanoide / Unsplash

I cannot think of a more helpless feeling than being in the dentist’s chair while getting a major procedure done.  You are drugged, filled with nitrous oxide but you are still conscious and feel pain; you can’t do anything about it.  It was during this time of profound discomfort that something dawned on me.  Software developers can learn a lot from dentists.  This week I would like to expound on that topic.

I was receiving a root canal and feeling like I was in the middle of fifteen rounds with Mike Tyson.  My regular dentist was not in the office and so another was spending time using endodontic files on my mouth.  This is when it dawned on me.  My dental practice is a highly functioning team, with each dentist able to do the same procedure on any other patient.  There were no specialists, and my dentist didn't need to be called in on her day off to get my root canal done.  Talk about cross-functional.

Next, I had a hygienist numb my mouth, and my doctor did the work.  I also noticed another person in the room that I never recognized before. This was a dental resident who held the suction tube and watched and learned while my dentist worked on my bad tooth.  This was pair programming because I could overhear the resident asking questions and providing instruments to the dentist while they worked on me.  It is one thing to pass tests in dental school. I am sure it is entirely different when you are fiddling around with a real person’s mouth, so this is how knowledge is passed from generation to generation.

Finally, when my root canal was finished, and the dentist ground my tooth for a crown, the resident took charge and finished the job.  I watched her as she weaned me from the nitrous oxide.  Then, using a dental drill and resin, she fashioned a crown to wear until the permanent version was put into place.  What I witnessed was a textbook example of how software developers should work together, and I saw it at the dentist's office.  Everyone was cross-functional.  Senior team members were teamed up with junior members to mentor them and show them the ropes in the real world.  Finally, the junior members were trusted to do work without supervision.  It was a revelation.

What I can take away from this experience is that software development does not have to be unpleasant, like a root canal.  You have the makings of a fantastic cross-functional team by correctly using pair programming, trusting junior developers to do the right thing, and ensuring there are plenty of opportunities to mentor.  As I work toward building my own business, it is good to know I have a good working model for an agile team.  Who knew that the dentist could be agile?

Until next time.

Edward J Wisniowski

Edward J Wisniowski

Ed Wisniowski is a software development veteran. He specializes in improving organization product ownership, helping developers become better artisans, and attempting to scale agile in organizations.
Sugar Grove, IL