• 株式会社カブク
  • Founder / CTO
  • 足立 昌彦

「ドキュメントはスケールする!」カブクCTO・adamrockerの議事録は、Markdownで書きGASで読む

今回のソリューション:【Google Apps Script/グーグル アップスクリプト】

日本語入力アプリ「Simeji(シメジ)」の開発者としても有名なAndroid開発の第一人者、adamrockerこと足立 昌彦さん。同アプリのバイドゥ株式会社への売却を経て、現在は株式会社カブクを立ち上げCTOを務めている。

同社では3Dプリンターを活用したモノづくりマーケットプレイス「Rinkak(リンカク)」を企画・開発・運営し、まだBtoB領域でも3Dプリントの代行サービスを展開中だ。

足立さんの信条は「ドキュメントはスケールする!」

同社ではその理念に基づき、Markdownのカスタマイズ記法と「Google Apps Script(グーグルアップスクリプト)」を駆使することで作業コストを下げ、10数名の組織体の中で年間1,000以上の議事録を残している。「プログラムを書ける人にとってGoogle Apps Scriptは無敵」と語る足立さんに、議事録にとどまらないGoogle Apps Scriptの活用術を聞いた。

中学生の頃からプログラミング。大学院ではAIの研究に打ち込む

元々僕は和歌山県の生まれです。将来の夢は、和歌山県の親善大使です!和歌山好きなんで(笑)。言える時に言っておかないと、なれないから。

プログラミングを始めたのは中学生くらいの時だったと思います。当時はまだ、windows 95もない、3.1もない、NECのPC-9800シリーズの時代ですね。そのあと大学院で人工知能の研究をしていました。これは楽しいので、一生の仕事かな、と思っています。

日本語入力アプリのSimejiがきっかけでサンフランシスコへ

キャリアのスタートとしては結構大きな企業の研究所にいまして、ソフトウェア実行基盤を5年ほど研究開発していました。その後元々作っていたAndroidの向けの日本語入力アプリ「Simeji」がきっかけになってサンフランシスコに転職する機会を得ました。

約7ヶ月そちらにいた後、BaiduにSimejiを売却し、僕もジョインしました。

1年半弱モバイルアプリケーションの開発統括をして、その間に弊社社長の稲田に出会い、事業的にも社会的にもインパクトのあることをやりたいということで株式会社カブクを2013年1月23日に登記しました。でも、最初はほぼペーパー企業で実際に働き始めたのは5月くらいでしたけど(笑)。

3Dプリンタを使ったモノづくりをサポートする「Rinkak」を運用

カブクは2人でスタートして、今は外部委託の方を含めると、15、6名の会社です。僕を含めて大体半分がエンジニアです。

仕事環境、開発環境に関しては一番いいものを準備することに決めているので、入社の時に欲しいマシンを聞いて、全部買います。例えばWacom(ワコム)という30万くらいする液晶ペンタブレットも欲しいと言われて買いましたし、椅子も全員アーロンチェアですし(笑)。

現在は3Dプリンタを使ったものづくりをサポートするサービス「Rinkak(リンカク)」を展開しています。クリエイターの方がデータをアップロードするだけで、モノが作れて、販売もできると。多いのはアクセサリーやフィギュアなどの置物、ちょっとしたガジェットとか、カスタマイズツールですかね。

▼3Dプリンターを使ったものづくり

Rinkakでは海外のお客様も多いです。うちのメンバーにも、ドイツ人、中国人、インド人、オーストラリア人がいます。

僕も社長も人工知能出身で、一番大事なのは多様性だと思っているんです。多様なものの中から一番いいものを選ぶと。人工知能を研究しているうちにまざまざと多様性の重要性を思い知らされ、2人の共通認識で組織体制としても多様性を重要視しています。

「プログラムが書ける人は絶対に使った方がいい」GAS

Google Appsについてはメールやスプレッドシート、Google Driveなど諸々使っているんですが、思うのは、プログラムを組める人はGAS(Google Apps Script)を絶対使ったほうがいいってことです。こんなに仕事が楽になることはないですよ。

今まではエクセルのマクロで書いていたようなものが、GASで書けるようになって、独自の関数も書けます。Google Apps内の情報だけではなくインターネット経由でも情報を取得できて、例えばキーワードをもとに検索した結果が何件あったとか、GASで調べられるんです。

検索結果が自動で落ちてくる仕組みは結構作っています。例えば、各社の3Dプリンターのスペックを集めた情報をスプレッドシートで管理しています。そこから本番のデータベースに挿入するスニペットプログラムをGASを使って自動で作っています。

「ドキュメントはスケールする!」全てをMarkdownで書いて残す

あとは議事録関連です。うちはめちゃめちゃドキュメントを残すんですね。ドキュメントってスケールするんですよ!

ずっと残って証拠になるし、ドキュメントはそれ自体が資産だと思っています。例えば業務の引き継ぎも、書類で誰かが過去にしたことが残っているだけで非常に楽になりますよね。なので会議の議事録やレポート、システムの仕様書などのドキュメントを全て残しています。

例えば去年書いたものだと、会議に関係あるものだけで668の議事録がありますね。その他のものも入れたら1年で1,000を超えていると思います。でも議事録って、書くの結構面倒くさいじゃないですか。だから全部テンプレートを用意して効率化しています。

また、記法はMarkdownです。楽だから、という理由以外にもMarkdownで書く理由のひとつは、うちは社員がグローバルで多様性があるので、特殊な書式に合わせてください、というのは厳しいんです。「書式はMarkdownです」と言うと「あ、Markdownね!」となってスムーズなんです。

独自のカスタマイズ記法で、シーケンス図の作成も効率化

議事録を書くのに作業コストがかかりすぎるようでは非効率なので、入力のためのテンプレートを作って、そこにMarkdown記法で入力していくだけで議事録が出来上がるようにしています。更に、Markdownだけでは表現しづらいシーケンス図やダイアグラムを書ける簡単な拡張書式のパーサを作り、開発設計図なども書けるようにしています

今まではシーケンス図などの、開発に関わる設計図をホワイトボードに書いていたんです。でもホワイトボードって横長なのに、シーケンス図は縦に長くなりますよね。縦方向が足りない。昔はそれを写真に撮って議事録に貼り付けていたら、今度はその写真が小さくて見にくい。であれば、仕様書も議事録に直接書けちゃった方がいいよね、と。

会議しながら、その場で決めた仕様をシーケンスにその場で書くと、議事録にガーッと書いたものがすべてドキュメント上に反映される仕組みを開発しました。

▼左:Markdownで書いた下書き 右:自動でダイアグラム化された議事録が保存される

Chrome Extensionと組み合わせて仕様書をより見やすく

他にもドキュメント作成はいろいろ工夫しています。例えばエンジニア同士で打ち合わせに使うプロダクトの仕様書もMarkdownで書くんですが、それをHTMLに変換してサイドバーで表示するところは、GASを使って作っています

でも通常のGoogleドキュメントの仕組みだとサイドバーが狭くて見にくいので、Chrome Extensionを開発しそのサイドバーを広げられるようにしました。無駄開発(笑)。でも、サイドバーを大きくできるようになったので仕様書などが非常に見やすくなったわけです。

MarkdownをHTML化する部分やシーケンス図を入れられる仕組みは、うちのエンジニアでGASのGoogle Development Expertが3時間くらいでサクッとベースを作ってしまったので、僕は簡単なExtensionを書いただけです。

本当はGoogleに申請して誰でも使えるようにもできるのですが、このシステム自体がGASとChrome Extensionとの合わせ技であり一般的に使い方が分かりやすいわけではないので、申請せずに社内ツールとしてだけ活用しています。

1,000人にクーポンを配布。人力だと1週間、GASでは一瞬!

Google AppsのメールもGASを使うといろいろな風に捌くことができます。今の会社ではないですが昔やったのは、Amazonのクーポン券のユーザー配布を自動化しました。

当時のAmazonのクーポン発行システムってなぜかWeb連携が上手くなくて、とても複雑なSOAPによるRPC(Remote Procedure Call)が採用されていて、その仕様書が超分厚かったんですよね。

しかも当時は、アメリカのAmazonで1ドルクーポンを1,000枚買ったらなぜか50枚ずつ分かれて別々のメールで届いていたんです。「これを俺が1個ずつメールにいちいちコピペしてユーザーに送るの?絶対嫌だ!」となって(笑)、メール配信のシステムをGASで書きました。

まず、自分でAmazonでクーポンを購入します。するとAmazonからクーポンコードがメールで送られてくる。これらを全部自動でメールから抜き出してスプレッドシートに入れる。そこからひとつずつクーポンコードを取り出して「クーポンをお送りします。」というメールでユーザーに送る。そこまでのプロセスを、全部GASで構築しました。

例えば、週に1回、1,000人にクーポンを送るとすると、人力で使っていないクーポンをメーラーから探し出し、コピーしてクーポン発行のメールを書いて、送信していたらそれだけで1週間かかっちゃいます(笑)。それで1人の仕事が終わってしまいますよね。

プログラムが書ける人に、Google Apps Scriptは無敵

こんな風に、うちではかなりGoogle Appsは使い倒しています。日本で数人しかいないGASのGoogle Development Expertが社内にいますしね。

本当に、プログラムが書ける人にとってGoogle Appsをプログラムから操作できるGoogle Apps Scriptは最強です。今まで人力でやらなければならなかった面倒な処理をプログラムで自動化できる無敵ツールなんです。もっと使い倒す人が増えるといいですね。(了)

;