社員全体の論理的思考能力を高めるには?

はじめに断っておくと、答えはここにはありません(ぉ
ある程度社員数を抱える規模の会社になると、そう簡単に使えないからといって首を切ったりすることも出来ず、かといって子会社があるわけではないから出向転籍で追っ払うわけにもいかないし、ちょっと業績が傾いたり、社運を賭けて「障害に」立ち向かっちゃったりすると優秀な人が辞めて行ったりして大変なことになりますよね。
客はその優秀な思考を費用を削るためだけに使ってくるし。中小SIerの悲哀という奴ですね。
問題の答えは、何でもやっていいなら簡単で、ダメな奴の首を切ればよい。でもまあ会社というのは採用するときにそれなりの覚悟を持って活動しています。一度採用した人の首は基本的にこちらから切るためにはよっぽど致命的な問題がないといけない。あまりそんなことを考えてもいかんのかもしれませんが、やっぱり採用したことにはある程度の責任が伴っていて、一転路頭に迷わせるような、そんな首の切り方をしてはいけません。会社が社会に対して果たす義務としてもね。これはうちの会社のスタンスとかポジションの問題もあるのかと思うけど。おかげで間接費が高すぎなんですよ上層部は何とかしてください…
とはいえ、あまりに向いていない人で、その自覚がある人をずっとそのままにしておくのは双方にとっての不幸でもありますから、本人に勧告することもあります。もちろん、首切りってわけじゃなくて、進路相談的なものだけど。
一方で、ルーチンワークができていて、なんとか「必要」の枠に入っているのでそれで一生いいやって感じになっちゃっている人もいます。お客さんとの交渉も、グランドデザインも、ともすればコーディングも出来ないけど、現場のルーチンを回すにはそこそこ有用な、みたいな人。セットだったら売れてしまうから、セットで出来る仕事(つまり、ある程度の規模の仕事)をとっていかなければならない。これ自体は結構負担なんですが、ホスト系の、まだまだ残っているわりと大きめな開発を得意としているとそこそこ何とかなるものなんですよね。
これが長い目で見ると負のスパイラルっぽいことは承知しているんだけど、社員の日銭を稼ぐというのが一つの活動目標である以上はある程度いかんともしがたいものがあります。
JavaでWebアプリケーションの開発をやっていたとき思ったのは、抽象化できる頭以前の問題が多いなということでした。Java経験がありますっていう協力会社や他チームのコードを見ても、どうもおかしい。クラス設計が云々以前に、そのコードじゃその仕様を満たしてないじゃん、という奴。ロジカルじゃないんですよね。極端に言うと、A AND Bという条件をIF Aだったら〜、IF Bだったら〜と平行で書いて、結果として「それORじゃん」「あれ?そうですね」みたいな会話が交わされるような。
この業界の経験者なんてそんなものか、と思うと技術者の中の何パーセントが本当に技術者であるのか不安になりますよね。
まあ、Javaの仕事は一番人が売れるところだけにこういうのも混じってくるんですよね。
さて、論理的思考能力を社員の首を切らないで高めるためにはどうしたらいいのか。これはもう採用する人の思考能力を何とかするしかありませんよね。適性試験はやっているけど、それだけじゃわからない。経験不問である以上、FizzBuzz入社試験も出来ませんし(してもいいとは思うけど…)、研修と現場で頑張って教えるしかないのかな。「頭を使う」ことを常に意識させることがトレーニングにはなると思いますが、業務を回すところとの兼ね合いもあるし、上手くやらないと現場が破綻しちゃったりして。
「面倒だけど、こうやれば出来るじゃないですか」
「その面倒なのを何とかしたくないの?」
「だって、面倒じゃないですか!」
「…」
どの面倒を解決することがこの仕事なのか、ということだけはきちんと叩き込んでおいたほうが良いかも知れませんね。