Announcement

SVNPlot Version 0.8.6 released on 23 May 2015. Download here
Thinking Craftsman Toolkit (TCToolkit) Version 0.6.8 released on 2 May 2015. Download here

Wednesday, April 01, 2015

Fast track programs for managers and developers - Background

Last nine months I am mentoring/working with a team of 17 extremely enthusiastic people in a program we call 'Accelerated Techno Manager' program. It is an amazing experience/journey. Hence I thought I will write about these experiences.

Many companies have 'fast track' programs for their employees. Usually it means company identifies potential 'high performers' and then groom them someway. Nine months back we started a fast track program in Geometric Ltd. I took initiative in defining the program and I am now mentoring 17 potential candidates for last 9 months. I thought, I will write about general structure of program, how the program started, what benefits I see. I hope it will help others in starting/running similar program. If you have similar programs in your company, please share your experiences.

The fast track program is called 'Accelerated Technical Manager' program (ATM program, pun unintended).  Program is inspired by Google APM program or TAS (Tata Administrative Services) program in Tata Group. The content and structure and especially scale is lot different than these programs. 

As the name suggests the program is designed to develop 'technical project manager'. Manager who are experts in project management but also understand software development and technology and can teach a thing or two to engineers/developers working with them. They are multi-talented managers who are good at all aspects of project management, (customer communication, tracking, estimation techniques, negotiations) but are also good at problem solving, leadership, critical thinking and innovation techniques, strategy, strong software development and/or engineering fundamentals, etc etc. 

It is designed to be 'tough program' of 2 years. It is targeted towards 2-3 year experienced employees. The selection criteria is tough. There is an evaluation at every quarter. Every quarter based on performance evaluation some participants can be eliminated. It is expected that about 50-60% will get eliminated at various stages and only 40-50% will pass. The participants who pass will become Managers (i.e. they will get promotion in 2 years that usually takes 8 to 10 years ).

The program includes one year online Management Certification Course by McIntire School of Commerce paid by the company. The program includes a 3 day meet every quarter. There are class room sessions by internal and external faculty. During these 3 days participants get a chance to meet and interact with senior management team (e.g COO, CFO, Head of HR, etc).  Overall program consists of four Phases. Each phase consist of ‘on-job’ mentoring and formal class room trainings

  1. Phase 1 (6 months) - Focused on Problem Solving and Software development skills
  2. Phase 2 (3 months) - Demonstrating Fast learning skills in a new domain or role
  3. Phase 3 (9 months) - Project management skills and Mentoring from Sr. Mgmt team and rotation in various functions.
  4. Phase 4 (6 months) - Deputation as 'assistant project manager' in some project.
We selected 17 participants from different locations and domains from over 150 applications. We have completed the Phase 1 & 2. And I can see serious positive change in the thinking of all participants.

In the next part, I am going to write about preparation for program and selection process, experience of first six months.

Friday, March 13, 2015

Sophia Dagli - Rest In Peace

Sophia Dagli

Will always remember your energy and enthusiasm. I will miss our the rare but long discussions. I will miss a True Friend.


Rest In Peace

Sophia on Facebook
Sophia on Slideshare

Share your memory of Sophia on "In Memory of Sophia" page

Monday, February 02, 2015

Introspection : am I really a good programmer ?

Sometime back Prateek Jain posted a link to an article title 'Signs that you're a good programmer' on Geometric's internal portal. It has list of 'signs' that you are a good programmer. It made me introspect and see how many signs actually apply to me. Turns out that by this checklist, I am a reasonably good programmer. :-)

I realized I have done following from the list.
  1. side projects.
  2. Dabbling in other programming languages, especially ones from a different "family".
  3. A tendency to suggest wacky and unrealistic solutions in meetings.
  4. Willingly throws away weeks or months of work in order to adopt another programmer's superior code.
  5. Refers to it as "the code" rather than "my code", unless accepting blame 
  6. Doesn't take the spec by its word and tries to find out who wrote it and what they were thinking
  7. Owns a book written by a guy called Martin Fowler. (Actually I own multiple books by Martin Fowler)
  8. At least 10% or more of their commits reduce the line-count of the project without adding new functionality
  9.  Shoves through a crowd at a party to get near someone who just used the word "Bayesian"
  10. Envies but doesn't resent people with degrees in something they don't know 
  11. Blogs about their work 
  12. Not hesitant to pick up a marker and approach a whiteboard 
  13. Commits changes to the repository that consist only of comments (but not commented code)
  14. Is oblivious to how many times their cubicle-mate has gone for coffee, the bathroom, or the hospital (I don't even hear any sound if I am concentrating on the code).
  15.  Not bothered by office politics 
  16.  Can predict a bug before the code is ever run  (Done that a few times)
  17.  Assumes their own code is the source of a bug before blaming the compiler, library or operating system
  18. Disinterested by the outcome of elections 
  19. Stock options and bonuses are ineffective 'retain'-ment techniques 
I have done all the signs/symptoms in section "Thinks In Code"
  1. In casual conversation their readiest metaphors come from programming constructs (some time back I gave an example of classes/instantiation while explaining 'business offerings')
  2. Spends the majority of their time "goofing off", but commits more bug-free code each day than their colleagues
  3. Glances over your shoulder and points at a bug in your code with their finger
  4. Correctly diagnoses bugs over the phone while drunk or in bed
  5. Comes up with their best code while taking a shower*
  6. When confronted with an obstinate bug, their instinct is to get up and go for a walk
  7. They suddenly pause and stare into space in the middle of a conversation, then abandon you to hurry back to their terminal with no explanation (AKA "A Columbo Moment" or "Gregory House behavior")
Also few signs/symptoms in "Indifferent to Hierarchy"
  1. Getting into arguments with the CEO (done that, probably multiple times, still in Geometric because I like working with Geometric CEO, Manu Parpia)
  2. Quitting on principle 
  3. Organizing teams without permission (I believe its easier to say 'sorry' than get permission)

Overall not a bad score.