Logo

Change Management - Being at the epicenter

almost 2 years ago | Bhargav Gandhi: AGILE SOFTWARE DEVELOPMENT

Currently, I can say that my team is going through a very important organizational change. I do not wish to write specifics of the change here. But I want to share my first hand experience, observations and conclusions on the Change Management process.

According to me
communication and people management, before/during/after the change, are two of the most important CSF(critical success factors).

Communication
A clear communication across the organization about the change is extremely important.
Communication should clearly convey -

1) Change - Primary change and other supporting changes.
2) Benefits to the organization
3) Impact on the teams/individuals - Positive or negative. It can be communicated in separate targeted communications.

People Management
During the change management process, people are -

1) Super curious
2) Over anxious

Ever since the change has been declared, I have been receiving many calls/e-mails with queries, speculation, rumors and so on. Good communication would help in setting the expectations but in-person workshops/floor meeting would be very very effective.


In addition, execution approach for change management is one thing that requires the most of the thinking and planning. There can be two below mentioned approaches for Change Management.

(1) Think of all the possible problems that can arise and incorporate them while designing the change(roles, responsibilities, etc.). For example, prepare a comprehensive RACI(Responsible, Accountable, Consulted, Informed) matrix well in advance.

(2) Start with the bare minimum structure in place and then build on top of it. More of an "agile" way of working.


After this first hand experience, I hope to handle changes better going forward.

Internal knowledge discovery through Analyst Relations

almost 2 years ago | Bhargav Gandhi: AGILE SOFTWARE DEVELOPMENT

I have been involved in Analyst Relations activities at my company for two years now. Establishing and managing relationships with various analysts firms(Investor/Research/Third party) is very important specially in the IT industry.

Analyst firms usually come up with their surveys/questionnaires/waves on an annual basis. These waves are either specific to solution area (ERP, CRM, BI, etc.) or geography (APAC, North America, Europe, etc.). They reach out to major players in the industry and invite them in this annual exercise. Participating companies need to provide their capabilities and credentials relevant to the specific wave/area. Survey generally contains questions which are both, qualitative and quantitative. Answers to these questions help Analysts firms to evaluate the participants.

Apart from being a very important branding exercise for the participants, it gives an excellent opportunity to dig deeper in their own companies and have the visibility of the kind of work is being done at the ground level. The slices/dices of data points that needs to provided during this exercise is such that it requires connecting with all on going projects(across the board) individually. According to me, such interactions with the projects, is extremely enriching due to following two reasons.

1) Such interactions are rare in a year.
2) Information is as accurate as possible.

I am sure people from large organizations would appreciate this :). It's not that companies do not engage in periodic reporting of activities from bottom to top. But in a company with 150k+ employees, complete information often do not reach the corporate teams.

I think for companies, this internal knowledge discovery helps immensely for pursuing new opportunities.

Location of an IP address

almost 2 years ago | Riju Kansal: Riju's Thoughts Captured...

http://www.ip2location.com/free.asp
You can use this site to find out the location of any public IP address.

"Game" it up

almost 2 years ago | Rohan Daxini: void TechFuels()

In the hunt to break the "monotonous" routine of sprinting and activities for my team, I thought to experiment with a "Gaming" contest at Kiprosh. I picked up couple of strategy games from http://freeonlinegames.com.

We had 1 hr gameful of fun and laughter with interesting "quick" meetings to invent and come up with new strategies for improving scores (as I gave certain scoring target to be a winner). At the end it become very addictive to leave but team quickly became more charged up and rejuvenated.

It also helped us as team to keep on changing couple of strategies and not to repeat mistakes to achieve higher scores & goals.

Tip of the day: Keep the database timestamp and Time.now in sync

almost 2 years ago | Gourav Tiwari: easy_software = Agile.find(ruby_on_rails)

I stumbled across a situation when I have to schedule a job and I have to store today's weekday. I am also storing the schedule's created_at/ updated_at time in datetime format.

To store today's weekday, I said:
weekday = Time.now.wday
>> 4   #Thursday

When I stored the record
Schedule.first.created_at.wday
>> 3  #Wednesday

Why?

I dug in more and here are the facts.
We so say in environment.rb file:
config.time_zone = 'UTC'
But this applies to only the created_at/updated_at attributes and sets up the default timezone for the database and never applies to Time.now


So to keep Time.now in sync we have to set ENV['TZ'] in environment.rb file.


Again in console:
weekday = Time.now.wday
>> 3   #Wednesday


Schedule.first.created_at.wday
>> 3  #Wednesday

:)

Be A Witness - Always

almost 2 years ago | Riju Kansal: Riju's Thoughts Captured...

Let not your 'I' get identified with your body and mind. This de-identification is meditation.


The Buddha was once meditating. His mind started creating problems and distracted him from the path of enlightenment. It was as though hundreds of horses were galloping through his mind. But the monk remained a witness and did not identify with fear. His mind turned into thousands of elephants tempting him to identify with them, but again Buddha was just a witness... he saw through the mind's game. His mind became a loving deer but still Buddha remained a witness. He did not get tempted.

Finally, his mind turned into a loving child drowning in the ocean, seeking his attention. Buddha, out of compassion, merged with his thoughts and stretched out his hands to save the drowning child. At once, the child turned into a monster and started pulling Buddha to the ocean. Buddha realised his folly and left the monster and continued being a witness. The monster turned again into a child and started pleading for help.

Buddha continued his meditation of being not participating but being a witness. The child drowned in the ocean and emerged as an enlightened mind, reflecting Buddha's mind.

Learn to be a witness to your thoughts and feelings. In the witnessing consciousness, there is no identification with anything. Identification leads to misery. Worry is a form of identification. Literally, worry means twisting and tearing. Have you observed that when you worry, your moving centre gets twisted? Negative state of worry depression or fear... shows up strongly in the form of twisting one's body-moving centre.

I read the above extract around 6 months back. And I did not totally understand it then. But somehow it made an impact on my mind, because I tried to understand it but I couldn't make much sense of it.

I recalled it again and thanks to Google, it acts like a copy of your mind. You think it, you get it.

What I get it from this now, in my present state of my mind is, learn to dis-associate actions with results. The actions may include anything like, speaking to someone, suggesting to someone, participating in discussion, helping someone, asking for help,... You may get expected results or unexpected reactions. Do not get attached to the results or reactions. Disconnect the actions from results.

Sounds pretty far off. It is easy to write / read / discuss / preach, but difficult to practice. But practice make a man...

My take is God has made human beings as super living beings. The ultimate super powers. S/he can achieve anything desired. Just desire.

Extract from:
http://timesofindia.indiatimes.com/life/spirituality/speaking-tree/Worry-Is-A-Voluntary-Form-Of-Suffering/articleshow/5098909.cms

Being KIS'ed

almost 2 years ago | Rohan Daxini: void TechFuels()

I started my journey this March'2010 towards building Kiprosh with foundation, goals and strong inclination towards

  • Innovation
  • KIS (keep it simple)
  • Write Less Do More
  • "wow" factor (my favorite and very close to my heart) in whatever we develop or deliver
Though its very early to comment but "KIS (keep it simple) yet effective" way of doing things in whatever we do is helping us achieve other important goals too.

I will appreciate thoughts / comments about your experience and experiments on the subject.

N2 vs. Umbraco - CMS made easy

almost 2 years ago | Rohan Daxini: void TechFuels()

Few days back I was evaluating open source ASP.NET based Content Management System (CMS). I shortlisted 2 of them for my purpose i.e N2 and Umbraco. Competition was not even close as N2 was a clear winner. Though both are categorically advised to be consumed based on web content management requirements i.e. Umbraco is preferable for heavy (or large) and N2 for light (or medium to small) contents.

Umbraco is well positioned in developer community as N2 is pretty new. Umbraco's user base is huge comparatively but still N2 delivers due to its sheer simplicity. I like KIS (Keep It Simple) philosophy while development and N2 enables me to deliver keeping KIS into consideration.

Thanks to Shivani for helping me finalize one of the CMS for our purpose.

Indian Innovation

almost 2 years ago | Yashashree Barve: Life is Beautiful !!

Attended the technical architects's conference in my organization last week on 30th March.

Want to talk here about the inaugural talk about India's next global export - Jugaad. It was by Prof. Prasad Kaipi, who is heading executive director of Center of Leadership, innovation and Change at ISB, hyderabad.

He talked about 'Jugaad - an Indian model of Innovation', where necessity and resource / time crunch has given rise to innovative solutions to existing problems. It was nice to hear the examples that he cited about solutions of using tractor as a vehicle, and washing machines as lassi-makers, and firing pins for russian tanks and so on. There have been criticism like Jugaad being only a stop-gap or work-around solution, so how do we take this globally around the world.

He talked a lot about making the Jugaad solutions in India meet the global standards.

He focused on 6 attributes to pay attention to making the Jugaad solutions acceptable world-wide:

  • Scalable
  • High Quality
  • Sustainable
  • Inclusive - Open innovation -Wisdom of crowd rather than self-declared experts developing solutions. Use diversity of perspectives, Not letting the IQ affect the EQ.
  • Strategic
  • Affordable
His idea proposed was if we pay attention to these points for whatever Jugaad solution we employ at our homes / work places, it would definitely be meeting global standards of innovative solutions.


His talk also contained some agile principles of being effective rather than efficient, and others like failing small and learning and so on.

It was really heartening to hear these principles that we believe in from an expert. Also discussions around the Indian Innovation were thought provoking. Definitely plan to think about it further, and spread the word.

For more information on Jugaad, have a look at this article in Business Week.
http://www.businessweek.com/innovate/content/dec2009/id2009121_864965.htm

Change column type from text to string in oracle

almost 2 years ago | Gourav Tiwari: easy_software = Agile.find(ruby_on_rails)

I think I have never encountered this issue until today. On my current Ruby on Rails project I am using Oracle as the database. I have a user model, which has an attribute email and the requirement was that a user can have more than one email id (separated by comma). I initially thought that I should use :text type, as I literally forgot that I am writing a migration against oracle database. Later, when the actual requirement come into the picture, I had to revise as user can have just one email-id and I started thinking about changing the type from :text to string.

There were two reasons to change the column type:
1. As per the requirement, user cannot have so many email-ids
2. Changing the column type from clob to string in oracle would give good performance boost


I decided to change the column type by simply using :
change_column :users, :email, :string, :limit => 4000

D:\rubyapp>rake db:migrate
(in D:/rubyapp)
==  ChangeEmailColumnTypeToStringInUsers: migrating ===========================
-- change_column(:users, :email, :string, {:limit=>4000})
rake aborted!
An error has occurred, all later migrations canceled:

OCIError: ORA-22859: invalid modification of columns: ALTER TABLE users MODIFY email VARCHAR2(4000)

(See full trace by running task with --trace)

Failed! But why?

I came across: http://snippets.dzone.com/posts/show/3022

I followed the same pattern:
1. Add a  temporary column with type as string (varchar2 in local)
2. Update all the records and copy text from email column to temporary column
3. Remove email column
4. Rename temporary column to email

I decided to not to run oracle commands in migration.

Here is how my migration now looks like:

class ChangeEmailColumnTypeToStringInUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :email_temp, :string, :limit => 200
    User.all.each do |user|
      user.update_attribute("email_temp", user.email)
    end
    remove_column :users, :email
    rename_column :users, :email_temp, :email
  end

  def self.down
    add_column :users, :email_temp, :text
    User.all.each do |user|
      user.update_attribute("email_temp", user.email)
    end
    remove_column :users, :email
    rename_column :users, :email_temp, :email
  end
end

Very simple!