Agile Zone is brought to you in partnership with:

In the course of his 30-year career, David Bernstein has trained more than 6,000 developers at hundreds of companies on how to improve their software design and construction. His company, Techniques of Design (, provides customized training, coaching and consulting to software developers and development teams around the world, enabling them to master essential practices, including Agile, Scrum, XP, test-driven development, design patterns and related techniques, for building high-quality software more rapidly. David is a DZone MVB and is not an employee of DZone and has posted 18 posts at DZone. You can read more from them at their website. View Full User Profile

Do You Mentor?

  • submit to reddit

One of the things that established professions like medicine and law have that we as software developers don’t have is some form of mandatory mentoring. For doctors it is residency, for lawyers it is internships, even carpenters need to apprentice with a master carpenter before they can become a master themselves. But in software development there is no formal apprenticeship that we all go though and as a result there is a great deal of inconsistency in skills between developers.

Don’t get me wrong, I love the diversity in our industry. Different perspectives can often lead to breakthroughs but I also see how just having some basic knowledge in common would help us communicate better and think more clearly about the challenges we face.

The apprenticeship model has existed for thousands of years and it is alive and well in the software industry. A lot of us owe a great deal to those who have taught us on the job. I learn tons from my students and colleagues and feel it is my duty to give something back and share what I know–that’s why teaching is a good field for me.

I know very well that there are perhaps even greater benefits in mentoring than in being mentored. Being able to perform a skill represents a level of proficiency that is far surpassed by being able to teach it. Teaching is one of the fastest roads to mastery.

As developers we all must be great teachers. Our ideas are only as good as our ability to articulate and engage our fellow developers in them. We must not only do the right thing but be able to explain why we did it. This is a skill that great developers have.

One of my students in a recent Scrum Developer Certification training who was particularly generous with his time and had helped everyone in the class improve their skills, confided in me that he was once very closed to sharing with other developers and saw knowing something that others didn’t as a competitive advantage.

“What changed for you,” I asked.

He said he had a few hours waiting for a flight with Ward Cunningham. In those few hours he said Ward shared a lot of valuable things with him. He said, if someone as super-smart as Ward could be so open, he wanted to be the same way.

This man was changed forever and he is now a highly valued thought-leader in his organization. Of course, he always had the potential but it was one chance encounter with someone like Ward Cunningham that showed him another way he could be and that changed his life forever.

For me, being able to spend a few days with developers is the greatest honor. My deepest wish is that I can help people the way Ward helped this person, not just with more and better development techniques, but by being someone that also embodies the qualities of agility and someday, maybe, someone will say about me what this student said about Ward.

Published at DZone with permission of David Bernstein, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Kyane Ben replied on Thu, 2012/03/15 - 12:25pm

I’ve had more than one great conversation waiting for a plane. Most developers aren’t expecting to meet anyone who understands what they do. I’ll share some hard-won insight just to amp-up a conversation. Developers know amazing things.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.