社内LTで話したネタを再編集して。

組織に新しい何かを導入するのは結構大変です。IT業界だとここ数年はアジャイルやクラウドやビッグデータや関数型プログラミングなどが盛り上がってますが、いざ導入しようと思ってもなかなか上手くいかないことが多いと思います。

 

弊社でアジャイルを導入した例

僕の会社(の僕の部署)では現在アジャイル開発を採用しています。結構いい感じでアジャイルしてると思いますが、2011年まではガチガチのウォーターフォールでした。レビューが通らなくて泣く奴がいるレベル。2012年にアジャイル宣言して2年半が立ちましたが、本当にアジャイルっぽくなってきたなと感じたのは2013年の暮れくらいです。アジャイルを導入するのに2年近くかかったわけですね。

ともあれアジャイル導入には成功したわけですが、もちろん2年のうちにはいろいろあって、アジャイルが原因で辞めて行った方も何人かいて、もっと犠牲を払わずに成功できなかったのかと振り返ることもあります。

 

どうすればよかったのか

デレク・シヴァーズの「社会運動はどうやって起こすか」が非常に参考になります。見た事のない方は是非見てみてください。

この中でデレク・シヴァーズが言っている通り、最初のフォロワーが変化を起こす上で非常に重要な役割を担います。

しかし、この “最初のフォロワー” というのは具体的にどういう人なのかを見誤ると痛い目に合います。。

 

最初のフォロワーとはどんな人か

変化のきっかけとなる “最初のバカ” にとっても、バカにはなれないけど変化に貢献したい人にとっても、”最初のフォロワー” がどういう人かを知ることは大事なことです。”最初のフォロワー” の資質がないのに “最初のフォロワー” 扱いをする・されることはお互いにとって不幸だからです。

新しい変化を目の当たりにしたとき、人の反応というのは4つに分類されます。

  1. 積極的反対派
    反対する理由があって積極的に変化を拒絶する人
  2. 消極的反対派
    賛成する理由がないため変化を拒絶する人
  3. 消極的賛成派
    反対する理由がないため変化を許容する人
  4. 積極的賛成派
    賛成する理由があって積極的に変化を許容する人

1, 2 はスタンスの違いはあれど、変化を拒んでいるため最初のフォロワーにはなりえません。

問題は 3 の消極的賛成派です。「それ凄くいいアイデアだね!ぜひ進めてよ!」と言ってくるような人です。ちなみに賛成派のうち大多数は消極的賛成派に属します。この人たちを “最初のフォロワー” として扱ってはいけません。

 

消極的賛成派を “最初のフォロワー” にしてはいけないワケ

消極的賛成派は簡単に言うと「導入コストを他人が払ってくれるのなら賛成」という人たちです。それなのに “最初のフォロワー” として扱ってしまうと、導入コストの支払いが変化を反対する理由になってしまいます。

変化を導入するのはすごく大変です。当初想定もできなかった問題がいくつも起きたりします。そんなところに消極的賛成派を招いても積極的反対派になって帰っていくだけです。

念のためフォローしておくと、消極的賛成派というスタンスは悪い事ではありません。単にそれよりも興味のあることがあったり、仕事が忙しすぎてそんな余裕がなかったり、上司が反対派だとかで積極的になれなかったりします。導入フェーズが上手くいってキャズムを超える段階になったときには消極的賛成派を仲間に迎えていかなければならないため、消極的賛成派を敵に回すような行動は慎むべきです。

特に変化を起こそうとするくらい意識が高まっている人にとって、消極的賛成派というのは「誰かがリスクを取ってくれたあとにメリットだけ享受したい人間のクズ」に見えることがあるので注意が必要です。注意が必要です。大事なことなので2回言いました。

ついでに言うと、”気持ちだけは積極的賛成派” という人もいるので注意しましょう。重要なことは導入コストを一緒に支払ってくれるかどうかです。

 

まとめ

あなたが “最初のバカ” であれば、導入コストを一緒に支払ってくれる積極的賛成派を “最初のフォロワー” に迎えましょう。導入コストを支払えない消極的賛成派は然るべきタイミングまで適切な距離を保ちましょう。ここで間違えると導入自体失敗したり、なんとか導入できても犠牲を増やす結果になります。

あなたが “最初のバカ” ではなく、変化に賛成のスタンスを取るなら、導入コストを支払えるかをよく考えましょう。消極的賛成派は悪い事ではありません。導入コストが支払えないなら “最初のフォロワー” にならないよう振る舞いましょう。

引数をバインドしたい部分を &数字 にして sql ファイルを作って、、

$ cat hoge.sql
select * from hoge where foo = &1 and bar = '&2' and baz = '&3';

sql ファイル実行時に引数を渡すと勝手に展開してくれる。

SQL> @hoge.sql 123 abc xyz
旧   1: select * from hoge where foo = &1 and bar = '&2' and baz = '&3'
新   1: select * from hoge where foo = 123 and bar = 'abc' and baz = 'xyz'

なんで今まで知らなかったんや…

 

今朝同僚に話したら意外とみんな知らなかったので。

 

cp コマンドの -b オプションを使うと上書きするファイルがあったとき自動でバックアップを取ってくれる。

$ touch aaa
$ touch bbb
$ cp -b ./aaa ./bbb
$ ls
aaa  bbb  bbb~

そのままだとバックアップファイルは ~ がつくが、–suffix オプションで指定できる。

$ cp -b --suffix=.`date +%Y%m%d` ./aaa ./bbb
$ ls
aaa  bbb  bbb.20140325  bbb~

bashrc に alias を書いておくと便利。

alias cp='cp -ivb --suffix=.`date +%Y%m%d%H%M%S`'

おわり。