CodeZine(コードジン)

特集ページ一覧

チームで創造的な仕事をしていくためのプリンシプル――ヒントになる至宝の名言集【デブサミ2020】

【14-E-2】プリンシプル・オブ・“ともにつくる”〜 Web Performerを支えるドクトリン 〜

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/04/01 12:00

 Developer Summit 2020のテーマは「ともにつくる」。開発者なら、良好なチームワークを醸成し、創造力を高め、質の良いアプリケーションが開発できる環境を思い描くかもしれない。キヤノンITソリューションズ株式会社の上田勲氏は、人間にまつわるプリンシプルと、開発環境で重視しているドクトリンを紹介した。

キヤノンITソリューションズ株式会社 アドバイザリーソフトウェアデベロップメントスペシャリスト 上田勲氏
キヤノンITソリューションズ株式会社 アドバイザリーソフトウェアデベロップメントスペシャリスト 上田勲氏

人間を知る上で大事なプリンシプル

 プリンシプルとは原理や原則、主義などを表す。時代背景が変わっても生き延びた普遍的な知見であり、上田氏は「役に立つ情報の、精鋭部隊のイメージ」と話す。ここでは歴史上の人物が残した名言から、上田氏がチームワークに役立つものとWeb Performer開発で重視しているものをピックアップして紹介する。

「我と汝」(マルティン・ブーバー)

 ブーバーはユダヤ系宗教哲学者で人間関係のプリンシプルを残した。人間は「我と汝(あなた)」、「我とそれ」の世界を生きていると説いた。言い換えると、人間は人間関係において、相手を自分と同等のヒト(汝)として見るか、相手を何らかの機能を持つモノ(それ)として見るかに分かれるという。

 対人関係で「我と汝」のスタンスだと、相手をヒトとして見るため、相互に尊重するようになる。しかし「我とそれ」だと、相手を(依頼したコーディングをするなど)機能として見てしまうため、期待通りでないと相手の人格を否定してしまう。ひいては、相乗効果を生む創造的なチームにならない。

 ブーバーは「他者を、自分の利益を得るための道具として見ない。はかり知れない独自性を持った存在と見る」と説いた。仕事でも家族でも、相手を「自分に利益をもたらす何かを提供する存在」として機能面だけで見てしまうと、深い信頼関係は築けなくなる。自分と同様に、無限の可能性を持つ人間として接することが大事だ。

「シニフィアンとシニフィエ」(フェルディナン・ド・ソシュール)

 ソシュールは近代言語学の開祖。大まかにいうと、シニフィアンとは意味するものなので「言葉」、シニフィエとは意味されるものなので言葉が表す対象となる「モノ」。例えば、シニフィアンは「蝶」という言葉であり、シニフィエは蝶そのものを指す。ところが、フランス語では、シニフィアンが「Papillon」だと、シニフィエは蝶だけではなく蛾も含む。つまり、言葉と対象物は1対1とは限らない。これを「言語の恣意性」という。

 また、言葉があることで、世界から言葉が表す概念を切り出すことができる。これを「世界の文節化」という。例えば、言葉も概念も知らない赤ちゃんの世界は全てがぼんやりと見えているが、「蝶」という言葉を覚えると、視界から「蝶」を切り出して知覚する。

 こうしたことから人間は世界をありのままではなく、理解できる言葉で切り取り、パッチワークの集合のように見ているとソシュールは説いた。そう考えると、人間の思考も会話も部分的な理解のつなぎ合わせなので、不完全なものだと分かる。

 上田氏は「言葉が世界を構築するなら、言葉や知識を増やしていけばいい。思考も豊かになっていく。それには読書が一番いい」と話す。言葉や知識を増やすことで、対話のなかで思考や理解の隙間を埋めていける。

「無知の知」(ソクラテス)

 ソクラテスは、古代ギリシャの哲学者。人間は漏れなく無知であり、無知を自覚していないことが問題だと説いた。全てを知り尽くした人間などいない。「私は分かっている」という態度は「無知のままでいる」という決意表明になる(おそらく本人は無自覚)。人間は生きている限り成長を続けることができるのに、成長を止めることになりかねない。

 人間が知っていることは世界のごく一部。「既知」の外には、不勉強であることが認識できる「既知の未知」があり、さらにその先には知らないことすら知らない「未知の未知」が広がっている。

無知の知
無知の知

 上田氏は「無知であることを努々自覚し、知識を吸収し続けることが大事」と言う。時には既知すら「本当に正しいか?」と疑う姿勢も大事だ。そこには謙虚さが必要になる。

 ほかにも、上田氏はキルケゴールの「絶望」、ユクスキュルの「環世界」、ギブソンの「アフォーダンス」を簡単に紹介した。

ユーザーに受けいれられる製品開発を進める上で必要なドクトリン

 前半は人間関係や人生の全般についてのプリンシプルが並んだが、後半は開発に関するドクトリンへと移る。上田氏が所属するキヤノンITソリューションズが「Web Performer」開発で重視していることでもある。

 「Web Performer」は、Webアプリケーションを自動生成できる開発ツールだ。シンプルな設計情報を入力することでWebアプリケーションだけではなく、ドキュメントやテストケースなども自動生成している。また、ワークフロー機能もあり、高い操作性と多彩な機能で評価されている。2005年から販売開始し、2020年1月には累計導入社数が1176社に広がった。

 上田氏は「ローコードで超高速に開発ができて、開発期間を大幅に短縮できるのが強みです。また試行錯誤しやすく、ユーザーと開発者で共創型開発ができるのも特徴です」と話す。

生成Web画面:高い操作性
生成Web画面:高い操作性

「保守主義」(エドマンド・バーク)

 エンジニアは「保守」と言われると、メンテナンスを思い浮かべてしまいがちだが、ここではコンサバティブ。バークは「人間の歴史のなかで、革命的なものは必ず失敗する。歴史と現在合わせて多数決せよ」と説いた。IT業界でも、革新的過ぎて受けいれられなかった技術というのは過去にいくつも存在している。上田氏は「製品で培ってきた歴史、いいDNAは変えず、時代に合わせて進化していくように注意しています」と話す。

「フリクションレス」(マーク・ザッカーバーグ)

 Facebookのザッカーバーグが、開発者向けカンファレンスで発言したコンセプトの1つ。直訳すると「摩擦がないこと」、テクノロジーは円滑かつ直感的に利用できるようにすべきという考え方だ。Web Performerでは入力を命令型ではなく、目的を記述する宣言型パラダイムにし、ユーザーのストレスや労力を極力減らしている。

「プラガブル」(エリック・レイモンド)

 レイモンドは、UNIXの思想として、多様性の原則と拡張性の原則などを挙げている。前者は「唯一の正しい方法はない」であり、それを背景に後者があり、データ形式やコードには成長できる余地を残しておかなくてはならないという考えだ。具体的には、至るところにアプリケーション動作を拡張できる「プラグイン・ポイント」を設けることになる。

「家具の裏側」(スティーブ・ジョブズ)

 非公式な発言だが、ジョブズは「目に見えない部分にこそクラフトマンシップが出る。手を抜かないことは結果的に全体の品質も向上させる」と話していたそうだ。上田氏は「われわれも、例えばユーザーが目にしないような、自動生成されたJavaコードにも可読性を持たせるなどしています」と話す。

「まなざし」(ジャン=ポール・サルトル)

 実存主義のサルトルによると、人間は「人から見られる」ことを気にすることで、人の行動を変えるという。開発環境であれば、ユーザー「目線」が必要であるため、Web Performerではチーム内にユーザー役をおいている。常にユーザーの目線にさらされておくことで、いい開発ができるようにしている。

「卓越性」(アリストテレス)

 アリストテレスは「人には向いていること、やるべきことがあり、それをすることが人類幸福の最大化につながる」と残した。それぞれが他より卓越した何かを持ち、それを遂行することの重要性を説いた。これを参考に、Web Performerを開発しているプロジェクトではキャリアやロールを多く用意し、エンジニアたちの好きなことや得意なことを生かしたジョブアサインを行う。

 「無理なジョブチェンジは行わない。それぞれが自分の得意なことでチームに貢献すればいい。そうすると安心して働ける環境となり、ひいてはチームや製品がいい形で持続できるようになる」(上田氏)

工学とは人の役に立つこと、それには余らせることが大事

 上田氏は「工学」についても触れた。「科学」は自然を説明するルールであるのに対し、「工学」は役立つものを設計するものとなる。「役立つもの」が工学の大事なところで、世界を改善していくために存在しており、現実と対峙していくものでもある。工学とは、人の役に立つためのハブ&インターフェースともいえる。

 ただし、目の前の仕事をこなすことばかりに目を向けていると、役に立つ前に疲弊してしまう。実際に、上田氏もかつて仕事を「こなす」ことに徹底していた時、体調を崩したことがあったという。

 そこで発想を転回して、「仕事をこなす」から「この仕事で役に立つ」と考え方を変えたのだ。上田氏は「外向きの効果として、いい意味で目線が上がり、全体最適が考えられるようになりました。内向きの効果としては、人間の行為として自然なので、大きな流れに乗っているようで気持ちが楽になりました」と話す。特に内向きの効果は大きかったという。考え方やスタンスに無理があって負荷が大きい状態から、自然体で楽な状態に近づけることで、さまざまなことがうまく回るようになったそうだ。

 最後に、上田氏は「余らせる」ことの重要性を話した。「精神的、肉体的、時間的、金銭的、どれでもいいが『余らせる』ように意識することがないと、『役に立つ』ことにつながらない。ただし、無理に人を削るなど、誰かをないがしろにすることで『余らせる』を達成するのは正しくない。うまく『余らせる』ためにも、プリンシプルを活用すべきだ」と強調した。

 「プリンシプルをうまく使い、余らせて、役に立つエンジニアリングを実践してほしいと思います」(上田氏)

お問い合わせ

 キヤノンITソリューションズ株式会社

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5