Ryan Farber's WebLog

Teaching non-enthusiastic students

I work with several really good black box testers who know that it is time to increase their skills and learn to program.  These skills hopefully will add them to list of people who can fix test automations, create simple automations and better understand potential weaknesess in developers code.  All in all better testers.  The problem is that even though their review goals emphasize increasing technical skills and they even take classes on Intro to C# or Programming Principles or even weekly brown-bag programming talks these training sessions never turn into actual productive skills.

Then one day I notice that one of these testers has found an API for automating dialogs through sending key strokes to window handles.  He went hog wild.  The code wasn't great and completely unsustainable but there he was building projects in C#.  So I sat down with another trainer and started discussing this.  We looked at what kind of programs we would like these testers to write and built and API that allowed them to more easily run these tasks.  Specifically for our needs we wrapped functions needed for writing batch programs (better File Copy/Move, Modify XML file settings, Simple search and replace of values in text files, abilities to determine file encoding) and IE UI automation thourgh the IE DOM.   Then built a custom template for BatchCode and IEUICode that created the projects, added needed references, and supplied sample code.

Wow did this work.  At first they started converting some of their batch programs, then writing test cases.  If a tricky problem came up that was reusable we would add a function to the API.  In less than a month we had adoption by about a dozen people who were debugging, writing functions and discussing code.  Adding FAQ documents and modifying the templates to push toward sustainable programming techniques helped as well.

In summary we developed an easy to use API that very directly affected our business.  This API allowed people new to programming to produce useful results quickly.  These fast wins turn into excitement which in turn increases technical skills much more efficiently than any training courses we developed or sent people to.  From there training becomes more effective.

Published Wednesday, June 22, 2005 11:15 AM by rfarber

Comments

 

Jónas Antonsson said:

Ryan Farber is spot on in his post about teaching non-enthusiastic students. In short, he concludes that you have to develop enthusiasm through experience to turn training and teaching into something useful and permanent
June 22, 2005 1:42 PM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker