人々は仕事において協力が重要だと言う。しかし実際の仕事ぶりを見ると、最初に仕事を細かく分けて各自で進め、後で集まって合わせることが多い。これを詳しく見ると、協力はほとんどない。協力が重要だと言いながら、実際に協力をしない理由は何だろうか?
これは私たちが協力を正しく学んでいないからだ。
スタンフォード大学の心理学者、ダニエル・シュワルツの歯車実験(Daniel L. Schwartz. (1995). The emergence of abstract representations in dyad problem solving. The journal of the learning sciences.)を通じて、私たちは協力とは何かを知ることができる。
5つの歯車が横に長く連結されている。一番左の歯車を反時計回りに回すと、一番右の歯車はどちらに回るだろうか?
歯車実験の問題は、上記のように最後の歯車がどちらの方向に回るかを見つける問題だ。この実験では、二人で一緒に作業すると問題を解決するのに時間が短縮され、より少ない試行で問題を解決できることがわかった。
歯車実験の結果、一人で作業した場合は14%だけが抽象化規則を見つけ出した。二人で一緒に作業した場合は58%、一人で作業した場合より4倍以上の結果を示した。二人がチームとして作業するが互いにインタラクションせず、二人が出した結果物のうち良い方を選ぶ場合も26%の結果を示した。
二人で一緒に作業すると、互いにコミュニケーションをする中で混乱を減らし、より簡単なコミュニケーションのために歯車に識別番号を付けるなどの抽象的概念を導入する。二人で協力しながら作業すると、互いの視点が異なるため、その視点を繋ぐツールが必要になる。したがって、二人は必然的に抽象化、視覚化作業を行うことになる。この抽象的概念が問題を解決するのに大きな役割を果たす。一人で作業すると、この抽象化、視覚化作業をしなくなり、そのため問題を解くのに困難を経験することになる。
それほど、ある問題を解く際に抽象化は非常に重要な役割を果たす。そしてこの抽象化は、一人でするよりも二人以上が協力するときに発生する。
ソフトウェア開発でも次のように抽象化を非常に重要視していることがわかる。
- 計算機科学のすべての問題は、別のレベルの間接性(indirection)で解決できる。- バトラー・ランプソン
- 計算機科学は抽象化の科学である。- アルフレッド・エイホとジェフリー・ウルマン
- ソフトウェア工学の全歴史は、抽象化レベルを高めることで特徴づけられる。- グラディ・ブーチ
- 複雑な現象に対する理解を発展させていくとき、人間の知性において最も強力なツールは抽象化だ。実世界の特定の対象、状況、過程間の類似性を認識することから、そしてこれらの類似性に集中し、差異を一時的に無視する決定から抽象化が生まれる。- トニー・ホーア
また一般的に、実力のある優れたプログラマーは、普通程度の実力を持つプログラマーに比べて、コミュニケーション、協力能力がより優れている。実力のある優れたプログラマーはコミュニケーションと協力により長い時間をかけ、設計やコーディング、テスティングにかける時間は統計的には差がない。つまり、優れたプログラマーは協力を通じて視覚化、抽象化作業を行い、この作業が問題を解決するのに大きな役割を果たすのだ。
抽象化を高める最も効果的な方法は、異なる視点を持つ二人以上が協力することだ。ソフトウェア開発ではペアプログラミングが抽象化を高める最も速い方法だ。
ペアプログラミングは二人が一つのコンピュータを使って一緒にプログラミングすることを言う。二人は対話を通じて抽象化を高め、コンピュータを通じて抽象化した内容を具体化して検証することになる。
エクストリームプログラマーは作業しながらプログラミングの各段階について一緒に話し合う。注意して考えないと、プログラミングは特定のプログラミング言語で命令文をタイピングして入力することに過ぎないと考えることができる。- ワード・カニンガム
自分のコードの抽象性を高めたいなら、一人で悩まずにペアプログラミングなどを使用して他の人々と協業し、対話をしてみよう。絵も描いてみて、一緒にソースコードも編集してみながら、自分の抽象化能力を向上させてみよう。このような抽象化能力が問題を解決する能力につながることになるだろう。
協力は皆が集まって仕事を分け、各自仕事をして後で合わせることではない。協力は問題を解くために異なる視点を持つ人々が一緒に対話をしながら、抽象化をし、これを通じて優れたソリューションを導き出すことだ。
このように抽象化を使用して問題を解決することがまさに協力だ。抽象化を高めようとする努力が協力だ。他の人と仕事をしながら抽象化作業をしていないなら、正しい協力をしているのではない。
私たちがする大部分の業務はある問題を解決することだ。そして問題を解決する最も良い方法は抽象化を高めることだ。もう一度自分がしている業務を振り返り、協力をしているか(抽象化を使用しているか)確認してみよう。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Dekuが開発したアプリを使ってみてください。Dekuが開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。






