Sunday, May 19, 2013

Discipline in IT World


Discipline in IT World
What is discipline? Sounds like a real bad word isn’t it? It is has a strong negative connotation and only a teacher or military person uses this word often enough. So one must think how I dare use that word in IT context. The best employer is rated based on how well they treat their employees. Folks working in IT are a pampered lot, work times are very flexible, more benefits compared to any other industry, don’t like to be micro-managed, it goes on and on. It is so perceived that all IT folks are very intellectual so has to be treated special. I am a beneficiary of all of this so why am I complaining.


Picture above is downloaded from internet…
So before I present my explanation, let’s talk about what our industry is extremely passionate about –Standards, Processes, companies get certified on the processes they have (CMM Levels), and have periodic seminars / sessions about process improvements, etc.
But any process is only as good as the followers or executors of that process are. At grass-root level the main executors of the process don’t have discipline and keep violating the rules of the process, Process falls apart. Doesn’t it? If a QA person (just one person in the group) does not have discipline to mark appropriate statuses to defects then how effective would be the decisions made based on those reports generated of those defects? If developers don’t follow the rule of providing a clear status on tasks then how can a front-line manager provide any accurate estimates for various projects and do a resource planning for coming quarters. If a manager does not have a discipline to provide clear directions to the team and keep pulling resources in different directions then how can developers provide clear updates on multiple tasks they might be working on? 
Everybody is dependent on everybody; it is an extremely inter-twined environment. The only solution to this is to have a process that everybody accepts and is committed to and has discipline to stick to those commitments. If a particular process doesn’t make sense and if it appears to cause more work for some folks, then don’t accept it, challenge it back, take it back to the table and have the process modified to get everybody’s buy-in. Typically a process looks good on paper, drawing board and in power point presentations but when it comes to execution, we can come up with all the excuses in the world to violate one or more small rules of the game that we have committed to in the beginning.  
Let me give some specific examples:
  • Test Driven Development – a new ground breaking methodology that will produce a quality code only if developers follow the rule – “developing test cases before start coding the actual components”.
  • Agile Methodology – not all of us understand this fully yet. And we all have our own interpretations of what this means and we have customized to our way of doing things. We violate one rule (just for now.. because of other overwhelming things… skipping a retrospective or planning session) we break the process. We are complacent enough that we were able to deliver our deliverables on time. But what if the time estimation itself is wrong because wrong estimates and improper planning. What-if if we follow rules by the book (of course book has to be clear and available to everybody) we might not have to over-exert ourselves on small issues, might be able to take up more stories or have more fun at ping-pong table than attending meetings providing explanations.
  • OSGi – a new modular building, packaging and deploying methodology. Failed because we couldn’t manage or govern the proliferation of number of versions of various bundles getting developed and deployed in an environment.

I think discipline is the essence of the life and it is no less significant in IT world either.  I think I understand what that bald guy from above picture is trying to say. Processes are designed based on the assumption that everybody involved in it will stick to their commitments. Most of the times we do, slowly we start making amendments (start violating rules) and change the overall process itself. And this new process might not be a well thought out or agreed upon process and a particular group might be getting victimized all the time. So because of lack of discipline and proper governance of rules this new process might have become a counter-productive process. I probably am both a victim and a culprit in different contexts. (phew.. how many times have I used the word “process”. Either I must really hate it or love it like I love my life.... no that doesn’t sound right either)
And of course you can get to this kind of conclusion just by doing meditation and yoga.
Madhav Deverkonda –
What I Do - Technical Manager - (an oxymoron designation – I think.. what am I? a technologist or a manager. A question many have asked and I was never able to give a proper answer.. there you go.. lack of discipline again.)
Where I work – shhhh….. Don’t want to embarrass my employer for hiring me.

Learning Curve vs Bell Curve


Learning Curve vs Bell Curve

A crash course for adults whose reading power (or attention-span) is fading as fast as Ganguly’s batting charm.

Ok. Please don’t attack me for Ganguly remark. I like him – an average fielder, an above average bowler, a decent batsman, and a very good assertive leader / captain (though not as talented as he might have been portrayed). But his iron-will to prove himself in IPL is very inspiring.

Of course that is not the main topic. That was just a bad analogy. But I really hope that the ideas I am about to give in this article will not only help average Joe’s like us but might also help big shots like Ganguly.
Please raise your hand (just in your mind) if you have any of the below symptoms:

  •  You cannot read something more than two lines in one stretch.
  • You start reading something and keep moving into unrelated topics. (Especially online readers)
  • You never complete a book.
  •  You don’t read the emails completely.
  •  You can only learn about something in a more formal way – a spoon feeding way of learning. 

If you haven’t raised your hand for any of the above symptoms you shouldn’t be reading this article. This will be absolute waste of time for you.
Many of us know the joke of ‘Age Bell Curve’ or “Evolution Bell Curve”. My theory (not new of course…. just my enlightenment) runs along the similar lines - that ‘attention-span’ (attention-span is way too big word so we will keep referring to it as just ‘span’) is very similar to age. You have little span in the beginning, starts growing as we age and before we realize the span starts shrinking again. The size of this bell curve varies from person to person. On an average our span starts shrinking once we start taking more responsibilities like marriage, kids, more work at work, marriage, etc. But this is the time we need our max span to sustain in this ‘survival of the struggle’ world. Now you see how our simple decrease of span problem can be very detrimental to our prosperity in life.

So what is the solution to this, I agree to most of you if you are thinking what I am thinking…that this span problem seems very biological and how much can we really do. There are books and tricks on how to stay sharp and keep high span for long time. But you have to lose span to realize that you are losing it and start looking for tricks to improve it and it might be a little late to read those books (which need span) and apply to yourself. This is where my crash course may help us a little bit.
There is so much we can learn from kids. One day I asked my eldest son (5 yrs old - probably same span as I have) to do a small assignment of identifying some known words from a Newspaper to keep away from other destructive tasks. Obviously he absolutely was not interested. So after passing some time with that Newspaper, he comes to me asking “who is that bad guy” in some cartoon in one of the pages. I did not understand in the beginning what he was trying to ask me then I realized he is imagining a story of his own and making up roles for the people on those pictures and simply seeking my suggestion. Even if I dismiss his question and ask him to go back original assignment, he would still continue with his imagination and shall have fun in his own way. Long story short, he is keeping his reading job interesting enough to sit there for those 10-15 mins of painful time by imagining some stories.

I got sudden enlightenment from this. Why can’t I do something similar? Relate everything and anything to something that you like the most. Relate reading Java to learning a new video game (NFL-Madden – Pats vs Steelers or EA Sports Cricket Ind vs Pak game - relate to Java vs VC++), suddenly reading becomes more interesting – You need to learn about all the tricks and read all cheat sheets to beat the Steelers or Pak. See my point? This is my idea#1.

Extending on that idea, the second one is as follows: Most of us are in different moods at different times of the day and week. We all have lot of distractions so our interests keep fluctuating all the time. So how is it possible to read the same book continuously across 3 days or more? I think there is nothing wrong in changing books as per our moods. I have dedicated certain books to certain tasks. I have some books to put me to sleep, some to cheer me up, and some to just showoff. This idea worked out for me alright. I think overall I was able to keep my reading habit without ditching it totally.

Applying those two ideas will keep the reading chore interesting enough so we can randomly pickup any topic book, article or magazine, read through it easily and thereby achieve “know it all” showoff.

Bell Curve is going to win over the Learning Curve any day, all we can do is keep stretching the Bell Curve so we can keep the Learning curve as small as possible.