データサイエンティストのスキル併存について

8月の頭に行なったデータサイエンティスト育成講座の中で、データサイエンティストにとって重要なスキルは3つあり、その3つを併存させることの重要性について説明しました。その3つのスキルとは以下の通りでした。

  1. プログラミング
  2. 数学/統計学
  3. コミュニケーション

この話をするとよく聞かれる質問が、「なぜ併存が必要なのか」ということです。人間とは社会的な生き物であり、一人の人間が全てのことをうまくこなすことはできないし、だからこそチームを組んで、一人では到底なし得ない素晴らしいことを成し遂げることができます。したがって、こうした疑問を特に経営に携わる方が持つことは当然だと思います。プログラマーと統計学者とプロジェクトマネージャーがいて、彼らがチームを組めば良いじゃないかと聞かれるわけです。

前回の投稿でも説明した一つの要員として、そうした役割分担をした場合に生じる組織的亀裂の話をしました。つまり、プログラマーがデータ労働者になると、あまりにも組織内でのビジビリティが低い割にかなり大変な労働を強いることになるので、割に合わないためにやめてしまったりすることが多いということです。

そうしたマイナス面の話に加えて、もう少しプラス面の話をすると、一人の人間が上記のスキルを併存させることの相乗効果は足し算ではなく、掛け算になるイメージです。つまり3+3+3=9ではなく、3X3X3=27くらいのアウトプットができる人材になるというケースが多いです。例えば、私はアップルでも次のようなシチュエーションを目の当たりにしていました。

Jはコミュニケーション能力が高く、上司や経営陣からもよく好かれるプロジェクトマネージャーです。彼がある時ミーティングでVPからとある機能のエラー率が高いような気がするが、一体どれくらいのエラーがあるのか、また原因は何なのかを知りたいという要望を受けました。Jは優秀なプロジェクトマネージャーなので、すぐに対策チームを立ち上げ、どんなデータが存在するかをエンジニアにヒアリングしデータ抽出を依頼し、どうすれば異常検知をできるか統計の専門家を引き連れ、またフロントエンドの開発者にダッシュボードの作成を依頼し約1ヶ月後にエグゼクティブに対してエラーの発生頻度と原因を発表しました。発表は大成功で、Jの株も上がりました。

ところが、喜びもつかの間、同じVPが今度は処理速度についても、同じようなことが知りたいと言い始めました。Jはまた手柄を立てるチャンスだと、同じエンジニアと統計学者とフロントエンド開発者に声をかけたところ、皆Jの依頼を無視しました。彼らは先月、Jに引っ張り回されたおかげで、自分たちの本来の業務が全く進まず、夜を徹して作業しなければ行けなかったので疲れ切っていました。Jがほとほと困り果てていたところに、H(私ではありません)というデータサイエンティストがやってきて、「そういうことなら手伝うよ」というと、その場でターミナルを立ち上げるといくつかのコマンドを走らせ、図表を何枚か作成し、問題となっているボトルネックのコードを特定して、誰に頼めば直してくれそうかまでをJに教えると、何事もなかったかのように立ち去って行きました。

このように熟練したデータサイエンティストがいると、Jが3人の優秀な従業員を1ヶ月間燃え尽きる直前まで働いてもらって得られたのと同じくらいの情報が、優秀なデータサイエンティストはその場で一瞬にして解決してしまったケースが実際にありました。このことからも、スキルの併存がどれだけプラスに働くかを物語っていると思います。