私がエンジニア(プログラマー)として仕事をする人に、身につけておいて欲しい・身につけておいた方が良い、と思うスキルに「論理的思考(ロジカルシンキング)」があります。

ロジカルシンキングは、物事を体型的に矛盾がないように筋道を立てて考える方法のことです。自分の主張・結論を相手にわかりやすく伝えるための構成を作るテクニックでもあります。

プログラマーの仕事は、プログラミング言語を使ってコンピューターに命令を伝える仕事です。コンピューターは人間のコンテキストを知りません。こちらの都合の良い推測をしてくれず、細部まで具体的に説明してあげる必要があり、矛盾した説明は許されません。そのため、プログラマーには、コンピューターに対して論理的に物事を伝える能力が求められる部分があります。しかし、それよりも重要なことがあります。

「ハッカーと画家」というエッセイに、以下のような箇所があります。

ソースコードもまた、自分自身を説明すべきだ。 プログラミングに関して皆に一つだけ引用文句を覚えてもらえるならば、 私は「計算機プログラムの構造と解釈」の冒頭のこの文を選ぶ。

プログラムは、人々がそれを読むために書かれるべきである。 たまたま、それが計算機で実行できるにすぎない。

ユーザに対する共感だけでなく、コードを読む人に対する共感も必要だ。 それはあなた自身のためでもある。あなた自身もあなたのコードの読者だからだ。 6ヵ月前に自分の書いたプログラムを見て、それが何をするのか全くわからない という経験をした人も多いだろう。

http://practical-scheme.net/trans/hp-j.html

つまりソースコードは、コンピューターに対する命令でありつつ、それを読む人間に対しての説明でもなければなりません。コンピューターが解釈できて、動けば良いわけではないのです。

ソースコード(プロダクト)には複数の人間が関与し、長い年月の間メンテナンスし続ける必要があります。ソースコードは自分以外の人間(「自分以外の人間」には数ヶ月後、数年後の自分も含まれます)が読むということを意識しないといけません。「誰が見てもわかりやすいソースコードが書ける」という力がチームプレイに必要なのです。

プログラマーは、自分が書くソースコードの読者が誰であり、どのように書くと伝わりやすいのかと考えるスキルが必要になります。それがロジカルシンキングです。ロジカルシンキングが上手にできていると、説明が上手にできるようになります。「(日本語での)説明が上手」「ドキュメントがわかりやすい」という形で現れるようになってきます。

ということで、「論理的に物事を考えられる(ロジカルシンキングができる)こと」が「日本語(母国語)で自分の考え方をわかりやすく説明できること」「わかりやすいソースコードを書くことができる」に繋がり、それが「チームプレイができる人」の条件になるわけです。