XNSIO
  About   Slides   Home  

 
Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
     
`
 
RSS Feed
Recent Thoughts
Tags
Recent Comments

Archive for the ‘Training’ Category

When Should We Encourage Developers to Write Comments?

Sunday, May 15th, 2011

Many people will argue that there is more badly written code than good code. And its important to write comments to avoid these situations. Therefore we should encourage (force) people to write comments.

IMHO they are absolutely right that today many project suffer from poorly written code without any (good) comments. However every team I know, that suffers from this problem, has always been told (forced) to write comments. In spite of the emphasis on writing comments it has not really helped them.

I usually ask:

By asking developers to write comments are we really addressing the root of the problem?

.i.e. developers don’t invest quality time to write self-documenting code; code that clearly communicates its intent and does not require the deodorant of comments.

May be its time to try something different?

I have seen this myself many times, when we emphasize & educate the team on how to write clean code and ask them to stop wasting time writing comments, the code starts to communicate lot better. Its lot more maintainable. Also we have found that writing automated tests is a great way to document your intent as well.

This is how I would explain the concept Comments Smell to a team:

Writing comments that explain “how” or “what” the code does, what it does, is evil IMHO. Comments (esp. about what and how) is a clear failure to express the intent in code. Comment is a deodorant to hide that failure (smell).

  • If developers don’t invest time to write clear code, what is the guarantee that they will write clear comments?
  • Is doing a mediocre job at both (comments and code) better than doing a great job at just Code?
  • Will it actually be more productive to do both or just one?

Remember the biggest problem with comments it that they fall out-of-sync with code very soon. So its not just about the extra investment to write good comments, but also the investment to maintain them.

One has to think hard to write code that expresses intent rather than write some sloppy code with poor abstractions and get away (washing their hands off) by writing comments. Developers have to take responsibility for writing code that others can easily understand.

Having said that, there are times when “the why” (why we are doing something in the code, a particular way) is not apparent by just looking at the code. So if we don’t find a suitable way to communicate “the why” through code, comment is the fall back option.

Note that comments are a fall back option in “the why” case rather than a default option.

Hiring XP/Lean Coaches @ Industrial Logic, India

Wednesday, April 6th, 2011

Industrial Logic was founded in 1996, is headquartered in Silicon Valley and has a workforce distributed around the world.

We are a globally recognized Agile coaching, training and eLearning company, composed of internationally recognized Extreme Programming and Lean Management pioneers and practitioners.

Our mission is simple:

We inspire software teams to go from good to great.

Since the late 1990s, we’ve steadily improved the agility of ourselves and our global clients, including:

Standard Life HP Google GE ThoughtWorks

Our coaches are skilled practitioners who provide technical, managerial and entrepreneurial wisdom in their work with executives, managers, customers, analysts, developers, testers, internal-coaches and others.

Coaching for us means helping software people and organizations move towards high discipline, better risk management, reduced technical debt, increased productivity and delighted customers.

We judge our coaching engagements by whether we helped engender a culture of continuous improvement.

We teach live workshops and provide innovative Agile eLearning to help thousands of people around the world learn and practice valuable skills in Extreme Programming and Lean Management.

We begin most engagements with assessments that help groups understand current strengths and challenges, consider where they’d like to be tomorrow and map out strategies for getting there.

We are growing and we’re searching for highly-motivated XP/Lean coaches to join our company.

Interested? We currently seek ‘senior’ and ‘junior’ coaches. We expect our seniors to drop right into (paired) coaching immediately. The juniors, on the other hand, will need training and practice, and can expect their initial time to involve shadow-coaching with one or more seniors.

We are currently seeking coaches in India. We have domestic and international clients. Our travel schedules are manageable and balanced with local work. When not helping clients you’ll be contributing to the larger Agile community and collaborating with us on product development.

SENIOR XP COACH

  • A passion for excellence;
  • Ability to hit the ground running;
  • Coach organizations at different levels (Executives, Middle Management, Teams)
  • Outstanding communication skills, whether to geeks, suits, or anyone in between;
  • A willingness to travel approximately 30%-40% per year, generally working four-day weeks onsite every other week (often paired with another IL coach).
  • High energy and good cheer. A sense of humor is a big plus.
  • Willing to pick up new skills on their own at a very short notice
  • 4+ years of solid experience working on XP projects
  • 7+ years of software development, with specialty in Java, CSharp, and/or C++;

JUNIOR XP COACH

  • A passion for excellence;
  • Coach organizations at team level
  • Outstanding communication skills
  • Basic familiarity and some experience with the XP practices;
  • A willingness to travel approximately 30%-40% per year, generally working four-day weeks onsite every other week (often paired with another IL coach).
  • High energy and good cheer. A sense of humor is a big plus.
  • Willing to pick up new skills with limited guidance from others
  • 2+ years of solid experience working on XP projects
  • 3+ years of software development, with specialty in Java, CSharp, and/or C++;

At Industrial Logic, we eat our own dog food: when not at clients, we spend our own time developing products using an ultra-Lean process that we continually improve.

We emphasize sustainable pace, non-stop collaboration, and an overall tone of joyful camaraderie. It’s state-of-the-art agility around here.

Are we a match? If you think so, please send the following to jobs AT industriallogic DOT com

  • a subject line that reads “SENIOR COACH” or “JUNIOR COACH”
  • your resume
  • a brief statement on why you’d like to join our company
  • a sample piece of writing, such as an article, blog entry, etc.
  • links to communities or open source projects to which you’ve contributed

Our sincere thanks for your time and interest in Industrial Logic. We look forward to hearing from you!

Social Credibility: Alternatives to Certification?

Sunday, May 23rd, 2010

There is something very powerful about online education (eLearning). Assuming that one can create really good courses, it enables any individual to start competing with the large Universities. (Many Universities have seen the benefit of online education and they have certainly started offering their courses online.) Students can be located anywhere around the world and they can learn things at their own pace. With social media one can even achieve a very high collaboration between the students (peers) and teachers. This can scale very well and since the class capacity is infinite, we can completely remove the barrier to entry. Finally education can be made very affordable, since the cost of running an online course is extremely low compared to the bureaucratic Universities. Thus it helps in “Bringing quality education to everyone“.

One of the real problems we run into with this approach is, how do you “certify” the student? Coz these individual educators won’t have the credibility like a University nor will they be able to give an acceptable degree/certificate as a “proof of learning”. The question is can social media/web fill the void?

The Social Media/Web is still at a very nascent stage, evolving rapidly. Today people don’t really use it to validate someone’s credibility online. As of today “Certificates” have more value.

Globally, using social web to certify people has not taken off. LinkedIn is trying. I’m (or should I say, I was) trying something similar with the Agile Alliance LinkedIn Group. Lot of other people like http://www.wevouchfor.org and http://www.workingwithrails.com/ have tried.

To think about it, Open Source (being a committer/contributor on an open source project) helps you build social credibility. This model has certainly worked for a lot of developers.

Things like http://www.topcoder.com/ and http://www.codechef.com/ are taking off very well. But they are different, not so much social media.

Imagine “real” people on the web can vouch for your experience, knowledge and skill. You can demonstrate the same with applications/tools you’ve built. Your social status speaks for you and you can completely do away with the traditional certification model. I certainly see us moving in that direction. Decentralize and distribute the ability to certify people.

Industrial Logic eLearning: Introducing Regional Pricing for Individuals

Sunday, May 23rd, 2010

For many years now, our Agile eLearning albums have been offered at a flat, USD price, regardless of where you lived in the world.

That is about to change!

Our Agile eLearning albums are now available to individuals around the world at new, lower, regionally adjusted prices. globe

What Does This Mean To You?

It means that we have introduced a new Individual pricing model to complement our Corporate pricing model. The new model, based on Purchasing Power Parity (PPP), makes our Agile eLearning more affordable for individual purchasers.Individuals will still see USD album prices — however, they will be adjusted to reflect the purchasing power of your country’s currency.

As of April, 2010, if you live in India India, you can purchase an Individual License to our Code Smells album in Java for USD $126.00, rather than the Corporate price of USD $210.00.

Even if you live in a country where the PPP discount is modest, Individual Licenses will still receive a 15% discount:

As of April, 2010, if you live in the United State US, you can purchase an Individual License to our Code Smells album in Java for USD $179.00, rather than the Corporate price of USD $210.00.

Why Are We Doing This?

We’re devoted to helping people throughout the world acquire Agile skills at a reasonable price. We’ve helped large corporations, like Google, HP and Standard Life, realize this goal and now we’d like to make the same training affordable for individuals as well.To learn more about Agile eLearning, please visit our Greatest Hits Shop.

Agile Training n Coaching in a Big-Upfront Waterfall Style

Wednesday, March 31st, 2010

Every week, I continue to receive several email from training departments from companies asking:

We are planning to roll-out Agile to our whole organization next week. Can you please provide me with the following information by end of today:

  • Detailed course outline to train the whole organization on Agile.
  • Detailed course outline to train our internal trainers on advanced Agile topics.
  • Availability of a coach who can work with our internal coaches to roll out Agile to our organization.

Also please let me know how much this is going to cost exactly.

This is worst than a fixed-bid project (fixed-cost, fixed scope & fixed time). At least there you have some context based on the thick-spec they give out.

I usually respond saying:

I apologize in advance, my response might sound a little harsh.

I’m sure you can find few people in India who can provide you with the services that you are looking for. But let me give you some context so you understand the nature of the risk you are taking.

Every week, I get at least one such email from a company who wants to adopt Agile method. They want a pre-packaged courseware (in-person or elearning) that can be rolled out to all their employees. And they hope they can get a good coach in India who can guide their organization.

Personally I always advice companies not to go down this road. Very few companies pay attention to my advice. Others go ahead with this approach. They shop around for the best deal they can get. They hire an “Agile” training company. Invest Lakhs of Rs in training. Spent a lot of energy and effort in trying to make this work. Take a productivity hit on projects and so on. And after 6 – 12 months they came back saying: “This Agile thing does not work. We invested so much, but there is no improvement. In fact our organization is worse off“.

Let me explain why this is the most inefficient way to invest money, time and effort. First and foremost, one needs to understand that Agile is not a thing that one can learn in a 2-5 day class. Agile is a very broad & deep topic. Its not about doing a set of practices, nor is it just a process change, its a cultural, organizational change. It changes (or at least challenges) fundamentally how people build software.

Without studying an organization, their pain points, nature of their work, aspirations of the team members, other constraints under which they operate, etc. .i.e. without the knowledge of the organizational context, any training done on subjects like this, IMHO will do more harm than good. Any general, prescriptive advice on this subject is fundamentally wrong. Any overview session is too vague for people to relate to. Guidance on such matters has to be grounded in contextual land.

I touch on some of these points in the following presentation:

View more presentations from Naresh Jain.

Before going ahead with this window shopping approach, my suggestion would be, get a practitioner to spend a couple of days in your organization, do a small assessment of the situation on ground, collaboratively put a small roadmap together about how you want to handle this change, based on that figure out what training (if any) is required, understand how would you position this to the management and the development teams and so on.

BTW, if your organization has excess money in their bank account and have a few years to waste, I can send you a few course outlines, some profiles of trainings & coaches and their per day rates. I have a dozen of those.

TDD Overview Slides from Houston APLN Meeting

Tuesday, October 6th, 2009

Industrial Logic, India (Asia)

Sunday, October 4th, 2009

As you might already know, from 1st Oct 09, I’ve joined Industrial Logic full time. I’ll be based out of Mumbai.

Over the last two years, I’ve done various training and consulting gigs (part-time) for IL. Now we feel we can take this relationship to the next level.

My primary responsibilities at IL would be:

  • Setting up a small office in Mumbai (1-2 Biz Dev/wizardsMarketing Wizards + 2-4 Developers + 1 UX Designer)
  • Contribute content on diverse topics to Greatest Hits, IL’s elarning product
  • Help build the elearning platform (in near future, hire some kick ass developers to join this initiative)
  • Continue handling in-person training and consulting in Asia (in near future, build a small team to help out)
  • Help position IL and Greatest Hits in Asia (marketing elearning to working out an INR pricing, etc)
  • Continue building a thriving community of craftspersons in India (and globally)
  • Globally, continue pushing the envelope on true agility and bringing unconventional ideas to software development.
  • Above all, have fun and learn from THE experts

2 Cents of Caution Before Hiring A Coach for your Agile Team

Sunday, July 5th, 2009

Recently I read Esther Derby’s blog post on Five Reasons to Hire a Coach for Agile Teams. While I agree with all her points, following are the questions or concerns running through my mind.

  • What are the risks involved when hiring a coach?
    • What is success ratio? How many teams you know (not heard of in some cooked up report by a consulting company or a tool vendor) who are successful adopting Agile with a coach’s help? And how many teams do you know who have failed trying to adopt agile without using a coach? Let me clarify, when I say adopt Agile, its not about a bunch of practices. Its about continuously evolving the process to make it lean and more efficient and more enjoyable.
    • Can any coach do or do we need a special type of coach? Point I’m getting at is, your chances to succeed is based on the quality of the coach and her experience.
    • In my opinion your chances of failure is much more if you hire an average coach from outside who does not understand the business, organization and team context & culture.
    • The big problem we face today is we don’t have a good way to know if someone is a good coach or not. What are the chances you’ll end up hiring the right coach? Its not sufficient if someone is a certified professional. In some cases, its not even sufficient if someone has written a couple of books.
    • Also in my experience, ability to connect and influence the team members is very important. A good team member is in a much better position to achieve this than any average coach from outside.
  • How sustainable is the model of hiring a coach?
    • What happens when the coach leaves? Is the team evolving their process or still using what the coach put together?
    • Hiring a coach from outside might speed up things. But I’m not sure if people will be able to understand the rationale behind doing certain things. In my experience failure is a great learning tool. Taking more time to achieve something (and in the process failing a few times) is not bad, it make something more sustainable and scalable.
  • Can you teach/coach someone to be agile? Agile has been around at least for the last 10 years, what are the chances one or more coaches can change that? (I’m not saying its not possible, I’m trying to highlight that its not simple. It involves organizational transformation and change in individual’s mindset).

My advice is before looking for a training or coaching, do sufficient homework?

Interested in Agile Training/Consulting for your Organization?

Monday, June 29th, 2009

Recently I’ve been getting a lot of request for Agile Training and Consulting. Unfortunately the expectations from the training are not clear for me. Most people approach me saying, “we want a TDD training” or “we want a Project Management training“. Once I start talking to them & their team (or even worse sometime during the training), I realize the topic we’re discussing is not their biggest issue. I get a feeling that most organizations have not done their homework to figure out what they really need and how they should go about it. They might have heard somewhere that ‘blah’ will help them and they want to jump on it.

Few months ago I started doing readiness assessments before my trainings. (I’ve also started doing assessments after my training so see if the training was effective.) But I have realized the assessment is not enough. So I’ve started asking the following questions even before the assessments:

  • What kind of issues your organization is facing currently and do you think Agile will help you? If yes, why so?
  • What is the current strength of your development team? How experienced is the team with software development? Does your team understand all aspects of software development?
  • What is the current process you follow? In other words, from the inception of an idea to the delivery of the same, what are the various steps and people involved?
  • What is a day in life of a team member (one per role please)?
  • How do your stakeholders (including customers) perceive your team/organization? Currently how do you gather feedback from them?
  • How would you rate the technical know-how of your team? Are they able to quickly resolve technical challenges and respond to changing priority of the business?
  • Is your team/organization open to trying out things that might seem non-intuitive/illogical? For Ex: Letting the requirements evolve during the project, not freezing them? Letting tests drive your design?
  • And so on …

Luckily a lot of organizations don’t get back to me with answers for these questions. This is really good for me, because this acts as a filtering criteria. I feel I would have wasted my time training/coaching this team. There are others who are in much more need and are more receptive to what I’ve to contribute.

Readiness Assessments for Training Classes

Thursday, April 16th, 2009

I get lots of queries for Agile Training in India. Good number of people approach me saying, “We already know TDD, we want advanced TDD training”. And it turns out that there are gaps in their Object Oriented thinking itself.

While I would really want to help these folks, if the expectations are not set right on both sides, it becomes very difficult to be effective.

To address this issue, since last few months, I’ve been sending people a readiness assessment for all my training courses. For example for the TDD and Refactoring workshop, I send them a programming assignment.

The problem used for the programming assignment is a decent sized problem statement with some user scenarios. Ideally it takes me at least a week to implement this problem. I ask the organization to pick 3-4 people from their target participants and ask them to solve this problem. Since they are clear that its a big problem, I ask them to prioritize the most important features and build those. I request them not to spend more than 4 hours on solving this problem. Once they solve the problem, they email me the code along with all the tests. I review their code and give them a detailed feedback.

Based on the feedback, I propose a training program. Then we mutally agree upon the agenda and objective for the training. This is proving out to be a very effective way to come up with a customized/tailored training ciriculum for each team.

    Licensed under
Creative Commons License