0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソフトウェア開発におけるMindsetとToolsetについて

Posted at

Mindsetという言葉をご存知でしょうか?日本語では「マインドセット」とカタカナ表記されることが多いですが、「考え方」や「思考法」と訳されることもあります。ただ、心理学の定義によれば、「思考(Thinking)」とは「情報を操作し、概念を形成し、問題解決や意思決定、反省的・創造的思考を行うプロセス」を指します。一方、Mindsetは「態度、見解、前提、習慣」の集合体であり、思考プロセスの結果として生まれるものです。つまり、思考がMindsetに直接影響を与えるのです。

では、Toolsetとは何でしょうか?Toolsetは、仕事や作業を助ける道具の集合体です。たとえば、IDEや開発フレームワーク、ライブラリなどがこれに当たります。Toolsetは私たちのニーズを満たしてくれますが、長期間使いすぎると、自分の能力が低下してしまうこともあります。

MindsetとToolsetはどのように関係しているのでしょうか?エンジニアの世界では「フレームワークやライブラリを使う前に基礎を学べ」というアドバイスがよくあります。フレームワークの乱用の根本的な原因はどこにあるのか?それは「ベトナム人は手っ取り早いことを好むからだ」などとよく言われますが、実際は違います。使っているフレームワークの多くは海外で開発されたものです。違いは、ベトナム人と海外のエンジニアのMindsetにあるのです。

どんなToolsetにも、必ずその背後にはMindsetがあります。Toolsetが生まれた理由や目的があるのです。万能なToolsetは存在しません。言語やツール、フレームワークは、私たちが直面する問題の一部しか解決できません。Toolsetを乱用してしまうのは、そのToolsetのMindsetを理解していないため、もしくは自分自身のMindsetに問題があるためです。

たとえば、プロジェクトにアジャイルを導入するときは、アジャイルMindsetを理解しなければなりません。プロシージャ指向からオブジェクト指向に移行するときも、Mindsetを変える必要があります。モノリシックからマイクロサービスへの移行も同じです。

幸い、Mindsetは変えるのが難しいですが、変えることは可能です。Toolsetを変える(つまりMindsetを変える)際に苦労する人も多くいます。解決策は、そのToolsetのMindsetをしっかり理解し、深く学ぶことです。いきなり使い始めると、後で大きな問題にぶつかることもあります。


すべての問題に適用できる2つのMindset

問題の根本を解決するためには、どのMindsetが他のMindsetの形成に影響を与えているかを理解する必要があります。Carol Dweck著「Mindset: The New Psychology of Success」によれば、人のMindsetには「Fixed Mindset(固定型)」と「Growth Mindset(成長型)」の2種類があります。

  • Fixed Mindset(固定型)
    才能は生まれつきで変えられないと信じているタイプです。何をやっても無駄だと思い、失敗した人はずっと失敗し続けると考えます。自分が「頭がいい」と言われると、それを守るために学習や努力を避ける傾向があります。
  • Growth Mindset(成長型)
    才能は努力や経験で伸ばせると信じているタイプです。課題や挑戦を成長の機会と捉え、誰もが自分より賢くなれると信じています。もちろん、誰でもアインシュタインになれるわけではありませんが、学びや努力で賢くなれると考えます。

つまり、学びに対するMindsetが、他のMindsetの形成に大きな影響を与えます。Mindsetは学びと実践を通じて培われるものです。実際の現場でよく見られる良くないMindsetの例をいくつか紹介します。

  • 数学が得意でないとエンジニアになれない
  • 言語Aを使う人は言語Bを使う人より優秀
  • 女性は男性よりコーディングが苦手
  • コーディングが上手ければ良い仕事ができる
  • 有名大学出身者は普通の大学出身者より仕事ができる
  • これだけ勉強すれば十分
  • 独学の方が人から教わるより良い

現場では「System Thinking」「Product Mindset」「Agile Mindset」「Project Mindset」「Leadership Mindset」など、さまざまなMindsetが語られます。実際、職種や立場によって必要なMindsetは異なります。たとえば、プロダクトマネージャーにはProduct Mindset、プロジェクトマネージャーにはProject Mindset、リーダーにはLeadership Mindsetが必要です。多くの人は、意識せずにこれらのMindsetを使っていますが、自分のMindsetを他人に押し付けると、仕事で衝突が起きやすくなります。他人の立場に立って考えることで、より理解し合えるようになります。


MindsetとToolsetの関係

どんなToolsetにも、必ずMindsetが存在します。Toolsetは万能ではなく、言語やツール、フレームワークは問題の一部しか解決できません。Toolsetを乱用してしまうのは、そのToolsetのMindsetを理解していないため、もしくは自分自身のMindsetに問題があるためです。

  • アジャイルを導入するときは、アジャイルMindsetを理解する
  • プロシージャ指向からオブジェクト指向に移行するときは、Mindsetを変える
  • モノリシックからマイクロサービスに移行するときも、Mindsetを変える

Mindsetは変えるのが難しいですが、変えることは可能です。Toolsetを変える際に苦労する人は多いですが、そのToolsetのMindsetをしっかり理解し、深く学ぶことが大切です。いきなり使い始めると、後で大きな問題にぶつかることもあります。


まとめ

ソフトウェア開発において、MindsetとToolsetは密接に関係しています。Toolsetを効果的に活用するには、その背後にあるMindsetを理解し、自分自身のMindsetも見直すことが重要です。Mindsetは変えるのが難しいですが、意識して学び続けることで、より良い開発者へと成長できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?