One of my clients asked me to "create" a course that addresses code quality. You'd expect things like TDD, Refactoring, Continuous integration, etc. in the course. I have kept those to a minimal though I do take time to emphasize those several times during the course with a few examples.
There are other concerns as well—issues related to numerical computations, readability and maintainability of code, commenting and documentation, ways to approach code reviews, code smell, and of course language and framework specific issues. Organizations are spending way too much time and money in fixing software defects. In some industries it takes a while for products to gain acceptance among their clients. However, when they do get accepted, they're faced with challenges to keep up with change requests and enhancements. Legacy systems that are poorly written (from design point of view) and don't have much in the way of tests are hard to maintain. Companies often find it hard to sustain when sitting on poor quality code.
I offered the course a few times in different cities in the US earlier this year and now I am here in Hyderabad to offer the course to their developers in India.
I have met some of these developers before either in the US or during previous visits to India. So, I had fairly high expectations. The teams exceeded that. Having passionate and opinionated audience is a great delight. There was not a dull moment in the course. They were swift in answering questions, and tireless in asking questions and following it up with discussions. We were switching Java, C++, and C# code as we discussed language specific issues.
I had developers with various degree of experience, all the way from developers with 2 months experience to well over 12 years (I had a few developers with over 30 years experience when I offered the course in the US). At some point, I said a few "unorthodox" things in way of design and that ignited some real vigorous discussions—several points of view, opinions, theories, practices, and pragmatics...
Overall I am absolutely thrilled being here. What else can you ask for on a visit like this for other than a great audience. Needless to say, this region is well known for its authentic (very) spicy South Indian food—so I've been working out a bit harder in the mornings to offset the food intake :)
I am in the initial phases of planning for a visit again to India in May. I've been invited to speak at the Great Indian Developer Summit in Bangalore. I'll be combining that trip to teach an agile course for a client in Bangalore followed by possibly another short visit to Hyderabad to teach another course.
During that visit, Naresh Jain and Agile Software Community of India have arranged for me to give talks in Bangalore and Mumbai.
Bangalore is a nice place to be in Summer, so I am looking forward to that visit. But the visit will be relatively short (a couple of weeks) as I am scheduled to teach an "Agile Design" course at University of Houston in June.

