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 ‘Coaching’ Category

Getting Ready to Produce

Saturday, July 10th, 2010

How do you know you are ready to start iterating? In some cases, very little is needed before the first iteration. In other cases, rushing to iterate (because you were told to) can lead to weeks of time wasted overly focused on delivering a poorly understood product.

In this presentation by David Hussman titled Getting Ready to Produce at Agile Mumbai 2010 Conference, David provides concrete tools for discovering your product context and assessing whether you are ready to start building and / or iterating. Participants learned tools for defining how much process you need and tools for truly understanding what you are building and why, as well as who will use it, why they will (or will not) use it and why.

Adding Sanity to Your Agility

Saturday, July 10th, 2010

10 years after the introduction of agile methods, many communities are succeeding in their adoption while others are struggling or failing. Why? Many struggle because agile methods were introduced in an overly prescriptive manner. People were told to follow a set of practices instead of learning to use the agile practices and values to amplify their existing strengths and address their challenges.

In this talk, David Hussman shares successful coaching techniques he uses to grow sustainable agility that lasts beyond the early iterations or the first few agile projects. David begins with a series of tools to help you build a solid foundation: assessments, pragmatic practice selection, chartering and product planning tools. He then moves on to discuss ideas for finding a groove of discover and delivery that is best suited to your project community.

As a full time working coach, David uses coaching stories and experiences to discuss establishing strong cadence while also building the essence of coaching and coaches in your community Whether you are new to agile methods or you are a seasoned players, this session will help you grow your coaching skills and your ability to truly discover and deliver real value.

Babysteps to Agility

Saturday, July 3rd, 2010

At the Agile Bengaluru 2010 conference, Jann Thomas discusses and identifies ways in which agile enablers can facilitate the transition to Agile practices. She covered basic Agile practices as well as techniques for introducing them to the software delivery team. She also presents common software delivery problems and the Agile path to solutions.

Using ToC and JIT Practice to Coach Agile Teams

Saturday, July 3rd, 2010

J B Rainsberger & Naresh Jain share their experience on coaching agile teams. They present:

  1. How to apply Theory of Constraint [ToC] to identify the bottlenecks or issues the teams are facing during their agile adoption?
  2. Once we identify the bottleneck, how we delivered knowledge and experience to the teams, just in time to apply that knowledge to eliminate the bottleneck, using the Just-In-Time practice concept?

This 90 mins workshop was presented at the Agile Mumbai 2010 and Agile Bengaluru 2010 conference.

Mastering TDD with Deliberate Practice

Friday, June 11th, 2010

When I start and finish my 3 Day TDD Workshop, I make it clear to the participants that they will have to deliberately practice, on small pet projects or toy code, in a safe-environment ( in-the-nets, if you will), every single day, for a few months (if not years), to get really good at TDD. Deliberately practice on their design, testing, breaking-user-needs-down, pairing, and many other skills using TDD before they can use TDD for prime time.

However, post the workshop, the participants are very excited and they ignore my humble advice. Next day they go back to work and start applying TDD on their production code. While this might look like a good thing (also making managers super happy too.) Over the years, I’ve realized that this pattern is actually destructive. Without the required amount of practice, the excitement soon dies out. And developers start falling back to old habits. Many times leaving a total mess behind.

I was surprised to see very few companies or teams continue and build on these practices, while 80% of them would only use parts of it and fall back. Every time I went back to a company and saw this, I would be very depressed. So I studied what the 20% did, which the 80% did not.

  • Were the 20% way smatter or talented than the 80%?
  • Did the 20% have better management support, less delivery pressure compared to the 80%?
  • Or the 20% worked on simpler projects with no legacy code and so on?

What I found was the 20% quickly realized that they did not have enough skill to apply TDD on their projects. So they:

1. Watched Screen-casts: Watched experts do TDD on real projects. Good starting point: Let’s play TDD by James Shores or this stackoverflow answers

2. Open Source Projects: Studied and gradually started contributing small patches to open source projects, which used TDD. JUnitCucumberJBehaveFitFitNesse, etc. are all great examples.

3. Small Pet Projects: Started TDDing small pet projects. Gradually practiced in a safer environment and once they acquired enough skill and confidence, then they start applying TDD on their production projects.

In addition to practicing on their pet projects, on their own, they also took 2 hrs every week (on a fixed day of the week), as a whole team, to practice Test-Driving (TDDing) the same problem. During these social-learning sessions, they practiced Pair programming too.

Logistics: Before the meeting, one of the team member sent out the problem to everyone. On practice day, the whole team gathered in a conference room/team area, picked their pairs, set aside 90 mins to TDD the problem. After 90 mins, few pairs did a quick code walk-thru and explain their solution with important decisions they made during the session. Followed by an open discussion. [I also recommend everyone checks-in their code in some common repository, so it can be used for reference by others.]

Sample Problems: Next big question is, what problems do we use for Test Driving?

Usually I recommend starting with simple programs like:

  • Games – Tic-Tac-Toe, Snakes and Ladders, or any other board game.
  • Utility Programs – Convert Roman Numerals to Decimals, Diff 2 files, IP to Country Mapping, etc

Once they practiced enough with simple programs, then they would take some large design problems from DesignFest and try to TDD them. The beauty of these problems is, they are quite big, can take up-to a week to finish it completely. Now we are talking something semi-real world, where

  • We have limited time to solve/program a complex problem, which needs to be simplified.
  • Try to find a relevant System Metaphor that can help you visualize the design
  • Do a quick and dirty, low-fi Interaction Design to understand how the user will use this
  • Identify and prioritize the crux/essence of the problem, figure out what is the most important, what will give us fastest feedback
  • Further thin-slice the identified piece of functionality and
  • Then try TDDing it.

This truly helped them get better at:

4. Code Smells Poster: Created a big poster with all the code smells listed on it. Paste the poster in their team area. Every time anyone from the team found a code smell in their project, that person gets up and adds a dot next to the code smell. This makes everyone more sensitive to these smells and increases awareness by making things visible. (Simple game mechanics.)

5. Refactoring Fest: Picked one of the pungent code smell from their code, and organized a RefactoringFest. Meet as a group (once a month.) Developers pair with each other and everyone tries to refactor the same code on their project to eliminate the specific code smell. [Make it clear that the code will not be checked-in after refactoring. Its a learning exercise and we need a safe environment where people don’t fear touching code. Also if you need some real world code snippets to try refactoring, check out my refactoring teasers.]

6. Blog/Diary: Started writing a blog/diary to capture their learnings and list of issue that got in their way of applying TDD on their project. Writing things down really helped them internalize their learning. [Many times when I’m stuck with a problem, I start writing things down, and the answer becomes obvious to me.]

7. Form a Book Club: As a group, they picked any TDD related book of their choice. Then they decided on a chapter and met over lunch once every week. Everyone came to the meeting after having read that chapter. They used the meeting time to highlight the key-takeaways, debate on the subject and if possible demonstrate it via code.

8. Hands-on Geek-Conference: They participated in a geek conference like Code Retreat, CITCon or Simple Design and Test Conference where they got to meet other practitioners and experts. Got an opportunity to pair with them and learn from their experience plus share your own experience. [Stop wasting your time on stupid marketing conferences.]

9. Teach: They taught a course on Unit Testing or Design Principles at an induction program for new employees or at a local user group. [Teaching is the best way of learning.]

Deliberately practicing this way for a few years to really appreciate the depth and benefit of TDD.

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.

Agile Coach Camp India: Request for Invitation

Monday, March 15th, 2010

Agile Coach Camp 2010

Dates: April 17th and 18th 2010
Venue: The International Centre,
Goa University Road,
Dona Paula Post office, Goa- 403 004

Format: Open Space

Who Should Attend? Today, in India, I believe we have many Agile coaches (internal and external, more internal coaches). If you are helping to bring Agile/Lean/Light-Weight thinking into your company, you are playing the Agile coach role (you like it or not). You could be in the leadership role doing this or you could have taken the ownership and facilitating/influencing your team. While doing so, we all need a lot of help, advice and reassurance of our strategies. This is what you can expect at this conference.

Agenda: Each day we start at 9:00 AM and end at 5:30 PM.

Each Day:

  • Lightning Talks (1 hr)
  • Opening the Space (30 mins)
  • Creating the agenda (30 mins)
  • Break-out sessions (5 hrs)
  • Closing the Space / Retrospective (30 mins)
  • Social Outing (optional)

Budget:

  • We plan to hire the main hall for 2 days. Each day cost is roughly about 10,000 Rs. For 2 days it would be about 20,000 Rs.
  • Lunch + Tea/Cofee Breaks would cost 200 Rs per person.
  • Venue has good A/C accommodation. Its Rs 1500 per day for single room and Rs 1800 for double room.

(Please note that this is a special discount rate for Goa University.)

I’m expecting about 25 people to show up.

So basically each individual will be spending about:

  • 3000 Rs for the room
  • 400 Rs for food
  • max 1000 Rs for the hall
  • Evening outing: up to the individual

(if we find a sponsor, then the cost of the hall and food will be absorbed by the sponsor.)

Prep Work: Answers to the following questions will facilitate the following:

  • help us come more prepared for the Coach Camp
  • get a sense of the quality of the participants
  • start some knowledge sharing amongst the group
  • set certain context and potential topics for further discussion at the Coach Camp

We’ll confirm your participation on successful completion & submission of this form. The sooner you submit the form, the sooner we can confirm your participation.

*Dead line to submit the form: 22nd March 2010.

Planning Agile Coach Camp India

Monday, March 1st, 2010

At the Agile India 2010 conference, there was a lot of interest for agile coaching in India.

Today, in India, I believe we have many Agile coaches (internal and external, more internal coaches). If you are helping bring Agile/Lean/Light-Weight thinking into your company, you are playing the Agile coach role (you like it or not). You could be in the leadership role doing this or you could have taken the ownership and facilitating/influencing your team. While doing so, we all need a lot of help, advice and reassurance of our strategies. To facilitate this, help people network and to push the boundaries of Agile, in 2008, Deb and I created the first Agile Coach Camp in US.

In the past I’ve considered doing something similar in India, but always felt we’ve not reached the point yet. Now (esp. after the agile india 2010 conference), I feel we might be at this point.

So if you are interested in participating in a 2 day invitation only, all open-space based conference, over a weekend in March/April, inform me by filling out the following form:

Also please vote for which city you would like to have the conference in:

online surveys

And what dates work best for you?

customer survey

Mastery

Sunday, November 8th, 2009

What word/phrase comes to your mind when you think of Mastery?

Definitions of Mastery on the Web:

  • Command: great skillfulness and knowledge of some subject or activity
  • Domination: power to dominate or defeat
  • The act of mastering or subordinating someone
  • The position or authority of a master; dominion; command; supremacy; superiority; victory; triumph; preeminence
  • Highest development in any band of the Great Continuum of Consciousness, where an initiate is Divinely empowered to minister to you and guide you
  • The acquisition or the process of acquiring proficiency in an aspect
  • Possession of consummate (complete) skill
  • The status of Master or Ruler; Dominion; Control
  • Full command of some subject or study

When I think of Mastery following words come to my mind:

  • Effortlessness (easy with which a master can do/accomplish something)
  • Joy & Pride (enjoyable experience worth sharing with others)

In my experience, when I’ve watched a master at work, they take pride in their work, make it enjoyable and make it look like its was smooth and effortless, even if you and I would think of it as complex or mundane (boring). A master exhibits no sense of frustration in their job. If something does frustrate them, instead of blaming the task, they are more keen on finding ways to make it enjoyable.

These are the qualities I watch for, when someone claims mastery on a topic. Anything else you would like to add/remove?

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
    Licensed under
Creative Commons License