Adapting to the Shift in Paradigms Understanding change in mind-sets
Ravi Warrier
[email protected]
August, 2007
Understanding Change Adapting to any change requires a change in the way one behaves or thinks. The change in question may be adapting to newer platforms, technologies or methodologies. Remember the year you shifted from programming in COBOL to C. After months and years of programming you were used to typing: IDENTIFICATION DIVISION. PROGRAM-ID. HELLOWORLD. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. RM-COBOL. OBJECT-COMPUTER. RM-COBOL. DATA DIVISION. FILE SECTION. PROCEDURE DIVISION. MAIN-LOGIC SECTION. BEGIN. DISPLAY " " LINE 1 POSITION 1 ERASE EOS. DISPLAY "Hello world!" LINE 15 POSITION 10. STOP RUN. MAIN-LOGIC-EXIT. EXIT.
And then one fine day (well, we all know that particular day wasn’t so fine), you were expected to type this: #include <stdio.h> void main() { printf("\nHello World\n"); }
If the first draft of our code had undergone a QA process we would have definitely received a defect log longer than the code itself. But fortunately, our ability to learn and grasp came to the rescue and helped us prove our worth to the organization. But we failed to realize that sub-consciously we not only learnt the newer language, but also simultaneously un-learnt all the habits that made us good COBOL programmers and learnt the habits that would make us good C programmers. We somehow got the habit of typing a ‘;’ instead of a ‘.’ after every statement. We picked up the habit of indenting after a ‘{‘ or ‘}’; and many similar tit-bits. If you can’t relate to switching between COBOL to C, try and picture yourself when you initially learnt driving. From the point where you made mistake unknowingly (like shifting to the wrong gear), to
making conscious improvements, to the time you can drive on a freeway without looking once at your gear stick. Paradigm shifts are always a little difficult to adjust to, especially; if you have to stop doing something that you have been tuned to do for many years. My mother initially had problems with mobile phones. She now faced additional buttons, instead of the traditional 13 (twelve on the keypad and one switch hook on which the handset rested) on a regular telephone instrument. Now there was a different button to pick a phone or dial and another to hang-up. There were also buttons that activated the phonebook, the menu, or the volume of the speaker. The additional functionality confused her even more. And this happens to every one of us as demonstrated by the example of code above.
Understanding the Life Cycle of Change What we need to however understand the mechanism that defines the success or failure of this adaption. Understanding this basic principle will help us adapt to changes faster, especially if the change is as large as shifting from traditional software development to the agile way.
Stage 1
Stage 4
SubConscious Act
SubConscious Habit
Conscious Effort
Conscious Habit
Every change that we encounter has its own life cycle. We start with making conscious effort to implement the changes. In the programming example above, when we migrated from COBOL to C, we sub-consciously type “IDENTIFICATION DIVISION.” at the start of every code file, since it had become a habit over the years. We at once might have realized our mistake and changed that to “#include <stdio.h>”; and there on consciously make an effort to not repeat the same mistake again.
This act of trying not to make the same mistakes and typing the right syntax slowly is imbibed by us and it becomes a part of our Conscious Habit. At this stage we are still consciously type the right syntax. As time goes by and you have over hundred code files under your belt, you would without realizing, type the right syntax and not bother checking it after every line you wrote. This is the last stage of change – The Sub-Conscious Habit. Moving from Waterfall or traditional Iterative Development to the Agile way is no different. But now, since we have a better understanding of how our mind adapts to changes, the following process might seem logical to you. Sub-Conscious Acts • Start typing a detailed business requirements or design • Start coding first and then worry about test cases • Plan to deliver after a long gap • Have lengthy meetings to discuss status • Micro-managing your team • Assign different tasks to specific individuals and make them work in silos • Pay more attention to documenting rather than making the software work Conscious Effort that turns into a Habit • Stop detailing your requirements or design at the start; just have enough to get work started • Write test cases first and write code to satisfy those test cases • Have shorter frequency of deliverables • Have short meetings and discuss only relevant points • Allow the team to organize and manage themselves • Have all the members of the team work together; occasionally rotating them within the team to enable them to learn newer skills • Have working software first
Making the change At the start of the adopting the agile methodologies we inadvertently would revert to our old ways. Programmers would start coding in silos while architects did their work in their own little shells. Project Managers would assign and follow up on tasks; People will skip meetings due to their bitter experiences of lengthy unfruitful meetings in the past or simply because they are not used to having daily stand-up meetings. Whatever the sub-conscious act may be, one needs to start making that conscious effort to do things in a new way. With constant and vigilant practice, the conscious acts will soon become habits. And it is this level that we need to reach.
What else? But just practicing over and again is not enough. There are three qualities that need to be learnt or adopted in order for the change to succeed. One is Patience and the other is Discipline and the last one is Belief.
You will need to understand that every change has its cycle as mentioned above and that this cycle will have its own duration of completion. If you try to cut the duration short or take shortcuts to achieve the target sooner, in all likely-hood you will fail. Conscientious Discipline enables you to pursue this change all the way to the end by following the principles of the change and not wavering from it in times of pressure. And none of this will make sense or work if you do not believe in the change; whether it is a doubt on the benefits of the change, on your capabilities or the approach that you take. If you find yourself in a position where you do not believe, take an expert’s opinion or advice, discuss it with peers or seniors – do whatever is necessary to help you believe in it. Without this resolute belief do not attempt to make the change.