#39:ユーザー目線のkintoneカスタマイズ 〜Teruさんに伺うプラグインを作る理由〜

kintoneユーザーさんと楽しくキントーク!
ゲストはユーザーのTeruさん。 ブログ・Twitterで積極的にkintoneの情報を発信している方です。 Teruさんはkintoneがキッカケで、JavaScript開発の楽しさに目覚めました。 最近はプラグインの公開も始めています。
そんなTeruさんに、開発を始めたきっかけや今の状況を伺っていきます。
配信先
キンスキラジオは各メディアで配信をしています。
Apple podcasts(iPhone・iPad)
Google ポッドキャスト(Android)
spotify
YouTube
目次
- Teruさんについて
ブログ:http://nevermyroad.com/
Twitter:https://twitter.com/Teru_js - カスタマイズのきっかけはコスト
- どうやって開発の勉強をしてきたか
- 同じ境遇の人たちの手助けになりたい
- プラグイン開発を始めたきっかけ
- 公開中の3つのプラグイン
- プラグイン作りの難しさ
- 開発と標準機能のバランス
- イベントをライブ配信して欲しい
全文書き起こし
Teruさんについて
(00:00〜)
松井:今日のキンスキラジオでは、kintoneのユーザーさんにお越しいただきました。6月にTwitterそれからブログでkintone界に現れて、非常に個人的には注目をしているんですが、Teruさんにお越しいただきました。Teruさん、よろしくお願い致します。
Teru:よろしくお願いします。
松井:Teruさんはですね、6月に、突如、Twitterでkintoneのツイートを始め、そしてブログでもkintoneを書かれていて。最近ではプラグインも作って公開をされている非常に謎の深い方。気になる方は気になっているんじゃないかなと思います。
どんな方なのかというところから、今のkintoneを使っている背景だったりとか、色々とお聞きしていきたいと思います。ご存知ない方もいらっしゃると思いますので、簡単に自己紹介をお願いしても宜しいでしょうか。
Teru:はい。都内で、塾講師をしていまして、その塾の中でkintoneを使いながら、システムの開発の担当になってしまいました。その中で、kintoneをもっと広めたいというところで、『ねばまい!』というブログを書きながら、色々とプラグインとかを作っている最中というTeruと申します。よろしくお願いします。
松井:今あった通りですね、『ねばまい! こんなの俺の道じゃない』というタイトルでブログもやられています。記事でも、色々と今までの背景を書いてはくださってはいたんですが、このタイトルは、どういった意味合いなんですか?
Teru:そもそもは塾の先生になる気もなく、私、大学法学部なんですけど、検察官になろうと思っていた時期がありまして、気づけば塾講師になって。気づけば「塾の仕事よりも何かプログラム書いているほうが多いな」みたいな、なんか、「こんな感じじゃなかったのにな」という感じのところから付けたタイトルです。
松井:そうなんですよね。本当に、全然エンジニアだったとかではなくて。私も同じです。
文系の法学部の道を歩んでいて、塾講師からの、今kintoneを通じてのプログラミングを、ということすよね。プラグインなんか、最近はお作りになって公開もされているんですけれども、本当にこのkintoneを通じてのカスタマイズがきっかけで、このプラグインを作るまでに至ってらっしゃるんですね。
Teru:そうですね。
カスタマイズのきっかけはコスト
(02:45〜)
松井:結構、kintoneのユーザーさんで、「自分で開発をしたいな」と、思う方って多いと思うんです。kintone、いろいろできて、連携サービスがあったりとか、開発もお願いしてできるんですけれども、やっぱり予算の関係だったりで、なかなかできる範囲と、できない範囲があったりする。
その時に、「じゃあ、自分でも、ちょっとできたりしないかな」と思ってですね、kintoneの上でのJavaScript開発を勉強される方も多いと思います。Teruさんも最初は、そんなきっかけだったんですか。
Teru:そうですね。やっぱり、いろいろ連携サービスは知っていたんですけど、やっぱり予算的に。うちは、特にGaroonとkintoneっていう併用になって、ランニングコストがちょっと上がっちゃって。
それに加えて連携サービスってなってくると、ちょっと厳しい。ただ、やっぱり大きな変化がないと、わざわざkintoneにした理由もなくっていうところで。カスタマイズという世界があったことを知って、始めたっていうことですね。
松井:kintoneを入れて、最初からTeruさんが作った世界だったんですか。それとも、どこかに最初お願いしたんですか。
Teru:最初は、プロの方にお願いをして、「こういう機能を作りたい」と。ただ、塾で言えば、授業に関する部分にあんまりお金はかけられなくて。どっちかというと請求に関する部分だけはプロにお願いをして、あとのところは自分たちで作っていこうという切り分け方をしました。
松井:お金に関するところの方が、費用をかけやすいし、効果も出やすいじゃないですけれども。もっと裏側の、日々の管理業務を作っていてっていうところなんですかね。
Teru:そうです。
松井:本当にkintoneが、プログラミングの最初だったんですね。
Teru:ほとんど、そうですね。学生時代に、なんか、ちょろちょろ興味はあったんですけど、何にも続かず。本は読んでも、買っても読まずみたいな。1ページ目で挫折みたいな感じでした。
松井:それだったのにkintoneで、プラグイン作るまでになれたのは、何か違ったんですかね。
Teru:やっぱり、一つは仕事だったということと、やっぱ仕事の環境が良くなっていくというのが凄く強かったですね。
松井:自分に密接というか、変化が分かりやすいというか、効果が分かりやすいところで変わっていって。
Teru:そうですね。
松井:という、ところが良かったんですね。
Teru:あとは、箱が用意されていること。一から、それこそサービスを作ろうってなったら、ホームページを作ってとか、ドメインを取ってとかっていう、いろんな段階があります。kintoneはただコードを書けば、とりあえずは動く、っていうところが凄く敷居としては低かったと。
松井:そうですよね。サーバーを用意して、ドメイン取って。それこそ、何もないところからだと、ログインのページから作ってじゃないですけど、全部、作らなきゃいけないです。その土台がkintoneあるっていうのは、非常に簡単なところかもしれないですよね。
どうやって開発の勉強をしてきたか
(06:21〜)
松井:キンスキですと、ノンコードな活用情報の発信がテーマなので、カスタマイズはちょっと本筋からずれるところではあります。ただ、今日はコーディングの話はするつもりはなく、やっぱりユーザーさんの中でカスタマイズに興味を持っている方がいる、というところはあると思います。
そういった意味では、Teruさんが今までどう学んできたかとか。そこで得た注意だったり、気づきとか。やらない方にとっても、線を引く基準になるかなと思うので、その辺りを聞いていきたいと思います。
プラグインの公開に至りましたが、カスタマイズの勉強、もしくはkintoneを入れてからは、どれぐらいの期間が経っていますか。
Teru:だいたい2年ぐらいになりますね。カスタマイズを本当にがっつりやり始めてからは、1年半ぐらいですかね。
松井:それぐらいなんですね。「カスタマイズをしてみたいな」というところから始まっていったんですか。
Teru:請求関連をプロの方にお願いしていく中で、実際の環境にプロの方が作ったプログラムが入ってきていて。それをアプリの設定画面から見られるわけですよね。「あ、こうやって書いてるんだ」っていうのが、直接見ることができて。そこから興味を持ち始めて。
最初はやっぱり、Cybozu developer networkさんのところで書いたコードをコピペして。やってみたら動いた、というところから、「じゃあ、この値はどうやって使うんだ」とか、「どうやって取得するんだ」というところを繰り返していく中で、だんだん学んできたっていう感じですかね。
松井:確かに、プロのコードがあるのは、最高の教科書かもしれないですね。自分が、いま触った処理が、どう書かれているか見れるわけですもんね。
プラス、ないところもあるので、developer networkというサイボウズが運営する開発者向けのコミュニティサイトですね。そこに色々なノウハウ、Tipsもあれば、お互い質問をして回答もできるので、それを参考にされたというところかなと。developer networkでは、Teruさん自身が質問したこともあったんですか。
Teru:たぶん1~2回ぐらいはあったと思いますが、いま思えば、「訳わかんない質問してたな」っていう感じですね。「これじゃ、答えられないだろう」みたいな(笑)
松井:はいはいはい(笑)
Teru:たまにあるんですよね。コメント付かない質問みたいなのが。
松井:なるほど。
Teru:前提条件が抜けてたりとかしたな、っていう感じはします。
松井:前提条件って言うとちなみに、いま思えば、どういったところが必要だったなと思いますか。
Teru:どういうアプリの構成で、いま作っていて、どういうフィールドがあってとかっていうことを何も書かないまま、「これをしたいんですけど」みたいなことを書いたよな、っていうのを今では思いますね。
松井:なるほど。一行、二行、「こうで、こうで、こうしたいんです」っていうだけだと、ちょっと前提が足りないですもんね。
Teru:「なんか、取得したいんですけど」みたいな感じになってたかなっていう気がします。
松井:最近Teruさんも、developer networkの質問に答えたりすることもあるんですよね。
Teru:そうですね。答えてますね。積極的に答えようとは思っています。
松井:そういう時に、そういう前提の「こういうフィールドで、こうしたいんです」があるのと、ないのとだと、まあその。
Teru:答えやすさが違いますね(笑)
松井:っていうことですよね。
Teru:でも、なんか、あの頃の自分を助けているようで、「どういうことしたいんですか?」とかっていうところから聞きたいなと思いますけど。
同じ境遇の人たちの手助けになりたい
(10:33〜)
松井:私も開発者じゃないので、私は答えることは殆どないんですけど、developer networkって、見ていると分かる方が優しく対応してくださっているというか。さっきの前提がないものも、ちょっとずつ解きほぐしながら、やってくださっているなっていう印象があります。
developer networkで「答えるようにしている」というのは、どういう気持ちでやられているんですか。
Teru:一つは、やっぱり自分の勉強というか、教材の一つとして使わせていただいているのが凄い大きいと思いますね。いろんなパターンを書けるようにしておきたいっていうところ。
もう一つは、やっぱり自分が苦労してきたっていうところの、同じような境遇の人たちをできれば手助けしたいというところがありますね。
松井:ブログでも、そのカスタマイズのやり方というか、「こういうふうな環境を用意して」とか「こうやってきたよ」みたいなお話もいくつも書かれていて。6月からなのに記事数が凄い。今、何個記事があるんですか。
Teru:たぶん、やっと40件ぐらいになったんじゃないかなっていう感じですね。
松井:これ撮っているのが、7月4日なんですよ。このブログを始めれたのは6月入ってからですよね。
Teru:そうですね。最初が6月3日ですね。
松井:1日1記事以上の平均数で投稿されているんですけど。
Teru:仕事してないんじゃないかっていう感じで書いてますね。
松井:仕事はされているんですよね。
Teru:もちろんしてます(笑)
松井:終わったあとに、されているんですよね。ありがたいですけど、これもやっぱり、さっきのような気持ちが強いんですかね。
Teru:そうですね。やっぱり一番助かったのは、コピペができるものがインターネット上に溢れていて。それを私も残しておきたい。
私のコードをコピペしたら動いた、楽しそう。ちょっと自分のやりたいことに変えてみようかなとか。っていうとこに使ってもらえればなと思ってます。
松井:なるほど。同じような体験をして、なんだろう。「楽しめる人たちの力になれればな」っていうところがあるんですね。
Teru:そうですね。
プラグイン開発を始めたきっかけ
(13:48〜)
松井:ありがとうございます。是非、この番組本部にもURLを載せますし、『ねばまい! こんなの俺の道じゃない』というタイトルで検索して、今すぐにも見ていただきたいなと思うんですけれども。
最近、本当に私ビックリしたのが、プラグインが出てきたとき。本当にビックリしたんですよ。最初は、塾講師としてkintoneのブログなのかなって見ていたら、半月も経たないうちに、「プラグイン作りました。公開しました」っていうのが出てきて、「え、この人、開発者だって書いてたっけな」って。
Ter:(笑)
松井:最初に、ちょっとプログラムもしてますな雰囲気は出されてたんで、自分でやられているのかなと思ってはいました。ただ、プラグインって私の中でまだハードルが高いイメージがあったので、「そこまで、もうやっているんだ」と。プラグインは難しくなかったですか。
Teru:難しかったですし、訳わからなかったですね(笑)
松井:どういうところが。そもそも、なんでプラグインを作ろうと思ったんですかね。
Teru:インターネットで他のサイトのプラグインを使わせていただいて、やっぱり汎用性がある機能はプラグインのほうが使いやすいなと。あとは、私の上司が全くコードが書けない人なんですけど、やっぱり「魔法」って言うんですよね。カスタマイズのことを。
松井:本当に、魔法って言うんですか。
Teru:はい。「また、魔法やったんか」みたいな。
松井:なるほど(笑)
Teru:でもプラグインだったら、設定画面があって、そこを「じゃあ、フィールドはこれね」みたいなのをやるのはできると。だったら、使える人ができるだけ広いものにしたいな、っていう思いからですね。
松井:魔法だともう、自分が分からないというか。もう「君しかできない世界なんだよ」ですけど、プラグインだったら教えればいじることもできる。もし必要があったら引き継ぐこともできますもんね。
Teru:そうですね。
公開中の3つのプラグイン
(15:31〜)
松井:いま出ているプラグインですと、例えば、最初が『プロセスGO』プラグインですかね。これは、簡単にどんなプラグインか教えていただいてもいいですか。
Teru:一番最初、プロセス管理を使ってるアプリだと、レコードを作成してから、プロセスをスタートするっていう処理開始みたいなボタンを押さなきゃいけないと思いますが、結構押し忘れてしまう。未処理のまま残ってしまうっていうことが多かったので、「保存したタイミングで、もうプロセスが勝手に始まっちゃえばいいんじゃないか」と、思ったわけですね。
松井:確かに。
Teru:なので、それを実現するようなプラグインになってます。
松井:気づいてほしいんですけど、気づかせる方法が、ラベルで書いとくかみたいな。上矢印で「このボタンを押してね」を作る、になっちゃうのが、これを入れると、自動で最初のワンステップを進めてくれる、ということですね。
Teru:はい。
松井:なるほど。あとは、『既読プラグイン』。これは、どういったプラグインなんでしょうか。
Teru:アプリが増えていくと、その職員のkintoneを触っている姿を後ろから覗いてみると、通知が100件とか溜まっていて。そもそも大事な情報をちゃんと見てるのかどうかが分からなかったんですね。
なので、見た瞬間に、その人の名前がフィールドに勝手に入るっていう。やっぱりLINEの既読が付いたところを、イメージして作ったプラグインですね。
松井:レコードを開くと、誰がこのレコードを開いたよ、っていうのがユーザー選択フィールドに増えていく、というものですよね。
Teru:そうですね。
松井:見た、見てないのチェックもできれば、例えば「自分がまだ見てない一覧」とかも作れるかもしれないですかね。
Teru:そうですね。絞り込みでいけると思います。
松井:そうですよね。いろいろと悪用すると、悪いことにも使える気もしますけど、あくまで、もっと便利にするっていう点で使っていきたいところですよね。素晴らしい。
ありがとうございます。一番新しいプラグインですと、『横からすみません』プラグイン。なんか、また素敵な名前ですけれども。これは、どんなプラグインなんでしょう。
Teru:仕事のスピードは人によって違うので、余裕があったら他の人の仕事を手伝ってあげたい、と思う人もいると思います。なので、画面の上の「横からすみません」ボタンを押すと、人のプロセスの作業者を奪ってしまう、というプラグインです。
松井:プロセス管理で別の人が担当者だと、普通はボタンを押せない。代わりに、「横からすみません」ボタンが出てきて、押すと担当を奪っちゃうんですね。
奪っちゃうと言うとあれですけどね。「横からすみません」と入っていって。奪ったあとに、コメントが入るんですよね。
Teru:はい。コメント欄に、その人をメンションに指定して、「横からすみません」と勝手に投稿される機能も付いてます。
松井:これ、かわいいですよね。これは、どういう気持ちで付けたんですか。
Teru:やっぱり、代わりにやってもらった人が、そのことを気づかない状態で、どんどん仕事が奪われていくのも変だし、代わりにやってくれた人が評価される方がいいなと思ってアピール。アピールなんだけど、「横からすみません」っていう感じで、ちょっと低姿勢でアピールできる機能、という感じで付けました。
松井:「すみません」って言いつつ、「私、やったんだぜ」っていう気持ちがありますよね。凄い。どれも、素敵。もっと具体的に言えば、実践的というか。たぶん、こういったシーンが実際にTeruさんにあって、それがヒントになっているんですかね。
Teru:そうですね。
プラグイン作りの難しさ
(20:04〜)
松井:「最初、プラグインを作るのは大変だった」という話がありましたが、どの辺りが大変だったんですか。
Teru:今までは用意された箱だけで済んでいたものが、設定画面っていう今まで書いたことがないHTMLの分野だったり、デザインに関するCSSの分野だったりとか、やらなきゃいけないことが複数あったりして。なので、訳わかんない分野の方が多かったところが凄い大変でしたね。
松井:今のお話は意外で、HTMLとCSSが大変だったお話は、外の設定画面のお話だと思うんですよね。そうじゃない、裏側の処理の部分。JavaScriptの処理とか。あとは最後、パッケージングでプラグインファイルに落とし込む作業もあるじゃないですか。その辺りは、逆に言えば大変じゃなかったんですか。
Teru:そこら辺は、developer networkにアップされているツールとかを使うことで、本当に楽にできました。
松井:私が昔、それこそ何年前かにやった時は、色々とツールやパッケージングソフトを入れて、結構大変だったイメージがありました。じゃあ結構、そこは最近は。
Teru:そこら辺は、かなり楽だと思います。本当に、なんで、コードを書いて。ファイルの構成も作ってくれるツールがあって、雛形を作ってくれるんですね。それをあとはいじっていくだけ。
松井:じゃあ、プラグインの前のJavaScriptが、ある程度書けている人なら。あとはHTMLとCSSをちょっと頑張れば、プラグイン化するのは、ハードルが低いところかもしれないですね。
Teru:そうですね、はい。
松井:そういう意味ですと、JavaScriptはコードが魔法のままになっちゃっているので、プラグインにどんどんしていきないな、っていう思いがTeruさんとしてもあるんですかね。
Teru:そうですね。
開発と標準機能のバランス
(22:29〜)
松井:ありがとうございます。今日、一番お聞きしたいところがありまして。今までカスタマイズするkintoneの世界のお話を聞いてて、どんどんTeruさんがスキルを上げてプラグインまで作ったところを聞いてきました。
最近、私の悩みというか、迷っているというか、悩み相談になるんですが。kintoneの開発の世界と、開発じゃない世界の、それぞれのバランスをどう考えるべきかを、お客さんを回っていて悩んでいるんですね。
というのは、キンスキを始めた時は「どんどんkintoneに機能を加えようぜ」と。エコシステムだぜと。「API使って、どんどん機能を良くしていこう」派閥の人だったというか。そういう論者だったんです。ただ、お客さんの話を聞いてると、そこが本質じゃないんだと気づいて。
それって、いいこと、悪いことがあって。機能が増えるっていいことがあるんですけど、悪いこととしては、後からちょっと変えにくくなるとか。あとは、さっきの引き継ぎの話とかがあったりとか。あとは際限がなくなる。魔法の話ですが、「もっと、こうならない?」「こうして」みたいになって。最終的にはkintoneじゃないkintoneになっている。
というリスクがあることを教えてもらったんですね。この辺りのバランスというか、なにか、Teruさんの中で感じていること、思うところはあったりします?
Teru:そうですね。自分がいなくなったときに、うちの会社で言えば引き継げる先がないので。そうするとメンテナンスもできず、削除していくしかない、もう困ったときには。っていう状態になってしまうので、いろいろ考えてはいました。
自分の中での今の結論は、カスタマイズと標準機能、間にあるのがプラグインだと思っていて。プラグインってカスタマイズって呼ばれない。呼ぶ人が少ない。追加機能って呼ぶんですよね。
この追加機能の感覚であれば、本当に追加するか、追加しないかだけで、メンテナンス自体も楽だし、引き継ぎも問題がない。ということを考えていくと、プラグインを追加していくことは、全然、悪じゃないと思っていて。そういったものをどんどん作っていきたいと思ってますね。
松井:そこが、今、プラグインをどんどん増やして、公開しているモチベーションなんですよね。
Teru:そうですね。
イベントをライブ配信して欲しい
(25:48〜)
松井:ありがとうございます。ちょっとまた話が少し変わるんですが、最近みなさんに必ず聞くようにしているのが、「kintoneで、もっとこうなってくれたら嬉しいな」の、リクエストはありますか?
Teru:それは、機能面ですか?
松井:機能だけに限らず、「こんなの」というのうが他に何かあれば。
Teru:そうですね。でも、やりたいことが、今どんどん増えていて。7月にはポータル画面がカスタマイズできるようになったりとか。そういう機能面での不足とか、希望とかは特にはないですね。ただ、今いろんなイベントが開催されていますが、なんでしょうね。根暗、私、根暗なんですよ。
松井:そうなんですか(笑)
Teru:今日、サイボウズさんに来ているんですが、ここに来るのもちょっと勇気がいるみたいな。「イベントとか、知らない人ばっかりじゃん」みたいな。そういうのを、極端な話、kintone hiveも含めて、ライブ配信してほしいなっていう。「YouTubeでやんないのかな」みたいなことを思いながら。
松井:なるほど
Teru:ああいうのって、「なんかコメントとか書けたらいいな」と、根暗な私は思いつつ。ただ、こういうところに来たり、参加するのも凄い重要だなとは思ってるんで。
松井:ライブ配信したら、この前のkintone hiveは、来てもらえなかったですか。家で見てました?(笑)
Teru:まあ、難しいですよね、そこは。(笑)
松井:でもそうですよね。行けないときも、やっぱりありますし。
Teru:kintone Caféとかのイベントも、最近リモート参加もあったりするのかなと思います。なんかもっと、いろんな人が、いろんな場所で参加できるようになったらいいなとは思いますし。
松井:確かに。
Teru:塾講師のくせして、そうなんですよね。根暗なんで。だから、根暗な人にも優しいkintoneになってほしいなっていう。
松井:全然そうは見えませんでした。ブログでいっぱい書いてるし、Twitterでもいっぱい発信してくださっているので。
Teru:ちょっと億劫なんですよね。
松井:なるほど。機能じゃない、意外なところでいただいて。そうですね、私もkintone hiveでコンテンツを持っているので、ちゃんとアーカイブを公開したいなと思っています。その辺りは、頑張らせていただきます。
Teru:よろしくお願いします。
松井:いっぱい聞いてきて、気づけば30分ぐらい話していました。今日は、デベロッパーな世界。ユーザーの方から、デベロッパーのほうに、足を進み始めているTeruさんの目線で、同じような方のご参考になるようにとお聞きしました。
本当はもっとこう、塾でkintoneをご担当されていて、導入したときのご苦労とか、回していく中での苦労とか。そんなところも聞きたいなと思いますので、是非、またそういったところも聞かせていただきつつ。
もしくは、既にブログに書いているところも沢山ありますので、気になる方はまずTeruさんのブログ『ねばまい!』のほうも見ていただきたいと思います。そういった意味でも、どんどん増えていきそうなので、また是非お話を聞かせていただければなと思います。
Teru:よろしくお願いします。
松井:ありがとうございます。同じように、デベロッパーの世界に、「開発に興味がある」という方は、サイボウズでもdevCampというイベントをやっていて。ちょっと東京が多めなところはありますが、是非、「こんな地域でもやってほしい」みたいな声が集まれば、中のチームも検討しやすくなると思いま。Twitterやウチへの要望で発信していただきたいなと思います。
とういうことで、今日のゲストは、Teruさんでございました。本日は、ありがとうございました。
Teru:ありがとうございました。