ソフトウェア開発者がより良い人生を送るためには、技術習得法やキャリア構築法、自己管理法といったノウハウに加えて、対人的な交渉・指導・意思疎通などをうまく行える能力や知恵、すなわち「ソフトスキル」が不可欠です。

 本連載では、書籍「SOFT SKILLS ソフトウェア開発者の人生マニュアル」(日経BP社発行)の膨大な内容からごく一部を抜粋・編集して、「キャリアの築き方」「自分の売り込み方」「生産性の高め方」「心身の鍛え方」「恋愛で成功する方法」など、人生全般をより良く生きる方法を具体的に説明します。

 「ソフトウェア開発」について書かれたもののほとんどは、もちろんソフトウェア開発について書かれている。しかし、この記事は違う。いいコードの書き方や様々なテクノロジーの使い方を説明した記事は世の中にたくさんあるが、いいソフトウェア開発者になるための方法を教えてくれるものを見つけようとすると、とても苦労する。

 私が言う「いいソフトウェア開発者」は、コードの書き方、問題の解き方、ユニットテストの作り方がうまい人ではない。そうではなくて、キャリアのマネジメント、目標の達成、人生の楽しみ方という意味で、いいソフトウェア開発者ということだ。確かに、今言ったようなスキルはどれも重要だろう。しかし、ソフトウェア開発者には、C++での優れたソートアルゴリズムの書き方とか、隣のメンテナンスプログラマーがあなたを車でひき殺してやりたいと思ったりしないコードの書き方といったこと以外にも、することはあるはずだと言いたいのである。

 この記事は、「あなたに何ができるか」についてのものではない。この記事は、「あなた」についてのものだ。そう、あなたのキャリア、あなたの生活、あなたの心と身体、そして、もしそういうものがあるとすれば、あなたの魂についての記事である。と言っても、私のことをちょっとおかしなやつだとは思わないでいただきたい。私は、あなたの意識をより高い次元に引き上げようとして、ペヨーテの葉を吸いながら床に座って瞑想している超越論者の僧侶などではない。読み進めればその反対、つまり「ソフトウェア開発者であるということは、コードを書くことよりもはるかに大きなことだ」ということに気づいた、地に足の着いた人間であることをわかっていただけるだろう。

 私はソフトウェア開発に対する「総合的な」アプローチを支持する。つまり、より良いソフトウェア開発者になりたいなら、人生におけるひとつ、ふたつの領域だけでなく、「ひとりの人間として全体を捉える」必要があると考えているのだ。