天才プログラマー・オードリーさんがたった200行で効果的なアプリを作れる秘訣
文●石井 大輔(株式会社キアラ 代表取締役) 編集●ASCII STARTUP編集部
2021年02月02日 11時30分
2021年1月19日、『コロナ vs. AI 最新テクノロジーで感染症に挑む』(翔泳社刊)が発売されました。医師の起業家からAIの研究者・ITの先端技術コンサルタントによって執筆されており、コロナ対抗策としてのAIの社会実装事例・AI研究事例・医療研究事例をわかりやすくまとめられています。今回本書の発売を記念して、収録されている台湾のデジタル大臣、オードリー・タンさんへの特別インタビューから、一部内容をご紹介します。株式会社キアラ 代表取締役の石井 大輔氏による寄稿です。(前編はこちら)。
Image from Amazon.co.jp |
|
---|
コロナ vs. AI 最新テクノロジーで感染症に挑む |
IQ 180の天才プログラマーで有名な、台湾のデジタル担当大臣オードリー・タンさんへのインタビュー。今回はかなりギークかつ実務的な質問をしました。
石井:今回の私の質問は少し技術的なことです。オードリーさんは天才プログラマーとして有名です。GitLab Taiwanのエンジニア友人から伺ったのですが、オードリーさんはわずか200行のコードで、驚くほどパフォーマンスが高いアプリケーションを作成したことがあるそうですね 。
軽量で効果的なコードを書くための秘訣があれば、3つほど教えていただけますか?
オードリー・タン:1つ目は、デザインやグラフィックやアイコンなどを除外した、コアとなる機能のみが書かれたコードをコミュニティと共有することです。
私はコードを公開する時、「このコードは暫定版なので、プルリクエストをお送りください。」と言います。そうすれば、他の皆さんが(修正時の心理的ハードルが下がるため)貢献しやすくなります。
本当に重要なことは、単独で作業するのではなくクラウドで作業することです。
2つ目は、社会的に良さそうなプロジェクトかどうか初期段階で見極めることです。コードを書き始める前にreadme.txtの文面を考え、プロジェクトの企画全体を想像し、プロジェクト名とハッシュタグを考え、不特定多数の人が社会的意義を認めて開発に参加するように動機付けるには何をするべきか、といったことを考えるのです。
3つ目ですが、相手を多くの同意書で縛る代わりに、相手に活躍の場を与えることを大切にしています。これは「Radical Trust(徹底的な信頼)」と呼ぶ方法論です。相手は、GitHubで自分が実施したcommitに問題があると分かったら、自らrevertすることができます。
注:commit=GitHub等で変更を反映する操作注:revert=GitHub等で変更を取り消す操作
許可を得ることは謝ることよりずっと難しいことです。だから、取りあえず進めてもらい、もし間違ったら一言ごめんなさいと言って修正してもらえば良いのです。
私自身もこれまで、誤字脱字を含め、些細なミスをいろいろしてきました。 しかし、もし皆があなたの許可がないと動けないとしたらどうでしょうか。その場合、それがプロジェクトのボトルネックになってしまい、あなたの負担が減ることもありません。あなたがその気になれば、あなたは他の人に委任することさえも委譲することができます。
石井:その通りですね。ありがとうございます。
オードリーさんが言及された「Radical Trust」に大変興味を持ちました。
「Radical Trust(徹底的な信頼)」と「Trust(信頼)」の主な違いは何でしょうか?
オードリー・タン:「Radical Trust」の意味するところは、参画する権利の委譲です。例えば、Rakuというプログラミング言語を使いやすくするために、最近私はPugsの実装を行いました。その際、私は共有リポジトリへのプッシュ権が必要だったので、PerlやHaskellの関係者だけでなく、Pythonの生みの親であるグイド・ファンロッサムにもそれを伝えました。
ご存じの通り、Perl 6を巡ってはフォーラムに(Perl 5の正統な後継でないという)批判的なコメントが書かれますが、私達は大抵「権限があります」とだけ返信します。
注:Raku=ラリー・ウォールが提唱。Perl 6から改称。注:Pugs=HaskellでできたRaku (Perl 6)の処理系(コンパイラ及びインタプリタ)。オード リーが提唱。
注:Guido van Rossum=グイド・ファンロッサム。プログラミング言語Pythonの生みの親。
注:commit bit= GitHubアカウントに付与されたリポジトリへの書き込み権限
あなたも開発に参加して、より良いものにすることが出来ます。進化が続くのは、元のバージョンから改良版を生み出す人のおかげです。直前に変更が行われたばかりであっても、もっと良い案が見つかったなら直ちに改良を施すべきなのです。これはWikipediaと同様で、IPアドレスを持っている人なら誰でも改良することが可能です。もし間違った変更をしてしまったら、 後から謝ればよいのです。
私の質問は天才エンジニアである、オードリーさんのコードの書き方のお作法や、文法を作るときの注意点などを期待していました。いわゆるプログラミングの教科書で言うきれいなコードの書き方などです。
オードリーさんの答えは予想に反して、他人の力をフル活用するというものでした。
つまり自らのオープンソースへの貢献や、エンジニアとしての経歴を生かして、人間の心理を深く洞察し、オープンソースのコントリビューションを加速するためには、どのように協力者にアプローチし、どのような情報公開すれば助けてもらいやすくなるかということを、深く考えていらっしゃると思いました。
例えばGitHubの文章を作るときに、この文章はまだ暫定的なものなので、コメントをぜひお願いしますといった一言添えるだけで、コントリビューターの数がおそらく数倍数十倍違ってくるということを、オードリーさんは経験則からおっしゃっています。
また私が質問したラディカルトラストというのは非常に面白いコンセプトだと思いました。
GitHubレポジトリに貢献する人の心理ハードルを下げ、より安心して間違いを犯すことが出来るようなアプローチです。
GitHub、クラウドファンディング、NPOプロジェクト、Techスタートアップであっても、情報を公開し協力者の支援を仰ぐといった事は世の中で広く行われています。そんな時、より多くの協力者の申し出を集めるために、「より協力しやすくなるようなメッセージを発信できているか」という点を我々は見過ごしがちです。もしそこにプロジェクト成功のヒントが隠されているとしたら、IT・非ITの幅広いプロジェクトで、メッセージの発信の仕方をオードリーさんの様に研究して磨くことは、大きな意味があるはずです。
善意を持って、プロジェクトに協力したいという人であっても、人間だったら間違いを恐れます。その人間心理を理解することが大切なのでしょう。“間違いを犯してもいいんですよ”と直接的な表現で伝えるのではなく、少し冗談ぽく語りかけたり、”私の考えもまだ甘い部分があるんです”、という謙遜した態度を表明することで、より周りが助けやすくなるはずです。
また次の質問では、”何事もデザインできる”=目標の達成に向かってプロセスとアウトプットを試行錯誤しながら最適化できる、ということをオードリーさんがおっしゃっています。
オープンソースコードの力を使って、短いコードで良いアプリを作る話そのものに、プロセスの工夫の要素が詰まっています。オードリーさんが目的達成のために、業務フローそのものをデザインする過程で生まれた知恵なのではないでしょうか。
まとめ
――オードリーさんの驚異的に生産性の高いコードを秘訣は、コードの書き方ではなく、公開開発による他力の利用の最大化でした。
――彼女の手法が最も効果的なのは、社会的ミッションが強く、世の中の共感を呼ぶプロジェクトだとのこと。これは彼女自身がオープンソースのカルチャーを体現化した存在である効果ともいえます。
――コミュニティーの力を借りながらプロジェクトを加速するのは、コーデング以外にも使える手法です。皆さんにもオススメな21世紀のプロジェクト加速手法だと思います。
おわりに
私自身この汎用的に使えるインタビューを今後も繰り返し読み、オードリーさんのインタビューやYouTube、書籍で勉強させていただき、また彼女のg0v(gov-zero)をはじめとしたオープンソース・オープンガバメント運動に少しでも貢献できるよう努力したいと思います。オードリーさん、台湾政府各位、台湾国民のみなさまに、この貴重な機会を感謝いたします。
有難うございました!
To Audrey Tang-san & Taiwanese people & Taiwanese government
Thank you very much for inspiring me.
I will try to contribute to Taiwan's open source and open government movement from Japan.
I found any kind of negative event can be solved by the power of people's collaboration.
We will make a better world together.
給唐鳳先生和台灣人民和政府。
非常感謝您給我的啟發。
我將為日本的台灣開源和政府公開運動做出貢獻。
我發現人們合作的力量可以解決任何負面事件。
我們將共同創造一個更美好的世界。
本件の書籍発売
2021年1月19日、翔泳社より我々の書籍『コロナ vs. AI 最新テクノロジーで感染症に挑む』が発売されます。
今回のオードリー・タンさんインタビュー全編に加え、コロナ対抗策としてのAIの社会実装事例・AI研究事例・医療研究事例をわかりやすくまとめた書籍です。医師の起業家からAIの研究者・ITの先端技術コンサルタントまで、専門家の深い知識に基づいて書かれています。AIはコロナに苦しむ人類に光を与えるのか? ぜひお読みいただければと思います。
聞き手プロフィール
石井 大輔(いしい だいすけ) 株式会社キアラ 代表取締役。京都大学総合人間学部卒。AI・機械学習に特化した研究会コミュニティTeam AIを立ち上げる。シリコンバレーのアクセレレーター Y Combinator Startup Schoolと500Startups Kobe Acceleratorを卒業。100ヶ国語同時翻訳ChatbotアプリKiaraを海外向けにローンチ。
著書
『機械学習エンジニアになりたい人のための本 - AIを天職にする』(翔泳社・単著)
『データ分析の進め方 及び AI・機械学習 導入の指南』(情報機構・共著)
『現場のプロが教える前処理技術』(マイナビ出版・共著)
『コロナ vs. AI 最新テクノロジーで感染症に挑む』(翔泳社・共著)
メディア出演
『AI共存ラジオ 好奇心家族』 (TBSラジオ)
『Abema Prime』 (テレビ朝日)
https://www.ishiid.com/
■関連記事