開発者は、Githubでコードを公開した方がいい。ドキュメントとコメントは英語であり、そのコードは完全に動作して、ユーザがいなければいけない。
と思う理由を説明する。
まず、起業してMy Wayを行くというのでなければ、人間が得られる仕事には2種類ある:
- 誰でも出来る低賃金の仕事
- 専門性の高い高賃金の仕事
ふつうの思考をもった人間は、後者の仕事を得たいと思う。理由は:
- 高賃金であること
- 専門性が高いので、次の仕事も得やすいこと
- チャレンジングであり、やりがいがあること
この上で、ソフトウェア開発者という職種に話を限定する。
ソフトウェア開発者は、私の定義では、何を作るべきかを考えて、それを一人で実現出来る技術者のことである。
今、難易度の高いソフトウェア開発というのは、以下のような現状がある:
- 日本にそもそも人材がいないので、人材に国籍・住所は問わない (ITはリモートワークも比較的容易)
- プログラミング言語の抽象化によって、少人数のチームで効率よくやることが主流になった
従って、以下のような人材が求められる:
- インターネットのある地球に住んでいる
- 基本的には単独でコードを書いてソフトウェアを作ることが出来る
従って、ソフトウェア開発者として働き続けるということは、常に海外の優秀な人材と比較されることであり、日々の修業を必要とされる。
視点を変えて、あるソフトウェア開発者の履歴書を見た時に、私ならば、コードがない応募者は評価のしようがない。理由は:
- Githubというプラットフォームが存在し、ソースコードの公開が容易になった現状があるのに、コードがないということは、コードが全く書けない可能性がある (学歴や履歴書は何の保証にもならない) また、自分の成果を公開して共有しようという精神性に欠ける可能性がある
- 仕事ではクローズドコードを書いていたとしても、他の時間でコードを書いて公開することは可能である。それが出来ないということは、能力が低いか、情熱がないか、何を作るべきか思考出来ないか、いずれかであり、どれもソフトウェア開発者失格である (時間がないなりに何かを作り公開することが重要である。仕事は常に期限があるのだから)
逆に、コードがあるということは、少なくとも評価する土台にはなる:
- そのソフトウェアを一人で書いたものであれば、そのソフトウェア程度のものであれば、設計からテストからドキュメントまで一人で出来ることを証明している
- そのソフトウェアに関するコミュニティがある場合、見知らぬ他人とどういうコミュニケーションをとるのかを伺い知ることができる
私はいつも「来年の年俸が10円ですと言われたらどうしようか」と考えている。そうした時に「じゃあ他行きます」と言えないのは困ってしまう。従って、ソフトウェア開発者として評価され続けなければいけない。そして、自分自身が評価する側に立つとした時、応募者にコードがないと何の評価もしようがないと思うので、コードを書いて公開することを重視している。特に私は、コンピュータサイエンスの博士号も持ってないし、英語に関してもネイティブではないので、スタート地点がそもそも不利だ。GithubやLinkedInといったウェブサービスは、自分という技術者の価値を客観的に眺めるのに役立つ。自分のアカウントを見て、こいつは欲しいなと思えないならば努力が足りない。
今、現実に、多くの大企業が苦戦を強いられており、実際にシャープは鴻海に買収される決断をした。もちろん買収されたあとは、要らない人間は年俸10円を叩きつけられるわけだが、その時に「じゃあ他行きます」と言えるかどうかが重要になる。彼らの業界では、どういう特許を書いたかが武器となるだろう。いずれにしろ、可視性のある成果を出すことが重要ということだ。
ソフトウェアでは、その可視性のある成果を出すことが多分野に比べて遥かに容易なので、ラッキーと思う。自分がどこまで出来るか理解された上で採用されるのであれば、ミスマッチも起こりにくいだろうし、この点でも積極的に公開した方がいい。