2020年4月のまとめ(法人)


昨年度から、毎月ごとに個人と法人を分けてまとめを書きます。

令和二年四月。世界はコロナウィルスに大きく揺さぶられ続けています。
今月から弊社にとっての第六期が始まります。
コロナの影響はまだまだ続くことでしょう。リモートワークを普段から実践してきた弊社にとって、直接の影響はありません。
ですが、景気の悪化が確実に見込まれる今、発注が減ることは容易に予想できます。
発注元の原資に余裕がなくなるからです。
また、お客様の着手承認やご承認の遅れなどがあり、弊社の売上には影響がでています。昨年の同月と比べると激減です。

とはいえ、社会は今、急激にリモート化の方向へと進みつつあります。そのような流れに沿って、弊社がお役に立てることはありそうです。実際、四月には複数の案件のご発注をいただきました。
また、リモート化の流れに沿ったオンライン・イベントでも登壇や主催を務めました。

達成度4割。達成感4割。満足感6割。それが今月の代表自身の自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 四月度の売上は、まだ確定していませんが、目標額の7割にとどまりそうです。
コロナの影響もあります。三・四月に開始した案件は検収に至っていません。売り上げが立つのは来月以降になるでしょう。

来月以降、世の中には不安と混迷が渦巻くはずです。
景況は悪化し、厳しい時代が続くことでしょう。
そんな中、弊社は今までの活動で得た複数のご縁を通し、さまざまな案件の引き合いをいただいています。

弊社が以前から取り組んできたリモートワークへの施策は、コロナから弊社の業務を守ってくれました。
そうした取り組みができるようになった背景には、kintoneのようなプラットフォームや情報技術の発展があったことはもちろんです。
それらを取り扱う弊社に、リモートワークを進めたいからkintoneについて話を聞かせてほしい、というオファーも届き、4月以降にも案件が続いています。ありがたいことです。
その中の一社様からは、
「社内で検討した結果、全員一致で、
ぜひ長井様とご一緒にプロジェクトを進めていきたいと思いました」
という嬉しいお言葉も。5月からのスタートにあたって気合が入っています。

いくつもの四月以降の案件をいただき、その開発や打ち合わせを連日複数のお客様と行わせて頂いた四月です。そのほとんどがウェブミーティングでした。zoom、ChatWork Live、Google Hangout、Skype、Whereby、BellFace、Microsoft Teamのどれかを使わない日はないというぐらいに。
世界が未曽有の危機に襲われる中、弊社ができることの一つ。それは、わが国の会社にリモートワークの考えを根付かせる一助となることだと思っています。
その一環として、今月は初めてkintone Caféを完全オンラインで開催しました。同時にYouTube Liveも配信し、全国から六十人ほどの方にご参加くださいました。また、freee & kintone BizTech Hackではオンラインハンズオンの講師も担当し、十五人全員に完走してもらいました。それらの実績はとても大きな自信を与えてくれました。

複数の案件を並行して進められるようになりつつありますが、これからも弊社の認知度をあげるためには外部での発信が欠かせません。そうした活動を通して、あらたなご縁からお仕事がつながるからです。今後に向けてよいスタートが切れたと思っています。
来月以降もリモートワークに絡んだ案件も増えると思われます。一方で経営上のリスクを減らす上でも、少し安定の案件に取り組むことを検討しています。

実績を出しながら、日常も充実させる。それらは全て、代表の求めるワークライフバランスの実現につながってゆくはずです。

§ 業務パートナー 今年に入ってから、業務パートナーさんとの協業はあまり行っていませんでした。ところが、案件の急増に備え、一部の作業については発注を再開しました。
代表自身が行ったほうが作業のスピードを落とさず作業ができるのは確かでしょう。
ところが、代表自身のリソースがだんだん切迫しつつあります。そこにさらに案件の伝達やそもそもの開発の方法まで教えなければなりません。
でも、それを含めても業務の伝達は欠かせないと判断しています。まだ案件は増えると予想しているからです。

少しでもツールを作り、外注部分を減らす取り組みを進めています。
外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。
第5期はその部分にも気を配ったことで過去最高の売上総利益を達成できました。ただ、外注費の抑制だけにこだわっていると、案件数が増やせません。そもそもの案件ごとの見積額を上げ、なおかつ教えつつ、フォローする時間だけ生産性が落ちることを踏まえた外注費をその都度算出することが重要だと考えています。

引き続き抜かりなく進めていく予定です。

§ 開発案件 今月は九割の開発案件がkintoneがらみでした。
kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、周辺システムと組み合わせての提案が受注につながっていると思われます。
ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。
今月もまた新規に複数のkintone案件をご依頼や見積もりのご依頼をいただいています。
また、今月はfreee & kintone BizTech Hackでオンラインハンズオンの講師を務める上で、主要な認証の仕組みであるOAuthについて学びを深めました。また、そうした中でfreee社との関わりがさらに強められました。
また、kintoneと連携できるサービスを広げるため、いくつかのサービスの調査と勉強を続けています。スマレジ、Infomart、帳票Online、カラーミーショップ、freee、Money Forward、ヤマトビジネス、メールワイズ、Twilio、DocuSignなど。

今月はとくにスマレジとカラーミーショップのAPIドキュメントを見る機会が多かったように思います。
今後もリモートでやる仕事は増えそうです。その機会を活かして勉強に費やそうと思います。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。
弊社としては問題ないのに、家計が絡むととたんに脆弱になる。
いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。
コロナによる経済の悪化に備え、補助金も申請するなど準備を進めています。
今月で一つの区切りが付けられました。まだまだです。この件は、引き続き最優先で取り組んでいきます。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。
雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりません。
正月の三日間で来季の経営計画の基本は作成したので、引き続き中期計画の策定に取り掛かりたいと思います。
ただ、正月が1年前に思えるほど、世の中は変わってしまいました。今やコロナを踏まえた景況の悪化と、社会がリモート化に舵を切ったことによる案件の増加を加味しなければなりません。

§ 人脈の構築 コロナウィルスに世の中が翻弄され、緊急事態宣言や各自治体による外出自粛の影響もあり、ありとあらゆるイベントが中止となっています。今月も参加する予定だった複数のイベントが中止となりました。
そうしたイベントのいくつかはオンライン開催へと切り替わり、そこでは何回か参加できました。
ただ、オンラインイベントは、人脈の構築という意味ではリアルのイベントに比べて圧倒的に弱いです。そのため今月は、人脈の構築もはかばかしくありませんでした。
今月頂いた名刺は4枚です。これはおそらく、ここ数年で最も少ない枚数かもしれません。
新たな人脈の構築手段を考えなければならない時期がきているようです。SNSの使い方も考えなおさねばならないかもしれません。
オンライン飲み会は複数回、開きました。オンラインイベントにも複数回参加しました。ですが、リアルなイベントに参加した時に比べると、参加の実感も弱く、余韻も続かないことが難点です。
リアルなイベントの開催が難しい以上、オンライン・イベントに切り替わることはやむをえません。そしてそこに参加するしかありません。
今後はオンラインのイベントが続いてゆくはずなので、オンラインでも人脈を構築し、ビジネスの新たな流れを創り出すため、引き続きオンラインは参加していくつもりです。SNSの関わり方も見直すつもりです。
コロナ禍が落ち着けば、また対外活動に乗り出すつもりには変わりないのですが。
引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。kintone Café 神奈川 Vol.6(完全オンライン)(4/2)。紀伊半島はたらく・くらすプロジェクトオンライン飲み会(4/14)。飲み会PTAの事例を伺うオンラインミーティング(4/16)。Cybozu Partner Meeting 2020春(4/17)。オンライン開催!「感染拡大防止協力金」申請方法徹底解説セミナー(4/22)。【緊急ライブ放送】大阪府と連携し保健所情報共有システムを 作成、全国自治体へのテンプレート提供を開始(4/23)。PTAのIT活用トーク【2020春】(4/24)。freee & kintone BizTech Hack(4/24)。リモート蒸溜所見学会(4/25)。
本来ならそれ以外にも、いろいろなイベントがあったはずです。どれも3密を防ぎたい政府や自治体からの要請で中止を余儀なくされました。

ただし、そうした現状を打破しようと、人々はオンラインセミナーの実施に舵を切り始めています。弊社もその流れに乗り遅れまいと、4/2にkintone Café 神奈川 Vol.6を主催しました。完全オンライン開催でしたが、YouTube Liveでも同時に配信を行い、60名ほどの方に参加していただきました。また、freee & kintone BizTech Hackではオンラインハンズオンの講師も務め、全員を完走に導きました。ともに弊社にとってとても大きなステップだったと思います。

弊社の開発や記事執筆のお仕事はこうした対外活動から生まれています。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。

きっと、必ずや、コロナは小康状態に落ち着くと信じ、また皆様と交流を深めたいと思っています。
まずは今月の弊社と関わっていただいた皆様、誠にありがとうございました。

§ 執筆活動 一昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。
(「アクアビット航海記 vol.20〜航海記 その8」)
代表の人生でも指折りの劇的な時期であるブラック企業でしごかれた頃。当時の壮絶な経験が起業後の私に耐性を付けさせたことも含め、善悪を含めて振り返ってみました。
ただ、その経験をしたほうがよいと言い切れないのがつらいところです。

今月、書いた本のレビューは7本(
本屋さんのダイアナ
府中三億円事件を計画・実行したのは私です。
宝塚ファンの社会学―スターは劇場の外で作られる
お金に愛されるお金持ちの考え方大全
40代を後悔しない50のリスト 1万人の失敗談からわかった人生の教訓
怒り(上)
怒り(下)」)。

今月、書いた抱負は0本() 。
今月、書いた旅日記は0本() 。

今月、書いた物申すは1本(
世界が音楽で熱くなった頃-The Beatles」) 。
今月、書いた弊社の活動ブログは2本(
kintone Café 神奈川 Vol.6を開催して得た気づき
freee & kintone BizTech Hackでオンラインハンズオンの講師を務めました」)。

§ 年表

・四月お仕事

神田で打ち合わせ、浅草で打ち合わせ・調査×3、サテライトオフィス×4

・四月ツイート

https://togetter.com/li/1501048


アクアビット航海記 vol.20〜航海記 その8


あらためまして、合同会社アクアビットの長井です。
弊社の起業までの航海記を書いていきます。以下の文は2017/12/14にアップした当時の文章が喪われたので、一部を修正しています。

お付き合いのために就職活動

妻とは、1998年の初夏ごろからお付き合いすることになりました。
妻はすでに歯科医免許を持っている歯医者さん。大学病院に勤めつつ実家の歯医者でも手伝っていました。
かたや私は、持っている免許といえば自動車運転免許だけ。要するに一介のアルバイトです。あまりにも差がありすぎる境遇。
たぶん、普通の人ならここで高嶺を仰ぎ見るだけで終わるのでしょう。
ですが、鬱から抜け出し、昇り竜のような私にとってそんな立場の差など無関係。仰ぎ見る高嶺が富士山だろうがチョモランマだろうが意に介しません。ましてや、世間体など当時も今も眼中の外です。
どれもこれも、私の恋情を止めるには取るに足りないことばかり。
そんな訳で私のアタックは寄り切り寄り切り、そして金星につながりました。

お付き合いしてもらえることになったとはいえ、収入の差は歴然です。
私も相手にふさわしくならねば。
いつまでもアルバイトに甘んじとったらあかんわな。いかに能天気な私でもそう考えます。このままでええわけあらへんわな、と。
そこで私は、それまで一切興味の湧かなかった就職へと舵を切ります。

私が目指そうとしたのは編集者です。
なぜ編集者なのか。
その理由はこの二年間の私の日々にあります。悩める日々、私は本を読みまくっていました。読書に耽溺していたと言ってよいほどに。
私を鬱に陥れ、そして回復させてくれた本たち。本はまた、私に人生の意味を教えてくれました。
そのような経験を積ませてくれた本を生み出す仕事に携わりたい。そう思うのは自然な流れではないでしょうか。
編集者として生きる中で、私自身がクリエイティブな職種に就ければ望むところです。例えば作家や物書きのような。

ただ、私の中では、文学の熱に浮かされているだけでは生計が成り立たず、結婚もおぼつかないとの冷静な理性も残っていました。
生計を立てるなら、まずは編集の仕事をしてみよう。

そんな訳で、1995年の夏、就職活動を放り出してから3年にして、ようやく私は就職活動に復帰します。
私のターゲット業種は出版社。職種は編集。

当時の私に向かって「自分、将来、情報処理業界で会社を作るんやで」と伝えたら、どういう反応を返したでしょう。
多分、「は?なにゆうてんの自分?」という反応が返ってきたはずです。
なぜなら、当時の私の人生設計に情報処理業界は全く入っていなかったからです。

芦屋市役所で身につけたExcelのマクロは、本稿を書いている今の私がみても初歩の初歩です。ましてやデータ登録のスキルだけで生きていけないことは、派遣社員での経験でも明らか。
そもそもデータ登録と情報処理業界は私の中では別物でした。
もっとも始末が悪いのは、情報技術やプログラミングに当時の私が全く興味を持っていなかったことです。
私がプログラミングの面白さに気づくのはまだ先の話

後先を考えずに、出版社に履歴書を送り始めた私。
ところが編集経験が全くない人間を雇ってくれる奇特な出版社などあるわけがないのです。
そもそも、出版社はほとんど東京に集中しています。兵庫に住む私が、東京に何通履歴書を送ったところで、返ってくるのは丁重なお断りの文章だけ。
ところが、一社だけ私を面談してくれる出版社がありました。
そんな奇特な出版社こそが中央出版さんです。

ブラック企業でしごかれ消耗する

無知でウブな当時の私は、中央出版さんに面接に出向き、編集の仕事を希望しました。
正確に言えば私が面談を受けた会社とは、中央出版さんのグループ子会社にあたる大成社さんです。
面接の会場には、Blurの「Tracy Jacks」が流れていました。
この曲のサビの部分「Tracy~Jacks♪」は「たい~せい~しゃ~♪」と聞こえるのですよ。
おお、何と遊びごごろのある会社、と間抜けな私は喜びました。
数日もたたずに採用のご連絡をもらった際も、私はまだ、夢見る気分で漂っていました。

それまでお世話になった社会保険労務士さんには、出版社に勤めることになったので、とお暇を告げました。

そんなウブで無知な私は、初出社の日から猛烈な嵐に巻き込まれます
大成社での日々については以下のレビューの後半で書いています。

なお、上のレビュー内では名を伏せましたが、本連載では大成社と実名を出します。
中央出版さんはグループ会社をオトナノジジョウでスクラップ&ビルドすることで知られています。
もちろん、大成社はすでに廃業済み。影も形もありません。
もっともウェブで検索すると、大成社の伝説の数々はそこかしこに登場するのですが。

大成社での日々を上のリンク先から引用してみたいと思います。

その会社は出版社の看板を掲げていた。しかしその実態は教材販売。しかも個人宅への飛び込みである。出社するなり壁に貼り付けられている電通鬼十則をコピッた十則を大声でがなり立てる。挨拶もそこそこにして。

朝礼は体育会系も真っ青の内容で、絶え間ない大声と気合の応酬が続く。しかし、そこに単調さはない。きちんと抑揚が付けられている。おそらくは営業所のリーダーの裁量にもよるのだろう。前日に成果を上げた者には惜しみない賞賛の声が掛けられるが、一本も成果を上げられなかった(ボウズと呼ぶ)者には、罵声が浴びせられる。私は数日ボウズが続いた際、外のベランダに連れ出され、髪型のせいにされてその場で丸刈りにされた。これホント。私がクビを告げられたのも朝礼の場。

朝礼が終わった後は、ロールプレイングと称する果てしないやりとりの復習。詳細な住宅地図から描き出す訪問ルートの策定を中心とした行動計画。担当毎にエリアが割り振られ、その地域を一定の期間訪問し尽すまで、そのエリアへの訪問は続く。

朝こそ12時出社だが、成績が悪いと10時出社の扱いになる。無論朝からロールプレイングの時間が待っている。派遣地域から営業所に帰ってくるのが22時前後。それから明日の営業資料の整理やら反省会やらがあり、終電は当たり前。そんな中、朝10時出社は厳しい。

・・・このレビューに書いたことは事実です。例えば、知らずにヤクザさんのところを訪問し、しつこくねばった結果、掌底で殴られ監禁されそうになったくだり。本当です。ベランダで丸刈りにされたのも同じく。

離職することを前提とした採用。
ふるい落とし、選ばれなかった者に待っているのは退職のみ。
厳しい職場で勝ち残り、成果を挙げた者だけが希望の業務に就ける。そんな容赦ない弱肉強食の社風。
成績優秀者は皆の前で100万円以上の厚みのある札束が渡されます。現ナマです。
振り込みなどという生ぬるい給与の渡し方はしません。徹底的なアメとムチの世界。
ボウズが続けば、固定給しかもらえません。かわりにもらえるのは数限りない罵声と叱咤の嵐。
その圧倒的な格差を前に、奮い立つ人もいます。這い上がる人もいます

それまでの人生、私の人生は浮き沈みこそあれ、平穏でした。
もちろん中学の頃はイジメにも遭ったことはあります。理不尽な目にも遭いました。
でも、それは同じ級友の間のいわゆるなれ合いの中のイジメです。
ところが私が入ってしまった大成社とは、なれ合いすらも許さぬ会社でした。平穏こそは悪と言わんばかりの。
ネットで検索すれば、今もブラック企業のレジェンドとして名を残す大成社。
私が社会の厳しい現実を嫌というほど教えられたのが大成社での日々です。
1998年の11月からの約3カ月間。

1999年の2月始め、私は皆がそろう朝礼の場でクビを宣告されました。
この時に受けた強烈な屈辱は、丸刈りにされた時の記憶と相まって私を打ちのめしました。
私が東京に出て結婚した6、7年後になっても、この時の経験は夢に出てきたほどです。
私と同時に大成社に入社した10人ほどの同期は、私がクビにされた時点ですでに3,4人しか残っていませんでした。もちろん、皆さんクビです。

ただし、大成社で過ごした3カ月の全てが無駄であり、苦痛でしかなかったと書くのはフェアではありません。良いことだってわずかですがありました。
例えば契約を獲得すると、ホワイトボードの名前の下にピンクのバラが飾られます。よく選挙当選者の名前の下に貼られるような感じの。
私は3カ月の間に1,2度しか達成できませんでしたが、1日に2件の契約を獲得したこともあります。それは「ダブル」と呼ばれ、帰社すると拍手で迎えられます。翌日の朝礼でも称賛は惜しみなく与えられます。

私は、自分が売り込む商材である3000円のテストにも、テストを受けた家庭に売り込まれるゴールウィンという教材にも愛着が持てませんでした。
そんな心持でありながら、当時の私はノルマや売上に追われていました。そして、訪問の間に一軒でも多くのお宅にテストを受けてもらおうと脳内をたぎらせ、目を血走らせていたのです。
ところが、そんな充血の毎日にも救いはありました。
数多くのご家庭を訪問していると、中には心温まる家庭にも出会えたからです。
もちろん、ほとんどのお宅ではケンもホロロに門前払いを食らいます。
でも、中には、頑張ってるわね~と私をねぎらってくださるご家庭だってあったのです。
心身ともに追い詰められた気持ちで、訪問したお宅のお子さんとその保護者様を相手にトークを展開しながら、親身にお子さんの将来を案じる保護者様の気持に胸が熱くなったことも1,2度ではありません。
私に門だけでなく、心も開いてくださったご家庭に対しては、たとえ契約に結び付かなかったとしても温かい気持ちを抱いて辞去することができました。

また、大成社の大阪支店には諸先輩方がいました。
私についてくださった先輩はHさんといい、一生懸命に指導してくださいました。
理不尽で不条理な日々であっても、全ての経験が暗黒ではなかったことは書き添えておきたいのです。

ブラック企業で培ったもの

”起業”した今、私はいろんな会社を訪問する機会があります。
一度も伺ったことのない会社へ単身で訪問することも多いです。
ですが、気後れすることはありません。
これは大成社での過ごした3カ月、毎日、果てしない数のお宅へ飛び込み訪問した経験のなせる業です。
今でも、飛び込み営業をやれ、と言われれば契約がとれるかどうかは別にして、やれる自信はあります。
当時、何百軒も飛び込み訪問した経験はダテではありません。

また、”起業”すれば深夜や土日に働くことなど普通です。
お客様に怒られることだってあります。
でも、大成社での日々に比べれば、どれも大したことではありません。それ以上に苦しかったからです。
負けて打ちのめされればそれまで。
ところが、結果として生きながら得たことで(私の場合は乗り越えたわけではありませんが)、その後の試練に耐性がつきました。
私が打たれ強くなったのは、この時の経験からです。

また、つらい時期も過ぎてみればそれまで、という人生訓を得たのもこの時期です。
大成社での日々は、私が”起業”する上で欠かせないイニシエーション(通過儀礼)だったと思います。

ただし、”起業”するためには、あえてこうしたブラック企業に飛び込むのがよいか、と問われれば迷います。
今の私は、大成社の夢にうなされることはありません。
ですが、もし私の娘や友人や知り合いがブラック企業に就職すると聞けば、間違いなく反対するでしょう。
それはそうです。私自身が二度とやりたくないのに、人に勧めるわけがありません
休みには、どこにも出歩く気力がないほど疲れ果て、当時、付き合っていた妻と電話で話すことが精一杯。周囲から追い詰められ、夜も昼も追い込められる日々。
人にはおのおの、耐えられる閾値があります。
私はたまたま、精神を病む前にクビになって解放されました。
それ以上いたら、再び鬱に陥り、本稿を書く機会もなかったかもしれません。

大成社よりも過酷な、そして人権をないがしろにするような職場は他にも多く存在することでしょう。
そのような職場に耐えられるかどうかはその人次第です。
クビになったからといって気に病むことはありません。逃げられる気力が残っているうちにさっさと逃げたほうがよいです。
”起業”した今、私はパートナー技術者や部下に対し、絶対にブラック企業が行うような使い捨てをしないと決めています。
それも、大成社での経験を反面教師としているからです。
本稿に書いたのは、あくまでも私の個人的な経験、そして結果論でしかありません。

ただ、それを踏まえても、ブラック企業での経験は得難いものでした。今となって振り返れば。
そこでの日々は、私を強く鍛えてくれました。
私の人生を振り返っていえるのは、この試練をくぐったことで、人生の次のステージに進めた
、ということです。
大学四回生の夏から始まった3年半のぬるま湯につかった日常。それらは一掃されました。

朝礼の場で皆の前でクビを言い渡された屈辱。
それは、私をさらなる行動へと駆り立てます。
次回はそのあたりをお話ししたいと思います。ゆるく永くお願いします。


2020年3月のまとめ(法人)


今年度から、毎月ごとに個人と法人を分けてまとめを書きます。

令和二年三月。世界はコロナウィルスに大きく揺さぶられ続けています。
弊社の業務には直接の影響は及んでいません。平素からリモートワークを実践してきたためです。
ですが、やはりお客様の着手承認やご承認の遅れなどがあり、弊社の売上には影響が出ております。昨年の同月と比べると激減と言ってよいでしょう。

今月は弊社にとっては一年間の決算月でもあります。
2,3月の売上が予想を大きく下回ってしまったことにより、第5期を通しての売上も昨年の8割6分にまで割り込んでしまいました。
ただ、救いなのは年間を通して外注費が削減できたことです。そのため、売上総利益だけで考えれば、前期より2割1分、上回ることができました。もちろん、過去最高の実績です。

4月から、弊社の第6期が始まります。
来年度に入っても、コロナウィルスの影響はまだまだ世界を揺るがすことでしょう。業種によっては壊滅的なダメージに襲われることでしょう。世の中も不況に陥ることは避けられないと思われます。
ですが、幸いなことに、弊社は以前からこうしたリスクを考え、できることには取り組んできました。それは都内への通勤を無くすことや、リモートワークへの取り組みです。
そうした取り組みができるようになった背景には、kintoneのようなプラットフォームや情報技術の発展があったことはもちろんです。
それらを取り扱う弊社に、リモートワークを進めたいからkintoneについて話を聞かせてほしい、というオファーも届き、4月以降にも案件が続いています。ありがたいことです。

それを裏付けるかのように、いくつもの四月以降につながる案件をいただいています。今月はそれらの準備に余念のない月となりました。
世界が未曽有の危機に襲われる中、弊社ができることの一つ。それは、わが国の会社にリモートワークの考えを根付かせることだと思っています。
その一環として、今月は初めてオンラインセミナーに登壇しました。また、来月にはさらに大きなチャレンジが控えています。そこでは、オンラインでハンズオンというイベントの講師を担当する予定です。

複数の案件を並行して進められるようになりつつありますが、これからも弊社の認知度をあげるためには外部での発信が欠かせません。
そうした活動を通して、あらたなご縁からお仕事がつながるからです。それができなかったことはやむを得ないとはいえ、残念でした。
達成度4割。達成感4割。満足感4割。それが今月の代表自身の自己採点です。
同時に第5期については、達成度6割。達成感5割。満足感5割と評価したいと思います。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 三月度の売上は、まだ確定していませんが、目標額の6割にとどまりそうです。
コロナの影響も若干あるためか、代表の予想をさらに下回ってしまいました。
その原因としては、お客様のご検収が伸びたり、案件の開始が遅れてしまったりしたためです。
その結果、第5期の売上は第4期に比べ86%にとどまる見込みです。
一方で、年間を通すと外注費を抑制したことが功を奏し、売上総利益は前期に比べると121%増になろうかと思います。

来月以降、世の中には不安と混迷が渦巻くことでしょう。
そんな中、弊社は今までの活動で得た複数のご縁を通し、さまざまな案件の引き合いをいただいています。
四月以降はリモートワークに絡んだ案件も増えると思われます。一方で弊社の経営上のリスクを減らすためにも少し安定が見込める案件に取り組むことも検討しています。

実績を出しながら、日常も充実させる。
それらは全て、代表の求めるワークライフバランスの実現につながってゆくはずです。
今月も終わりに差し掛かり、志村けんさんがなくなるというニュースが衝撃を与えました。そのニュースは、人生の実りやワークライフバランスを考える良い契機になりました。

§ 業務パートナー 今年に入ってから、業務パートナーさんとの協業はあまり行っていませんでした。
ところが、春以降の案件の引き合いを複数のチャネルを通じていただいています。また、その中にはSES業務に属するお願いも含まれています。
そうした点を含め、来月以降は業務パートナーとの協業活動を活発にしていく予定です。
すでに来年の業務量が増えることを見据え、どの部分を外注化するかを検討しています。弊社でもツールを作ることで外注部分を減らす取り組みを進めています。
外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。第5期はその部分にも気を配ったことで過去最高の売上総利益を達成できそうです。
ただ、それだけにこだわっていてはなりません。案件ごとの見積額を上げ、なおかつ教えつつ、フォローする時間だけ生産性が落ちることを踏まえた外注費をその都度算出しなければなりません。

引き続き抜かりなく進めていく予定です。

§ 開発案件 今月は七割の開発案件がkintoneがらみでした。
kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、周辺システムと組み合わせての提案が受注につながっていると思われます。
ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。
今月もまた新規に複数のkintone案件をご依頼や見積もりのご依頼をいただいています。
また、今月はfreee社との関わりが強められました。また、kintoneと連携できるサービスを広げるため、いくつかのサービスの調査と勉強を続けています。スマレジ、Infomart、帳票Online、カラーミーショップ、freee、ヤマトビジネス、メールワイズ、Twillio、DocuSignなど。

今月はとくにfreee APIドキュメントとDocuSign APIドキュメントを見る機会が多かったように思います。
来月もリモートでやる機会は多くなりそうです。移動時間が少なくなる分、勉強に費やそうと思います。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。
弊社としては問題ないのに、家計が絡むととたんに脆弱になる。
いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。
ただ、今月で一つの区切りが付けられました。ただし、まだまだです。この件は、引き続き最優先で取り組んでいきます。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。
雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりません。
正月の三日間で来季の経営計画の基本は作成したので、引き続き中期計画の策定に取り掛かりたいと思います。

§ 人脈の構築 今月はコロナウィルスに世の中が翻弄され、二月に続いて代表が参加する予定だった複数のイベントが中止となりました。その一方で、オンラインイベントにも何回か参加できました。
ただし、オンラインイベントは人脈の構築という意味ではリアルのイベントに比べて圧倒的に弱いです。そのため今月は、人脈の構築もはかばかしくありませんでした。
4月・・19枚
5月・・56枚
6月・・12枚
7月・・7枚
8月・・11枚
9月・・40枚
10月・・10枚
11月・・46枚
12月・・14枚
1月・・55枚
2月・・59枚
3月・・10枚
これは今期、いただいた名刺の枚数を月ごとにまとめたものです。
3月は本来ならもっと多くの方と名刺の交換ができていたはずなのですが。

面白い体験としては、著名な業界雑誌の事例取材に立ち会わせていただいたことです(3/2)。あとは3/26にfreee Open Guild トライアルの運営に携わり、登壇したぐらいでしょうか。
ただ、こうした活動が弊社の今後の業績を左右することに間違いはありません。コロナ禍が落ち着けば、また対外活動に乗り出すつもりです。
引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。freee Open Guild トライアル(3/2)。

代表は今年からfreee Open Guildの運営にも携わっています。ところが二月末に予定されているfreee Open Guild #09が中止になってしまいました。これはとても残念なできごとでした。
本来なら今月はそれ以外にも、いろいろなイベントに御呼ばれしていたはずでした。
3/7-3/15には京都でワーケーションツアーにもお呼ばれしていましたし、kintone Café 京都でも登壇の予定でした(3/13)。後者が中止となってしまったことで、前者への参加も見合わせました。残念です。

こうしたイベントの中止が続発する現状を打破しようと、人々はオンラインセミナーの実施に取り組みはじめました。
freee Open Guild トライアルは、完全オンラインで開催し、代表も運営側として参加しました。開催に当たっては事前にトライアルのトライアルも行いました。そして、当日はオンラインでの登壇を行いました(3/26)。初めてのオンライン登壇の顛末については、freee Open Guild トライアルに登壇しましたをご覧いただければと思います。

一方、四月にはkintone Café神奈川 Vol.6が目の前に迫っております。
こちらも開催の8日前になり、首都圏の各県に外出自粛要請がだされたことで完全オンラインイベントに切り替えました。
その準備として、三月の終わりにキンスキの松井さんよりzoomとYouTubeのセミナー開催について教えを乞う機会をいただきました。感謝です。

イベントの自粛のムードが漂っている昨今ですが、状況が落ち着いた後にも参加する意欲は持ち続けていようと思います。そうした場には積極的に関わっていくつもりです。
弊社にとって開発や記事執筆のお仕事はこうした対外活動を通していただけていることに変わりはないからです。
代表自身が新たな交流に参加し、そこから生まれた価値を発信することは絶対に怠ってはならないと肝に銘じています。

上に書いた通り、某業界雑誌の取材に立会い(3/2)、恵比寿では技術者さんたちと飲む機会がありました(3/2)。二泊三日の福岡出張では、中洲の美味しい酒と料理を堪能しつつ、実のある商談ができました(3/5-3/7)。さまざまなご縁をつないでくれた極鶏Bar下北沢店が今月でのれんを下ろすというので、そこで知り合った方と駆け付け、店内を目に焼き付けました(3/11)。昨年の十一月から今年の二月まで参画していた案件の打ち上げ会にも参加できました(3/27)。
きっと、必ずや、コロナは小康状態に落ち着きます。そう信じ、皆様とは交流を深めたいと思っています。
まずは今月、そして今期の弊社と関わっていただいた皆様、誠にありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。
(「アクアビット航海記 vol.19〜航海記 その7」)
かつての代表が黎明期のインターネットに出会い、そこで得た出会いから混迷の時期を脱する状況を振り返ってみると、当時、もがき苦しんでいた私の経験も無駄ではなかったと思えます。

今月書いた本のレビューは8本(
水晶 他三篇
労働基準法と就業規則
ノックス・マシン
生きるぼくら
中小企業の人材コストは国の助成金で払いなさい
MとΣ
夢を売る男
2分間ミステリ」)。

今月書いた抱負は0本() 。

今月書いた旅日記は2本(
笠岡・鞆・kintone Café 広島@福山 2019/3/1
福山・三次・常清滝・邑南町 2019/3/2」) 。

今月書いた弊社の活動ブログは1本(
freee Open Guild トライアルに登壇しました」)。

§ 年表

・三月お仕事

蔵前で打ち合わせ、渋谷のお客様にお届け物、恵比寿ガーデンプレイスのStarbucksで作業、恵比寿のdot. Grill and Barで商談、みなとみらいで商談、鶴川ココデンタルクリニックで作業、中洲川端のカフェ・ベローチェで打ち合わせ、中洲真屋でお客様と飲み、冷泉閣ホテル川端で作業×2、大牟田で商談と調査、セブンイレブン 福岡松島4丁目店で作業と打ち合わせ、博多の貝塚で商談×2、筥崎宮へお客様と参拝、花山でお客様と飲み、初台で商談、まちの駅 ぽっぽ町田で書類提出、下北沢極鶏.Barで飲み、恵比寿で商談、恵比寿Na-Naで打ち上げ会、町田市役所、サテライトオフィス×5

・三月ツイート

https://togetter.com/li/1487886


アクアビット航海記 vol.19〜航海記 その7


あらためまして、合同会社アクアビットの長井です。
弊社の起業までの航海記を書いていきます。以下の文は2017/12/8にアップした当時の文章が喪われたので、一部を修正しています。

データ入力の仕事に挫折する

データ登録の仕事で思った以上にお金がもらえた。そのことに味をしめた私。
今までは先輩に頼りきりだったので、自分でも動かねば、と一念発起したのでしょうか。私は派遣社員として他の会社に登録する道を選びました。
たかが登録。
今のわたしから見ればなんのことはありません。
ですが、時代は1998年。
多分、登録を行う上で、ウェブ経由で行う方法などなかったはず。電話か何かでアポイントを取り、派遣会社へ訪問したのでしょう。それは、今と比べて労力のかかる仕事です。
でも、一時は鬱に沈んでいた私も、そこまで踏み切れるようになったということでしょうか。
その派遣会社の名前はエキスパート・スタッフさんです。今も大手としてよく知られていますよね。

ほどなく、エキスパート・スタッフさんからオファーが来ました。
その仕事は、FileMakerへの入力です。自宅のパソコンにFileMakerをインストールし、東急ハンズの商品のポップを決まった通りに入力し、納品する。デザインスキルは不要で、価格や商品名を入力するだけでよかったように覚えています。
それは、私にとって初めての在宅ワークでした。

話はそれますが、本稿を書く10日ほど前に(2017/11月末)に、FileMakerの案件を受注しました。
実は私がFileMakerに携わるのは東急ハンズのポップ作成以来なのでした。
当時はオペレーターとして、今回は移行エンジニアとして。
この記事を書くタイミングでFileMakerの案件が受注できたことに何かの縁を感じます。一抹の感慨とともに。

さて、FileMakerの仕事を行っていた私。ですが、この案件も程なく終わってしまいました。そして、この仕事から後、パタリと新規案件が来なくなったのです。
当時の私は思っていました。データ入力の派遣作業とは、依頼が来たら、それを受けるだけ、と。つまり、受け身です。
ですが、それではダメなのです。たちまち収入が途絶えてしまいました。
今だから思える反省点があります。
それは、自分の仕事ぶりを評価してもらうための働きかけを全くしていなかったことです。
これは日本ワークシステムさんで派遣登録している時もそうでした。
この時、当時の私がそれまでの自らの仕事ぶりがどうだったかを聞き、案件が終わる度に、私の仕事ぶりを評価してもらうように聞いていれば、仕事ぶりを改善する余地はあったはずです。
ところが当時の私はそうした作業をまったくしていませんでした。
まだまだ、私は受け身で仕事をやり、受け身の状況に流されていただけなのでした。

社会保険労務士事務所で自転車をこぐ日々

収入が途絶え、困った私は、またしても政治学研究部に頼ります。
この時、私を助けてくれたのは、政治学研究部の先輩ではなく後輩でした。
その彼が入っていたバイト先を抜けるにあたり、後任として私を紹介してくれたのです。
そのバイト先とは、社会保険労務士事務所でした。阪急の西中島南方駅の近くにありました。
この時、私を助けてくれた後輩M君にもいまだに感謝しています。

この社会保険労務士さんは確か、菊池さんといったように覚えています。
ですが、事務所はもう閉じてしまわれたようです。当時もすでに菊池さんは年配でした。今、ネットで検索してもそうした名前の事務所は見当たりません。
私はこの社会保険労務士事務所では、オフコンに社会労務のデータを登録する仕事を行っていました。社会保険労務士さんですから給与データなどを入力していたのかもしれません。
そして印刷した伝票を週二回ほどのペースで福島区の取引先に届けていました。
今、思えば、その仕事も気楽なものでした。
西中島の事務所へは、西宮の自宅から毎日自転車で通勤していました。
その足で福島区のお届け先まで自転車で向かう。そんな日々だったように覚えています。

そんな私の自転車通勤の日々は、数カ月で終わりを告げます。確か1998年の10月いっぱいまで続けていたように思います。この社会保険事務所のアルバイトを辞めるいきさつは、次回の連載で触れたいと思います。

芦屋市役所から始まり、社会保険事務所まで続いたデータ入力オペレーターの日々。それは、私の打鍵能力を鍛えてくれました。
後年、システム・エンジニアとしてさまざまな現場を渡り歩いた私ですが、自らの打鍵スキルに助けられたことは数えきれません。
ですが、いくらキーボードの入力に長けていようと、それだけでは身を立てられないのです。ましてや、結婚して家族を持つとなると。
そう、当時の私は結婚を考えるようになっていました。
結婚のことを触れるには、1998年の秋から少し時間を遡らねばなりません。

結婚を意識する

それは忘れもしない、1998年の2月末のことです。
その日、私は結婚の相手と考える方と初めて会いました。その相手こそ、今の妻です。
妻とのなれそめを紹介すると長くなるのでここでは書きません。
ただ、なれそめの一つがネットのBBS(電子掲示板)であったことは言っておくべきでしょう。

SNSがまだ市民権を得るどころか、存在もしていなかった当時。オンラインでコミュニケーションをとる手段は、メールくらいしかありませんでした。
先に書いたBBSとは、ウェブ上の掲示板のことです。
その掲示板で私と妻は初めて会話を交わしました。
私がその掲示板を訪れるきっかけは、長くなるので書きません。私の小学校の頃からの友人H君が関わっています。
そして、掲示板で妻とも会話をするようになってからしばらくたった2月末、私はそれまでエンもユカリもなかった町田を訪れます。そして、今の妻と出会うのです。
なぜ町田に来ることになったのか。それは、H君が町田まで妻に会いに行くと同行者に私を誘い、私が付いていったからです。
この時の旅も道中もエピソードに溢れており、書くネタには事欠きません。ですが、本連載の主旨とは外れるので割愛させていただきます。

当時、時間だけは自由に使えた私。相変わらず本は読みまくっていました。
ですが、一方で黎明期のインターネットにも大いにはまりました。当時の言葉でいえばネットサーフィンです。いろんなページを巡っていました。
メールでのやりとりや面白そうなメールマガジンにやたらと登録し、上にも書いたBBSや、ICQなどを駆使して盛んにコミュニケーションもしていました。
タイや香港、スコットランド、ロンドンの人とオンラインでのやりとりしていたのもこの頃です。

1998年といえば、フランス・ワールドワールドカップが行われた年です。私はこの時、フランスワールドカップに観戦に行こうとしていました。
その旅費を稼ぐため、スコットランドのマッカラン蒸溜所に英文の手紙を送り、雇ってほしいと頼んだのもこの時です。
まだ付き合う前の妻を半蔵門のイギリス大使館や赤坂のイングリッシュ・カウンシルに連れ回したのもこの頃です。

皮肉なことに、私を沈んでいた日々から救ってくれたのは、内向的なオンラインの世界でした。
当時、メーリングリストがあちこちで立ち上がっていました。私はあちこちのメーリングリストに参加し、そのうち二つのメーリングリストにはオフ会にまで参加しました。その二つのメーリングリストとは阪神間MLとBacchus MLです。
この時に二つのメーリングリストのオフ会で知り合った方々には、その後の人生でとてもお世話になりました。本稿を書いている今もお世話になっています。
オンラインで知り合った方とオフ会で会い、見聞や知り合いを広げる。そして、BBSで知り合った女性とリアルに結婚する。
この頃の私が、黎明期のネットから受けた恩恵は、とても重要なものでした。
この時に培った多様な知見が、後の起業にも役立っていることは言うまでもありません。

鬱に陥った過去を吹き飛ばすかのような活発な日々。
この頃の私は、自分が何になれるのか、何で糧を得るのか、自分の将来を必死に模索していました。
物書きとして身を立てる道を探りました。本をひたすら読み漁って世に出るヒントを得ようとしました。オフ会に出て人との繋がりを求めました。
この時期の私に、まだ起業という考えはありません。
ですが、今から考えると、当時の私の心の在り方は起業を目指す人のそれだったのかもしれません。
勤め人におさまろうという気持ちは、相変わらず希薄なままでした。

ところが、そんな私が勤め人になろうと試みます。
私が入り込んだその企業は、ブラック企業でした。


2020年2月のまとめ(法人)


今年度から、毎月ごとに個人と法人を分けてまとめを書きます。

令和二年二月。世界はコロナウィルスに大きく揺さぶられました。とはいえ、弊社の業務には直接の影響は及んでいません。平素からリモートワークを実践してきたためです。
むしろリモートワークを進めたいからkintoneについて話を聞かせてほしい、というオファーが届いたぐらいです。弊社にとっては今回の流行り病は、ある種の追い風となっているようにすら思えます。

ただ、総括すると今月の売り上げは低調でした。もっともそれは、例年と同じ傾向でもあります。お客様にとって二月とは、予算がつく四月までは発注が控えめとなりながら、年度末の三月に向けた検収には早い月だからです。
それを裏付けるかのように、いくつもの四月以降の案件をいただきました。その準備に余念のない月となりました。

複数の案件を並行して進められるようになりつつありますが、これからも弊社の認知度をあげるためには外部での発信が欠かせません。そうした活動を通して、あらたなご縁からお仕事がつながるからです。来年度に向けてよい感じの月になったと思います。
達成度4割。達成感4割。満足感5割。それが代表自身の自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 二月度の売上は、まだ確定していませんが、目標額の7割にとどまりそうです。
毎年の傾向からすると下がるとは予想していましたが、代表の予想をさらに下回ってしまいました。その原因としては、上に書いた理由以外にも、お客様のご検収が三月に伸びたり、案件の開始が遅れてしまったりの案件があったためです。

もっとも、今までの活動で得た複数のご縁を通してさまざまな案件の引き合いをいただいています。
そうした四月以降の案件に備えた作業が増えたため、かなりの時間の業務をこなしたにも関わらず、売上にはつながらなかったというのが実感です。そのため、一部の案件については着手金の依頼もさせていただきました。

実績を出しながら、日常も充実させる。それらは全て、代表の求めるワークライフバランスの実現につながってゆくはずです。来年への準備という意味で、今月も実りは得られたと思っています。

§ 業務パートナー 一,二月は弊社で完結する作業が多く、業務パートナーさんとの協業はあまり行っていませんでした。
ところが、春以降の案件の引き合いを複数のチャネルを通じていただいています。また、いくつかのSES業務に属するお願いもいただいています。
そうした点を含め、業務パートナーとの協業活動を活発にしていく予定です。
すでに来年の業務量が増えることを見据え、二月には複数のパートナー企業様と打ち合わせました。
外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。そもそもの案件ごとの見積額を上げ、なおかつ教えつつ、フォローする時間だけ生産性が落ちることを踏まえた外注費をその都度算出しなければなりません。
引き続き抜かりなく進めていく予定です。

§ 開発案件 今月は九割の開発案件がkintoneがらみでした。
kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、周辺システムと組み合わせての提案が受注につながっていると思われます。
ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。
今月もまた新規に複数のkintone案件をご依頼や見積もりのご依頼をいただいています。
また、来年以降はfreee社とも関わりを強めていく予定です。また、kintoneと連携できるサービスを広げるため、いくつかのサービスの調査と勉強を続けています。スマレジ、Infomart、帳票Online、カラーミーショップ、freee、ヤマトビジネス、メールワイズ、Twilioなど。

今月末にkintone セールスアドバイザーの認定証も届きました。kintoneのエバンジェリストとしての認知度を各所のイベントでご縁をいただく際には全面的に広めています。最近ではfreeeに詳しいというお褒めもいただきました。続いてはAWSの資格取得へと向かう予定です。今後の案件拡大のために。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。
弊社としては問題ないのに、家計が絡むととたんに脆弱になる。
いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。
年末から堅牢化に向け、負債を無くするための業務と費用も発生しています。この件は、引き続き最優先で取り組んでいきます。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。
雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりません。
正月の三日間で来季の経営計画の基本は作成したので、引き続き中期計画の策定に取り掛かりたいと思います。

§ 人脈の構築 今月はコロナウィルスに世の中が翻弄され、私が参加する予定のイベントが五つ中止となりました。そのうちの一つは代表が運営スタッフとして関わっていました。
一方で、開催された複数のイベントには参加できました。
Biz Tech Frontier(2/5)では、freee社が掲げるオープンプラットホームの理念を受け止めました。LOCAL LETTER LIVE(2/19)では、地域に目を向ける方々とのご縁ができました。カマコン(2/21)では鎌倉を楽しくする本格的な集まりで目を開かされました。
それらの場所では他では得がたい知己が増え、今後も互助できそうなつながりが作れました。
こうした活動が弊社の今後の業績を左右すると信じています。引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。Biz Tech Frontier(2/5)、LOCAL LETTER LIVE(2/19)、カマコン(2/21)。
本来ならそれ以外にも、トヨクモユーザーフェス(2/26)、某社のプライベートイベント(2/26)、freee Open Guild #08(2/27)、Devrel Con Tokyo 2020(2/28)、LivingAnywhere Commons 遠野オープニング(2/29-3/1)にも参加する予定でした。いずれも中止となってしまったのが残念です。
弊社の開発や記事執筆のお仕事はこうした対外活動から生まれています。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。
あと、今年からfreee Open Guildの運営にも携わっています。ところが二月末に予定されているfreee Open Guild #08が中止になってしまいました。これはとても残念なできごとでした。
来月もコロナウィルスによるイベントの自粛は続くでしょう。3/13に登壇する予定だったkintone Café京都も延期となりました。3/2のkintone Café東京にはオンライン参加できるかが微妙です。
一方、四月にはkintone Café神奈川 Vol.6の告知も済ませております。別のkintoneとfreeeのイベントにも登壇する準備を進めています。
イベントの自粛のムードが漂っている昨今ですが、そうした場には積極的に関わっていくつもりです。
その他にも一月末にイベントでご縁があった獣医師の先生とCaféで打ち合わせたり(2/12)、情報親方と酒を酌み交わしたり(2/13)、技術者さんのご縁をつなぐ打ち合わせをし、バレンタインチョコをいただいたり(2/14)、カマコンの懇親会(2/21)で皆さんとご縁を深めたり、といった活動を行っております。
サイボウズさんからもチョコをお送りいただき、その数日後にはオフィシャルパートナーとしての打ち合わせもこなしています。
また、個人的なイベントですが、西丹沢のシダンゴ山への登山にお客様を二人お誘いし、一緒に登ったりおいしいお酒を飲んだのもよい思い出です(2/9)。
皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。
(「アクアビット航海記 vol.18〜航海記 その6」)
かつての代表が迷走する姿は、自分で執筆していて大丈夫か?と思ってしまいます。でも、誰もが若く未熟な時期を通り過ぎ、壮年に至って結果を出すのです。そして、老いてはかつての活力を発揮できなくなってゆくのでしょう。
こうやって連載を書きなおしていると、それが人の宿命なのだ、と達観できそうです。

今月書いた本のレビューは10本(
坂の上の雲(三)
坂の上の雲(四)
坂の上の雲(五)
坂の上の雲(六)
坂の上の雲(七)
坂の上の雲(八)
ライフログのすすめ―人生の「すべて」デジタルに記録する!
運営からトラブル解決まで-自治会・町内会お役立ちハンドブック
セヴィラの理髪師
イノック・アーデン」)。

今月書いた抱負は0本() 。

今月書いた弊社の活動ブログは1本(
アルファメール2で独自SSLを無料で」)。

§ 年表

・二月お仕事

BUSO AGORAで作業×2、渋谷ストリームホールでBiz Tech Frontier参加、銀座で商談、銀座のカフェ・ベローチェで商談、京橋のSYNQA (ITOKI Tokyo Innovation Center)で作業×2、町田の椿屋カフェで商談、てくのかわさきで打ち合わせ、合羽橋商店街で商談×2、蔵前で飲み、新宿のcafe ONE HALFで商談、ココデンタルクリニックで商談×3、鶴川のD-Lightで商談、サイボウズ 本社、両国のCRAZY でLOCAL LETTER LIVE参加、中目黒で商談、大崎で商談、鎌倉のまちの社員食堂でランチ、鎌倉の旅する仕事場 御成オフィスで商談、Siblings鎌倉で作業、鶴ヶ岡会館でカマコン参加、CHOCOLATE BANK 鎌倉店で懇親会参加、関内で商談、稲荷町の秘密基地で商談、神楽坂で商談、五反田のfreee株式会社で商談、サテライトオフィス×10

・二月ツイート

https://togetter.com/li/1475019


アクアビット航海記 vol.18〜航海記 その6


あらためまして、合同会社アクアビットの長井です。
弊社の起業までの航海記を書いていきます。以下の文は2017/11/30にアップした当時の文章が喪われたので、一部を修正しています。

はじめてSEの現場に触れる

1997年の11月。芦屋市役所を離れた私が次に訪れた場所。それは神戸三宮でした。
DUNLOPといえばテニスボールで有名ですが、ここのシステム統括部門らしき場所。それが私の次の職場となりました。
このDUNLOPの現場も、大学の政治学研究部の先輩に手配していただきました。芦屋市役所の時と同じです。
その先輩の属する大手情報企業の系列会社の配下で、アルバイトか派遣社員の身分として雇われたような気がします。

ところが、私はここで一体何を仕事をしたのか、そもそもなんのためにいたのか、全く思い出せないのです。
それもそのはずで、私はなんの仕事もしていないからです。
冒頭で「統括部門らしき場所」と書きました。”らしき”というのは、私がそもそもそこが何を目的とする場所かを皆目、理解していなかったからです。
なんとなく記憶しているのは、全国のDUNLOPの統括部門だったことと、現地にエンジニアを派遣し、エンジニアの支援をする場所だったことだけ。そもそもエンジニアを何のために派遣していたのかも知りません。何を統括するのかも、まったく私は覚えていません。ただ座って周囲の忙しそうな様子を眺めているだけの私でした。
それも周りの会話をなんとなく覚えているから言えることで、当時の私はなんのためにそこにいたのか、今もなお思い出せません。
大勢の技術者がそれぞれの業務に従事する中、私は数人のシステムエンジニアのチームに配属されました。そのチームのエンジニアの皆さんには随分とかわいがってもらった記憶もあります。

私が覚えているのは、wordでALTキーを押しながらドラッグ&ドロップすると、行単位でなく縦方向に範囲選択できることをお見せしたら、「それは知らんかったわ〜」と感心されたことくらい。
それはつまり、本業では何も貢献していなかったことを意味しています。つまり、当時の私は何の取りえもなかったのです。
当時、私をかわいがってくださったエンジニアさんたちの名前も顔も何人かは覚えています。
ですが、今の私がもしその時にお世話になった皆さんに「お久しぶりです~」とあいさつしても「は?どなた?」と言われることでしょう。全く覚えられていないと思います。
ひょっとしたら「ああ、あの、ただ、座っていただけの彼?」と言われるかもしれません。忘れられていることの方が必然です。

結果、その現場も数カ月で離任になりました。
それはそうでしょうね。そもそも、なんの業務をしている部署かすら把握も出来ないような、そんな使えない人間を養うほど仕事は甘くはありませんから。今の私ならそう思います。

ところが、私がDUNLOPを離任した後、大学の先輩はそんな私のために懲りずに骨を折ってくださいました。
そして、私を人材派遣会社に紹介してくださったのです。つまり、派遣社員です。
派遣元の会社名は日本ワークシステムさん。山陽電鉄のグループ会社で、今も会社は活動されているようです。

派遣社員へ

日本ワークシステム経由で、私は2カ所に派遣されました。
確か最初は神戸市役所の本庁舎です。ここでもわたしが何をしていたのか、記憶は曖昧ですが、確か教育委員会でデータエントリーのオペレータをしていたように思います。
ここで覚えていることもあまりありません。多分、言われるがままにデータ入力をこなしていたのでしょうね。何を入力していたのか全く覚えていませんから。
この部署は教育委員会のシステムの統括部門だったらしく、サポート担当のエンジニアの方が淡々と電話対応していた声の調子だけはいまだに覚えています。木で鼻をくくったような事務的なサポートな感じだけは。

さて、神戸市役所には2週間程度、通勤していたでしょうか。
次に私が派遣されたのは山陽電鉄の本社です。
ここではAccessのフォームに住宅情報を入力していたようなうっすらとした記憶が残っています。
もう一つ覚えていることといえば、Accessのデザインなどしたこともない素人の私が、エンジニアの方に対し、入力フォームに注文を付けたことです。
全く、なんという思い上がりでしょうか。

もちろん、二つの現場ではデータエントリーはきっちりこなしましたよ。
神戸市役所でも山陽電鉄でも与えられた期限よりもだいぶ早く打ち込みを終えてしまいました。おそらく私の打ち込むスピードが速かったのでしょう。
全体の入力件数とその報酬額が決まっていたため、入力が早く終わった分、日割りするとずいぶんと高い報酬額をいただきました。
たしか一日単位に換算すると数万円にも及んでいたような記憶があります。

私は望外の報酬を得たことで、データエントリーの仕事を甘く見てしまいました
データエントリーの仕事を続けていれば一日で数万円も稼げてしまう、と。今、思うと勘違いもはなはだしい。
でも、当時の私はまさに大いなる勘違いの中に遊んでいました

今の私はその勘違いの危うさをすぐに指摘できます。データ登録をこなすだけでは将来の成長が見込めないことを。
それは、今の私が当時のデータエントリーやDUNLOPでこなしたはずの仕事の内容を全く覚えていないことでも明らかです。
もし私がこれらの仕事から前向きに何がしかの糧を得ようとし、自分を成長させようと取り組んでいたら、仕事の内容ぐらい少しは覚えているはずだからです。それがたとえ20年前のことであっても。
要するに当時の私はまだ舐めていたのでしょう。仕事を。

私が山陽電鉄の現場を離れたのがいつか、全く記憶にありません。
そもそも上に書いた当時の私の勤務先の変遷すら、本当にそうだったのか確かな自信はありません。
芦屋市役所→DUNLOP→神戸市役所→山陽電鉄の順だったと思うのですが、芦屋市役所→神戸市役所→山陽電鉄→DUNLOPの順だったかもしれません。一切が曖昧です。
この流れを過ごしたのがどれぐらいの間で、終わったのがいつだったかも全く覚えていません。
当時はとにかく、何も記録に残していませんでした。今の私にもはや確かめるすべはありません。1998年の夏前でしょうか?

この当時のあいまいな記憶

今の私が、当時の私を叱るとすれば、当時の私は言われるがままだったことでしょう。何も考えていなかった自分を真剣に怒ることでしょう。
工夫のない仕事はただの作業作業は人は成長させない。ということを口を酸っぱくして教え諭そうとし、しまいには手ごたえのなさに激高するに違いありません。
今の私からみた当時の私は、起業できるだけの経験もなければ、起業できる兆しすらまったく感じられません。

ただ、好転の兆しが全くなかったわけではありません。
というのも、データ入力で食っていけると思い込んだ私が甘かったことを間もなく悟るためです。
そして、私にいよいよ転機が訪れます。

本連載の第十五回で1996年から1999年の3月までは記憶があいまいと書きました。
このころ、私は鬱状態から脱したとは言え、全てが手探りな日々が続いていました。
ですが、鬱から立ち直った反動は、私を再び前向きな方向に推し進めます。
本は相変わらず読みまくっていました。一日で5,6冊を読破することなどザラにありました。
読書だけにとどまらず、私は再び世の中に飛び出していこうともがき始めます。
いろんな場所を訪れ、人と会話し、何かをつかもうとし始めるのです。

それにしてもこうやって当時のことを思いだすと、先輩の恩をあらためて深く感じます。

次回も、引き続き私の日々を書きます。


アルファメール2で独自SSLを無料で


1.SSL化への圧力迫る-能書き

  Topへ↓

いよいよ、サイトのSSL化が避けられなくなってきました。
数年前からGoogle社が推奨してきたSSL化の流れは、徐々に加速しつつあるようです。
最初は推奨文書のアップから始め、次いで、Chrome上のアドレス欄にアラートを出し、
ついには混合コンテンツをブロックするという施策を打ち出しました。
https://security.googleblog.com/2019/10/no-more-mixed-messages-about-https_3.html

今回は混合コンテンツのブロックだけですみました。ですが、そもそも非SSL化されていないhttp://~のサイトについても、やがて見られなくなる日が来るでしょう。
こちらのリンク先でもそうした懸念が表明されています。
https://support.google.com/chrome/thread/18761336?hl=ja

この問題についてはさまざまなサイトが以前から見解をアップしてくださっています。
そうしたサイトのどれもが共通で認識していること。それは非SSL化のサイトが駆逐されるのは時間の問題だということです。
https://www.future-shop.jp/magazine/info-mixed-content

2.アルファメールの残念さ

  Topへ↓

そうした流れは数年前から弊社も把握していました。サイト制作からシステム構築へと弊社の業態を転換させてきた間も。
ところが、弊社のサイトがSSL化されたのはつい先日。1月の半ばになってからのことでした。後発も後発です。なぜか。

それは、弊社のサイトを置いているホスティングサービスの制限によるものでした。
弊社は2008年から大塚商会さんのアルファメールを使い続けてきました。その理由は代表が前職で大塚商会さんのサービスを多数導入してきた実績があり、そのご縁で代理店として契約していたからです。

ところが残念なことに、アルファメールのサイトが進化するスピードはあまり褒められたものではありませんでした。
上記のようなSSL化の流れが明確になってからも、アルファメール上で独自SSLが設置できる兆しは現れません。
※アルファメールプレミアでは設置可能でした。
※共用SSLであれば可能でした。

このままでは弊社サイトのみならず、提供したお客様のサイトにも影響が出かねない。
それを危惧して何度か改善をお願いしていました。大塚商会さんのサイトには以下のエントリがあるのに、と思いながら。
https://mypage.otsuka-shokai.co.jp/contents/business-oyakudachi/it-security-course/2018/10.html

平成三十年の11月、以下のようなプレスリリースが出されました。待ちに待った後継サービスです。
アルファメール2には、他の大手ホスティングサービスの価格帯に見合った同等の機能が備わっているに違いない。そう期待していました。
https://www.otsuka-shokai.co.jp/corporate/release/2018/181015.html

ところが残念ながら、アルファメールからアルファメール2へのサイトデータの載せ替えツールが提供されることはありませんでした。つまり、サイトデータもデータベースも自分で載せ替えなければならないのです。
そして、独自SSLはアルファメール2で可能になったとはいえ、有料の証明書サービスを導入しなければならないことも判明しました。

正直に申し上げて、これではお客様に勧められないと思いました。
さらに、弊社サイトのホスティングも別の場所に変えようかと真剣に検討しました。

3.アルファメール2への載せ替え

  Topへ↓

結局、弊社サイトは別のサービスに切り替えず、アルファメールからアルファメール2に乗せ換えました。
理由は、弊社がお勧めしたお客様への責任です。
お客様がアルファメール2への載せ替えを選択した場合、弊社でも作業ができるよう、実例を作っておかねば、と思ったのです。

それにあたり、アルファメールからアルファメール2への載せ替えは自分で行いました。
移行にあたっては、WordPressも少し古いバージョンを使っていましたが、バージョンを最新にしました。
WordPressにも移行用のプラグインはあるようですが、今回はそれを使わずに移行を行いました。
phpMyAdminを使い、データベースの構造とデータをsqlファイルとして保存し、それを新サーバー側に取り込みます。
FTP経由のダウンロードとアップロードに時間がかかりましたが、移行自体の作業は1日程度で終わりました。
※アルファメール2へのサーバー移行については、アルファメールユーザーに大塚商会さまからご案内メールが出されています。その方法はこの記事には載せません。WordPressのサーバー移行で検索してもらえれば、いくつか記事が見つかると思います。

4.独自SSLへの障害

  Topへ↓

問題は、独自SSLです。
アルファメール2が推奨する証明書は、サイバートラスト株式会社が提供する「Sureserver」「SureserverEV」の二つが利用できるようです。
それぞれ月額で3,800円/4,800円が必要です。
この価格設定だと間違いなく他社のホスティングのほうが値ごろです。ワンクリックで独自SSLを実装できて、スペックも優れたサービスがありますので。

弊社としてもこの金額を支出する必要は感じませんでした。
なので、調べました。福島県お試しテレワークツアーで訪れたco-ba koriyamaでテレワークの一環として。
そして、見つけました。無料で独自SSLの証明書を取得し、アルファメール2に適用する方法を。

5.独自SSLの導入準備

  Topへ↓

以下にその方法をご紹介します。
ただし、この作業は自己責任でお願いします。当方では皆さまが行った作業に対して責任はとれません。
また、この方法はLet’s Encryptを使用します。Let’s Encryptとはフリーで自動化されたオープンな認証局をうたっています。https://letsencrypt.org/ja/
そして、Let’s Encryptで発行された証明書の有効期間は90日間です。つまり、90日おきに証明書を取得し、それをウェブサーバーに適用させねばなりません。
その作業が煩雑なため、自動で処理を行うスクリプトも用意されています。が、アルファメール2ではその方法が使えません。その点をまずご留意願います。

まず、契約情報から、ログイン情報を取得します。

その上でアルファメールの会員サイトにログインします。

アルファメール2になって一新された会員サイトに独自SSLのアイコンがあります。これをクリックします。

続いての画面では「独自SSL設定」ボタンをクリックします。
※「CSRの作成」ボタンは使いません。

すると「SSLサーバ証明書」「中間認証局証明書」「秘密鍵」の三つの入力欄が表示されます。

ここでLet’s Encryptの出番です。調べてみると、Let’s Encryptの使用方法として王道なのは、サーバーにSSHでログインし、コマンドで任意の場所に秘密鍵を生成する方法です。
しかし、アルファメール2の場合、SSHログインはできません。また、FTP経由でも秘密鍵を置けるディレクトリにはアクセスできません。

しょせん、自分でサーバーの内部にアクセスできないアルファメール2のようなホスティングサービスで、無償で独自SSLを使おうとするのが間違いなのでしょうか。

いえ、あるのです。
Let’s EncryptにはWindows向けクライアントがあります。
https://github.com/PKISharp/win-acme/releases

6.win-acmeの導入

  Topへ↓

上のページからインストーラーがダウンロードできます。私がインストールした時点では、v2.1.2.641が最新版でしたが、本稿をアップした2020/2/4のタイミングではv2.1.3.1が最新版のようです。
上のページにはzipファイルが四つ並んでいます。


win-acme.v2.1.3.671.x64.pluggable.zip
win-acme.v2.1.3.671.x64.trimmed.zip
win-acme.v2.1.3.671.x86.pluggable.zip
win-acme.v2.1.3.671.x86.trimmed.zip
お使いのWindowsが64ビットバージョンの場合は、x64がファイル名に含まれる上の二つが対象です。32ビットバージョンの場合は、x86がファイル名に含まれる下の二つが対象です。
また、trimmedとpluggableの違いは以下の記述にあるように、フル機能が使えるかどうかです。今回はpluggableを選びました。

Release distribution changes

You may notice that the downloads are different previous releases. We renamed the downloads for plugins to make it more obvious that these are not the main program. Aslo we now distribute four versions of win-acme. There are x86 (32 bit) and x64 (64 bit) executables, and for each of those there is a trimmed release optimized for size and a pluggable version that contains the full .NET Core 3 runtime, which most plugins are expected to need. So if you are downloading/developing extra plugins, this is the version you will want.

ダウンロードしたzipファイルを任意の場所で解凍します。

続いて、解凍したフォルダのwacs.exeを管理者権限で実行してください。マウスの右クリックで管理者権限で実行のメニューが出てくるはずです。

実行するとコマンドプロンプトのウィンドウが起動します。そこでコマンドを対話式で操作していきます。

ここでは、新たな秘密鍵を作成したいので「m」を入力し、Enterキーを押してください。

続いてこのような画面がでます。1:手動入力 2:他のプログラムで作られたCSRを使用のどちらかを選ぶようです。

ここでは手動で登録したいので「1」を入力し、Enterキーを押してください。

続いてこのような画面がでます。SSLを適用させたいドメインを入力します。
例えば
http://www.domain-**-domain.jp を
https://www.domain-**-domain.jp と表示させたい場合、
www.domain-**-domain.jp
と入力してください。

設定できました。続いてSuggestedとして推奨されているとあるので、そのままEnterキーを押してください。

続いてこのような画面がでます。ここでは、どのようなルートでサーバーに秘密鍵ファイルをアップロードしたいかを選びます。

ここに出てくる選択肢はどれも対象外です。ですが、秘密鍵をパソコンに保存させたいので、3:FTP(S)を選んでください。

続いてこのような画面がでます。
先ほど3:FTP(S)を選びました。そのため、FTPのアップロード先ホストを選びます。

FTPのアップロード先ホストはアルファメールの契約情報に記載のFTP転送サーバーに記載されています。

記載されていたFTP転送サーバーの頭に「ftp://」を付け加えて入力します。

先ほど入力したwww.domain-**-domain.jpが存在しない(Invalid path)と怒られてしまいました。なので正式なパスを入力してします。ここでは隠しています。
続いての画面では、今までで設定した情報を基にweb.configファイルを作ってよいかと聞かれています。

「y」を入力し、Enterキーを押してください。

さらにUsernameの入力が求められています。ここもアルファメール2の契約画面にあったFTPログイン名を入力し、Enterキーを押してください。

続いてPasswordの入力が求められています。ここもアルファメール2の契約画面にあったFTPパスワードを入力し、Enterキーを押してください。

続いての画面では、証明書署名要求(CSR)で使用するキー(タイプ)などの証明書のプロパティを選びます。1: Elliptic Curve key  2: RSA keyのどちらかです。

ここでは2:RSA key、を選びます。「2」を入力し、Enterキーを押してください。

続いては、証明書の保存場所を選択します。
1:IISサーバーへの保存 2:PEM形式でエンコードされたファイル 3:Windows証明書ストアのどれかを選びます。

ここではファイルとしてWindows内に保存したいので「2」を入力し、Enterキーを押してください。

続いてはPEM形式でエンコードされたファイルの保存場所を聞かれます。

ここではCドライブの直下(C:¥)に保存しましょう。「/」を入力し、Enterキーを押してください。

続いては、PEM形式でエンコードされたファイルの保存場所を再度聞かれます。

ここではこれ以上の保存は必要ありませんので、「3」を入力し、Enterキーを押してください。

続いては、証明書ファイルの保存後に何らかの追加処理を実行するかを聞かれます。

ここではこれ以上の処理は不要なので「4」を入力し、Enterキーを押してください。

ここでは、すでに設定した証明書ファイルと今後のスケジュールが記載されています。これを上書きして良いかが聞かれます。

「y」を押したことで、今までの設定情報が表示されます。この情報に置き換えてよいかが聞かれます。

「y」を入力すると、設定情報が表示されます。ここでは定期アップデートの情報が指定されます。
Let’s Encryptは90日ごとに証明書を更新しなければなりません。その自動化を行うための情報を確認するとともに、その自動化の処理を行うための別のWindowsアカウントの有無を聞かれます。
この自動化はアルファメール2では使えません。ですが、ファイル保存のために実行しておきます。

「y」を入力して、Enterキーを押すと、続いて該当するユーザー名を入力してください。

上記処理で求められるユーザー名を取得するには、別にコマンドプロンプトを立ち上げ、whoamiと入力して、Enterキーを押せば、ユーザー名が表示されます。

ユーザーをこのように入力し、Enterキーを入力してください。

続いてパスワードが求められます。Windowsへのログイン時に該当アカウントで使用するパスワードを入力し、Enterキーを押してください。

新たなスケジュールが設定されました。

先ほど、PEM形式でエンコードされたファイルの保存場所をc:¥を表す「/」と指定したので、Cドライブの直下に以下のようなファイルが生成されています。ここでは三つのファイル名は、
www.domain-**-domain.jp-key.pem
www.domain-**-domain.jp-chain.pem
www.domain-**-domain.jp-crt.pem
になるはずです。ダミーファイル名なので少し変えています。

7.証明書の設定

  Topへ↓

それでは、再びアルファメール2の設定画面の独自SSLの画面に戻ってください。
上から
「SSLサーバ証明書」には、www.domain-**-domain.jp-crt.pemの内容を全て選択(末尾に空行が選択された場合はその空行は含めなくてよいです)し、貼り付けます。
「中間認証局証明書」には、www.domain-**-domain.jp-chain.pemの内容を全て選択(末尾に空行が選択された場合はその空行は含めなくてよいです)し、貼り付けます。
「秘密鍵」は、秘密鍵を入力するにチェックを入れた上で、その下のリンクをクリックして表示される欄にwww.domain-**-domain.jp-key.pemの内容を全て選択(末尾に空行が選択された場合はその空行は含めなくてよいです)し、貼り付けます。
貼り付けた後は保存します。

保存中の画面です。

保存が終わるとSSLがインストールされた旨のメッセージが表示されます。

8.常時SSL化の設定

  Topへ↓

続いて、「常時SSL化の設定」ボタンをクリックしてください。

こちらの画面ではhttp://でアクセスされてきたリクエストを全てhttps://に置き換えるように設定を変更します。
もしURLをhttps://www.domain-**-domain.jpではなく、https://domain-**-domain.jpにしたいのであれば、ラジオボタンを変更します。
保存を押せば設定されます。

9.混在コンテンツのチェック

  Topへ↓

さて、これでサーバー自体のSSL設定は完了です。

設定したURLでアクセスしてみてください。
もし、Google Chromeで以下のような画面になってしまった場合、証明書が正常に適用できていないか、混在コンテンツとして認識されている可能性があります。

混在コンテンツとは、httpsで構築されているはずのサイトのどこかにhttp://で始まるパスで指定された画像や動画やJavaScriptファイルやCSSファイルが内部で埋め込まれている場合に起こります。
たとえばWordPressの場合、header.phpやpage.php、single.phpのどこかにhttp://のファイルが呼び出されている可能性があります。
また、投稿のどこかにhttp://が紛れている場合はsqlで一括でhttps://に変更する方法もあります。

上記画像はそのsqlで一括変更する方法です。もしあまりsqlに詳しくない場合は、しかるべき業者に頼んだほうがよいでしょう。
もちろん弊社でもご相談いただければご対応します。

そこでうまくいけば以下の様に鍵が表示され、SSL対応が完了したことがわかります。

10.証明書の自動更新への注意

  Topへ↓

先にLet’s Encryptで取得した証明書の期限は90日間と述べました。
一方で、先ほどのWin-Acmeの操作の中で証明書の次回スケジュールがNext renewal scheduled at yyyy/m/d hh:mm:ssと表示されていました。
ですが、何度か書いた通り、本稿でご紹介した方法では自動更新ができません。
証明書の秘密鍵をサーバーに渡す方法が、アルファメール2の設定画面から値を張り付けて保存する以外にないためです。
自動化するとすればRPAツールを使うしかなさそうです。
ここは間違えないように自己責任で再取得をお願い致します。

11.アルファメール2へのお願い

  Topへ↓

繰り返しますが、他の有名なホスティングサービスではボタン一つで無償の独自SSLの適用が可能です。
アルファメール2でも無料の独自SSLの設定が可能になることを強く望みます。
その結果、当記事が陳腐化したとしても本望です。


2020年1月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

2020年1月は一年の初めの月でもあり、弊社の場合、決算までの残りクォーターの初めの月です。
総括すると、今月は両方の性格を色濃く映し出す月となりました。
具体的には、外部への発信や種まきを積極的に行いながら、スタートにふさわしく経営計画やサイト設定の刷新を行ないました。
そうした作業に手を動かしたこともあって、今月の実績は今年度では最低の額にとどまりました。
ですが、そうした活動が実を結びつつあり、来月以降、来年度以降に期待の持てるお話をいくつもいただいています。

複数の案件を並行して進められるようになりつつありますが、これからも弊社の認知度をあげるためには外部での発信が欠かせません。そうした活動を通して、あらたなご縁からお仕事がつながります。来年度に向けてよい感じの月になったと思います。
達成度5割。達成感6割。満足感7割というのが自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 1月度の売上は、目標額の8割にとどまりました。
額が少なかった事に比例して、代表の稼働時間にもかなりのゆとりが生じました。そして、そのゆとりを活かし、各種イベントへの参加に精を出し、手ごたえを得た月でした。
11月に弊社がサイボウズ株式会社のオフィシャルパートナーになり、各種イベントへ参加させていただいた事でできたご縁は、弊社の認知度の向上に確かにつながっています。
そうした対外的な発信を行う合間に、複数の案件をご検収や中間締めにまで結びつけられました。また、弊社サイトのSSL化がようやくなりました。サーバー環境やサイトデータの移転も併せて行ったことで、名刺にもかなりの情報を盛り込めました。
実績を出しながら、日常も充実させる。それらは全て、代表の求めるワークライフバランスの実現につながってゆくはずです。
それをパートナーや家族や地域や日本全体に広めていきたい。
これからも将来に向けての布石は次々と打っていくので、そうした来年への準備も含めて今月は評価したいと思います。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。そもそもの案件ごとの見積額を上げ、なおかつ、教え、フォローする時間だけ生産性が落ちることを踏まえた額を出さねばなりません。
今月はそうした活動はあまりおこなっていません。ほぼ弊社内だけで作業が完結したためです。
春以降、業務パートナーとの協業活動は活発にしていく予定です。

§ 開発案件 今月は九割の開発案件がkintoneがらみでした。kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用することが受注につながっています。
ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。
今月もまた新規に複数のkintone案件をご依頼や見積もりのご依頼をいただいています。

今月はkintone セールスアドバイザーの試験に受かり、講習の受講とそこで出された課題もクリアし、セールスアドバイザーの資格を名乗れるようになりました。
これで現時点で受けられるkintone関連の資格は全て取得でき、続いてはAWSの資格取得へと向かいます。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。弊社としては問題ないのに、家計が絡むととたんに脆弱になる。いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。引き続き最優先で取り組んでいきます。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。
雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりません。
正月の三日間で来季の経営計画の基本は作成したので、引き続き中期計画の策定に取り掛かりたいと思います。

§ 人脈の構築 今月はさまざまな会に出席しました。55枚のお名刺をいただきました。
また、福島県お試しテレワークツアーに参加して、新たな地平での繋がりも賜りました。デザイナー・リサーチャーLT新年会では技術者ではない方との出会いもありました。関西大学東京経済人倶楽部の総会・年賀会では先輩の方々にお目にかかりました。LivingAnywhere Commons遠野KickOffでは、地方に目を向ける志の人々と語らいました。
それらの場所では得がたい知己が増え、今後も互助できそうなつながりができました。こうした活動が今後の業績を左右すると信じています。引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。kintone 認定セールスアドバイザー講習会(1/9)、福島県お試しテレワークツアー(1/16-18)、デザイナー・リサーチャーLT新年会(1/22)、関西大学東京経済人倶楽部の総会・年賀会(1/23)、LivingAnywhere Commons遠野KickOffパーティー(1/28)、クラウドの終焉とビジネスチャンス / 60分で深まる。ビジネスセミナー!(1/31)。
開発や記事執筆のお仕事はこうした対外活動から生まれています。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。
あと、今年からfreee Open Guildの運営にも携わっており、2月末に予定されているfreee Open Guild #08の告知を完了しました。2月の末には開催レポートをアップする予定です。kintone Caféの準備も進めており、またあらためてご案内します。
その他にもパートナー企業(1/10)や技術者さん(1/8)、お客様(1/21)と合計三度、お酒を交わしてのコミュニケーションを実施しています。
毛色は違いますが、友人のご家族をサテライトオフィスにお招きし、高校生のお子さんにITの仕事とは何かについて1時間20分語るといったこともしました(1/26)。
皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。
(「アクアビット航海記 リモートワークの効用」)
今回は連載の五回に一回はコラムを挟むと決めていたとおり、リモートワークについて語ってみました。福島県お試しテレワークツアーに行ったことも契機となりました。

今月書いた本のレビューは6本(「この国の空
僕が本当に若かった頃
ビジネスモデルの教科書 経営戦略を見る目と考える力を養う
この命、義に捧ぐ―台湾を救った陸軍中将根本博の奇跡
坂の上の雲(一)
坂の上の雲(二)」。

今月書いた抱負は3本(「2020年の抱負
2020年上半期弊社の抱負(実践版)
2020年上半期個人の抱負(実践版)」。

今月書いた弊社の活動ブログは1本(「福島県お試しテレワークツアー」。

§ 年表

・1月お仕事

ららぽーと横浜Tully’s Coffee、四谷三丁目カフェ・ベローチェで作業、四谷三丁目で商談、パートナー技術者と呑み(荒木町まことや)、kintone 認定セールスアドバイザー講習会(サイボウズ 本社)、大崎で商談×3、パートナー企業と飲み(狛の家)、町田で雑務、鶴川駅前図書館で作業、co-ba koriyamaでランチミーティングと作業、LivingAnywhere Commons会津磐梯で懇親会、アスパラ邸見学、集まりいなで作業、集まりいなでお客様とZoomMTG、道の旅籠「椿」で懇親会×2、京橋SYNQAで作業×2、京橋で商談、新橋でお客様と飲み、デザイナー・リサーチャーLT新年会(サイボウズ 本社)、関西大学東京経済人倶楽部の総会・年賀会(JOB HUB SQUARE)、新御徒町で商談、ココデンタルクリニックで作業、オリジン弁当 鶴川店で作業、品川で商談、半蔵門で作業、LivingAnywhere Commons遠野KickOffパーティー、町田市民フォーラムで商談、五反田で商談、クラウドの終焉とビジネスチャンス / 60分で深まる。ビジネスセミナー!、サテライトオフィス×11

・1月ツイート

https://togetter.com/li/1462550


アクアビット航海記-リモートワークの効用


「アクアビット航海記」の冒頭では十回分の連載を使い、起業の長所と短所を述べました。
本稿ではその長所となる自由な働き方を実現する上で欠かせない基盤となるリモートワークについて語りたいと思います。

そもそも、私自身の「起業」に最大のモチベーションとなったのは、ラッシュアワーが嫌だったためです。
ラッシュアワーに巻き込まれたくない。巻き込まれないためにはどうするか。嫌なことから逃れる方法だけを考え続けて今のスタイルに落ち着いた、というのが実際です。

では、ラッシュアワーはなぜ起きるのでしょう。
それは周辺都市に住んでいる労働者が、首都に集まった職場に通うためです。
リモートワークやテレワークなどという言葉がなかった時期、人々は一つ所に通い、そこで顔を突き合わせながら働くしかありませんでした。
そうしなければ仕事の資料もありません。指示すら受けられません。そして雇う側も管理するすべがないのです。
そのため、一カ所に集まって仕事をするのが通念となっていました。

今、情報技術の進化によって、リモートワークが当たり前になりつつあります。リモートワークによって、ラッシュアワーからはおさらばできるのです!

ただし、それには条件があります。その条件とは、置かれた立場の違いによって変わります。
大きく分けて、雇われているか、そうでないか、の違いです。

まず、あなたが雇われているか、契約によってどこかに通う条件に縛られているとします。
雇用契約を結んでいる場合は、雇い主の人事発令に応じた部署で働くことが前提です。
その企業の人事制度が自由な働き方を認めている場合は、喜び勇んでその制度の恩恵にあずかればよいでしょう。
そうでない場合は、まずリモートワークを認めてもらうための運動を始めなければなりません。

おそらく、その企業にはそれまでの慣習があるでしょうから、リモートワークを見越した業務の設計がなされていません。
リモートワークを申請しようにも、体制が整っていないから無理、と却下されるの関の山でしょう。
その体制を上司や別の部署を巻き込んで変えてもらう必要が生じます。おそらくは大変で面倒な作業となることでしょう。
それをやりぬくには、あなたの日ごろの業務への姿勢と、あなたが扱う情報の性質にかかっています。
上司の理解と信頼、という二つの味方が支えてくれていれば、決して不可能ではないはずです。

もう一つの立場とは、個人事業主か経営者の場合です。この場合、上司はいません。あなたの意思が組織の意思です。リモートワークまでの障壁は低いはずです。
ただし、顧客先との契約によってはリモートワークが無理なこともあります。契約に特定の場所で作業することが定められている場合、リモートワークはできません。
そうしたケースは情報処理業界の場合によく見られます。
常駐でなければならない理由は、情報漏洩のリスクです。ハッキングのリスクもさることながら、監視がゆるいため、モラルがない故意に情報をさせてしまうのです。
また、情報処理業界といってもまだまだ対面による打ち合わせが主流です。そして、進捗管理や仕様の伝達に手間がかかります。そうした手間がリモートワークの普及を妨げています。

しかし、それらもリモートワークのためのツールは多く存在しています。実際は、組織や企業の考え方次第で、リモートワークの導入は進むはずです。
また、労働者の側でも意識を変える必要があることは、言うまでもありません。

ここでは、労働者として、私自身がどういうことに心がけてきたかを述べたいと思います。

・連絡をこまめに。
リモートワークは、相手の顔が見えません。だから発注側はお願いした仕事がきちんと納品されるのか不安です。だからこそ、こまめな連絡は必須です。
初めて出会った方は、こちらの人物をまだよく知りません。私の場合、さまざまなイベントで出会った方にはメールで丁寧なメールを返すことを心がけています。
最初はメールで、そのうちに徐々にチャットツールでの連絡に導きます。その方がメールよりも簡略に連絡ができるからです。電話もよいのですが、やりとりが後に残りません。また、電話は相手に準備の時間を与えないため、チャットツールをお薦めします。
ただし、連絡をもらったら返信は即座に。原則として受け取ったボールは相手に預けるようにしましょう。

・コンプライアンス意識
リモートワークは信頼がなければ成り立ちません。
情報を意図して漏洩させることは論外ですし、ミスも起こさないように気をつけたいものです。
その意味でもメールではなくチャットツールは有用です。添付ファイルは後でも取り消せますし、暗号化通信が基本です。堅牢な防御体制をクラウド事業者に任せてしまうのです。もし、印刷して紙の情報に頼ってしまう癖があるのなら、あらためた方が良いです。

・リモート端末の操作に通じる
リモートワークである以上、ノートパソコンは欠かせません。タブレットやスマートフォンは連絡程度であれば可能ですが、業務や作業にはまだまだ不向きです。
また、最近は有線LANが張りめぐらされている光景もあまり見なくなりました。ほとんどがWi-Fi接続による無線LANです。だから、お使いの端末にWi-Fiアダプタがあるか、また、出先でもWi-Fiのアクセスポイントをうまく拾う方法をチェックしておきましょう。
キャリアや鉄道会社、コワーキングスペースが提供しているWi-Fiが安全です。コンビニのものも連絡程度ならよいでしょう。
また、電源の確保も重要なので、どう言った場所に電源があるのか、チェーン別に把握しておくことは大事です。モバイルバッテリーの準備も検討してよいですね。
また、ブラインドタッチに慣れてしまうと、タブレットやスマホで文字入力がやりにくく能率が落ちます。フリック入力などもマスターしておくべきでしょうね。

・移動中はスマホやタブレットの操作に十分注意する。
これは最近、鉄道会社のマナー啓発キャンペーンでも良く登場します。実際に操作しながら移動するあなたは動く凶器です。
なので操作と移動はきっちりメリハリをつけた方が良いです。
そもそも、せっかくリモートワークを行なっているのですから、もっと外の景色を楽しみましょうよ。外の景色から刺激を受けることは、あなたの生産性の向上にもきっと寄与してくれるはずです。


2020年上半期弊社の抱負(実践版)


 弊社サイトのSSL対応

現レンタルサーバーは引き続き最低限のプランで継続する予定です。
継続した上でレンタルサーバー内のプランでSSL化に対応するサーバーに移管する作業を行います。
WordPressの移転作業はすでに経験済みなので大丈夫でしょう。
1月中に必達でやってしまいます。
3月には非SSLサイトが軒並み遮断される見込みが高いので。

 売上額

2019年度の1.25倍を目指します。粗利は今年度の実績を維持します。

 事業計画

すでに正月の三が日に4月以降の第6期の経営計画は作成しました。(公開はしない予定です)
あとは五年後の中期計画を4月までに立てます。

 新規のkintone案件

新たに10本の受注・検収を目指します。
それによってサイボウズ社とのオフィシャルパートナー契約をさらに継続します。
あわせてkintone エバンジェリストとしても来期につなげる成果を示します。

 モバイルアプリ

MONACAを使った案件を一本受注・検収します。

 自治会・町内会・PTAなど地縁団体のIT化へ尽力する

昨年の冬になって成果が出始めました。
今年はさらに深くかかわっていきます。
年間で5団体の案件を納品したいと思っています。

 交流会への参加とそこでの受注率向上

昨年は技術系のイベントで生まれた交流からはほぼ受注がつながりました。
一方で他業種や経営者の交流会では全く受注につながりませんでした。
その原因もほぼ分かっているので、今年は他業種や経営者の交流会での受注を目指します

 そのほかのお客様案件

ここには詳しくは書きませんが、納期を守るよう最大限の努力を払います。

 技術者の雇用

3月までに4月以降の雇用を行うかを判断したいと思います。
昨年、サテライトオフィスを開設したことから、今年はパートナー企業との協業に向けてかなりの力を割こうと思っています。
なので、雇用については行わない可能性が高いです。

 kintone Café の実施

昨年は神奈川ではなくkintone Café 東京を二回主催しました。
今年もkintone Café 東京は多摩地区を拠点に開催しようと思っています。町田、府中あたりを念頭においています。
町田ではすでに候補をいくつか挙げていて、あとは実行するだけです。
kintone Café 神奈川は去年、準備を進めていましたが、とうとう実施できませんでした。
ですが、昨年、武蔵小杉、鎌倉で開催場所につながるご縁ができました。
人数は最低限でもよく、体裁は問いません。まずは実績を作ります。

 freee Open Guildの運営

今年から運営側で関わることになりました。
freee Open Guildは地方開催も含め、6回は行われると思います。
そのすべてに運営で関わることを目指します。
また、そこで生まれたご縁を生かし、freee案件を二本は納品にまでもっていきたいと考えています。

 英語の睡眠学習開始

昨年、早々に挫折してしまった英語学習に再チャレンジしようと思います。
まず、Devrel Conference Tokyoで英語漬けの一日を送る予定です。
そこでモチベーションを満たして勉強に振り向けようと思います。
海外のカンファレンスにいつ行くことになってもよいように。

 LinkedIn、Eightの活用

仕事関係のSNSはFacebook、Twitterの二本を軸とします。
Twitterについては、代表が書くこともあれば、中の人が書くこともあります。
Facebookは今と同じ頻度にし、主に自社、他社の記事をシェアするのに使います。
その他、LinkedInとEightにも弊社および代表の仕事上の活動報告をアップします。

 AWSの資格試験の合格

まずはクラウドプラクティショナーとソリューションアーキテクトアソシエイトの合格を目指します。

 関西大学東京経済人倶楽部の参加率を増やす

昨年早々に加入したこちらの倶楽部ですが、イベント参加は1度にとどまりました。
こちらへの参加頻度を増やします。具体的には年間で3回。

 当抱負のアラート表示

昨年は下半期の抱負をアップし忘れたので、この抱負が書きっぱなしにならぬようにします。
毎月末に通知やアラートで自分にリマインドを投げます。
なおかつ、毎月末に書くまとめでは、計画の進捗も含めて書きます。
また、下半期に入る前に、下半期用の抱負(実践版)を書きます。


2020年の抱負


新年明けましておめでとうございます。

大晦日にアップした投稿にも書きましたが、昨年度は皆さま、いろいろと有難うございました。
今年も引き続き、よろしくお願いいたします。昨年の流れをさらに加速し、なおかつ、あらわになった課題を解決する努力を惜しまず進みたいと思っております。

自分を追い込むためにも、自分という器の容積を広げるためにも、目標は高く持ちたいと考えております。

1.法人化6年目にあたって
 あ)総括・・
 5年目の決算は、前年度を上回ることができそうです。弊社の認知度が上がってきていることが実感できました。

 い)kintoneを軸にする・・
 ようやくkintoneが弊社の売上の軸になってきました。年間売上の7割がkintone案件から生まれています。昨年はそれまでは手がけたことのなかった大手企業様からのご依頼も増え、金額でも社会の認知でもkintoneが案件として認められるようになりました。kintoneの大きな案件に上流工程から参画することも増えてきました。
 そのためには弊社代表がkintoneエバンジェリストである点は打ち出させていただこうと思います。引き続きエバンジェリストとしての発信が求められるでしょう。そしてkintone単体ではなく、kintoneと他の言語やソリューションの組み合わせで新たな価値をお客様に提供する。その心意気が大切です。
 新たな分野に飛び込むことを自重した昨年ですが、いくつかの開発言語の新たな習得にチャレンジしました。ソリューションについてもさらなる勉強が求められることはもちろんです。
 ノンコーディングだけであらゆる業務をこなすことができるようになるには、二、三年の時間がかかるでしょう。それまではコーディングスキルをベースに、使えるところはためらわずにどんどんノンコーディングツールを提案していきたいと思います。
 そうあり続けるには、ブログによる発信や登壇はもちろん、イベントの主宰などを通じた弊社および代表の認知の拡大が重要だと思っています。お呼ばれいただければ各地のセミナーにも顔を出したいと思います。

 う)体制の変革・・
 そのためには弊社にとっての弱点を克服しなければ。一つは個人事業主時代から続く財務の脆弱さ、もう一つは経営と作業を代表が兼任している現状です。
 財務の脆弱さは昨年、いろいろと施策を打ちました。それが実を結ぶまでは、まだまだ時間が必要です。そうしたことに煩われずに業務に邁進できるよう、重くみて進めていきたいと思います。
 昨年、サテライトオフィスを開設し、技術者と対面で教えられる場所は確保しました。昨年、数人の技術者を面談しましたが、残念ながら雇用にはつながりませんでした。具体的に3月までに雇用するかを決めたいと思います。

 え)外注パートナー・・
 外注パートナーは昨年に引き続き、限られた企業様と続けていくつもりです。数年前、むやみにパートナーを増やし、自由意思に任せた失敗は繰り返しません。
 サテライトオフィスをパートナー企業様と共有している環境をどう活用するか。どれだけの外注費を支払い、そのためにはお客様にはどれだけの売上が必要か。お客様と弊社、弊社内、そして弊社とパートナー。その間で工数をかけず、なおかつ確実に仕様情報を伝達する。
 クラウドサービスを活用し、飛び回る代表の私が技術者に対して要件やスキルをどうやって円滑に伝えるか。そのためのドキュメントツールやコミュニケーションツールは引き続き模索していかなければ。この工夫に時間を掛けるつもりです。

 お)自治会との関わり・・
 自治会やPTAなど非営利活動の団体様からのご要望は積極的にご協力したいと考えています。昨年末にもPTA様、自治会様からご相談をいただきました。そうした地域活動のお手伝いを行う上でとてもよいご縁をいただきました。
 今年も登壇による認知度拡大を図っていくつもりです。「自治会 IT」で検索すると代表がトップに登場する。そんなアドバンテージは得ようにも得られません。今のうちに自治会の業務は形にしたいと考えています。
 その結果が各地の訪問につながれば良いと思います。代表の個人的なライフワークである地方訪問と地方創生への何らかの貢献へと。

 か)事業計画・・
 もう一つやるべきこと。それは経営の軸がぶれないような事業計画の策定です。
 この三年で、弊社が目指すべき方向性がかなり定まってきました。それはこの先の日本が直面する大きな課題にも関わっています。具体的には地方創生、少子高齢化、一極集中の弊害です。その中でPTAや自治会などの地縁団体様のIT化が喫緊の課題であり、弊社にはそれができるノウハウが溜まってきています。これを軸に据えていこうと思っています。
 いよいよ2020年です。かねてから言っていた、2020年が過ぎればシステム案件は減っていくとの予測はおそらくエンタープライズ開発の現場で顕著に実現するでしょう。つまり技術者が大量に余るのです。それを見据えた計画が求められます。
 具体的には今年の売上額は、2019年度の1.25倍を目指します。事業計画は3月までに今年分を、4月までには5年後の計画が書かれたものを作りたいと思います。これは確実に履行するために、太字にしました。
 新規のkintone案件は10本受注することを目指します。そのためにはkintoneの案件で実績を作り、それをブログなどでアピールするしかないでしょう。ここ三年であちこちにまいた種が育っています。これらを実のある実績にすることが今年前半のミッションだと思っています。実績を作って行けば、自然と年末のkintone Advent Calendarや登壇の場でご披露できるネタはたまるはずなので。

 き)主催するイベント・・
 昨年は8回の登壇と2回の主宰イベントを行いました。多数の人を巻き込む発信力は、代表にまだまだ足りない課題だと思っています。引き続き、身に着けていきたいです。

2.話す技術、書く技術、システムの技術
 あ)話す技術、書く技術・・
 昨年に引き続き、この2つは精進しなければと思っています。去年、書くほうは量的には残念な結果に終わりました。書くための時間が取れない分を、音声認識でしゃべって補おうと思ったのですが。
 書くほうは、昨年、二人の著者の方から著書うけとりました。私も出版という形で私の人生の一部でも形に残したいと思っています。
 今年の読読ブログは100本アップすることを目標とします。また、技術Blogは去年の二倍の量を目指します。
 弊社代表が独立して法人を立ち上げるまでを描く「アクアビット航海記」も月2本の連載を行います。

 い)システムの技術・・
 システムの技術ですが、AWSの中身についてさらに勉強を行うつもりです。2つは資格を取りたいと思います。
 また、kintoneのエキスパート試験があらたに設置されると聞いています。これも受かりたいですね。苦労するでしょうが。

 う)弊社サイトの刷新・・
 それにあたって弊社サイトのhttps化は必須です。もう、これは一刻の猶予もありません。1月にhttps化を行う予定です。

 え)リモートワーク・・
 一昨年知り合った弁護士の方は海外をあちこち訪問しながら仕事をこなし、成果を上げています。弁護士の業務と同じレベルを開発で行うのは難しい。それは分かっていますが、少しでも近づきたいと思っています。
 昨年はワーケーションも試し、実践できるだけの目途がたちました。
 今年は各地でワーケーションを実施し、個人としての思いと仕事の両立をさらに図っていきたいと思います。

3.ブログ
 あ)全体・・
 昨年に続いてInstagram、Facebook(法人/個人)、Twitter(法人/個人)の使い分けを行います。
 SNSについては、一昨年末にライフログについての考えをまとめました。今年も引き続きSNSは発信のみを中心にし、多分、SNS巡回作業には時間を割かないと思います。
 書評、劇評、映画評、時評や旅行紀、技術ブログは2019年並みの量を維持します。それと同時に、技術的な記事はもう少し増やしたいです。昨年に引き続いて、私にしか書けないブログにしていきたいと思っています。ブログのスタンスは昨年と変わりません。実名で責任から逃げない。押し付けにならぬよう私から友だち申請をしない。仕事もプライベートも三六〇度カバーする。これらを成し遂げつつ、質を落とさずに仕事でも成果を上げる。それはかなりの難関です。どこまで生産性を上げられるかにかかっています。

4.体力と魅力増強
 あ)滝と山・・
 痛めた腰は、だいぶ良くなってきました。今年も山や滝めぐりはしたいと思っています。日本の滝百選に選ばれた滝は8カ所を目指します。具体的には、去年この抱負で挙げた滝はどこも行けなかったので引き続き。ニッカ宮城峡蒸留所に行きたいので、秋保大滝と三階の滝を。岡山蒸留所に行きたいので、神庭の滝を。尾瀬に行って三条の滝を。維新152年の山口を旅したいので寂地峡五竜の滝を。阿波の土柱をみに行きたいので雨乞の滝と大釜の滝を。下北山村に再訪したいので中の滝や双門の滝、七ツ釜滝を。それと娘たちから家族で長野のカムループスさんに伺いたいとのリクエストをもらっており、近くの惣滝を。他はどこか一カ所、九州の滝には行きたいですね。それと、昨年は至仏山を登りました。今年もどこか一峰は登りたいです。燧ケ岳とかいいですね。

 い)訪問・・
 海外は一カ所、国内は12都道府県の訪問を目指します。私の人生で日本の滝百選、近畿/関東/中部/東北の駅百選、名水百選、日本100名城、続日本100名城のコンプリートは最低限の目標です。それらが実現できるよう、引き続き旅に旅を重ねていきます。

私は、まとめについてはほとんど読み返しませんが、自分の目標は何度も読み返しています。これを黙読だけでなく、音読することで一層実現に近づけたいと思います。

引き続き本年度もよろしくお願いいたします。


2019年のまとめ(法人)


今年も一年のまとめを書きます。
今年から各月を法人と個人に分けていますが、年のまとめも同様に法人と個人に分けます。

公私の「公」

●弊社の業績
§ 総括 目次

 

今年度は売上だけで考えれば、過去最高の実績を上げられそうです。今期はあと三ヶ月残っていますが、売上見込みも粗利見込みもたっています。何とか黒字も達成できそうです。
が、一概に喜ぶわけにはいきません。
まず反省しなければならないのは、上半期の抱負はまとめたのに、下半期の抱負を忘れていたことです。
その時、バグを出してしまい、その後始末で大変だったことは理由になりません。これは怠慢としかいいようがないです。
あと、上半期は人を雇う予定がとうとう実現なりませんでした。経営計画の策定もとうとうやらずじまいでした。この二点は完全に計画倒れでした。
一方で、少しずつ弊社の認知度が上がってきたのはよいニュースだといえます。
代表が複数の集まりに参加し、かなりの数のイベントに参加しました。そうした活動によってお話をいただく案件の質が変わってきたように思います。

§ 業務パートナー 目次

 

一昨年度に業務パートナーを増やし、ある程度の自由と自発に委ね、失敗した経験から、少しそうした活動に臆病になっていました。が、今年は改善に動きました。

6月にサテライトオフィスを開設し、そこにパートナー企業様と同じオフィスを構えることで、少しずつ案件を受けられる可能性を増やそうとしたのです。

ところが、技術者の育成の手間が増えることには変わり有りません。それはまだ道半ばだといえましょう。
そうした施策の一方、お客様から期待される弊社の代表の役割が技術者の統括や技術の伝達や、さらに案件の進捗管理や顧客との折衝に移りつつあります。
代表が一か所で作業するのが不得手であり、そうした外部でのご依頼も増えてきたため、サテライトオフィスでパートナー企業と一緒になる機会は週一度であり、サテライトオフィスで作業するのは休日と夜間が主となっています。
この点は来年の課題だと思っています。

§ 開発案件 目次

 

 今年はkintone案件が7、8割を占めるまでになったので、浅く広く手を出すことで自らの首を絞める愚は犯さずにすみました。
これも弊社の発信がようやく効き始めてきた成果だといえます。

弊社代表がkintoneエバンジェリストとして引き続き活躍するためには、kintoneの資格取得者であることも有効です。なので、9、10、12月にkintoneアソシエイト(9月)、kintoneアプリデザインスペシャリスト(10月)、kintoneアプリカスタマイズスペシャリスト(12月)、kintoneセールスアドバイザー(12月)の試験を受け、合格しました。
カスタマイズスペシャリストだけは一度落ちてしまい、再挑戦を余儀なくされましたが。

さらに弊社はサイボウズ社のオフィシャルパートナーとしても認定していただきました(11月)。
こうした施策が効果を上げ、開発案件を選んで受けられるようになっています。
年末にはタイからのご依頼までいただき、そうした意味でもkintoneはさらに面白くなりそうです。

また、開発案件を絞ったとはいえ、新たな挑戦や勉強にも取り組んでいます。
今年の前半はAWS上でLambda、API Gateway、Route53、ロードバランサー、Elastic IP、ECS、EC2、Aurora、Batch、CloudWatch、ECRなどのサービス化注力しました。またSalesForceとkintone、boxとkintone、Google Cloud Platformとkintone、freeeとkintoneなどの連携にも注力しました。
言語環境や開発環境については日進月歩の業界なので、勉強し続けなければなりません。停滞は許されませんので。

§ 業務基盤の堅牢化 目次

 

昨年度から取り組んでいるこの課題こそ弊社の一番の悩みです。
家計と法人の財布の混在を完全に分け、資産表や収支表はきっちり顧問税理士の先生に管理していただいています。が、まだ改善すべき点が山積みです。
その課題は、12月に入って家計のトラブルがビジネス側に波及することで顕在化しました。
財務の正常化が弊社の今後を大きく左右すると認識しています。同時に、経営計画や事業計画書の策定にも取り掛かっています。しかしこれらの計画は結局ものにできていません。
今年はIT導入補助金導入支援事業者にも選定されました。そこで得た信用をより厚くしなければ。

§ 社内体制 目次

 

弊社の弱点は財務のほかに、私一人が実質的な経営者と作業者を兼ねていることです。
この壁は、個人事業主が企業経営者として突破すべき壁でもあります。
この壁を破るため、最初の3カ月で雇用に向けて動いたのですが、結局、その壁はまだ乗り越えられていません。

§ 2019年度売上見込み 目次

 

上記の通り、売上を確保しつつ、粗利も確保できるようになりつつあります。
今のペースを続けられれば、決算でも2018年度の実績より上回れることでしょう。
ただ、残り三カ月の努力が重要なのは言うまでもありません。

§ 人脈の構築 目次

 

今年は登壇も含めて露出および交流を増やしました。
名刺コレクターに堕することなく、有効な人脈の構築に専念することで、重要なステークホルダーの方とのご縁が多く作れました。
Facebookを見る時間は一日に5分程度ですが、Twitterでの露出も増やし、焦点を定めた交流を心がけることで有効な営業チャネルがたくさん作れました。それが今年の充実した活動に繋がったと思っています。
来年度も今年のノウハウを活かしつつ、引き続き新たなご縁をいただければと思っています。
単なる仕事上のつながり、SNS上のみつながりだけでなく双方に良い関係を。
ただ、代表個人の時間には限りがあり、お誘いしてもらったイベントの多くに参加できていません。この点は申し訳ないと思っています。

§ 対外活動 目次

 

2019年度は登壇の機会を多くいただきました。合計8回。
まず3月は「kintone Café 広島 Vol.12@福山」「EBISU Tech Night Vol.7」で登壇。
8月は「EBISU Tech Night」「kintone Café 東京 Vol.8 @多摩」で登壇。
11月は「「雇われない働き方」」「kintone Café 東京 Vol.9」で登壇。
12月は「freee Open Guild #07」「EBISU Tech Night Vol.8」で登壇。kintone Café 東京は主催も担っています。
機会を与えて下さった運営の方々には感謝しかありません。

他にもさまざまなサービスのエバンジェリストの方が集まるDevRel Conference Tokyo、DevRelCon Tokyoにも。前者は全て英語だったので、とても刺激になりました。
英語で会話ができないことに危機感を感じ、en_jp_meetupに参加して英語を話す勉強をしたことも今年の努力です。
また、cybozu Days 2019の前日に行われた「kintone evaCamp」でもkintone仲間とご縁をいただきました。他社サービスのエバンジェリストの方とご縁をもらい、とてもよい刺激を吸収しました。昨年に続いてCybozu Days 2019に初めて両日とも全て参加しました。1月にはkintone Café 埼玉、3月にはkintone Café 広島にも参加できましたし。
また、freeeさんとのご縁もできました。「クラウド × APIで実現!次世代バックオフィス構築セミナー」で得たご縁はさまざまなお仕事につながり、12月にfreeeさんで登壇するご縁にもつながっています。来年以降のお仕事にもつながっていきそうです。
「Tegakiセミナー」「RPAセミナー」「フォルケ・ホイスコーレキックオフ」「AWS Summit Tokyo」「サービスインテリジェンス研究会」「AI勉強会」などの違う分野の勉強を行ったのも今年です。
ワーケーションにいよいよ本腰を入れはじめました。家族で訪れた台湾でも仕事をし、11月には紀伊半島はたらく・くらすプロジェクトに参加し、報告会でも素晴らしい時間を過ごしました。このご縁も今後の弊社にとって一つの武器となりそうです。
社会にも貢献したいと思い、「少女は夜明けに夢を見る」の試写会にも参加し、新たな見聞を広めました。

他にもイベントや勉強会、セミナーなどあれこれと参加させていただきました。以下に列挙しています。
「パートナー企業新年会(1/11)」「非営利団体新年会(1/12)」「山登りグル―プ 道具選びの会(1/16)」「kintone Café 埼玉 Vol.5(1/19)」「とり吉新年会(1/23)」「伊勢ヶ濱部屋初場所打上式(1/27)」「NECネッツエスアイ様Customer’s Fair 2019(2/14)」「社団法人様セミナー(2/14)」「以前の常駐先のメンバーとサバ(2/15)」「ビジネス交流会(2/21)」「お客様キックオフパーティー(2/27)」「kintone Café 広島 Vol.12@福山(3/1)」「関西大学東京経済人倶楽部 第四回カイザーオープンセミナー(3/7)」「フォルケ・ホイ・スコーレキックオフ(3/7)」「DevRelCon Tokyo 2019(3/9)」「EBISU Tech Night Vol.7(3/22)」「お客様の秘密基地開設パーティー(3/26)」「en_jp meetup(4/3)」「怪獣酒場で交流会(4/4)」「ニコマコス交流会(4/11)」「八重桜を愛でる会(4/13)」「クラウド × APIで実現!次世代バックオフィス構築セミナー(5/15)」「技術者交流会(5/24)」「産業技術総合研究所のサービスインテリジェンス研究会(5/28)」「BNIゲスト参加(5/29)」「AWS  Summit Tokyo 2019(6/14)」「kintone DevCamp(7/26)」「EBISU Tech Night(8/23)」「kintone Café 東京 Vol.8 @多摩(8/30)」「Tegakiセミナー(9/5)」「我慢しないで働ける社会を作る(RPAセミナー)(9/6)」「DevRel Conference(9/7)」「kintone エバンジェリスト説明会(9/12)」「kintoneアソシエイト試験(9/13)」「kintone アプリカスタマイズスペシャリスト試験(9/27)」「Node-RED UG #9(9/27)」「fablab鎌倉見学(9/30)」「RPAセミナー(10/15)」「kintone エバンジェリストフィードバック会(10/15)」「AI勉強会(10/15)」「少女は夜明けに夢をみる試写会(10/17)」「kintoneアプリデザインスペシャリスト試験(10/18)」「AI・自動認識総合展(10/24)」「kintone EvaCamp 2019(11/6)」「Cybozu Days 2019 in 東京(11/7-8)」「「雇われない働き方」(11/14)」「kintone Café 東京 Vol.9(11/15)」「Cybozu社オフィシャルパートナー面談(11/19)」「AI勉強会(11/20)」「紀伊半島はたらく・くらすプロジェクト(11/25-27)」「kintone アプリカスタマイズスペシャリスト試験(12/10)」「freee Open Guild #07(12/18)」「紀伊半島はたらく・くらすプロジェクト報告会(12/20)」「EBISU Tech Night Vol.9(12/20)」

上記のうち、登壇したイベントや、強い印象を受けたイベントについては記事に以下の記事にアップしています。また弊社としてのトピックについても記事としてアップしています。
 ・kintone Café 広島 vol.12 @福山に登壇しました
 ・DevRelConに参加して思った技術者のこれから
 ・【IT導入補助金】IT導入支援事業者に採択されました。
 ・kintone Café 東京 Vol.8 @多摩を開催しました
 ・kintone EvaCamp 2019に参加しました
 ・Cybozu Days 2019 in 東京に行きました
 ・弊社はサイボウズ株式会社のオフィシャルパートナーとなりました
 ・「雇われない働き方」についてお話してきました
 ・kintone Café 東京 Vol.9を開催しました
 ・コーチングのグラフってkintoneで出せるんやって!
 ・freee Open Guild #07でお話してきました
 ・ワーキングツリーにはkintoneとboxをお飾り!
 ・クラウド時代のセキュリティと題して登壇してきました

こうした場に参加することは、自分の知見を高めるだけでなく、そこで得たご縁が次の仕事につながるため重要です。あらためて今年はそのことを感じました。
来年はkintone Caféを町田で開き、神奈川で開くほかに、freee Open Guildの運営側としても関わることになりました。

§ 執筆活動 目次 一昨年にCarry Meさんの運用する本音採用でブログ「アクアビット 航海記」の連載をさせていただきましたが、これを今年から弊社サイトで連載し直することにしました。12月まで計16回分をアップしています。
今後は、五回に一度はコラムを挟みつつ、さらに書き継ぎたいと思っています。

本のレビューは78本、映画のレビューは4本、観劇のレビューは3本アップできました。
また、12月には上に書いた通りkintone Advent Calendarに2本で参加しています。
その他、物申すブログは5本。旅日記ブログは13本。その他の仕事に関したブログは21本。まとめ・抱負ブログは26本をアップしました。
2019年も書くことへの情熱が尽きることなく可能な限り書けた一年となりました。ただし、書いた内容はまとまった形にできていません。
11月になって代表が人生の師匠と目する方から出版した本を献本をしていただきました。そのことにとても刺激を受けました。
来年、何らかの成果として世に問いたいと思っています。

§ 妻のココデンタルクリニック 目次 妻のココデンタルクリニックは、新患さんも増えてはいるようです。が、2019年度は妻自身が別のお仕事に忙殺されてしまい、傍から見ていてもとても診療室経営に専念できているとはいえませんでした。
それは、昨年と同じく私の気分を大きく乱しています。
11月になり、新たな動きを促したところ、妻もそれに応えて動き出してくれているようです。
収入とやりがいの両立した状態に私はようやく足掛かりをつかみつつあるので、妻にもその状態まで登って欲しいと思っています。

§ 年表 目次
 各月の詳しい内容は各月のページで紹介しています。
 

あらためて「公」を振り返ってみました。今年は冒頭に書いた通り、満足度は高いです。良い一年だったと思います。あとはムラを生じさせる原因を来年どう防いでいくかですね。
あらためて、今年弊社と関りをもってくださった皆様、まことにありがとうございます。
後1日、今年を無事に締めくくり、来年へと繋げようと思います。


2019年12月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年12月は一年の締めにふさわしい結果となりました。今年度は外部への発信に力を注ぎましたが、その締めにふさわしく複数の場所で登壇と記事発信を行いました。
複数の案件を並行して進められるようになりつつありますが、これからも弊社の認知度をあげるためには外部での発信が欠かせません。そうした活動を通して、あらたなご縁からお仕事がつながります。来年度に向けてよい感じの月になったと思います。
売上高では今年度で2番目の額になりました。達成度7割。達成感7割。満足感7割というのが自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 12月度の売上は、目標額の1.6倍に達しました。
一方で、代表の稼働時間は登壇や記事執筆にかなり割かれたため、余裕ができるまでには至っていません。
そのかいがあって、各種イベントへの参加や主催、登壇など、手ごたえを得た月でした。
11月に弊社がサイボウズ株式会社のオフィシャルパートナーになり、各種イベントへ参加させていただいた事でできたご縁は、弊社の認知度の向上に確かにつながったようです。
そうした対外的な発信を行う合間に、さまざまな案件をご検収や中間締めまで結びつけられました。それらは全て代表の求めるワークライフバランスの実現につながってゆくはずです。
これからも将来に向けての布石は次々と打っていくので、そうした来年への準備も含めて今月は評価したいと思います。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。
外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。そもそもの案件ごとの見積額を上げ、なおかつ、教え、フォローする時間だけ生産性が落ちることを踏まえた額を出さねばなりません。
案件によって難易度も内容も千差万別なのがシステム開発。効率的な外注はどうすれば可能なのか。お互いが不公平にならず、必要な利益を得るにはどうすればよいのか。効率的な仕様とスキルの伝達をどうやればよいのか。試行錯誤です。
サテライトオフィスの開設を機に、スキルの伝達についてはやりやすくなっていますが、まだ難しい。
ありがたいことに、お仕事のご依頼は尽きてはいません。
案件が来ている好況のうちに今後の業務を見越し、パートナーの技術者さんとの協業に相当労力を割かなければ、と覚悟しています。売上も下がるし、利益も落ちるでしょうが。
今月からは弊社代表がシステム・インテグレーター様の開発リーダーの役割で打ち合わせや顧客との折衝に入る業務も担わせていただいています。
この動きによって、弊社としては外注費をかけずに、売り上げだけ確保できるようになりました。しかも継続的に。
ただし、この手法は弊社の代表が持つノウハウの提供にすぎず、システム・インテグレーター様には利益となりえますが、パートナー企業にとっては何も利益がありません。
そうした課題の改善も含め、来年度も取り組んでいきたいと思います。

§ 開発案件 今月は八割の開発案件がkintoneがらみでした。
kintoneとAWSやGoogle Apps Script、box、SalesForceとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用することが受注につながっています。
ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。
今月もまた新規に複数のkintone案件が開始しました。印象的なのはタイのお客様からのご依頼があったことや、一般社団法人や自治会といったお客様からのご依頼があったことです。

同時に、他のサービスについても視野は広く持たねばなりません。
2015年に始まったQiita上でのkintone Advent Calendarには5年連続で参加しました。しかも今年は二本の記事をアップしました。一本目はkintoneとchart.jsの連携。二本目はkintoneとboxとAWS API GatewayとAWS Lambdaの連携です。また、freee様にお招きいただき、freee Open Guild #07で「kintone エバンジェリストがfreee APIを触って見た!」と題して喋りました。登壇にあたってはfreee APIのドキュメントを読み込み、理解を深めました。
こうした連携は、ノンコーディングの連携サービスが担ってくれる。そうした意見もわかります。ですが、そもそも連携サービスができることへの本質的な理解やひらめきは、APIの理解があってこそ、とも思っています。
kintoneとつなぐサービスのAPIドキュメントの読み込みは、引き続き行っていきます。情報収集は抜かりなく進めなければ。

旧来のシステム開発の考えでは将来は厳しくなることは確実ですし、kintoneを軸にさまざまなサービスを連携させられれば、引き続き弊社の武器になるはず。
なお、今月は九月末に受けて落ちたkintone アプリカスタマイズスペシャリストに受かりました。あと、パートナー企業であれば資格者が必要なkintone セールスアドバイザーの試験にも受かりました。これで現時点で受けられるkintone関連の資格は全て取得できたので、これに慢心せず、これからも学びを怠らないようにします。
年末のEBISU Tech Nightではセキュリティについて語りました。そこでAWSの資格についても教わりましたので、来年はAWSの資格もいくつか取るつもりです。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。
弊社の収支としては問題ないのに、家計が絡むととたんに脆弱になる。いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。
今月はとうとう家計のトラブルに巻き込まれ、ビジネスの財務にも影響が生じてしまいました。結局、そのリカバリー作業に20日ごろまで追われていました。全く情けない。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。
ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。ここはまだ手付かずです。

§ 人脈の構築 今月は先月に比べると交流会にはあまり出ていません。とはいえ、2回の登壇をはじめ、さまざまな場所で新たなご縁ができました。
下の対外活動にも記載していますが、それらの場所では得がたい知己が増え、今後も互助できそうなつながりができました。こうした活動が今後の業績を左右すると信じています。引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。freee Open Guild #07(12/18)、紀伊半島はたらく・くらすプロジェクト報告会(12/19)、EBISU Tech Night Vol.9(12/20)。
開発や記事執筆のお仕事はこうした対外活動から生まれています。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。今月はCybozu Days 2019 in 大阪に参加する予定だったのですが、直前で事情によって断念しました。これは無念でした。
あと、来年からkintone Caféのほかにfreee Open Guildの運営にも携わることになりました。次回は2月の末に開催予定です。またあらためてご案内します。
数年前から地方を活性化したいと思い、各所からお声がけいただくと出かけてお話していました。先月の紀伊半島はたらく・くらすプロジェクトの参加と報告会は、今後の弊社と代表の私が注力すべき社会貢献の方向性をあらためて教えてくれたように思います。
自治会などの地縁団体とのご縁も、先々月から地元の町田でお話をいただいているのですが、年末になってまた新たなご縁を結んでいただきました。
また、来年早々には郡山でワーケーションを実施することになりました。
皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。
(「アクアビット航海記 vol.16〜航海記 その5」)
2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。なお、本音採用サイトでは元記事が削除されたため、転載ではなく弊社サイトのみの連載扱いとさせていただきます。

今月書いた本のレビューは5本(
密会
古道具 中野商店
日本列島七曲り
戦国大名北条氏--合戦・外交・領国支配の実像
地方消滅-東京一極集中が招く人口急減」)。
今月書いた映画のレビューは1本(
スター・ウォーズ スカイウォーカーの夜明け」)。
今月書いた旅日記は2本(
上山の旅 2018/12/27
上山の旅 2018/12/28」。
今月書いた弊社の活動ブログは4本(
コーチングのグラフってkintoneで出せるんやって!
freee Open Guild #07でお話してきました
ワーキングツリーにはkintoneとboxをお飾り!
クラウド時代のセキュリティと題して登壇してきました」)。

§ 年表 

 ・12月お仕事

  品川で商談、外苑前ドトールコーヒーで作業、外苑前753 Café&バーで技術者飲み会、新宿御苑前で商談、新宿御苑前コメダ珈琲で商談、大崎で商談&作業×4、鶴川で技術者飲み会、町田市民フォーラムで商談×2、町田ITテストセンターで受験、BUSO AGORAで作業、ヨドバシカメラ町田でPC修理持ち込み、大崎ファミマ!で作業×2、大崎StarBucksで作業×2、五反田freee社で登壇、神泉で紀伊半島はたらく・くらすプロジェクトイベント参加、渋谷でプロジェクト参加者飲み会、恵比寿で登壇、鶴川で総務作業×2、鶴川ポプリホールで作業、ココデンタルクリニックで作業、狛江でパートナー企業と飲み会、町田でランチミーティング、町田で総務作業×3、水道橋で商談&飲み会、神楽坂でお客様と飲み会、サテライトオフィスからZoom打ち合わせ、サテライトオフィス×12

 ・12月ツイート

https://togetter.com/li/1448566


アクアビット航海記 vol.16〜航海記 その5


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させていただくことになりました。前々回からタイトルにそって弊社の航海記を書いていきます。以下の文は2017/11/23にアップした当時の文章が喪われたので、一部修正しています。

芦屋市役所でデータ入力の仕事に

阪神・淡路大震災から1年9カ月後、地震で全壊した家を親が建て直し、一家で西宮に戻ることになりました。
時に1996年の10月。そんなタイミングで、先輩が声をかけてくださいました。データ入力の仕事をしないか、と。
その先輩は本連載の第十三回でも少し登場いただいた政治学研究部の方で、私が卒業する一年前に卒業して社会に出ていました。
その先輩が勤めていたのは、日本で知らない人はいない大手情報企業です。その企業が当時手掛けていたのが、兵庫県の芦屋市役所の人事システムの刷新案件でした(システム名は今まで完全に忘れていましたが、今調べて思い出しました。が、20年前のこととはいえ、念のため企業名とともにも伏せておきます)。
その案件の営業担当だった先輩が、ブラインドタッチができた私にオペレーターとして白羽の矢を立てたのです。今の私には先輩のお気持ちがよくわかります。ブラブラしている知り合いの若者がいれば、私もきっと声をかけるはずですから。
でも、当時の私にはそういう事情はさっぱりわかりません。その話を受けた時の情景や私の気持ちは忘れてしまいました。でも、私はお話をためらわずにお受けしたはずです。そして、これが私の転機となりました

上では刷新案件などとわかったようなことを書いていますが、当時の私は何も知りませんでした。
そもそもまともにパソコンを使うのは初めて。連載第十四回で取り上げたダブルスクールで触ったことと、大学の課外講習で一太郎の文書を作って5インチディスク(!)に保存したくらい。
あとは、シャープX68000でゲームやパソコン通信を少しかじっていたことでしょうか。このシャープX68000を譲ってくださったのが当時在学中の先輩でした。当時は先輩もまさか数年後にパソコンの仕事を世話するなんて思っていなかったはずです。人生どういうご縁があるかわかりませんよね。
ちなみにこの先輩は地震で全壊した我が家にまっ先に駆けつけ、差し入れを持ってきてくださった方でもあります。

このように、先輩から話を受けた当時の私は、全くのずぶの素人です。果たして私にパソコンを使った仕事ができるのか、というレベル。
なので、引っ越しのタイミングでうちの親がパソコンを買ってくれました。家用の。確かWindows 95だったはず。
とにかくよくわからぬまま、プレインストールされていたLotus1-2-3をおっかなびっくり触っていただけの。
今やSEでござい、と名乗っている私ですが、本当に何も知らない状態でした

SEの仕事に触れる

私が社会に出て最初の仕事。それが芦屋市役所でのデータ入力の仕事です。1996年の11月。
当初は二人の女の子と一緒に過去の職員の人事経歴を一生懸命パソコンに打ち込んでいました。
当初、私はIMEの変換方法を全く知りませんでした。変換方法もわからないまま、半角カタカナで一生懸命打ちこんだ結果を「ニイタカヤマノボレじゃないから!」とSEの方に怒られたのもこの時です。
後年、ITで身を立てていけるめどがついたあとも、このエピソードは何度も使わせてもらいました。要するに、当時の私はそのくらいパソコン音痴だったのです。そんなヤツがよく金融機関の常駐SEになりおおせ、”起業”にまで踏み切ったなぁ、というネタを語る時のエピソードとして。
私は今もなお、ユーザー側の立場でシステムを考えてしまいがちですが、それは初っ端のこの経験が尾を引いていると思います。

そんなオペレータの仕事ですが、ほどなく女の子たちは退場することになり、私一人でデータ入力の仕事を任されるようになりました。多分ブラインドタッチの腕が認められたのでしょう。
とはいえ、責任や束縛が増したわけではなく、自由でした。広い部屋で好きな時間に昼食を食べ、好きな時間に持参のマグカップに紅茶を淹れて。当時は紅茶に凝っていたのも懐かしい。海外から茶葉を取り寄せたりして。優雅ですよね。
今思えば、この頃は仕事にプレッシャーも何も一切感じていませんでした。

でも、SEの方は大変だったと思います。大阪だけでなく東京からもいろんなSEの方が入れ替わり立ち代わり来られていたくらいですし。素人の私にもシステム導入がうまくいっていない雰囲気が察せられました。
私が人生で初めてSEという人種に会ったのはこの時です。特にその中のトップSEの方にはお世話になりました。
私はこの方からエクセル・マクロの初歩の初歩を盗み、また教わりました。ニイタカヤマノボレで叱ってくださったのもこの方です。また、この方からは人生を楽しむ秘訣も教わったように思います。
この方とお昼を食べに行くたびに、街中のあらゆるものに興味を示す姿はいまでも記憶に鮮やかです。
あらゆるものに興味を示す、という姿勢は、今考えると、人生を生きていく上で最大の味方だと思っています。私はこの方から好奇心というものの大切さを深く教わりました。
20代の私がお世話になり、もう一度お会いしたいと思う方は何人もいるのですが、この方もその一人です。S藤さん、私のことをおぼえていたら連絡ください。心からお礼が言いたいです。

実務で使うプログラムなどそれまでの人生でまったく経験のなかった私ですが、この時にはじめて実務で使うプログラムに手を染めました。
そして、この経験が私にITへの道を踏み出させる一歩となりました。
今も私は、プログラミングを学ぶには実務が一番と思っています。それは、この時の自分の経験によるものです。

鬱に陥る

翌1997年の4月。私は正式に芦屋市役所の人事課のアルバイトとして、それまでいた広い部屋から人事課の部屋に移って仕事をすることになりました。
ここでは人事システムのオペレーションだけではなく、人事課の諸作業もお手伝いすることになりました。
諸作業とは、例えば人事考課の資料のチェックをしたり、稟議書のひな形などを作成したり。基幹システムのGUIの画面でカチカチとデータを打ちこんでひな形となる書類を印刷したり。
どれも懐かしい思い出です。他にもおおげさな帳合機で大量の書類を印刷して資料にまとめたり。

そんな風に社会への一歩を踏み出し始めた私ですが、実は芦屋市役所に入った少し後から1997年の夏ごろまでの約9カ月が、今までの40年少しの人生で一番の暗黒期でした。
暗黒というのは、精神が、です。多分、前年の地震遭遇から就職活動、旅三昧と続いた日々の反動でしょう。当時お付き合いしていた方から愛想をつかされたことも理由の一つです。
当時、読み漁っていた純文学の毒にあてられたことも鬱を亢進させたはずです。
躁に踊らされた時期から、一転、鬱に沈まされる。
つらかったです。生きていく自信を失い、死を思い、状況から抜け出そうとする気力すら湧かない日々。
尾崎豊の「シェリー」を一日中聞いていたのもこの時期。ゲーテの「若きウェルテルの悩み」で自殺する主人公に衝撃を受けたのもこの時期。
毎日、かろうじて芦屋市役所には通っていたものの、自分がいつになるか這い上がれるのか、どこに行けばたどり着けるのか、完全に見失っていました

そんなつらい日々でしたが、徐々に最悪の時期を抜け出すことができました。
正直、この時期の思い出は断片的にしか残っていません。でも、いくつかの楽しいことだってありました。それは人事課の方々との交流の中で得られました。
レクリエーションとして部課対抗のPK合戦に駆り出されたこともあるのですが、この時に私が決めたシュートの鮮やかさは、いまだに私の成功体験の一つに刻まれています。
また、飲みにもよく連れて行っていただきました。そしてその度につぶれていたのもこの頃。神戸の山手の坂や芦屋駅前の路上で朝まで転がっていたことなど、きりがありません。
有馬温泉の保養所に泊りがけで連れていってもらったこともあります。
そんな日々が私を暗闇から徐々に浮き上がらせてくれました。

1997年の秋だったか、芦屋市役所の方からの勧めもあり、市役所の試験に受験しました。
もしこの時に受かっていたら私は1998年の4月から芦屋市役所職員になっていたはずです。ひょっとすると今もまだ市役所職員で頑張っていたかもしれません。
ですが、落ちました。多分、成績うんぬんより、私の状況や資質を見たうえの判断だったのかもしれません。酒にも弱いし。
でも、この時の人事課の皆さまには今も感謝しています
私が辞める際、一介のアルバイトの私のために会議室を確保し、人事部の皆さまから送迎会を開いていただきました。ねぎらいの言葉をかけていただき、花束の贈呈までも。
この時のことは忘れないでしょう。今も、この当時にお世話になった職員の方とは年賀状のやりとりが続いています。

芦屋市役所での約1年の日々。ここで私はコンピューターの初歩と社会で仕事をすることを学びました
一見、公務員と起業は正反対のベクトルを向いています。でも、目の前にあるタスクを解決しようとする時、そこには組織も個人もありません。起業の冒険も公務員の安定も関係ないのです。
休日にも出勤されている人事課の方の姿(私が何のために休日出勤していたのか覚えていませんが、皆さん私服で執務されていました)。日々の会話から感じる私の今後を案ずる思いやり。
今までの連載で何度も書きながら、当時のことを思い出していますが、”起業”した今でも、組織に勤める方を貶めたり、下に見たりする気はありません。
それはこの時に人事課で働いた経験が大きいと思います。
上に書いた私に好奇心を教えてくださったSEの方も、見るからにひどいインフルエンザで息も絶え絶えになりながら、東京から出て来て作業されていました。
当時の私は、皆さんが何を作業しているのか、何が彼らをそうさせるのか、全く理解できませんでした。が、人々が懸命にタスクをこなし、責任を全うしようとする姿勢は目にやきつきました
それは23才の若造にとても強い印象を残しました。その印象は私の人生の、とくに”起業”したあとのつらい時期に何度もフラッシュバックして私を鼓舞し続けています。
それ以来、24年がたとうとしていますが、実家に帰省したタイミングで機会があれば芦屋市役所を訪れ、外からみつめています。ここが私にとって「仕事」の原点だからです。

“起業”する前に、まず社会を知る。仕事を知る。これはとても重要なことだと思います。
もし本連載を読んでいる学生の方が起業を志していたとしても、起業の心は大切に温めつつ、一度はどこかの組織で揉まれてから”起業”した方がええよ、と言いたいです。
ま、私が言っても説得力はないかもしれませんが。

次回も、引き続き私の日々を書きます。


ワーキングツリーにはkintoneとboxをお飾り!


kintone Advent Calendar 2019の24日目の記事です。

  Topへ↓

ん?この著者、この間もAdvent Calendarでみたで? はい。二度目の登場です。

kintoneは優れたツールですが完全ではない?
なーんてディスられても動じず、欠点を正直に認めるのもkintoneの憎めないところ。そう思ってやまない著者です。

kintoneの欠点のいくつかはすぐに挙げられます。
例えばブラウザーベースで動いているので、ファイルアップロードの作業が面倒、とか。
添付ファイルフィールドに画像データを放り込みまくると、一ユーザーあたり5GBの容量の制限が足かせになってくる、とか。

そんな限界を解消するためのささやかなクリスマスプレゼントを皆様にお届けしたいと思います。
なに、ちょっとした贈り物です。クリスマスツリーによくぶら下がっている箱のような。
箱・・・つまりboxです。
今回の記事では私の2019年の失敗事例も公開しているので、ひょっとしたら皆さまのご参考になるかもしれません。

box for kintoneのご紹介

  Topへ↑

世の中にオンラインストレージ製品はたくさんありますよね。その中でもboxが存在感を出しているのはご存じでしょうか。

kintoneとboxの連携はbox for kintoneというプラグインとして公開されています。
それを使えばブラウザー上でアップロードなどせず、ドラッグ&ドロップでブラウザー上から操作できちゃうのです。

クライアントツールのbox Driveをインストールすれば、Windowsのエクスプローラと同じ操作でbox上にファイルをアップロードできてしまう。なんて優れもの。

boxを使うと無尽蔵(契約プランによる)を誇る容量にファイルを置きまくり。
それをkintoneの画面上からに自由に呼び出せる。素晴らしい!
上に書いたkintoneの弱点を周囲のツールが補ってくれるいい例です。
本稿もそうしたkintoneを補ってくれる一つの例としてお役に立てれば幸いです。お日柄もよいので。

box for kintoneの使い方は、Cybozu developer networkにも出ています。
https://developer.cybozu.io/hc/ja/articles/205070124-Box-for-kintone その記事に従えば、簡単にbox for kintoneを導入できるはずです。

ところが、この記事で書かれているのは、一つのレコードに一つのフォルダーを対応させるところまで。
kintoneでちょっとしたシステムを作ろうとすれば複数アプリにまたがった構成が必要です。それに応じてboxのフォルダー構成も複数の階層にまたがってしまいます。

合同会社アクアビットダム設計なる会社

  Topへ↑

たとえば、大阪と東京に支店がある合同会社アクアビットダム設計があったとします。
この会社はダムを独自の技術で製造し、お客様にお納めしている設定です。

受注システムをkintoneで構築するにあたり、
大阪支店[組織]の
長井何某[個人]が担当する
担当案件[案件]の
施行状況[施工]と
湛水状況[湛水]を管理すると仮にしましょう(工程はしょりすぎ。ちなみに最後の工程は水を貯める工程です)。

他に顧客マスタがあるでしょうがここは割愛。また、[組織]と[個人]はアプリではなく、kintoneのアカウントを使用する想定です。
この場合3アプリですね。

ここでご注文からの流れをkintoneで管理したとしましょう。
各アプリの連動はkintoneのアクション機能を使ったとします。

ダム完成までにはさまざまな状況を報告していかねばなりません。するとダムの進捗に合わせて写真が大量に溜まっていきます。
kintoneの添付ファイルフィールドにファイルをアップしていると、すぐに容量が危うくなりかねません。
ここでboxの出番です。

ここでboxで写真を管理しようとした場合、box内のフォルダー構成はこのようになると思います。

さて、先ほどご紹介したbox for kintoneを思い出してみましょう。
プラグイン設定画面にルートフォルダーのIDを設定していましたね。

つまり、アプリ自体にルートフォルダーのみを作る仕様。
それって、どのレコードであろうと共通で1つのフォルダーだけ、、、
いやいや多層boxと多層アプリでは対応できないのはちょっと、、、
結論! box for kintoneだとちょっとキツイかも。

合同会社アクアビットダム設計にboxを

  Topへ↑

ということで、本稿では多段階にわたるboxの連動例をお伝えしたいと思います。また、その時にしでかしてしまった失敗と、そのリカバリ例もお伝えしたいと思います。

まず、話を簡単にするため、合同会社アクアビットダム設計としてのルートフォルダーを設定しておきましょう。

さらに、支店ごとにフォルダーを設定し、支店の配下に担当ごとのフォルダーも生成しておくと話が早いですね。

実際のboxのフォルダー構成はこんな感じ。

ここでルートフォルダーのフォルダーIDを取得しておきます。boxの画面から取れます。

その状態で、案件アプリに新規レコードを登録します。
案件アプリの項目には案件の主管支店と、案件の主担当を指定するフィールドも忘れずに。もちろん必須項目として。

なぜ必須項目にするのでしょう。
その理由は、レコードが保存成功後、案件フォルダーを作る際にどこのフォルダーの配下に作成するか決めなければならないためです。

boxのフォルダー生成APIについて

  Topへ↑

ここでboxの仕様を押さえておきましょうか。
サービスの仕様を確認するには、APIから逆引きしたほうが理解しやすい。いわゆる技術者あるあるです。
boxのAPIはこちらのサイトをご覧になると良いでしょう。
https://ja.developer.box.com ・・developerサイトトップ
https://ja.developer.box.com/reference ・・APIレファレンス

boxのフォルダー作成の項を読むと、親であるフォルダーのIDがパラメーターとして必須のようです。
編集時には親フォルダーのIDは必須ではなくなりますが、もしフォルダーの場所を移動する際は親フォルダーのIDは指定しなければなりません。

案件フォルダーを作る際は、親となる担当者フォルダーのIDを把握しておかねばなりません。
そしてその上の支店フォルダーも。

つまり、案件レコードの保存のタイミングで行うべきことは、まず、そのレコードの支店フィールドの値に等しい支店フォルダーを検索することです。
その際、基準となるのはルートフォルダーです。

ルートフォルダーの下にある支店フォルダーを検索し、そのIDを特定します。
間髪入れずに支店フォルダーの配下にある担当者フォルダーを検索します。
これは同一担当者が複数支店にフォルダーを持っている場合など、運用も考慮していますが、支店フォルダーのIDを内部で保持できるのであれば、いきなり担当者フォルダーから検索してもよいです。
重要なのは案件フォルダーを作成するにはその親フォルダーのIDを事前に必ず保持しておくことです。

先ほど、kintoneの案件アプリの支店と担当者の両フィールドは必須でなければならないとしたのには、そういう理由があったのです。
これら二つのフィールドの値がないと、案件を保存する際に生成されるべき案件フォルダーの保存先が迷子になってしまうので。

JavaScriptで実装してみた

  Topへ↑

続いてはいよいよboxの操作を行います。

その前に本稿ではboxの権限周りには踏み込まないことを言っておきます。
OAuthについては、もともとbox  for  kintoneで用意されていたclient IDを使用します。本当はbox内でアプリを作成し、そのアプリ内で設定した権限を認証しなければならないのですが。
box for kintoneに甘えてしまいましょう。

ついでにpromise処理が考慮されたAPI実行部分もbox for kintoneの処理を流用させていただきましょう。

処理の大まかな順序としては以下の通りです。
ただ、のちに述べますが、このコードは動きません。なのでコードは画像として参考程度に載せます。

まず、イベントが動くタイミングはapp.record.create.submit.successです。新規作成処理成功後ですね。

処理の都合上、この中で別のアプリに更新を行い、その結果が成功した場合にboxフォルダー生成処理を呼び出しています。

boxフォルダー生成処理では、まずルートフォルダーから支店フォルダーを検索します。
続いて支店フォルダーから担当者フォルダーを検索します。

ここでboxの検索の仕様が立ちふさがってきます。
boxの検索仕様として、対象の種類、生成時刻、オーナーIDや親フォルダーIDなどは指定できるのですが、肝心の文字列を完全一致で検索できないのです。queryというパラメータがあるにもかかわらず、そこに指定した文字列は曖昧検索として処理されてしまうのです。
APIレファレンス

つまり、親フォルダーに属する検索対象が複数ありうる場合、検索文字列に工夫が必要です。例えば姓名の間にスペースが入る場合など。
「長井 権兵衛」と「長井 主水」が対象のフォルダー配下にあって「長井 権兵衛」を検索したい場合、queryに「長井 権兵衛」を設定してもマッチしません。
ではどうやればよいか。
スペースの前後の文字列で検索するのです。
この場合、「長井」または「権兵衛」で検索します。すると前者は二件がヒットし、後者は一件がヒットします。
その結果を再度ループして回し、一件ごとにname属性の値が検索文字列に一致するかを確認する。
そのような面倒な処理がboxの検索には必要です。

このコードも実際は使っていませんが、軽く提示します。

これで、担当者フォルダーIDまで求められました。

boxのフォルダー生成と検索にまつわる問題

  Topへ↑

続いてはフォルダーの生成に移りましょう!
APIレファレンス

生成にあたっては、名前と親フォルダーのIDを指定するだけです。

これで、案件レコードが保存されたら案件フォルダーを作成するところまでができました。

ここで当初想定していたboxの構成を見てみましょう。
案件フォルダーの配下に「提案状況」「施工状況」「湛水状況」の三フォルダーがあります。
このフォルダーの生成にも実は厄介な問題が潜んでいます。

例えば、案件のレコードが保存されました。そして案件フォルダーが生成されました。
そしたら、アクション機能によって施工状況アプリにレコードをコピーし、施工状況アプリでもレコードが保存された瞬間、案件レコードの時と同じように施工状況フォルダーを生成すればええんちゃうの?と思ったでしょう。

ところが、フォルダーを生成するには親のフォルダーの指定が必須です。
親フォルダー、つまり案件フォルダーをフォルダー生成処理の直前で検索してフォルダーIDを取得しなければなりません。
ところがこの親フォルダーの検索取得にはひとつハードルが控えています。そのハードルとは、コンテンツが生成されてから検索可能となるまでに時間がかかる、というものです。
boxはなんらかのコンテンツが作成されてから、それが検索可能となるまでにbox内部でindexを構築しており、それに時間が掛かるのです。
boxの APIレファレンスには以下のように書かれています。

つまり、案件フォルダーの生成からすぐ、施工状況アプリのレコードを保存した場合、親となるべきフォルダーが検索できないため、親フォルダーの指定ができないのです。

boxを多層構造でkintoneと連動させる場合、この仕様上の制限は現状では避けられません。

この制限を回避するため、発想を切り替えました。
つまり、案件フォルダーが生成された後、同時に配下のフォルダーも作ってしまうのです。

box APIでは、フォルダー生成が成功した時点で返り値として生成されたフォルダーのIDが得られます。このIDを使えば配下のフォルダーも即時に生成できます。

このコードも実際は使っていませんが、軽く提示します。

この下の処理ではさらに生成した案件フォルダーのURLを取得し、そのURLやフォルダーIDをkintoneの2アプリに更新して設定しています。

ここまででkintoneのapp.record.create.submit.successイベントを見てきました。その結果、実装ができそうです。
テストでもフォルダーが意図通りに生成されました。開発用のPCでも、お客様のご担当者様のPCでも。

バグ大魔王降臨!

  Topへ↑

ところが! やったと思った安心のかげに潜むのが落とし穴。バグが出てしまったのです。
テストではうまく動いていたのに、いざ本番になるとうまくいかない。なんということでしょう!

実は、その根本的な原因は今もなお究明できていません。
事象としてはboxにAPIリクエストを投げた後、何も戻ってこないのにプログラムが終了してしまいます。httpレスポンスすら帰ってこずに。
それも終了する場所がまちまちなのが始末が悪い。複雑なPromiseの構造に加え、referredを混在させたことにも問題があったのかもしれません。
この不具合がやっかいなのは、boxからのレスポンスを待つ間、app.record.create.submit.successの結果が完了できないことにあります。その間、ブラウザーは固まってしまい、kintoneを利用されている皆様にはただ困惑が。

そして、この不具合の原因がブラウザーにあるのか、box側にあるのか、kintone内部にあるのか、それともPCのスペックにあるのか。はたまたネットワーク環境によるものなのか。いまだに分っていません。
ただ、ブラウザー上でレスポンスを待つ運用はまずい、という悔いだけは骨身に沁みました。
私はその原因を追究するよりもお客様の運用を円滑に進めることを優先しました。
その決断として、ブラウザーに依存する実装を止めました。

AWSへ処理を移管

  Topへ↑

では、どうすればよいか。

幸いなことにkintoneにはWebhookという機能が備わっています。Webhookには、レコード保存時にWebhookのリクエストを受け付けてくれるWebhook URLを設定できます。

私がWebhook URLとして設定したのはAWSのAPI Gatewayで設定したURLでした。
API Gatewayについての説明は割愛しますが、kintoneから受け取ったWebhookのリクエストに含まれるJSONを読み取り、それを後続の処理に渡すことができます。
後続の処理にはAWS Lambdaを選びましたので、同じAWS上で処理が連携できます。

AWS LambdaではNode.jsを使い、ほぼkintoneのkintone.app.create.submit.successで実装したのに近いコーディングを行いました。
box Node SDKがAWS Lambdaから簡単に使用できるので、それを使えば似たような実装ができるのです。
ただし、boxのアプリは一から作る必要があります。設定もあれこれ行う必要が生じました。
最初、こちらのブログの力も借りました。ありがとうございました。
Lambda関数のコードを以下に掲示します。なお、このコードは動いているものを基にいろいろといじっているので参考になると思います。

/**
 * This sample demonstrates how to call Box APIs from a Lambda function using the Box Node SDK.
 *
 * For step-by-step instructions on how to create and authorize a Box application,
 * see https://github.com/box/samples/tree/master/box-node-lambda-sample.
 */
const BoxSDK = require('box-node-sdk');                                                // Node.jsのbox-node-sdkモジュールを呼び出す
const request = require('request');                                                    // Node.jsのrequestモジュールを呼び出す
const boxConfig = JSON.parse(process.env.BOX_CONFIG);                                  // AWS Lambdaの環境変数のBOX_CONFIGの値をJSONで扱えるように

boxConfig.boxAppSettings.appAuth.keyID = boxConfig.boxAppSettings.appAuth.publicKeyID; // 9行目で取り出したkeyIDにpublicKeyIDを代入

const sdk = new BoxSDK(boxConfig.boxAppSettings);                                      // 9行目で取り出したboxAppSettingsをsdkに代入

/**
 * Create a service account client that performs actions in the context of the specified
 * enterprise.  The app has a unique service account in each enterprise that authorizes the app.
 * The service account contains any app-specific content for that enterprise.
 * Depending on the scopes selected, it can also create and manage app users or managed users
 * in that enterprise.
 *
 * The client will automatically create and refresh the service account access token, as needed.
 */
const client = sdk.getAppAuthClient('enterprise', boxConfig.enterpriseID);             // boxアプリが適用できるアカウントのグローバル設定を管理

var DOMAIN = '*********.cybozu.com'; //kintone環境のドメイン                            // *****はご使用のkintoneのサブドメインを
var APP_ID_1287 = 1287;   //案件管理アプリのアプリID
var BASE_URL = "https://" + DOMAIN + '/k/v1/';
var APITOKEN_1287 =  "kintoonkaramottekitatookunwokokoniiretene";                      // kintoneの案件アプリのAPIトークン
var headers_1287 = {'X-Cybozu-API-Token': APITOKEN_1287};                              // リクエストで使用するヘッダ
var FolderId;
var updaterecordid_1287;

exports.handler = (event, context, callback) => {                                      // eventはkintoneのWebhookからAPI Gatewayを経由したレコード情報
                                                                                       // contextはLambda関数に関する情報
    const API_BASE_PATH = 'https://api.box.com/2.0';                                   // box Node SDKの文法に準拠

    // targetnameはコンテンツの文字列
    // typeはコンテンツの対象。本稿の場合はfolder
    // content_typesは検索対象とするプロパティ。本稿の場合はname
    // limitは検索結果として戻す件数。
    // idsは親フォルダーのフォルダーID
    // methodは本稿では全てGETなので使用していない
    // dataは本稿の場合検索対象(支店,担当者,案件No)のうち、担当者の場合["担当名"]で渡ってくる。
    function searchFolder(targetname, type, content_types, limit, ids, method, data, success, error) {  //157,159,161行目から呼び出されて検索処理を実施
        if (data !== undefined) {                                 // dataが指定されている場合
            if (data[0] === "担当名") {                            // dataの配列の最初の要素が"担当名"の場合
                targetname = targetname.split(' ')[0];           // 受け取るtargetnameは「長井 権兵衛」の様に全角スペースで区切られた姓名なので姓を取得
            }
        }

        return new Promise(function (resolve, reject) {           // Promiseを設定
            client.search.query(                                  // 24行目でclientとして承認されたbox Node SDKのsearchクラスのquery関数を呼び出し
                "\"" + targetname + "\"",                         // 最初のパラメーターは検索対象文字列。文字列なのでエスケープした""で囲む。でも曖昧検索
                {                                                 
                    fields: 'id,name,modified_at,extension,permissions,collections',  //検索結果として返すコンテンツのプロパティ
                    type: type,                                                       //folder
                    content_types: content_types,                                     //検索対象はnameプロパティ
                    limit: limit,                                                     //結果として返す件数
                    ancestor_folder_ids: ids,                                         //親フォルダーID 
                    offset: 0                                                         //オフセットしないので0
                })
                .then(function(results){                                              //結果が取得されたのでこのPromiseチェーンへ
                    if (data !== undefined) {                                         //dataが指定されている場合
                        if (data[0] === "担当名") {                                   //dataの配列の最初の要素が"担当名"の場合
                            for (var i = 0; i < results.entries.length; i++) {        //戻り値の件数分(limitで指定した件数分)
                                if (results.entries[i].name === data[1]) {            //戻り値のnameプロパティがdataの2番目の要素(担当名)か
                                    resolve(results.entries[i].id);                   //Promiseは完了したと戻り値のidプロパティ(フォルダーID)を返す
                                }
                            }
                        }
                    } else {
                        resolve(results.entries[0].id);                               //Promiseは完了したと戻り値のidプロパティ(フォルダーID)を返す
                    }
                })
                .catch(function(error){ // エラーの場合
                    reject(error);
                });
        });
    }

    // createParamは生成フォルダー名と親フォルダーIDが含まれたJSONオブジェクト
    function postFolder(createParam) {                     //176行目から呼び出されてフォルダー生成処理を実施
        return new Promise(function (resolve, reject) {    // Promiseを設定
            client.folders.create(createParam.parent.id, createParam.name)  //24行目でclientとして承認されたbox Node SDKのfolderクラスのcreate関数を呼出
                                                                            //1つ目は親フォルダーID、2つ目は生成するフォルダーの名称 
                .then(function(results){                                    //85行目の処理が成功したのでこのPromiseチェーンへ
                    var ankenid = results.id;                               //生成したフォルダーIDを以下のforeach内で使うためにankenidに代入 
                    var subfolders = [                                      //生成した案件フォルダーの配下に作成する三つのフォルダー名を配列にしています
                        "提案資料",
                        "施工状況",
                        "湛水状況"
                    ];

                    var promiseset = [];                                    //三つのフォルダーの生成が終わるまで待つPromiseを三つ作るので配列を設定
                    subfolders.forEach(function(val,index,ar){              //89行目で生成した配列の各要素をループします
                        promiseset[index] = new Promise( function( resolve, reject ) {  //95行目で生成した配列にPromiseを設定します。
                            client.folders.create(ankenid, val)             //24行目でclientとして承認されたbox Node SDKのfolderクラスのcreate関数を呼出 
                                                                            //1つ目は親フォルダーID(案件フォルダー)、2つ目は生成するサブフォルダーの名称
                                .then(function(results){                    //98行目の処理が成功したのでこのPromiseチェーンへ
                                    resolve(results.id);                    //97行目のPromiseは完了したと戻り値のidプロパティ(フォルダーID)を返す
                                }).catch(function(error){                   //98行目の処理が失敗したのでこのPromiseチェーンへ
                                    reject(error);                          //97行目のPromiseは失敗したとエラーオブジェクトを返す
                                });
                        });
                    });
                    Promise.all( promiseset )                               //97行目で設定した三つのPromiseが全て完了したらここに来る
                        .then( function ( message ) {
                        resolve(ankenid);                                   //84行目のPromiseは完了したと戻り値のidプロパティ(フォルダーID)を返す
                    })
                        .catch( function ( reason ) {                       //97行目で設定した三つのPromiseのどれかが失敗したらここに来る
                            console.log( reason ) ; // "失敗!!"
                        reject(false);                                      //84行目のPromiseは失敗したとエラーオブジェクトを返す
                    });
                })
                .catch(function(error){                                     //85行目の処理は失敗したらここに来る
                    reject(error);                                          //84行目のPromiseは失敗したとエラーオブジェクトを返す
                });
        });
    }

    // boxフォルダーIDは更新対象となるフォルダーID
    // createParamは更新フォルダー名と親フォルダーIDが含まれたJSONオブジェクト
    function putFolder(boxフォルダーID, updateParam) {             //165行目から呼び出されてフォルダー更新処理を実施
        return new Promise(function (resolve, reject) {         // Promiseを設定
            client.folders.update(boxフォルダーID, updateParam)    //24行目でclientとして承認されたbox Node SDKのfolderクラスのupdate関数を呼出
                                                                //1つ目は対象となるフォルダーID、2つ目は更新するフォルダー情報の含まれたJSONオブジェクト 
                .then(function(results){                        //126行目の処理が成功したのでこのPromiseチェーンへ
                    resolve(results.id);                        //125行目のPromiseは完了したと戻り値のidプロパティ(フォルダーID)を返す
                })
                .catch(function(error){                         //126行目の処理が失敗したのでこのPromiseチェーンへ
                    reject(error);                              //125行目のPromiseは失敗したとエラーオブジェクトを返す
                });
        });
    }

    function getFolderURL(createdid) {                          //178行目から呼び出されてフォルダーの共有処理を実施
        return new Promise(function (resolve, reject) {         // Promiseを設定
            client.folders.update(createdid, {shared_link: client.accessLevels.OPEN}) 
                                                                //24行目でclientとして承認されたbox Node SDKのfolderクラスのupdate関数を呼出
                                                                //1つ目は対象となるフォルダーID、2つ目は更新するフォルダーのプロパティ(共有設定)
                .then(function(results){                        //139行目の処理が成功したのでこのPromiseチェーンへ
                    resolve(results.shared_link.url);           //138行目のPromiseは完了したと戻り値の共有URLプロパティ(リンクURL)を返す
                })
                .catch(function(error){                         //139行目の処理が失敗したのでこのPromiseチェーンへ
                    reject(error);                              //138行目のPromiseは失敗したとエラーオブジェクトを返す
                });
        });
    }
    function createBoxFolder(支店, 担当者, 案件No, boxフォルダーID) {  //212行目から呼び出されてフォルダーの共有処理を実施
        return new Promise(function (resolve,reject) {             // Promiseを設定
            var rootfolder = "12345678910";                        //boxのフォルダー制御のルートとなるフォルダーのフォルダーIDを静的に代入
            var ownerbranchfolder;                                 //支店フォルダーのフォルダーID
            var personinchargefolder;                              //担当者フォルダーのフォルダーID
            var createParam;                                       //searchFolder関数へはダミーオブジェクト。putfolderとpostfolderへはJSONオブジェクト

            searchFolder(支店, "folder", "name", 10, rootfolder, 'GET', createParam).then(function (branchfolderid) {  //45行目へ
                ownerbranchfolder = branchfolderid;                           //searchFolderからの返り値を上位スコープのownerbranchfolderへ代入
                searchFolder(担当者, "folder", "name", 10, ownerbranchfolder, 'GET', ["担当名",担当者]).then(function (personfolderid) {  //45行目へ
                    personinchargefolder = personfolderid;                    //searchFolderからの返り値を上位スコープのpersoninchargefolderへ代入
                    searchFolder(案件No, "folder", "name", 10, personinchargefolder, 'GET', createParam).then(function (projectfolderid) {  //45行目へ
                        var name = "案件No" + " " + 案件No;                    //生成/更新する案件フォルダーの名称を設定する
                        createParam = {name: name, parent: {id: personinchargefolder}};  //案件フォルダーの設定情報をJSONオブジェクトに組み立てる
                        if (projectfolderid.length > 0) {                     //161行目で案件フォルダーが存在した場合(フォルダー情報更新)
                            putFolder(projectfolderid, createParam).then(function (updatedid) {  //124行目へ
                                FolderId = updatedid;                         //161行目の処理で得た更新したフォルダーIDをスコープ外の168行で使うため
                                getFolderURL(updatedid).then(function (updatedurl) {             //137行目へ
                                    resolve(FolderId+"****"+updatedurl);      //151行目のPromise完了をフォルダーIDと共有URLプロパティ(リンクURL)で返す
                                }).catch(function(error){                     //167行目の処理が失敗したのでこのPromiseチェーンへ
                                    reject(error);                            //151行目のPromiseは失敗したとエラーオブジェクトを返す
                                });
                            }).catch(function(error){                         //165行目の処理が失敗したのでこのPromiseチェーンへ
                                reject(error);                                //151行目のPromiseは失敗したとエラーオブジェクトを返す
                            });
                        } else {
                            postFolder(createParam).then(function (createdid) {       //83行目へ
                                FolderId = createdid;                                 //生成したフォルダーIDを以下の179行目で使うためにFolderIdに代入
                                getFolderURL(createdid).then(function (createdurl) {  //137行目へ
                                    resolve(FolderId+"****"+createdurl);      //151行目のPromise完了をフォルダーIDと共有URLプロパティ(リンクURL)で返す
                                }).catch(function(error){                             //178行目の処理が失敗したのでこのPromiseチェーンへ
                                    reject(error);                                    //151行目のPromiseは失敗したとエラーオブジェクトを返す
                                });
                            }, function(res) {                                        //176行目のフォルダー生成処理でrejectレスポンスが返った場合
                                if (res.status && res.status === 409) {               //176行目のフォルダー生成処理でrejectレスポンスが409返った場合
                                    if (res.context_info                              //176行目のフォルダー生成処理でrejectレスポンスが競合を示した場合
                                        && res.context_info.conflicts
                                        && res.context_info.conflicts.length > 0) {
                                        return;                                       //150行目のcreateBoxFolder関数を終える
                                    }
                                }
                            }).catch(function(error){                                 //176行目のフォルダー生成処理でエラーが帰った場合
                                reject(error);                                        //151行目のPromiseは失敗したとエラーオブジェクトを返す
                            });
                        }
                    }).catch(function (error) {                                       //161行目のフォルダー検索処理でエラーが帰った場合
                        // 非同期処理失敗。呼ばれない
                        console.log(error);
                    });
                }).catch(function (error) {                                           //159行目のフォルダー検索処理でエラーが帰った場合
                    // 非同期処理失敗。呼ばれない
                    console.log(error);
                });
            }).catch(function (error) {                                               //157行目のフォルダー検索処理でエラーが帰った場合
                // 非同期処理失敗。呼ばれない
                console.log(error);
            });
        });
    }

    var recordjson = JSON.parse(event.body);                                 //34行目で受け取ったkintoneのWebhookのレコード情報をJSON形式で扱えるように
    updaterecordid_1287 = recordjson.record.レコード番号.value;               //210行目のレコードデータの「レコード番号」フィールドの値を代入
    createBoxFolder(recordjson.record.支店.value[0].code,                    //150行目へ
                    recordjson.record.担当者.value, 
                    recordjson.record.案件No.value, 
                    recordjson.record.boxフォルダーID.value).then(function(idurl) {
        if (idurl) {                               //212行目のcreateBoxFolderの戻り値(168、179行目で値設定)
            var targetrecordids = [updaterecordid_1287+"**"+APP_ID_1287];   //211行目で設定したレコード番号と27行目で設定したアプリID
            var kintonepromiseset = [];                                     //kintoneのレコードアップデートが終わるまで待つPromiseの配列を設定
            targetrecordids.forEach(function(val,index,ar){                 //217行目で生成した配列の各要素(本稿では1つ)をループします
                kintonepromiseset[index] = new Promise( function( resolve, reject ) {  //218行目で生成した配列にPromiseを設定します。
                    var body_post = {                                                  //kintoneの既存案件アプリを更新するレコードを組み立てます。
                        app: val.split("**")[1],                                       //217行目で設定した配列の**で区切られた右側(アプリID)
                        id: val.split("**")[0],                                        //217行目で設定した配列の**で区切られた左側(レコード番号)
                        record: {
                            boxフォルダーID: {
                                value: idurl.split("****")[0]                       //212行目のcreateBoxFolderの戻り値の****で区切られた左のフォルダーID
                            },
                            表示: {
                                value: idurl.split("****")[1].replace("*******.box.com","app.box.com")
                                         //212行目のcreateBoxFolderの戻り値の****で区切られた右のURL(契約のboxのサブドメインをapp.box.comに置換の必要あり)
                            }
                        }
                    };
                    var options_getsalesamount = {                            //リクエストのbody部分を組み立てます。
                        url: BASE_URL + 'record.json',                        //28行目で設定したURLのルートと一行レコードの更新なのでrecord.jsonを連結
                        method: 'PUT',                                        //更新なのでPUT
                        headers: headers_1287,                                //30行目で設定したAPIトークン
                        'Content-Type': 'application/json',                   //リクエストのボディ部分のタイプ
                        json: body_post                                       //221行目で設定したボディ部分
                    }
                    //レコードを取得
                    request(options_getsalesamount, function (error, response, body) {    //Node.jsのrequestモジュールで234行のリクエストを送信
                        if (error) {                                                      //242行目の値がerrorだったら
                            console.log('Error: ' + error.message);
                            reject();                                                     //220行目のPromiseは失敗したとエラーオブジェクトを返す
                        }
                        console.log("kintone recordput:succcess"+val);
                        resolve();                                                        //220行目のPromise完了を返す
                    });
                });
            });
            Promise.all( kintonepromiseset )                                              //220行目で設定したPromiseが全て完了したらここに来る(本稿は1つ)
                .then( function ( message ) {                                             //252行目の処理が成功したのでこのPromiseチェーンへ
                    context.done(null, {text: "kintone POST and Box Folder Create success!"});  //Lambdaの処理結果をログとして残す
            })
                .catch( function ( reason ) {
                    context.done(null, {text: "Box Folder Create failed!"});              //Lambdaの処理結果としてエラーログ
                return;
            });
        } else {
            context.done(null, {text: "Box Folder Create failed!"});                      //Lambdaの処理結果としてエラーログ
        }
    }, function(res) {                                                                    //212行目の返り値がrejectで戻ってきた場合
        context.done(null, {text: "Box Folder Create failed!"});                          //Lambdaの処理結果としてエラーログ
        return false;                                                                     //212行目の結果としてfalseを返す
    });
};

 

なんとか実装

  Topへ↑

いずれにせよ、私が2019年に出した唯一の大きなバグがこれでした。
結局、バグが出てから実運用にこぎつけるまでにさらに二カ月ほどの時間をいただきました。お客様にも多大なご迷惑をおかけしてしまいました。

これが実装できたことで、案件アプリにレコードを登録した時点で、Webhookが発動し、AWS API GatewayからAWS Lambdaを介してboxへのフォルダー生成と、レコードに対応するboxのURLとフォルダー番号をkintoneの該当レコードに登録することができました。

kintoneの画面上にboxのフォルダーを出す部分はbox for kintoneの内部にも書かれている通りです。
実際それを使わせていただいています。ありがとうございます。
以下にコードを載せていますが、疲れてきたのでコード内のコメントは割愛します。ごめんなさい。

(function() {
    'use strict';

    var BOX_CLIENT_ID = 'wkgp4k64whsha8mwvg7k5k63cim82mmv';   //sample_plugin_default
    // localStorage
    var LOCAL_STORAGE_PREFIX = 'kintone.plugin.' + BOX_CLIENT_ID;
    var LOCAL_STORAGE_JUDGED_ALLOW_ACCESS = LOCAL_STORAGE_PREFIX + '.judgedAllowAccess';

    var config = [];

    var BOX_EMBED_WIDTH = 840;
    var BOX_EMBED_HEIGHT = 420;

    var getUrl = function(path) {
        var matchedGuestSpacePath = location.pathname.match(/^\/k\/(guest\/\d+\/)/);
        var guestSpacePath = '';
        if (matchedGuestSpacePath !== null && matchedGuestSpacePath.length === 2) {
            guestSpacePath = matchedGuestSpacePath[1]; // "guest//"
        }
        var apiPath = '/k/' + guestSpacePath + path;
        return apiPath;
    };

    var boxApi = {
        clientInfo: {'provider': 'box', 'client': BOX_CLIENT_ID},

        getAccessToken: function() {
            // add a hash parameter for distinguishing OAuth redirect
            var delimiter = (location.hash.indexOf('#') === 0) ? '&' : '#';
            location.hash += delimiter + BOX_CLIENT_ID + '.oauth_redirect=true';
            kintone.oauth.redirectToAuthenticate(this.clientInfo, location.href);
        },
        hasAccessToken: function() {
            return kintone.oauth.hasAccessToken(boxApi.clientInfo);
        }
    };

    var validateConfig = function(record) {
        config['folderId'] = '0';//Box親フォルダーID
        config['keyFld'] = '顧客名';//kintoneキーフィールド
        config['boxUrl'] = '表示';//Box共有リンクの格納先
        config['boxFolderId'] = "boxフォルダーID";
        config['access'] = 'Open';//Box共有リンクのアクセス権[Collaborator/Company/Open]
        config['prohibitToDownload'] = 'false';//コラボレータにのみダウンロードを許可する

        if (!config) {return false; }
        return true;
    };

    var decorateBoxLinkField = function(boxUrl) {

        var boxLinkPattern = /^https:\/\/([a-zA-Z0-9]+).box.(com|net)(\/s\/[a-z0-9]+)$/;
        var match = boxUrl.match(boxLinkPattern);
        if (!match) {
            return;
        }
        var iframeSrc =
            'https://app.box.com/embed_widget/000000000000' +
            match[3] +
            '?theme=gray' +
            '&show_parent_path=no' +
            '&show_item_feed_actions=no' +
            '&partner_id=233';

        var elEmbed = kintone.app.record.getFieldElement(config.boxUrl);
        if (elEmbed === null) {return; }
        $(elEmbed).empty();

        var width = BOX_EMBED_WIDTH;
        var height = BOX_EMBED_HEIGHT;

        $(elEmbed).parent().css({
            'width': (width + 100) + 'px',
            'height': 'auto',
            'background-color': 'rgba( 255, 255, 255, 0 )'
        });
        var embedIframe = $('', {
            src: iframeSrc,
            width: width,
            height: height,
            frameborder: '0',
            allowfullscreen: 'true',
            allowscriptaccess: 'always'
        });
        $(elEmbed).append(embedIframe);
    };

    var judgedAllowAccessFlag = {
        isSet: function() {
            return (localStorage.getItem(LOCAL_STORAGE_JUDGED_ALLOW_ACCESS) !== null);
        },

        set: function() {
            localStorage.setItem(LOCAL_STORAGE_JUDGED_ALLOW_ACCESS, 'true');
        },

        remove: function() {
            localStorage.removeItem(LOCAL_STORAGE_JUDGED_ALLOW_ACCESS);
        }
    };

    kintone.events.on('app.record.detail.show', function(e) {
        if (validateConfig(e.record)) {
            var boxUrl = e.record[config.boxUrl].value;
            if (!e.record[config.boxUrl].value) {

                var elEmbed = kintone.app.record.getFieldElement(config.boxUrl);
                if (elEmbed === null) {return null; }
                $(elEmbed).empty();

            } else {
                decorateBoxLinkField(boxUrl);
            }
        }

        return e;
    });

    var checkAccessToken = function() {
        var oauth_redirect_param = BOX_CLIENT_ID + '.oauth_redirect=true';
        if (location.hash.indexOf(oauth_redirect_param) !== -1) {
            judgedAllowAccessFlag.set();

            // remove a hash parameter
            location.hash = location.hash.replace(oauth_redirect_param, '');

            var t = setInterval(function() {
                if (location.hash.indexOf(oauth_redirect_param) !== -1) {
                    // cancel button was clicked
                    clearInterval(t);
                    location.href = getUrl(kintone.app.getId() + '/');
                }
            }, 500);
        } else if (!judgedAllowAccessFlag.isSet() || !boxApi.hasAccessToken()) {
            kintone.oauth.clearAccessToken(boxApi.clientInfo, function(body, status, headers) {
                boxApi.getAccessToken();
                return null;
            });
        }
    };

    kintone.events.on('app.record.create.show', function(e) {
        if (validateConfig(e.record)) {
            checkAccessToken();
            e.record[config.boxUrl]['disabled'] = true;
            e.record[config.boxFolderId]['disabled'] = true;
        }

        return e;
    });

    kintone.events.on('app.record.edit.show', function(e) {
        if (validateConfig(e.record)) {
            if (!e.record[config.boxUrl].value) {
                checkAccessToken();
            } else {
//                e.record[config.keyFld]['disabled'] = true;
                e.record[config.boxFolderId]['disabled'] = true;
            }
            e.record[config.boxUrl]['disabled'] = true;
        }
        return e;
    });

    kintone.events.on('app.record.index.edit.show', function(e) {
        if (validateConfig(e.record)) {
            e.record[config.boxUrl]['disabled'] = true;
            e.record[config.keyFld]['disabled'] = true;
            e.record[config.boxFolderId]['disabled'] = true;
        }
        return e;
    });
})();

 

 

まとめ

  Topへ↑

実案件ではさらに凝った実装(フォルダー数も階層も本稿の例よりさらに多い)が施されています。
そして、古くboxが設定されていないレコードには手作業がたまに発生しているものの、実運用に乗っています。
この記事ではそれ以上の情報を出すことはお客様の業務に関わるのでここまでにしとうございます。

本稿がkintoneを運用している皆様にとって少しの手助けになれば幸せです。

kintone上で大量の添付ファイルに困っていらっしゃる方や、社内ファイルサーバーからの移行でお困りの方。他のPaaSからkintoneへ移行する作業があって、添付ファイルの扱いにお困りの方。
弊社では本稿のようなboxとkintoneの連動事例を何例も手掛けております。お困りの際はおっしゃってくださいませ。

最後に蛇足ですが、boxの案件で例に挙げた三つのダムは、私が実際に訪れてダムカードを入手した場所です。


当エントリーの参考にさせていただいたブログ

  Topへ↑

最後になりましたが、このエントリー作成にあたり、以下の2サイトからの情報を参考にさせていただきました。ありがとうございました。

 box APIレファレンス
 AWS Lambda上でBox Node SDKを利用する-九龍堂雑録


コーチングのグラフってkintoneで出せるんやって!


kintone2 Advent Calendar 2019の5日目の記事です。

  Topへ↓

突然ですが皆さん、コーチングって聞いたことがありますか?
あっ! そこのあなた、ページはそのままに!
これは間違いなくkintone Advent Calendarの記事ですから。
ほら!

きとみちゃん楽しいですよね!
https://kintone.cybozu.co.jp/jp/kitomi/

日々、お仕事に励むきとみちゃん。
きとみちゃんとお仕事をする仲間はとっても個性が豊か。

ちょっぴりあわてんぼうでドジっ子のきとみちゃんがkintoneに救われる姿は微笑ましいです。
ちなみに私は巻物で見積書を出してくださる麻呂な方が好きです。この方のお名前はなんでおじゃる?

さて、きとみちゃんがお仕事をする上で助けになる手法はkintoneの他にもさまざまなものがあります。

その中の一つが冒頭に書いたコーチングなのです。

コーチングを一言で言い表すなら、
・相手の学習や成長、変化を促し、相手の潜在能力を解放させ、最大限に力を発揮させる。
でしょうか。

詳しくはWikipediaの「コーチング」
をご覧くださいませ。

ビジネスにフォーカスを当てたコーチングの歴史はまだまだ浅いです。
ここでお伝えしておかなければならないのは、自己啓発セミナーとは違う、ということです。

と、偉そうにウンチクを述べる私ですが、コーチングを受けた経験は人生で1,2回だけ。
では、そんな私がkintone Advent Calendarで何を語るというのでしょうか。

結論を先に書いちゃうと、kintoneでこんなグラフを作ってみましょう!
ということなんですね。

グラフとデータのご説明

  Topへ↑

上に登場したのは四つの傾向を円グラフにしたものです。
それぞれの傾向の文字列にマウスを合わせると、事前に登録しておいたキーワードが出てくる。
これ、実は以前、お客様に依頼されて作ったkintoneにChart.jsを組み込んだグラフ生成の仕掛けです。

私はコーチングには無知です。
ですから、kintoneに入力画面を作り、その結果を集計することで、設問に応じた四つの傾向が算出できる、ということを知ったときは新鮮でした。

お客様によれば、
相手をほめる場合の、個人に響くキーワードは4つの傾向に分けられる
だそうです。

それに合わせて、こんな入力画面を作ってみました。

仮に20問の設問としています。それぞれの4つの傾向ごとに5問を設問しました。
それぞれの問いごとに
・よく当てはまる
・当てはまる
・当てはまらない
・まったく当てはまらない
の4種類の答えをラジオボタンで設定しています。

もちろん、さらに設問数を増やすことも可能ですし、設問数を自在に増減させたい、というご要望もあるでしょうね。
その場合はサブテーブルを使えばよさそうです。
この記事ではサブテーブルではなく、20問に固定したバージョンでお届けしてみます!

実際の内容

  Topへ↑

はい。ではアプリの設定画面です。フォームはこんな感じ。

一番左の文字列フィールドは設問の文字列を入力します。
フィールドコードは上から順にquestion_1からquestion_20としています。

真ん中のドロップダウンフィールドは4つの傾向を選びます。
フィールドコードは上から順にtrend_1からtrend_20としています。

右のラジオボタンフィールドはそれぞれの答えを入力する欄です。
フィールドコードは上から順にanswer_1からanswer_20としています。

で、続いてはグラフを表示するカスタマイズビューを設定してみましょう。

こんな感じですね。

続いてはロジックです。
実は、このグラフを作るには以下の二つのJavaScriptファイルを設定するだけ。

上に設定したのは、Chart.jsです。
Cybozu Developer Network
からCDNのページに移動してもらえれば。

そこのChart.jsに書かれているURLをコピーし、上の画面の
から

に貼って保存するだけ! きとみちゃんでもできますよね?
htttps://がダブらないようにだけ気を付けて!

続いてグラフ表示のロジックです

  Topへ↑

では続いてきとみちゃんとグラフ.jsの内容を。
ここからはVisual Studio Codeの画面にコメントを入れています。




ちょっと見にくいので、直に貼ったコードも提供します。右にスクロールしてくださいね。

(function () {
  "use strict";

  // 一覧ページ
  kintone.events.on('app.record.index.show', function(event) {                       //一覧画面表示時の定型文です
    var record = event.records[0];
    var itemcount = 20;
    var 1_Score = 0;
    var 2_Score = 0;
    var 3_Score = 0;
    var 4_Score = 0;
    var selectedScore = 0;
    var dataLabelPlugin = {                                                          //ここは以下の162行目で呼び出されるチャートのプラグインコンフィグで呼び出される部分です。
      afterDatasetsDraw: function (Chart, easing) {                                  //afterDatasetsDrawとはプラグインコアAPIとして呼び出されるChart.js内部のフックです。要は描画後です。
        var ctx = Chart.ctx;                                                         //チャートが描画されている対象のDOM要素です。157行目で定義され、159行目でChartオブジェクトに渡されます。
        Chart.data.datasets.forEach(function (dataset, i) {                          //対象チャートをループしています。データは77行目で一種類で指定していますのでループは一回のみです。               
          var meta = Chart.getDatasetMeta(i);                                        //チャートのメタデータを取得しています。データやラベルも含まれています。
          if (!meta.hidden) {                                                        //チャートのhiddenプロパティがTrueの場合そもそもチャートが描画されません。
            meta.data.forEach(function (element, index) {                            //メタ要素のデータをループします。今回は4種類ですね。
              ctx.fillStyle = 'rgb(0, 0, 0)';                                        //円グラフの中の文字の色です。rgb(0, 0, 0)は黒を表しています。
              var fontSize = 16;                                                    //36-37行目で文字の場所を設定するためのフォントサイズを16pxで設定しています。表示フォントのサイズとは別に。
              ctx.font = "24px \"Helvetica Neue\", Helvetica, Arial, sans-serif";    //これが実際に描画される文字のフォント情報です

              var sum  = function(arr) {                                             //ここでは対象となるデータの合計値を返します。4種類のデータの合計です。
                  return arr.reduce(function(prev, current, i, arr) {
                      return prev+current;
                  });
              };
              var percentString = ((dataset.data[index] / sum(dataset.data))*100).toFixed(1) + "%";  //それぞれのデータの値を全体の合計で割り、パーセントの文字列を構築します。
              var dataString = Chart.data.labels[index];                                             //それぞれのデータのラベルです。79行目で定義した4つの傾向のラベルですね。 
              ctx.textAlign = 'center';
              ctx.textBaseline = 'middle';

              var padding = 5;
              var position = element.tooltipPosition();
              ctx.fillText(dataString, position.x, position.y - (fontSize / 2) - padding);           //30行目で設定したラベルの値を計算した位置に表示します。
              ctx.fillText(percentString, position.x, position.y - (fontSize / 2) - padding + 35);   //29行目で設定した値のパーセントの文字列を計算した位置に表示します。
            });
          }
        });
      }
    };
    for (var i=1 ; i<=itemcount ; i++){                                                              //ここから76行目までは大人の事情でいろいろとあいまいですがお許しを
      switch( record['answer_' + i]['value'] ) {                                                     //要するに20レコードの設問の答えを基に四つの傾向に加算しているのです
        case 'よく当てはまる':
          selectedScore = 係数は内緒よ♪;
          break;
        case '当てはまる':
          selectedScore = 係数は内緒よ♪;
          break;
        case '当てはまらない':
          selectedScore = 係数は内緒よ♪;
          break;
        case 'まったく当てはまらない':
          selectedScore = 係数は内緒よ♪;
          break;
      }
      switch( record['trend_' + i]['value'] ) {
        case '一つ目の傾向':
          1_Score = 1_Score + selectedScore + 山藤ゆりさんに教えてもらった魔法の値を加えるの♪;           //要するに20レコードの設問の答えを基に四つの傾向に重みづけしているのです
          break;
        case '二つ目の傾向':
          2_Score = 2_Score + selectedScore + 山藤ゆりさんに教えてもらった魔法の値を加えるの♪;
          break;
        case '三つ目の傾向':
          3_Score = 3_Score + selectedScore + 山藤ゆりさんに教えてもらった魔法の値を加えるの♪;
          break;
        case '四つ目の傾向':
          4_Score = 4_Score + selectedScore + 山藤ゆりさんに教えてもらった魔法の値を加えるの♪;
          break;
      }
    }
    1_Score = ロジック関数は内緒よ♪(1_Score);
    2_Score = ロジック関数は内緒よ♪(2_Score);
    3_Score = ロジック関数は内緒よ♪(3_Score);
    4_Score = ロジック関数は内緒よ♪(4_Score);                                          //さらに四つの傾向に値を秘密ロジックで精緻化しています。この辺も大人の事情が絡んでいます。
    var pieChartData = {                                                             //161行目でChartオブジェクトに渡されるデータとラベルと背景色のホバー色や枠の組み合わせです。四要素です。   
      labels : ["リーダー合理系","アイディア活動系","ヘルプ支援系","クール分析系"],       //ラベルですね。四つの要素に分かれています。
      datasets : [                                                                   //四つの要素のそれぞれの色の指定です。
        {
          backgroundColor: [
            '#ff6384',
            '#36a2eb',
            '#cc65fe',
            '#ffce56'
          ],
          hoverBackgroundColor: [
              "#FF2384",
              "#3662EB",
              "#cc25fe",
              "#FF8E56"
          ],
          hoverBorderColor: [
              "#000000",
              "#000000",
              "#000000",
              "#000000"
          ],
          hoverBorderWidth: [
              2,
              2,
              2,
              2
          ],
          data : [1_Score,2_Score,3_Score,4_Score]                                   //四つの要素の値です。大人の事情で実際の回答から複雑に計算された結果が格納されます。
        }
      ]
    }
    var tooltipkeyword = {                                                           //ここは四つの傾向ごとに176行目で乱数を設定し、任意のキーワードを表示するようにしています。
      type : [
        {
          word : [
            '同業者もあの人を噂している',
            '他の部署でも話題になっている',
            '○○さんしかできない',
            '自分で判断し、動ける人',
            '部署のメンバーに信頼されている',
            'あのひとには任せられる'
          ],
          title : "任せる、難題、未知の分野、他に頼めない、誰にもできない"
        },
        {
          word : [
            '発想がおもしろい!!',
            '一緒にいるだけで楽しい!!',
            'さすがアイデアマン!!',
            'すばらしいサービス精神!!',
            'うちの部署のムードメーカー!!',
            'その自由な発想がうらやましい!!'
          ],
          title : "自由にして、思いっきり、楽しく、面白く、みんなでいっしょ"
        },
        {
          word : [
            'みんなが働きに感謝している',
            '縁の下の力持ち',
            '一緒にいて落ち着く',
            '丁寧で親切で信頼できる',
            '細かいところによく気が付く',
            '相手の気持ちを分かってくれる'
          ],
          title : "感謝、ありがとう、仲良く、話し合い、相手の気持ち"
        },
        {
          word : [
            '詳しく業務を理解している',
            '商品のことをよく知っている',
            'わが社のことになんでも詳しい',
            'うちの課の歩く辞書',
            'あの人に聞けば間違いない',
            'このデータ量は大したもの'
          ],
          title : "情報、正確、正しく分析、予定通り、計画通り"
        }
      ]
    }
    var canvas = document.getElementById('canvas').getContext("2d");                 //Chartが描画されるDOM要素を指定するChart.jsの定型文です。id="canvas"はカスタマイズビューで指定しました。
    canvas.canvas.height = 256;                                                      //描画される領域の高さを指定しています。
    var test_chart = new Chart(canvas, {                                             //ここでChartオブジェクトをインスタンスとして実体化させています。
      type: 'pie',                                                                   //type: 'pie'はグラフの種類ですね。円グラフです。
      data: pieChartData,                                                            //77行目で定義したデータの実態です。
      plugins: [dataLabelPlugin],                                                    //プラグインコンフィグで関数を呼び出すことができます。その関数は13行目をご参照ください。
      options: {                                                                     //ここからはオプション情報です。
        animation: {
          animateRotate: true,
          animateScale: true
        },
        tooltips: {
          titleFontSize: 48,
          bodyFontSize: 36,
          callbacks: {
            label: function (tooltipItem, data){                                     //ここは描画後にマウスカーソルが乗った時の事前に内部でtooltipItemに定義された情報を基に値を返します。
                return pieChartData["datasets"][0]['data'][tooltipItem['index']] + "ポイント"       //77行目で定義されたデータから該当するデータを表示し
                  + "  キーワード → " + tooltipkeyword["type"][tooltipItem['index']]["title"];      //さらにキーワードとして109行目で定義された四つの傾向のタイトルを表示します。
            },
            afterLabel: function (tooltipItem, data){                                //172行目のラベルの後に別の情報を表示させるにはafterLabelツールチップコールバックが呼び出せます。
                  return "「" + tooltipkeyword["type"][tooltipItem['index']]["word"][Math.floor(Math.random()*(6-0)+0)] + "」";
            }                                                                        //さらにテキストとして109行目で定義された四つの傾向の文言のオブジェクトから乱数で選ばれた文言を表示します。
          }
        },
      }
    });
  });
})();

あとはこのJavaScriptファイルを

にのようにアップロードしていただければ。

どうでしょう。kintoneのデータにChart.jsを組み合わせるだけで、
kintoneのデータを分析することができてしまうのです。

Chart.jsにはさまざまなグラフが用意されているので、
kintoneの標準グラフでは表現できないことも可能です。

コーチング用の分析ツールとしても使えてしまうkintoneの奥深さを楽しんでいただけたらきとみちゃんも喜ぶはずです!
よかったら以下にChart.jsの公式サイトのリンクも貼っているのでご参考になさってくださいね。

当エントリの参考にさせていただいたブログ

  Topへ↑

最後になりましたが、このエントリ作成にあたり、以下の2サイトおよび、コーチングについて教えて頂いたお客様からの情報を参考にさせていただきました。ありがとうございました。

 Chart.jsドキュメント翻訳
 Chart.js公式サイト


2019年11月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年11月は外部への発信に力を注ぎました。複数の案件を並行して進められるようになりつつありますが、弊社の認知度をあげるためには外部での発信が欠かせません。外部のイベントに数多く参加し、代表自身が登壇も行いました。露出が増えた月といえましょう。
売上高では先月と先々月を上回る額を得られ、目標額も達成することができました。達成度7割。達成感7割。満足感8割というのが自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。
弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 11月度の売上は、目標額にわずかに超えることができました。一方で、代表の稼働時間はかなり多種多様なものへと変化しました。11月はCybozuさんのイベントが目白押しの月。各種イベントへの参加や主催、登壇など、手ごたえを得た月でした。
中でも特筆すべきは弊社がサイボウズ株式会社のオフィシャルパートナーになったことです。これによって弊社の認知度はさらに上がると思われます。
また、働き方改革への取り組みの一環として、紀伊半島はたらくくらすプロジェクトにも参加し、ワーケーションを目的とした2泊3日の滞在を行いました。
そうした対外的なイベントの合間にさまざまな案件をこなし、ご検収まで結びつけられました。それによって代表の求めるワークライフバランスの実現に一歩だけ近づけたように思います。これからも将来に向けての布石は次々と打っていくので、そうした準備も含めて今月は評価したいと思います。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。
外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。そもそもの案件ごとの見積額を上げ、なおかつ、教え、フォローする時間だけ生産性が落ちることを踏まえた額を出さねばなりません。
案件によって難易度も内容も千差万別なのがシステム開発。効率的な外注はどうすれば可能なのか。お互いが不公平にならず、必要な利益を得るにはどうすればよいのか。効率的な仕様とスキルの伝達をどうやればよいのか。試行錯誤です。

サテライトオフィスの開設を機に、スキルの伝達についてはやりやすくなっていますが、まだ難しい。
ありがたいことに、お仕事のご依頼は尽きてはいません。案件が来ている好況のうちに今後の業務を見越し、パートナー技術者さんとの協業に相当労力を割かなければ、と覚悟しています。売上も下がるし、利益も落ちるでしょうが。

§ 開発案件 今月は八割の開発案件がkintoneがらみでした。kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用することが受注につながっています。ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。今月もまた新規に複数のkintone案件が開始しました。
同時に、自社で開発して納品するのではなく、既存のkintoneのサードパーティ製品を活用した短納期案件への対応にも着手しました。

同時に、他のサービスについても視野は広く持たねばなりません。AIの勉強会に出ました(10/15)。幕張メッセで開催されたCybozu Days 2019 in 東京ではサードパーティ各社のソリューションに触れました。オンラインでのセミナーもAWSome Day Online Conference(11/25)、freee for kintoneセミナー(11/29)の二回受講しました。引き続き情報収集は抜かりないよう勧めます。
旧来のシステム開発の考えでは将来は厳しくなることは確実ですし、kintoneを軸にさまざまなサービスを連携させられれば、引き続き弊社の武器になるはずと信じて。先月と先々月は続けてkintoneの資格試験に受かり、今月も受ける予定でしたが、時間がなく断念。来月早々に受ける予定です。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。
弊社だけの財務状態は問題ないのに、家計が絡むととたんに脆弱になる。いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。
ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。ここはまだ手付かずです。

§ 人脈の構築 今月はCybozu関連のイベントを含め、対外的な活動が多い月でした。そのおかげでさまざまな場所で新たなご縁ができました。
下の対外活動にも記載していますが、それらの場所では得がたい知己が増え、今後も互助できそうなつながりができました。こうした活動が今後の業績を左右すると信じています。引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。kintone EvaCamp 2019(11/6)、Cybozu Days 2019 in 東京(11/7、8)、第4回女性のセカンドキャリアステップセミナー(11/14)、kintone Café 東京 Vol.9(11/15)、AI勉強会(11/20)、紀伊半島はたらくくらすプロジェクト(11/25、26、27)。
来月もfreee社で登壇が控えています。記事執筆のお仕事も複数いただいています。そうしたご縁は対外活動から生まれています。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は2本アップしました。
(「アクアビット航海記 vol.14〜航海記 その3
アクアビット航海記 vol.15〜航海記 その4」)
2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。なお、本音採用サイトでは元記事が削除されたため、転載ではなく弊社サイトのみの連載扱いとさせていただきます。

今月書いた本のレビューは6本(「劇団四季と浅利慶太
平の将門
イマドキ古事記 スサノオはヤンキー、アマテラスは引きこもり
鉄道と国家 「我田引鉄」の近現代史
日本ふーど記
声の狩人 開高健ルポルタージュ選集」。
今月書いた物申すブログは1本(「ラグビーワールドカップがくれたもの」。
今月書いた弊社の活動ブログは5本(「kintone EvaCamp 2019に参加しました
Cybozu Days 2019 in 東京に行きました」。
弊社はサイボウズ株式会社のオフィシャルパートナーとなりました」。
「雇われない働き方」についてお話してきました」。
kintone Café 東京 Vol.9を開催しました」。

§ 年表 

 ・11月お仕事

  神楽坂で商談、飯田橋ドトールコーヒーで作業、幕張でEvaCamp 2019参加、エバンジェリストで飲み会、Cybozu Days 2019 in 東京参加×2、幕張で打ち上げ飲み会、BUSO Agoraで作業、鎌倉商工会議所で登壇、参加者の皆様とランチ会、マクドナルド鎌倉駅前店で作業、鎌倉市役所前StarBucksで懇談、恵比寿で商談、kintone Café 東京 Vol.9を主催、kintone Café 東京 Vol.9懇親会、サイボウズ社役員様と会見、Yahoo! LODGEで作業、恵比寿で打ち合わせ、新宿御苑で作業、新宿御苑で商談×2、五反田選書する書店フォルケでAI勉強会、恵比寿で商談、Shimokitayama Biyoriで作業、Shimokitayama BiyoriからAWSome Day Online Conference参加、Shimokitayama Biyoriから恵比寿での打ち合わせにリモート参加、町田で商談、町田市立図書館で作業、サテライトオフィスからZoom打ち合わせ、サテライトオフィス×9

 ・11月ツイート

https://togetter.com/li/1436948


アクアビット航海記 vol.15〜航海記 その4


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。前々回からタイトルにそって弊社の航海記を書いていきます。以下の文は2017/11/16にアップした当時の文章が喪われたので、一部修正しています。

大学は出たけれど

さて、1996年の4月です。大学は出たけれど、という昭和初期に封切られた映画があります。この時の私はまさにその状態でした。この時から約3年。私にとっての低迷期、いや雌伏の時が続きます。この3年間についての私の記憶は曖昧です。日記もつけていなければ、当時はSNSもありませんでしたから。なので、私の3年間をきちんと時系列に沿って書くことはできないでしょう。多分記憶違いもあるはず。ともあれ、なるべく再構築して紹介したいと思っています。

妙に開き直った、それでいてせいせいするほどでもない気持ち。世の中の流れに取り残されたほんの少しの不安、それでいて焦りや諦めとも無縁な境地。あの頃の私の心中をおもんばかるとすればこんな感じでしょうか。新卒というレールから外れた私は具体的な将来への展望もない中、まだどうにかなるわという楽観と、自由さを味わっていました

大学を出たとはいえ、私の心はまだ大学に留まったままでした。なぜかというと家が大学のすぐ近くだったからです。アクアビット航海記 vol.12〜航海記 その1にも書きましたが、わが家は阪神・淡路大地震で全壊しました。そこで家族で住む家を探したのが私でした。家は大学の友人たちに手分けして探してもらいました。そしてほどなく、私の一家は関西大学の近くに引っ越しました。この時家を見つけてくれた友人には20年以上会えていません。N原君、覚えていたら連絡をください。
さて、家の近くに大学があったので、卒業したはずの私は在学生のようにぬけぬけと政治学研究部や大学の図書館に入り浸っていました。

その時の私は多分、光画部における鳥坂先輩のような迷惑至極な先輩だったことでしょう。鳥坂先輩と同じく大義名分として公務員試験を受ける、という御旗を立てて。それは、私自身でも本当に信じていたのか定かではない御旗でした。ちなみに鳥坂先輩が何者かはネットで検索してください。

1996年の10月。西宮に新しい家が完成し、西宮に戻ることになりました。引っ越す前には幾度も西宮に赴き、引っ越し作業に勤しんでいた記憶があります。なにせ、時間はたっぷりありますから。

孤独な日々

そう、時間だけは自由。何にも責任を負わず、親のスネをかじるだけの日々。この半年、逆の意味で時間の貴重さを噛みしめられたように思います。なぜなら、何も覚えていないから。インプットばかりでアウトプットがないと、時間は早く過ぎ去ってゆく。責任がないと、ストレスがないと、何も記憶に残らない。私が得た教訓です。

ですが、1996年の4月から1999年の3月までの3年間はとてもかけがえのない日々でした。なぜならこの3年間も大学の4年間に劣らず私の起業に影響を与えているからです。この3年間に起こったさまざまなこと、例えば読書の習慣の定着、パソコンとの出会い、妻との出会い、ブラック企業での試練は、起業に至るまでの私の人生を語る上で欠かせません。

この三年で、私が得たもの。それは人生の多様性です。小中高大と順調に過ごしてきた私が、会社に入社せず宙ぶらりんになる。それもまた、人生という価値観。その価値観を得たことはとても大きかった。大学を卒業しそのまま社会に出てしまうと宙ぶらりんの状態は味わえません。そして、それが長ければ長いほど、組織から飛び出して“起業“する時のハードルは上がっていきます。人によってそれぞれでしょうが、組織にいる時間が続けば、それだけ組織の中で勤めるという価値観が心の中で重みを増していきます。
誤解のないように何度も言い添えますが、その価値観を否定するつもりは毛頭ありません。なのに私は23の時、すでに宙ぶらりんの気持ちをいやというほど味わってしまいました。そして、宙ぶらりんの状態もまた人生、という免疫を得ることができました。それは後年、私の起業へのハードルを下げてくれました。
起業とは、既存の組織からの脱却です。つまりどこにも属しません。起業とは多様性を認め、孤独を自分のものにし、それを引き受けることでもあります。卒業してからの半年、私の内面はとても孤独でした。表面上はお付き合いの相手がいて、政治学研究部の後輩たちがいて、家族がいました。でも、当時の私は、あっけらかんとした外面とは裏腹に、とても孤独感を抱えていたと思います。

本に救いをもとめる

その孤独感は、私を読書に向かわせました。本に救いを求めたのです。その頃から今に至るまで、読んだ本のリストを記録する習慣をはじめました。
当時の記録によると、私の読む本の傾向がわが国、そして海外の純文学の名作などに変わったことが読み取れます。
それまでの私はそれなりに本を読んでいました。推理小説を主に、時代小説、SF小説など、いわゆるエンタメ系の本をたくさん。ですが、私の孤独感を癒やすにはエンタメでは物足りませんでした。純文学の内面的な描写、人と人の関係の綾が描かれ、人生の酸いも甘いも含まれた小説世界。そこに私は引き寄せられていきました。私はそれらの本から人生とはなんぞや、という問題に折り合いをつけようとし始めました。

もちろん、それを人は現実逃避と呼びます。当時の私が本に逃げていた。それは間違いありません。でも、この時期に読書の習慣を身に着けたことは、その後の私の人生にとても大切な潤いを与えてくれました。おそらく、これからも与えて続けてくれることでしょう。

この時、私が孤独感を競馬、パチンコなどのギャンブル、またはテレビゲームなどで紛らわそうとしていたら、おそらく私がここで連載を持つ機会はなかったはずです。
とはいえ、私はギャンブルやゲームを一概に否定するつもりはありません。きちんと社会で働く方が、レクリエーションの一環で楽しむのなら有益だと思います。ですが、時間を持て余す若者-当時の私のような-がこういった一過性のインプットにハマったら、後に残るものは極めて少ないと言わざるをえません。
私の中の何が一過性の娯楽に流れることを留めたのか、今となっては思い出せません。自分の将来を諦めないため、私なりに本からのインプットに将来を賭けたのでしょうか。いずれにせよ、本から得られたものはとても大きかった。私もこういうクリエイティブな方向に進みたいと思わせるほどに。

次回も、引き続き私の日々を書きます。


弊社はサイボウズ株式会社のオフィシャルパートナーとなりました


令和元年11月20日。
弊社はサイボウズ株式会社のオフィシャルパートナーとして認定されました。

その翌日、サイボウズさんからオフィシャルパートナーの証として盾が届きました。
11/21はまさに、代表である私の結婚二十周年の記念日。
そのような日に盾を届けていただいたのも何かのご縁だと思います。ありがとうございます。

初めて代表の私がサイボウズ社とご縁ができたのが2011/2/5のこと。
大塚商会のセミナーのセッションの一つで青野社長による「No-E メールワークスタイル」を聴講した時にさかのぼります。
セミナーの最後に紹介されたサイボウズLiveにTwitter上で反応した私に、間髪入れず青野社長からのメンションが。

それでサイボウズ社に興味を持った私は、Twitterでkintoneのβテスターの募集に応募します。

それから八年半。八年半もたってしまいました。
代表の私がkintoneのエバンジェリストとして任命いただいたのが2014年7月。
2015年4月には法人化を完了させ、そこからさらに4年半。

その間、サイボウズ社は働き方改革など、社会の矛盾に物申す企業として名をはせ、私はそんなサイボウズ社の取り組みを一貫して支持し続けていました。

弊社や私の力などまだまだ微々たるものです。
ですが、私が登壇やブログをアップすることで、少しでもサイボウズ社の理念に共感し、いまのわが国の状況を業務改善しようとする人が出てくれば本望です。

今回、オフィシャルパートナーとして認定いただいた事で、弊社の知名度も増すことでしょう。同時にそれは、弊社の責任が増すことでもあります。

でも弊社のミッションは変わりません。
代表である私と家族や親族。
弊社と弊社をご支援してくださるパートナー様。
さらにさまざまな地域や日本、世界の課題。
それらを少しでも良くしてゆくことが弊社と代表の私の務めだと思います。

スキルの向上に余念なく、あらゆるものに好奇心を持って接する営みを愚直に追求することで、きっとオフィシャルパートナーに認定していただいた価値に見合う活動ができる、と確信しています。

今後とも弊社及び、サイボウズ社とサイボウズ社が展開しようとするエコシステムや理念へご協力いただければ幸いです。
応援のほど、よろしくお願い申し上げます。


アクアビット航海記 vol.14〜航海記 その3


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。前々回からタイトルにそって弊社の航海記を書いていきます。以下の文は2017/11/9にアップした当時の文章が喪われたので、一部修正しています。

違う環境に身を置くこと

もう一つ。起業にとって大きな糧となったこと。その糧は、大学のキャンバス内ではなく、大学の外で得ました。当時、ダブルスクールという言葉がありました。ダブルスクールとは、大学以外の別の学校でも学ぶことを指します。そこに入るきっかけはどうだったか覚えていません。多分、電話セールスだったはず。

世間知らずの私は言葉巧みに会う約束を交わされ、そして契約してしまったのです。正直、その金額は覚えていませんが、80万くらいだったのではないかと思います。しかもあろうことか、私はこの学校の名前を忘れていました。この連載までずっと。トリニティー・アカデミーという学校です。今、調べたところ、名前が変わったみたいですね。しかも当時の勧誘方法に問題があったことまでWikipediaに書かれています。営業の方のお名前や顔も覚えていないし、どういう営業トークだったかも覚えていません。ですが、言葉巧みな営業トークで契約まで追い込まれたのでしょうね。親に払ってもらったことにとても感謝しています。

学校の名前すら憶えていなかったくらいなので、そこでの交流関係は当時も今も全くありません。友人は一人も作れなかったし。ところが、そこで得たスキルが今なお役に立っているのだから、何事もやってみるものです

確かこの学校のカリキュラムはワープロとパソコン、英会話の三コースから成り立っていました。パソコンの授業内容は今から思えばベーシック言語で丸や図形を描くといった、ビジネスではまったく使えない類の授業。英会話も当時ならったスキルが自分にどう身に付いたのか心もとないです(第十二回で書いた台湾一周旅行には役立ったのかもしれませんが)。ですが、ワープロコースだけは違いました。なぜなら、私はブラインドタッチをこのコースでマスターしたためです。私はワープロ検定の3級と2級を持っているのですが、その試験もこの学校で受けました。ブラインドタッチこそ、私が後年、パソコンで身を立てる素地となったのです。

もともと中学の頃から家にあったワープロ(確かSANYO製SWP-330だったはず)で、大名家の家系図作りや、アドベンチャー・ゲームを作っていました(うーん、インドアやなぁ)。ところがキータッチは完全に自己流。とても仕事で使えるレベルではありませんでした。でも、この学校で覚えたブラインドタッチが、私にとって重要な武器となったのです。

これだから人生どうなるか分からない。もちろん、私がプログラミングやシステムエンジニアで食っていくなど、当時は想像すらしません。ましてや起業するなど。

もし本連載を読んでいる学生の方がいらっしゃったら、違う環境に身を置いてみること、と忠告しておきたいです。

アルバイトも社会経験の一つです

最後に糧になったこと。それはアルバイト経験です。

建前をいえば、大学生は学ぶことが本分です。アルバイトにうつつを抜かすなどもってのほか、という声があることも理解できます。その上で敢えて言います。社会経験としてアルバイトは必要だと思います。今、せっかく新卒で入った会社を性に合わないとすぐやめてしまう方が多いといいます。ま、私もあまり人のことはいえませんが。それでも私があえて言うとすれば、大学時代になるべく大変なアルバイトを、しかもいろんな職種を経験しておくべきだと思うのです。そうすれば社会人になってもある程度応用は効くはず。ま、入った会社によってまちまちな環境であることは承知の上ですけどね。

私自身のバイト経験ですが、高校の頃は甲子園球場の売り子、年末年始の年賀状配達ぐらいでした。大学に入ってからはダイエー塚口店で日配食品売り場の整理。プランタン甲子園店で自転車整理。プランタン甲子園店の電機売り場でワープロの販売員。そして都ホテル甲子園を拠点とした配膳スタッフを順にこなしました。特に最後の二つは後年の起業を語る上で欠かせません。

ワープロの販売などやったこともない中で、自転車整理から電機売り場にスカウトされまして。もちろん販売ノウハウなどあるわけありません。私はカシオ計算機の販売スタッフとして、カシオのワープロを売っていました。当時のワープロ市場でもカシオ社製はメジャーではありませんでした。ただ、上に書いた通り中学のころからワープロには親しんでいた私。販売員として店頭に立ちながら、自分なりに工夫して売っていたのです。そして私のセールストークで何台も売り上げることもできました。これは自信になりましたね。商談して提案して販売する快感を得たのはこの時だったと思います。実際、カシオ社からは辞める際に引き留められたくらいなので。

また、最後の配膳スタッフは大学3,4回生の2年間を捧げました。配膳スタッフとは結婚式の料理を配膳するホールスタッフと思ってもらえればよいです。これがまた大変なお仕事。表向きの優雅な給仕とは違い、裏側は体育会系の怒号乱れる現場なのです。時間単価は高かったので大学卒業まで勤め上げましたが、よくぞ自分でも続けたものだと思います。もちろん私は、落ちこぼれの配膳スタッフだったと思います。ミスもヘマも何度もしでかしましたし。

こういうチームワークや協力関係が求められる現場は、私はとても向いていないと思いました。自分の仕事のやりかたや向き不向きを知ったことだけでもとてもよい経験だったと思います。ワープロ販売員と配膳スタッフの経験は、私に社会に出る前に自分の素養を教えてくれました。とても得難い経験です。アルバイト関係の交流は、ダイエー塚口店のアルバイト仲間との交流を除いて、今や消滅してしまいました。残念です。

もし本連載を読んでいる学生の方がいらっしゃったら、社会経験を積め、と忠告しておきたいです。

大学時代のまとめ

大きく四つ、大学時代の私を振り返ってみました。こうやって書いていても、当時の私からは、”起業”して社会に活躍するイメージが全くわいてきません。自分のことなのに。いや、当時は当時なりに頑張って生きていたのでしょう。

キャンバスライフをステレオタイプに分けたとして、体育会系で上下関係を叩き込まれる、サークルでぶいぶい言わせる、学術に没頭して学問の世界にのめりこむ、の三つがあります。でも、私のキャンバスライフは三つのどれにも当てはまりません

でも、当時こそ全く気づいていなかったのですが、今から思えば”起業”するための素養は大学のキャンバスライフで養われていたのですね。起業には直接関係ないので触れませんでしたが、他にも大学生活では今から考えると貴重な経験を積まさせていただきました。本当に関わった皆様には感謝です。遊んでばかりいたように思っていましたが、人生で過ごす時間に無駄なものは一つもない、と逆説を言っておきたいです。

次回は、漂流を始めた私の日々を書きます。


2019年10月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年10月は作業と技術者へのスキルトランスファーに力を注ぎました。複数の案件を並行して進められるようになりつつありますが、スキルトランスファーの完結にはまだまだ時間がかかります。売上高では先月と先々月を上回る額を得られましたが、目標額にはわずかに届きませんでした。達成度5割。達成感4割。満足感5割というのが自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 10月度の売上は、目標額にわずかに届きませんでした。そして、代表の稼働時間は少し落ち着きました。先月から教えるミッションを増やし、作業の負担を分散しようとしていますが、チェックやフォローなどの負担がまだ減りそうにありません。代表の求めるワークライフバランスの実現まで道は遠いです。将来に向けての布石は次々と打っているので、それの準備も含めて今月は評価したいと思います。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。外注先と共存しつつ、外注比率を抑えるにはどうすればよいか。そもそもの案件ごとの見積額を上げ、なおかつ、教え、フォローする時間だけ生産性が落ちることを踏まえた額を出さねばなりません。案件によって難易度も内容も千差万別なのがシステム開発。効率的な外注はどうすれば可能なのか。お互いが不公平にならず、必要な利益を得るにはどうすればよいのか。効率的な仕様とスキルの伝達をどうやればよいのか。試行錯誤の毎日です。

サテライトオフィスの開設を機に、スキルの伝達についてはやりやすくなっていますが、まだ難しい。ありがたいことに、お仕事のご依頼は尽きてはいません。案件が来ている好況のうちに今後の業務を見越し、パートナー技術者さんとの協業に相当労力を割かなければ、と覚悟しています。売上も下がるし、利益も落ちるでしょうが。

§ 開発案件 今月は六割の開発案件がkintoneがらみでした。kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用することが受注につながっています。ユーザー様には、引き続きインターフェースのわかりやすさがkintoneの魅力として訴求したいと思います。今月もまた新規に複数のkintone案件が開始しました。

同時に、他のサービスについても視野は広く持たねばなりません。RPAの勉強会(10/15)、AIの勉強会に出ました(10/15)。幕張メッセで開催されたAI・自動認識総合展でそれらの盛り上がりとRPAの本質を探りました(10/24)。引き続き情報収集は抜かりないよう勧めます。旧来のシステム開発の考えでは将来は厳しくなるから。kintoneを軸にさまざまなサービスを連携させられれば、引き続き弊社の武器になるはずです。先月、kintoneのアソシエイト試験には受かり、kintoneアプリカスタマイズスペシャリストは落ちました。今月はkintoneアプリデザインスペシャリストに受かりました(10/18)。あらゆる局面で対応できるよう、たえざる精進が必要です。来月はkintoneアプリカスタマイズスペシャリストに再チャレンジする予定です。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。弊社としては問題ないのに、家計が絡むととたんに脆弱になる。いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。ここはまだ手付かずです。

§ 人脈の構築 今月もさまざまな場所で新たなご縁ができました。下の対外活動にも記載していますが、それらの場所では貴いつながりができました。こうした活動が今後の業績を左右します。引き続きよろしくお願いいたします。

§  対外活動 今月は以下のイベントに参加しました。RPAセミナー(10/15)、AI勉強会(10/15)、AI・自動認識総合展(10/24)。また、サイボウズ社で映画の試写会に出て、社会貢献への意識も養いました(10/17)。大雨や台風など、天変地異が起こった月であるがゆえに考えさせられました。そうした方面でも新たなお話が始まりましたし。来月はkintone Café東京を主催します。また、鎌倉で働き方についてのセミナーに登壇します。12月にもfreee社で登壇もします。そうしたご縁は対外活動から生まれています。今月は対外活動は抑えめでした。代表自身による新たな交流を発信することは絶対に怠ってはならないと肝に銘じています。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。(「アクアビット航海記 vol.13〜航海記 その2」)2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。なお、本音採用サイトでは元記事が削除されたため、転載ではなく弊社サイトのみの連載扱いとさせていただきます。

今月書いた本のレビューは6本(「なぜ宝塚歌劇に客は押し寄せるのか 不景気も吹き飛ばすタカラヅカの魅力
真田信繁 幸村と呼ばれた男の真実
宇宙衞生博覽會
ベーシック・インカム入門 無条件給付の基本所得を考える
我、六道を懼れず[立国篇] 真田昌幸 連戦記
時をかける少女」。
今月書いた映画のレビューは1本(「少女は夜明けに夢をみる」。
今月書いた旅日記は2本(「台湾の旅 2018/10/28
台湾の旅 2018/10/29」。

§ 年表 

 ・10月お仕事

  恵比寿で作業、町田市中央図書館で作業、登戸で技術者さんと飲み、みなとみらいでお客様とランチ飲み、関内Mass×Massで作業、関内Mass×MassでRPAセミナー、五反田選書する書店フォルケでAI勉強会、神楽坂で商談、サイボウズ社で作業、サイボウズ社で映画試写会、町田BUSO AGORAで作業、町田ITテストセンターでテスト受験、町田市民フォーラムで商談、新宿御苑で商談×2、幕張メッセでJAPAN IT Week、太田ふ頭で作業と打ち合わせ×2、サテライトオフィス×11

 ・10月ツイート

https://togetter.com/li/1424050


アクアビット航海記 vol.13〜航海記 その2


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。前回からタイトルにそって弊社の航海記を書いていきます。以下の文は2017/11/2にアップした当時の文章そのままです。

大学に入るまで

1996年の3月。私は大学を卒業します。4年制の大学を無事に4年間で。単位も取得し、卒論も提出した上で。その時の私に唯一足りなかったこと。それが4月からの就職先です。

なぜ、そういう事態になったのか。それは本連載の第12回で書いた通りです。私の自業自得。身から出た錆。それ以外の何ものでもありません。私自身に社会に出るだけの準備が整っていなかっただけの話です。モラトリアム(猶予期間)への願望もあったけれど、それは理由にはなりません。誰の責任でもなく、私自身の甘えが招いただけの話です。

では私は大学の4年間、何をしていたのでしょう。単に親のすねをかじって遊び惚けていただけなのか。それとも何かを目指していたのか。たとえば起業を志すとか、学問の世界で身を立てるとか。内定もとれず、大学を過ごした私に志はなかったのでしょうか。いえいえ、そんなことはありません。

高校卒業後、私は関西大学の商学部に現役で入学しました。他にも甲南大学にも受かったのですが、そちらは辞退しました。では当初から商学部に入学したい強烈な動機があったのか。そう聞かれると答えに窮します。正直なところ、商学部にしか受からなかったから商学部に入った。それだけの話です。浪人も面倒だったし。

高校生の私は環境問題に関心がありました。未熟で世間知らずであっても社会のために役に立ちたいと志す気概は持っていたのです。ところが、環境問題を専攻するには理系の学部に入るしかなかったのです。そして私の成績は完全に文高理低に偏っていました。国語と社会は上位、ところが数学や理科は落ちこぼれ。とても将来プログラミングで身を立てるとは思えない体たらく。高校時代の私にはPCやプログラミングの気配など全くなく、スーパーファミコンやPCエンジンでゲームしていたのがせいぜいでした。そんなわけで、私の志とは違って文系の学部にしか進学できませんでした。

商学部で学んだ起業への素地

でも、商学部で学んだ経験は無駄にはなりませんでした。入った当初はまったく興味がなく、必修の語学については苦痛でしかありませんでした。ところが商学部の専門コースに進んでから、少しずつ興味を惹かれ始めたのです。特に、マーケティング論。興味をもって勉強もしたし、優良可の優をとるぐらいには理解していました。いまでも、地方に旅行すると地元のコンビニやスーパー、道の駅巡りは欠かせません。いろんな商品を見て歩き、パッケージに感動する。それはこの時にマーケティング論を学んだ影響が尾を引いています。簿記の初歩も大学の授業で学び、簿記三級の合格が単位取得条件だったのでそれも取りました。こうやって振り返ってみると、勉強も結構していたのですよね。連載の第12回では、私の大学時代は遊びまくっていたように書きましたが。多分、興味を持った授業はそれなりに出ていたということでしょう。ただ、当時の私を振り返ると、将来起業に役立つと考えて授業に臨んだことは一瞬たりともありませんでした。当時はそこでの授業が自分の人生にどう役立つのかまったくわからないまま。でも、商学部での学びは起業の糧となっているのです。

もし本連載を読んでいる学生の方がいらっしゃったら、大学の授業はおろそかにするなかれ、と忠告しておきたいです。

部活動を率いて学んだ起業への素地

あと3つ、大学生活で得た起業の糧があります。一つは部活動です。商学部の私が、なぜか政治学研究部に所属することになりまして。理由は、高校の同級生が関大の法学部に入り、その彼に誘われただけのことです。3回生になった私は政治学研究部の部長を務めます。いまから考えると部活動内容も学生の戯れに過ぎませんでした。が、なんであれ組織を率いるという経験は貴重です。私は高校時代にもホームルーム長(級長)を2回務めたことがあります。ですが、高校のホームルーム長は担任の先生の指導の下、高校の枠の中の役職でしかありません。ところが、大学の部活動における部長にはとても強い自治権が与えられます。その経験は、後年、私が“起業”する上で良い経験となりました。大学時代の私は今よりも人見知りの気質が強かったと思います。今のように積極的にいろんな集まりに飛び込んでいく度胸もありません。そんな未熟な私でしたが、政治学研究部で培った交流関係や、一緒に実行した数々の無謀なイベントはとても得難いものでした。そういうへんな度胸を発揮したり、枠をはみ出たりする楽しさ。私に大学のキャンバスライフを楽しませてくれたのが、この部での体験でした。政治学を専攻する部なのに。生まれて初めて検便を提出したのも学祭のやきとり屋。生まれて初めて貧血で倒れたのも学祭のプロレス観戦中。生まれて初めて胴上げされたのも学祭の後。学祭も政治学研究部で参加しました。いまだにこの部の仲間とは交流が続いていますし、この時に過ごした皆には感謝しかありません。あと、私が社会に出るにあたり大変お世話になった先輩と出会ったのもこの部でした。この方については私の起業人生に関わってくるのでまた触れたいと思います。

話はそれますが、大学の入学時には馬術部にも勧誘されました。新歓コンパまで出ながら、結局入部することはありませんでした。この時、私が馬術部に入っていたらいったいどういう人生を歩んでいただろう、と思うことがたまにあります。内定なしで卒業したことも含め、私は自分の大学時代に後悔は何一つありません。が、この時、馬術部に入らなかったことはいまだに心残りです。朝早いのがいや、という理由で断ったことなど特に。

もし本連載を読んでいる学生の方がいらっしゃったら、どんな仲間でもいいから、とにかく楽しめ、そしてどんな形でもいいから上にたて、と忠告しておきたいです。

次回は、私のキャンバスライフで得た残り2つの起業への糧を述べてみます。


2019年9月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年9月は今後の代表のキャリアプランや、弊社のこれからを占う上で転機となりました。売り上げは今年度に入ってからは先月をわずかに超えたものの、損益はギリギリでした。でもそれは、案件の開始や検収がお客様の都合で遅れたためでもあります。また弊社の業務のあり方を変えたためでもあります。なので売上高の多寡は気にしていません。むしろ、業務の方法をかなり変えたことで、今後の発展が見込める。そう確信しています。達成度4割。達成感5割。満足感7割というのが自己採点です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

●弊社の業績

§ 総括 9月度の売上は、目標額に一割届きませんでした。そして、代表の稼働時間の抑制はまだまだ出来ていません。今月から教える、というミッションが増えたため、さらに負担が増しています。代表の求めるワークライフバランスの実現にはまだまだです。ですが、将来に向けての布石は色々打ちました。そうした布石が将来どう効いてくるか。楽しみでもあります。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。どうやればうまく外注先と共存しつつ、外注額比率を抑えるのか。そう考えると、案件のそもそもの見積額を上げるしかありません。稼働の大変な部分をうまく抽出し、外注先にも作業を効率的に担っていただく。つまり、お互いが不公平にならないように調整するすべが求められているのです。サテライトオフィスの開設を機に、今月からほぼ常駐に近い形をとり、スキルの伝達を行っています。ありがたいことに、お仕事のご依頼は尽きてはいません。案件が来ているうちに今後の業務を見越し、パートナー技術者さんとの協業に相当労力を割きました。売上も下がるし、利益も落ちるでしょうが、好況の今のうちに手を打っておかなければ。

今までは代表が独力で作業をやってこれたのですが、そろそろ体力的にもキツくなってきました。今月はほぼ毎営業日、パートナー企業に赴き、対面で教えながら作業を進めています。独立してからの私が十数年遠ざけてきたスタイルですが、将来のリモートワークの実現のためにはやむをえません。リモートワークで任せられるのは、互いに信頼関係ができ、指示に対して成果が見込める場合です。まだ成果の面ではこれからなので、すぐに質問が受けられるように側にいるようにしています。サテライトオフィスも自宅からほど近く、ラッシュの影響とは無縁なのでなんとか続きそうです。来月もその方向にいっそう邁進したいと思います。

§ 開発案件 今月は七割の開発案件がkintoneがらみでした。kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用する。ユーザー様には、インターフェースのわかりやすさとしてkintoneが訴求できる。8月末に開催したkintone Caféでkintoneについて語ることで、弊社の方向性により一層の自信が持てました。kintoneについてはCafé開催や登壇、サイボウズ社との関係など、今後の弊社の業務にとって影響がある提案をいくつか頂いたのも今月の特徴です。

同時に、他のサービスについても視野は広く持たねばなりません。RPAの勉強会にも出ましたし、AI-OCRのセミナーにも出ました。DevRel Conferenceにも出て、Node-RED UGにも出ました。間違いなく旧来のシステム開発の考えでは将来は厳しくなるでしょう。kintoneを軸にさまざまなサービスを連携させられれば、引き続き弊社の武器になるはずです。そう思ってkintoneの資格試験を受けてみようと思い、Associate資格は合格したのですが、アプリカスタマイズスペシャリストも同じように受けたら不合格。あらゆる局面で対応できるよう、勉強が必要であることを痛感しました。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。弊社としては問題ないのに、家計が絡むととたんに脆弱になる。いつになればこの状態が落ち着くのか。財務基盤の弱さをいかにして克服するか。課題は山積みです。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。ここはまだ手付かずです。

§ 人脈の構築 今月もさまざまな場所で新たなご縁ができました。下の対外活動にも記載していますが、それらの場所では貴いつながりができました。こうした活動が今後の業績を左右します。引き続きよろしくお願いいたします。

§  対外活動 今月は合間を縫って、各所に代表が出没しました。その中では、あらたなご縁を繋いでいただきました。RPAセミナー、Tegakiセミナー、DevRel Conferece、 Node-RED UG、鎌倉FabLab見学など、どれもが貴重な経験でした。先月末に開催したkintone Café東京から、次のkintone Caféの予定も立ち上げました。引き続き、kintone Caféの予定を立ち上げました。他の場所でも登壇のオファーを複数いただきました。そうした技術者イベントを通し、新たなつながりを構築したいと思います。代表自身が新たな交流を発信する。それは絶対に怠ってはならないと肝に銘じています。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は2本アップしました。(「アクアビット航海記 vol.11〜起業のデメリットを考える その5」、「アクアビット航海記 vol.12〜航海記 その1」)2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。なお、本音採用サイトでは元記事が削除されたため、転載ではなく弊社サイトのみの連載扱いとさせていただきます。

今月書いた本のレビューは15本(「ヘンな論文
長崎原爆記 被爆医師の証言
イカの心を探る 知の世界に生きる海の霊長類
カエルの楽園
手術がわかる本
星籠の海 上
星籠の海 下
バベル九朔
ふくわらい
水の女
時が滲む朝
珠玉
小栗上野介 忘れられた悲劇の幕臣
戦国姫物語 城を支えた女たち
社会的な身体~振る舞い・運動・お笑い・ゲーム」。
」。

今月書いた弊社の活動のブログは1本(「kintone Café 東京 Vol.8 @多摩を開催しました」。

§ 年表 

 ・9月お仕事

  蔵小杉で飲みながら打ち合わせ、AWS Loft Tokyoで作業、鶴川駅前図書館で作業×2、六本木でセミナーと懇親会、六本木のマクドナルドで作業、五反田のファミリーマートで作業、五反田の選書する書店フォルケでRPAセミナーと懇親会、サイボウズ本社でDevRel Conference、BUSO AGORAで作業×2、サイボウズ本社で作業と打ち合わせ、日本橋Tully’sで作業、日本橋ファミリーマートで作業、新木場駅で作業、和泉多摩川で技術者と飲み、Yahoo! LODGEで作業、登戸でパートナー企業と飲み、汐留でNode-RED UG #9、鎌倉で商談、鎌倉FabLab見学、面白法人カヤック社員食堂、サテライトオフィス×18

 ・9月ツイート

https://togetter.com/li/1410869


アクアビット航海記 vol.12〜航海記 その1


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。第二回~第十一回までは起業のメリット/デメリットを述べました。今回からタイトルにそって航海記を書いていきます。以下の文は2017/10/26にアップした当時の文章そのままです。ただ、今回参照しようとしたところ、すでに元サイトはキャッシュにしか残っていない模様です。それも踏まえ、今回の連載再開にあたっては、5回に一度ほど、起業についてのコラムを書いていこうと思います。

私の起業への歩みは、ノウハウでもコツでもありません

なぜ、私が“起業”したか。なぜノウハウも人脈もない中、起業に踏み切れたのか。それを説明するのは困難です。なぜならなりゆきだったからです。なりゆきに導かれるように起業にたどり着いた。それが私の起業の経緯でした。よくあるように、たった一度の機会を生かし、清水の舞台からえいやと飛び降りた起業ではないのです。もちろん、強固な目的意識もなければ、明確なスケジュールに沿った起業でもありませんでした。ですから、本連載では起業のノウハウは記しません。起業へのわかりやすいステップも示しません。また、皆様に独立のコツやタイミングの指南もしません。いや、“しない”のではなく“できない”のです。私は起業コンサルタントではなく、今後なるつもりもありませんので。

そうなると、本連載って何やねん。というツッコミが入りそうです。こういう場をいただいている以上、何かしらの気づきや手応えをつかんでもらわなくては連載の意味がありません。たぶん、私が本連載で伝えるべきは起業のコツやノウハウなのでしょう。成り行き任せで“起業”したのに10年以上も事業を続けられているのもどこかで起業のコツを実践していたのでしょうし、適したタイミングで手を打ったのもノウハウと言えるかもしれません。私自身が、決して起業の奥義やツボを会得しているわけではないのですが、書き連ねた内容の中からヒントをつかみ取っていただければうれしいです。

大学時代の就職活動で挫折を味わいました。

私には三親等以内の親族が30名強います(妻側の親族は除く)。その中で私の知る限り、自営業や経営者はいなかったように思います。みなさん、公務員や教師や会社員、主婦など堅実な道を歩む方がほとんどです。つまり私は一族の異端児。そういう一族に生まれた私は、世が世なら“起業”せずに勤め人として平穏に過ごしていたと思います。しかも、東京に出ることなく関西にずっと住んでいたはずです。では、何が私を起業に向かわせたのか。それを解くには大学時代にまでさかのぼる必要があります。

浪人もせず現役で大学に入るまでの私は、親の保護下で順調に成長して来ました。が、大学の自由な風は私のリズムを崩したようです。今思えば無軌道なキャンバスライフだったと思います。いや、楽しみました。それに悔いはありません。無軌道で無鉄砲な学生時代でしたが、それでも留年もせず四年で大学も卒業できたのです。ですが、卒業した時の私は、一つも内定を持っていませんでした。これが私の転機でした。小中高大と浪人も留年もなく過ごしてきた私にとって初めての蹉跌。それが就職活動だったと思っています。いまさら振り返っても仕方ないのですが、もしここで普通に就職していたら私の人生行路もずいぶん違っていたことでしょう。

なぜ内定がとれなかったのか。それは私の実力が不足していたことに尽きます。が、それ以前に就職活動をナメていたのですね。いま思えばずいぶんと横紙破りな就職活動だったと思います。リクルートスーツこそかろうじて着ていました。ですが、自転車や車で面接会場まで行ったり、営業ではなく商品企画を希望したり。就職氷河期と呼ばれた真っ只中にありながら、よくぞ甘えていたものです。現在の私が当時の私を面接しても多分落としていたと思います。それでも、いくつかは最終面接まで行きました。そして、最終面接で内定をもらったと勘違いし、それ以降の就職活動をやめてしまうほどに私は若かった。

一つだけ当時の私を擁護させてください。それは、阪神・淡路大震災です。就職活動の年の一月に起きた地震。この地震は私の家を全壊させました。その経緯はブログにも書いたのでここでは繰り返しません。そして、この経験は私の人生観に多大な影響を与えました。人の命のはかなさ。人生は一回きりであるとの達観。そこに、地震を体験したことによる高揚感が加わりました。そんな精神状態で私は就職活動に臨んだのです。そして、あまり断られず順調に最終面接まで行ったのです。そこで就職をナメてしまった。若かったですね〜。

就職活動を辞めた私は、その夏休みを遊び倒します。若狭、広島、福岡、長崎、柳川、厚狭、台湾一周、沖縄。無論後悔はありません。いまでもこの夏の思い出は鮮烈です。そして、この夏の充実は今にいたるまで私の理想の日々です。それ以降、どうすればこの夏のような生活が送れるか、を模索する基準にもなりました。昔はよかったな~、ではなく、この時のような生活を送るために前向きな気持ちで。

1995年は奇しくもITにとってエポックな年でもありました。

この年に起こった出来事は阪神・淡路大震災だけではありません。オウム真理教による地下鉄サリン事件も起きました。当時の私は、大学や駅で宗教に勧誘された経験があったので、宗教からは距離を置いていました。これは現在もかわりません。あと一つ、この年はWindows95が発売された年でもあります。当時の私はパソコンを職業にするなどまったく視野の外。それどころかWindowsにもほとんど興味がありませんでした。先輩から譲ってもらったX68000というパソコンでネット通信を楽しみ、ゲームを楽しむ程度にはパソコンを使っていましたが、仕事でパソコンを使うなど、想像すらしていませんでした。

そんな1995年。新卒で採用される大学生の進路ルートからそれた日々。この年、私の人生に就職活動の失敗という一つの転機が生じたのです。


アクアビット航海記 vol.11〜起業のデメリットを考える その5


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。第二回~第六回までは起業をポジティブにとらえた視点での利点を述べました。第七回から今回まで、起業のデメリットを語っています。なお、以下の文は2017/10/19にアップした当時の文章そのままです。

「守られなくなること」

ここまで、起業をつれづれなるがままに語ってきました。何度も書いたように起業のやり方など千差万別。それぞれのやり方があっていいと思うのです。ただ、やり方によっては成功も失敗も両方あり得るのが起業の怖さでもあります。ですから、私は本連載でいう起業を、お花畑に囲まれたハッピーライフとして描くつもりも、イバラの道が続くデス・ロードだけで埋めるつもりもありません。利点も欠点も両方とも書かなくては。そう思いませんか?
ここまでで利点を5回。欠点を5回。ちょうど同じ回数を費やしました。そんなわけで起業の欠点を述べるのは今回でひと段落とします。

ここまで取り上げてきた起業の欠点。それを一言でまとめるなら、「守られなくなること」と言えるのではないでしょうか。学生時代は保護者に守られます。社会人になってからは所属する組織、つまり会社やバイト先から守られます。しかし起業するとそれらがなくなります。守られなくなる、ということは自由の証でもありますが、見方を変えれば失敗が許されなくなることでもあります。

「守られなくなる」とは、例えば

例えば、第7回で書いた時間が不規則になる件です。学生時代は時間割が学校から提示されます。学校が定めた時間割に従っていれば生活のリズムは作れました。社会人になってからもそう。始業時間と就業時間があり、そこに沿っていれば、タスクも割り当てられ、タスクに充てる時間配分も上司の指導のもと行えました。ところが起業すると、時間枠は自分で作っていかねばなりません。指導してくれる上司もいなければ、規範となるルールもありません。あなたがあなた自身の上司を兼ね、あなたがルールを作っていかねばなりません。そうなのです。守ってくれるのは己の力だけ。

例えば第8回で書いた収入が不規則になる件です。学生時代は親の扶養のもとで生活の心配をせずに済みます。就職してもアルバイトしていても一定の収入は約束されます。社会保険や税金の支払いもそう。会社が払ってくれるので、あなたはあまり意識せずに済んでいたのです。ところが、起業するとお金の確保は己の腕一本にかかってきます。定期収入は自分の営業努力で確保せねばなりません。税金の支払いもそう。経理担当を雇う、税理士の先生にお願いする。お願いすれば支払手続きは行って頂けるでしょうが、最終的な支払い責任があなた自身にかかってくるのは同じです。そうなのです。守ってくれるのは己の力だけ。

そして、第9回10回で書いた人付き合いが変わる件です。学生時代は学校の割り振ったクラス分けで人間関係がお膳立てされていました。社会人になったら配属先がそうです。そこを基準に人間関係を作り上げていけばよかったのです。ところが起業すると人脈は自らが構築していかねばなりません。しかも己が信頼に値する人間であると示しながら、です。そして相手が信頼できる人間であると見極めながら、です。信頼を勝ち得られず、仕事が取れない。信頼した相手に裏切られる。そういったことも、すべては自分の責任です。組織にいる間は、組織に守ってもらっていることは意識しません。独立して初めて、組織に庇護されていた境遇を感じるのです。そうなのです。守ってくれるのは己の力だけ。

他にも守られなくなることはあります。それは、あなたご自身の健康です。会社にいると定期健康診断はかならず受けねばなりません。労働安全衛生法にもそう定義されています。ところが、これは正社員、アルバイト、パートなど常時雇用する従業員に対しての義務です。あなた自身は常時雇用されているわけではありませんから、あなた自身の健康診断の義務はないのです。そして、あなた自身の健康診断を受ける義務はありません。ということは、あなたの健康は誰も守ってくれないのです。激務の末に倒れたとしてもそれはあなたの健康管理が悪かったから。という末路が待っているのです。気をつけねばなりませんね。気をつけねば。こう書いている私が一番そう思っています。間違っても倒れてはならないのです。くわばらくわばら。

他にも守られなくなることはあります。それは、あなたご自身の法的な保護です。会社であれば、従業員の監督義務があるため、そうおかしなことはできません。でも従業員もおらず、自分自身で行なう事業であれば、その行為が法的に正しいかどうかは、誰にも注意されません。軽い気持ちでやった行為が実は商法や民法に違反していることだってあるのです。もしそれが摘発されたら、あなたには前科がついてしまう!  それは避けたいですよね。起業はあくまでも正々堂々と。なんの恥じらいも罪の意識もなく、まっとうに活動していきたいものです。また起業すると立場も弱くなりがち。取引相手から違反すれすれの行為を受けることだってあります。請求した金額が入金されないことだってあるでしょう。ですから、そのあたりの知識は持っておかねばならないのです。もちろん法的な書類の取り交わしなど、身を守るべき契約書類はきちんとしておくのが当たり前です。そうしないと仕事をしてもお金が入ってこないことだってありえます。くわばらくわばら。

まだ他にも守られなくなることはあります。それはあなたの老後です。連載の第4回でも書きましたが、生涯を仕事に打ち込むためには起業は有効な選択肢です。でもそれは逆をいえば、退職後の生活保障もされないことでもあります。つまり、老後の貯えは自分で作っていかねばなりません。つまり、起業すると自分の老後を守ってくれるのは自分以外いなくなるのです。年金?  現在、もしあなたが引退後の生活資金を国民年金に見込んでいるのであれば、それは即刻改めるべきだと思います。年金制度が破綻しているとまではいいませんが、この少子化の現状では、どこかで年金改革の波がやってくることは避けられません。その時に年金をあてにしていると、どうにもならない日がやってくる。くわばらくわばら。

それでも私は起業を選びます。

さて、ここまで起業のデメリットを書いてきました。最初にも書いた通り、起業の良い面ばかり持ち上げるつもりはありません。でも、起業の悪い面ばかり煽るつもりもありません。でも、それでも、私は生まれ変わったとして、もう一度起業する人生を選ぶか、と問われれば迷わず「はいっ!」と手を挙げます。ここまで起業のデメリットを知った上でもなお、私は起業を選ぶと思います。それは起業の利点を享受しているからです。

そして、組織に頼り切ってばかりいると、今後起こるAIの波に呑まれたときに何もできなくなります。ですから、この連載を読んでくださっている方の中で、起業のデメリットを知ったうえで、なおかつ起業したい、という方がいれば、私は応援したいです。

次回からは、本連載のタイトルに立ち返り、私自身の歩みを少々語ってみたいと思います。ゆるく永くお願いします。


2019年8月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年8月はまずまずでした。売り上げは今年度に入ってからは一番低く、損益はギリギリだったにもかかわらず。ただ、これは夏休みを取ったためであり、仕方ないと思っています。一方で、六月にバグを出してから続いていた仕事に追われる状況を八月末でようやく終わらせられました。達成度4割。達成感6割。満足感7割というのが自己採点です。

おかげ様でお仕事のご依頼は尽きることがなく、つぎつぎと新たなお話しをいただけています。ありがたいことです。ただ、7月終わりから8月にかけては、代表がプライベートな時間をかなり楽しんだため、仕事を夜中にこなさねばならず、体力的に無理が生じていました。それもあり、9月以降は、パートナー技術者さんとの協業に力を入れる予定です。

パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の作業は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

公私の「公」

●弊社の業績

§ 総括 8月度の売上は、目標額に一割届きませんでした。そして、代表の稼働時間の抑制はまだまだ出来ていません。旅先でも夜中、仕事に励みました。ワークライフバランスをはかる上で、無理が生じ、その限界も痛感しました。ただし、それだけの価値はあり、仕事に追われていたここ二カ月の状況を乗り越えられたことは今月の成果としてもよいでしょう。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。どうやればうまく外注先と共存しつつ、外注額比率を抑えるのか。そう考えると、案件のそもそもの見積額を上げるしかありません。稼働の大変な部分をうまく抽出し、外注先にも作業を効率的に担っていただく。つまり、お互いが不公平にならないように調整するすべが求められているのです。サテライトオフィスの開設を機に、9月以降、その方向にいっそう邁進したいと思います。

§ 開発案件 今月はほぼ全ての開発案件がkintoneがらみでした。kintoneとAWSやGoogle Apps Script、boxとの連動を行いながら、kintoneを基幹システムの一角として提案し、活用する。ユーザー様には、インターフェースのわかりやすさとしてkintoneが訴求できる。8月末に開催したkintone Caféでkintoneについて語ることで、弊社の方向性により一層の自信が持てました。

kintoneとSalesForce、kintoneとGoogle Calendar、kintoneとboxの連携は、まだまだできる技術者が少なく、それは引き続き弊社の武器になるでしょう。引き続きkintone案件は続々と引き合いを賜っており、切磋琢磨が肝要でなことは言うまでもありません。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。昨年度までの売上額を活用し、かなり財務の改善は進みました。ですが、まだまだ財務基盤は弱いです。先月から報酬体系を見直したので、早く軌道に乗せたいです。課題は山積みです。

§ 社内体制 こちらはまだ道半ばです。サテライトオフィスの開設はなりましたが、今、そこでは外注先の技術者に対しての活用しかできていません。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。

§ 人脈の構築 今月もさまざまな場所で新たなご縁ができました。下の対外活動にも記載していますが、それらの場所では貴いつながりができました。引き続きよろしくお願いいたします。

§  対外活動 今月もほとんど商談や作業に終始しました。その中でもいくつかあらたなご縁を繋ぐこともしました。また、代表自身が新たな交流をなしたイベントといえば、kintone Café 東京 Vol.8 @多摩を外すわけにはいきません。登壇にあたってきんとんを見つめ直し、それを自分の口で発信する。その営みは、kintoneへの思い入れをいっそう深めてくれました。引き続き、kintone界隈の技術者イベントを通し、新たなつながりを構築したいと思います。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。(「アクアビット航海記 vol.10〜起業のデメリットを考える その4」)2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。

今月書いた本のレビューは6本(「甲子園 歴史を変えた9試合
私の家では何も起こらない
臨床家 河合隼雄
ウイスキー起源への旅
サラバ! 上
サラバ! 下」。
今月書いた観劇のレビューは1本(「あさあさ新喜劇 「しみけんのミッションインポジティブ」」。
今月書いた旅日記は2本(「会津の旅 2018/10/8
会津の旅 2018/10/9」。
今月書いた映画のレビューは1本(「DINER」。

今月書いた物申すブログは1本(「74回目の終戦記念日に思う」。

§ 年表 

 ・8月お仕事

  高槻で打ち合わせ、みなとみらいで打ち合わせ、横浜市中央図書館で作業、渋谷で商談、登戸で技術者さんと飲み、京橋で作業と打ち合わせ×3、町田で商談、Yahoo! LODGEで作業×2、横浜サテライトオフィスで作業、町田市立図書館で作業、サテライトオフィスで作業×2、BUSO AGORAで作業、西新宿で商談、AWS Loft Tokyoで作業、恵比寿で商談、恵比寿で交流会、サテライトオフィスでkintone Café 東京 Vol.8@多摩、kintone Caféの懇親会

 ・8月ツイート

https://togetter.com/li/1397763


アクアビット航海記 vol.10〜起業のデメリットを考える その4


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。第二回~第六回までは起業をポジティブにとらえた視点での利点を述べました。前々回、前回に続き、今回も起業のデメリットを語っています。前回、起業前であれば、利害関係が友人との関係にモロに響くことはあまりない、と書きました。ところが、“起業”してからは、その辺りがガラッと変わります。今回はここから続けたいと思います。なお、以下の文は2017/10/13にアップした当時の文章そのままです。

“起業”すると新たな知り合いは増えますが、責任を背負っての付き合いになります。

個人事業であれ、法人であれ、組織のトップである以上、組織の不始末は代表の責任です。責任を分散させ、曖昧にすることは許されなくなります。組織はかばってくれないのです。よく、経営者は孤独だ、という言葉を聞きます。それは責任者である以上、甘んじて引き受けなければなりません。

では、“起業”すると新たな友人を作れないのでしょうか。私の個人的な経験ではそうではありません。むしろ、人と知り合いになれる可能性はより増えます。

“起業”すると、広告塔としての役割を担わねばなりません。トップセールスマンとしての自覚が求められるのです。ということは、外に出かける機会も増えます。セミナーや異業種交流会、パーティーなど。そのような場所に集うのはあなただけではありません。“起業”した方々が同じような目論見で集ってきます。そこでは、“起業”した方だけでなく、“起業”を目指している、または“起業”しつつある人々にも出会えることでしょう。要するに価値観の似通った方が集まるのです。そこで知り合いを作ることはそれほど難しくありません。むしろ、利害の対立がなければ、一生の友人に出会える可能性もあると思います。

ところが、そういった方々は組織のトップであることが多い。従って、利害が対立した時にはお互いが矢面に立たねばなりません。お互いが組織の責任を背負う立場である以上、いざ利害が対立すればたもとを分かたねばならないこともあります。利害が関係構築の邪魔をしたり、仲を引き裂いたりもします。“起業”した皆さんはそれがわかっています。そして、利害を絡めないようなうまい付き合いの方法を模索していきます。ですから、“起業”すると大人の付き合いに長けていかざるをえません。あまりお互いの内部に深く立ち入らず、当たり障りのない話題に終始するような。もっともこれは組織の中で生きていく処世術でもあるため、大人であれば多かれ少なかれ身に着けるスキルなのかもしれませんが。

友人との起業について。

また、信頼できる友人と共同で“起業”する、という事例もよく聞きます。でも、私に言わせるとそれも賛否の分かれるところです。なぜならば、もとからある友人との仲など関係なく、ビジネスである以上は利害が割り込んでくるからです。仮にその友人との関係が、利害とは関係ないところで結ばれた場合はなおさらです。ビジネスの冷徹な利害に直面して、なおも続く友情であればよいのです。が、下手すればせっかく結んだ友情関係だって壊れてしまうかもしれません。

「安心」と「信頼」について。

前回、組織と個人を対比させる際に「安心」と「信頼」という二つのキーワードを示しました。それはどういうことでしょうか。このキーワードは社会心理学者の山岸俊男氏が提唱しています。「安心」とは組織の中の論理です。組織の中でその人物が受け入れられてゆく過程で、組織はその人物を「安心」できる人物として認めます。つまり、組織に属していることは、自らが「安心」できる人物と外部に示すことでもあるのです。一方、組織から外に出て独立することは、「安心」という組織のセーフティネットから出ることと等しい。個人の立場で外に出る時、私たちは自らが「信頼」できる人間であることを示さねばなりません。組織の提供する「安心」のかわりに「信頼」が求められるのです。

新たに知己となった方とお会いするとき、われわれは無意識に「安心」と「信頼」の基準で判断している。それが山岸氏の提唱する主旨です。同じ組織に属しているか、組織の肩書を背負った方であれば「安心」できます。ところがお会いした方が個人事業を営んでいるか見知らぬ会社の代表者であった場合は「安心」はできません。そのかわりに私たちはお会いした方が「信頼」できるかどうかを見極めねばならないのです。利害が衝突するリスクを引き受けてもお付き合いできるかどうか。

学生時代のトモダチには、「安心」も「信頼」もありません。ただ気の合うトモダチなのです。ところが、社会にでると「安心」を基準に仲間が作り上げられます。そして、“起業”すると「信頼」をベースに友人を構築していくのです。ですから、“起業”してから新たに組織を構築する行ないの中には、自らが「安心」できる組織を作りたい希望が含まれている。そんな仮説も可能です。そう考えると、仕事を広げるための体制作りには「信頼」から「安心」への回帰願望があるとみなしても許されるかもしれません。利害が衝突する「信頼」から「安心」へと。

安心から信頼へ。“起業”する前とした後では、あなたが身につけなければならない観念には違いが生じるのです。それこそが私が実感した友人との関係の違いではないかと思います。利害のない中で心を許し合うトモダチ。安心を背負って交際する仲間。そして信頼を武器に付き合ってゆく友人。私の本音は、その区別を取っ払いたいと思っています。「安心」でき「信頼」でき、さらにそこを超えて心を許し合え、本音で付き合える友人。そんな友人を“起業”してからも作っていければ。私は常にそう願っています。

この点をデメリットとみるか、「信頼」を身に着けるチャンスとみるか。それは皆さん次第だと思います。

次回も引き続き、起業のデメリットを語っていこうとおもいます。ゆるく永くお願いします。


2019年7月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年7月は前月のつまずきを乗り越え、前に進んだ月でした。ただ、さまざまな作業や仕事がたまってゆく一方なのに、新規の案件やお見積り依頼などは途切れることがなく、仕事が立て込んでいる状態に変わりありません。仕事を能動的にこなすべきなのに、仕事に追われる。そんな状況が続いており、なんとかしなければと思っています。

5月、6月と売上額は目標にわずかに届きませんでした。今月はそれを挽回できるほどの額を達成しました。5月の時点で大体の予測はついていたとはいえ、これだけの売上が挙げられたことは、営業と開発のサイクルが回りつつある証と評価してもよいでしょう。達成度5割。達成感5割。満足感6割というのが自己採点です。

おかげ様でお仕事のご依頼は尽きることがなく、つぎつぎと新たなお話しをいただけています。ありがたいことです。先月のまとめにも書きましたが、ここに来て、弊社へのご依頼の性質が上流工程への参画やコードレビュワーのご依頼といった方向に変わりつつあります。代表自身に求められるスキルセットにも変化が出てきていることから、プログラミングやテストについては、代表の手から若手やパートナーに移していかねばと感じています。代表個人の時間には限りがありますので。

サテライトオフィスの開設を機に、そうした業務を少しずつ任せられるような体制の構築に着手しています。パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表は生産性を高く維持し、売上につなげる。そんなビジョンで業務をこなしてゆきたいと思います。弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

公私の「公」

●弊社の業績

§ 総括 7月度の売上は、目標額の二倍に達しました。粗利額、粗利率を含めて評価できる実績となりました。ただ、代表の稼働時間の抑制は全く出来ていません。旅先でも夜中、仕事に励みました。数日間の旅行を楽しみつつ、夜間仕事をこなせる事をワークライフバランスの成果と見るべきか、それとも公私のメリハリの欠如と見るべきか。代表自身、まだまだ課題は残っています。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。どうやればうまく外注先と共存しつつ、外注額比率を抑えるのか。そう考えると、案件のそもそもの見積額を上げるしかありません。稼働の大変な部分をうまく抽出し、外注先にも作業を効率的に担っていただく。つまり、お互いが不公平にならないように調整するすべが求められているのです。今年はその実践を自分に言い聞かせています。協業の申し出もいただいていますし、技術者不足という昨今の業界事情は弊社にとって上げ潮です。引き続き、その方向性でやっていこうと考えています。先月から複数の方と機密保持を結び、サテライトオフィスも開設しました。基盤を作った上で協業できる体制を構築したい。あらためてそのことにトライしています。

ただ、外注に頼ると財務的によろしくありません。また、あいまいな指揮命令の系統は弊社自身が痛い目を見ます。そのことはこれまでの経験で学んでいます。そことの兼ね合いを考えつつ検討を進めたいと思います。

§ 開発案件 今月もkintoneを軸としたシステム構築にまい進しました。AWSやGoogle Apps Scriptとの連動を行いながら、kintoneをユーザーインターフェースとして利用し、業務改善を図る。そうしたkintoneの優位さの認知が浸透し、それを担うことのできる弊社にも引き合いが来ています。まだまだ既存のkintoneサードパーティーツールでは実現できない機能はたくさんあります。それが弊社への引き合いとなって現れているのでしょう。さらに、今や上流設計から入って欲しいというご依頼や、既存のコードをレビューしてほしいという引き合いも増えています。

kintoneとSalesForce、kintoneとGoogle Calendarなどの連携は、まだまだできる技術者が少なく、それは引き続き弊社の武器になるでしょう。一方で、kintoneとboxの連携においても、先月のバグから大いに学びました。引き続きkintone案件は続々と引き合いを賜っているので、切磋琢磨が肝要です。

今月はkintone devCampが開催され、弊社代表も参加いたしました。またkintoneの内部のミーティングにも参加しました。kintoneがますます多方面で利用される今、学ぶべきことは多いです。IoTも学び、ツールも入手しました。引き続き励みます。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。昨年度までの売上額を活用し、かなり財務の改善は進みました。ですが、まだまだ財務基盤は弱いです。今月から報酬体系を見直したので、早く軌道に乗せたいです。課題は山積みです。

§ 社内体制 こちらはまだ道半ばです。年始に定めた3月に人を雇う目標がとん挫しています。6月に複数の方にお会いし、パートナーの形で作業を手伝ってもらえることになりましたが、これからもまだまだ人とお会いしなければならないでしょう。私のリソースに限界が来ているとはいえ、ここで安易に妥協すると後で大変なことになると肝に銘じ、引き続き雇用へと道を求めていこうと思います。雇用自体は、懇意にしている社労士さんや税理士さんからも後押しをいただいています。ただ、そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければなりますまい。オンラインで経営計画書を作られるサービスを知ったので、これを試したいと思います。

§ 人脈の構築 今月もさまざまな場所で新たなご縁ができました。下の対外活動にも記載していますが、それらの場所では貴いつながりができました。引き続きよろしくお願いいたします。

§  対外活動 今月もほとんど商談や作業に終始しました。その中でもいくつかあらたなご縁を繋ぐこともしました。また、代表自身が新たな交流をなしたイベントといえば、kintone devCampを外すわけにはいきません。kintone界隈の技術者イベントを通し、新たなつながりも生まれました。もちろん、既存の関係をきちんと作って行くことが大切であり、なによりも稼働中の案件が優先であることに変わりありません。そうした方々との関係を作って行きたいと思います。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。(「アクアビット航海記 vol.9〜起業のデメリットを考える その3」)2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。

今月書いた本のレビューは4本(「塚原卜伝
直感に刺さるプレゼンテーション
ワールドカップ
雀の手帖」。
今月書いた旅日記は2本(「鹿島の旅 2018/7/14
鹿島の旅 2018/7/15」。
今月書いた観劇のレビューは1本(「エビータ」。

§ 年表 

 ・7月お仕事7月

  品川で打ち合わせ、京橋で作業×3、SYNQAで作業×2、みなとみらいで商談×3、半蔵門で商談、AWS Loft Tokyoで作業、横浜サテライトオフィスで作業、新横浜で商談、新横浜で飲みつつ商談、町田で作業×2、野毛で飲み、新御徒町で商談、kintone devCamp、恵比寿で商談、恵比寿で飲みつつ商談、秋葉原で飲み、狛江のパートナー企業と商談×4

 ・7月ツイート

https://togetter.com/li/1382343


アクアビット航海記 vol.9〜起業のデメリットを考える その3


あらためまして、合同会社アクアビットの長井です。前回にも書きましたが、弊社の起業物語をこちらに転載させて頂くことになりました。第二回~第六回までは起業をポジティブにとらえた視点での利点を述べました。前々回、前回に続き、今回も起業のデメリットを語っています。なお、以下の文は2017/10/5にアップした当時の文章そのままです。

人付き合いの質が変わります。

このデメリットを起業前に想定していた方は偉いと思います。少なくとも私には予想外でした。良くも悪くも、人付き合いの質は“起業”すると変わります。公私ともに。何故だかわかりますか?

私にはまだ、その原因の本質は分かりません。たぶん、死ぬまで分からないのでしょう。学生時代の友人と社会に出てからできた友人の付き合い方がなんとなく違う。そう思ったことはありませんか? それと同じく、社会に出てから絆を結んだ友人と、“起業”した後に友情を作った友人もどことなく違います。それが良いのか悪いのか。判断は人それぞれですが、私にとってはそこに差が生じることが問題なのです。

子供のころのトモダチ付き合い。

私にとって友人とは財産です。学生時代につるんだトモダチ。いまでも私は関西の実家に帰ると友人に会って旧交を温めます。そんな時、一気に若返ったように話が弾む。みなさんも思い当たる節があるのではないでしょうか。 もちろん、社会人になってからの仲間もかけがえのない財産です。また、“起業”してからできた友人ともこれからずっと仲良くしたいと願っています。社会人になってからの仲間も“起業”してからの友人も、子供の頃に培ったトモダチのように付き合いたい。そこに私の本心はあります。

本稿を書き始める前日、私は某BARで月一回恒例の独り呑みを楽しんでました。何も背負わず、個人の立場でフラっとBARに入り、お酒を楽しむ。私にとっては欠かせない憩いの一瞬です。だんまりの時もあれば、マスターやバーテンダーさんや常連客と話が弾むこともあります。昨夜の場合は後者でした。そこで知り合ったのが、誕生日から運勢や性格をみてくださる方。その方がおっしゃるには私は無邪気な少年の心を持った人、だそうです。

いまなお少年のような心を持ち、当時のようなトモダチ付き合いがしたいと願う。それが現在の私。だからこそ、大人になってから仲間や友人たちの間に挟まる薄紙一枚の仕切りに敏感になるのかもしれません。たかが薄紙一枚。でも、私にとっては壁にも等しい。なぜそんな薄紙にトモダチの付き合いを邪魔されるのか。その理由を考えてみました。

それは、利害が絡むから、ではないでしょうか。仕事をすること。そこにはお金が関わります。利害もからみます。責任がのしかかります。仕事を完遂するにあたっては、友情よりも優先されなければならないものがあるのです。それが、学生時代のトモダチと、大人になってからの仲間や友人との違いだと思います。

トモダチには利害など関係ありません。もちろん、美しいだけではありません。子供心にけんかも嫉妬も行き違いもそれなりにあったはず。なぜ、あいつだけ先生の覚えがめでたく、級友から仲良くされるのか、といった想い。そんな微妙な利害の綱引きはあったかもしれません。人によっては大人顔負けの打算で友人を演じていた人もいたかもしれません。でも、そこには大人になってから味わうようなビジネスの冷徹な論理はありません。だからこそ、いまでも会って話すと懐かしさを感じるのです。貴重なのです。

社会に出てからの仲間付き合い。

ここまでの内容で、学生時代のトモダチと、大人になってからの付き合いに違いがあることはおぼろげに理解しました。では、社会人になってからの仲間と“起業”してからの友人には違いがあるのでしょうか。私はあると思っています。では、何がどう違うのか。私はその違いを組織と個人の違いに求めました。あるいは安心と信頼の違いと言いかえてもよいでしょう。

社会に出た後、たいていの人はどこかの組織に入ります。新卒で採用されたり、私のように卒業すぐに就職しない方は派遣先だったり。夢を追いつつバイト生活で生計を立てる場合もバイト先や夢追う仲間たちとのコミュニティが組織にあたります。そういう場所で、いったん社会のルールを学び、社会に溶け込んでいくのです。まず組織の一員となることが一般的であると思います。そして、組織の一員としての立場で、新たに友人との関係を構築していく。その関係には利害の絡む場合とそうでない場合があります。利害が絡まない場合はいいのです。趣味や異業種交流会や合コンなどで知り合った友人との関係ですね。利害の発生しない付き合いなら学生時代のノリでつきあえることでしょう。

でも、場合によっては利害が発生するかもしれません。例えば、取引社の担当者同士で交流を結ぶ場合です。商談しているうちにウマが合って仲良くなる。よくある話です。でも、仕事上の関係は利害をはらんでいます。もし万が一納期が遅れ、片方がもう片方に迷惑をかけた場合など、モロに利害関係が噴出します。ただし、利害が衝突しても、個人にそれらの責任が問われることはあまりありません。なぜなら組織の一員だから。個人として謝罪の気持ちを表すのは当然ですが、法的責任が個人に及ぶことはそうそうありません。もっとも法人格の種類にもよりますし、個人として懲戒処分に相当するようなトラブルを引き起こしたらそれは別の話。ただ言えるのは、基本的には組織の一員である以上、利害が付き合いにモロに響くことはあまりないということです。利害関係といってもたかが知れているのです。

ところが、“起業”してからは、そのあたりがガラッと変わります。

次回も引き続き、“起業”した後の人付き合いの違いについて語っていこうとおもいます。ゆるく永くお願いします。


2019年6月のまとめ(法人)


今年から、毎月ごとに個人と法人を分けてまとめを書きます。

総括すると、2019年6月はつまずきました。久しぶりに本番移行でバグをだしてしまった。この事実に尽きます。これによって仕事を能動的にこなす側から、仕事に追われる立場に堕ちてしまいました。これはまったくもって代表である私の落ち度です。

ただ、おかげ様でお仕事のご依頼は尽きることがありません。ありがたいことです。またここにきて、弊社へのご依頼の性質が変わってきました。代表である私への上流工程への参画やコードレビュワーのご依頼です。それはつまり、私がやるべき作業が現場のプログラミングではなく、若手を支える管理者に移行しつつあることを示しています。ただ私がそうした作業を担っている以上、弊社が相変わらず私個人の能力や人脈で負っていることにほかなりません。

はやく組織をきっちりしなければ。実際、私が存分にコーディングを行う時間は無くなりつつあります。以前から検討していた雇用について、本腰を入れなければなりません。

今月の売上は、バグ対応に時間を取られたため、先月と同様にわずかに目標に届きませんでした。時間がない中で、これだけの売上が挙げられたことは、既存の積み上げが功を奏したといえるのでしょう。達成度3割。達成感3割。満足感4割というのが自己採点です。

今月はサテライトオフィスの開設がなりました。パートナーさんへの発注も進めつつ、自社の案件を増やす。外注率は抑えつつ、代表の効率で売り上げを立てる。ただ、代表のリソースは限界に達しました。その事実が如実に表れた月でした。喫緊の課題として考えねばなりません。弊社とご縁をいただいたすべての方々に感謝します。ありがとうございました。

公私の「公」

●弊社の業績

§ 総括 6月度の売上は、目標額には数万円ほど届きませんでした。ですが、これだけ時間に追われ続けていても収入が確保できていることは、先々月から経営が回り始めてきた証だと思います。代表の稼働時間の抑制はできていませんが、良い具合にスキルアップは図れました。

§ 業務パートナー 今年度に入ってから、パートナー企業との協業をもう一度見直しています。どうやればうまく外注先と共存しつつ、外注額比率を抑えるのか。となるとそもそもの案件の見積額を上げるしかありません。稼働の大変な部分をうまく集中してお願いすることで外注先にも不公平にならないよう、調整するすべ。今年はそれを自分に言い聞かせています。協業の申し出もいただいていますし、技術者不足という昨今の業界事情は弊社にとって上げ潮です。引き続き、その方向性でやっていきたいです。今月はその一環としてサテライトオフィスを設置しました。パートナー企業さんのお借りした事務所に弊社が間借りする形です。

ただ、開発者を育てたり、自社で雇用を行わねば、財務的によろしくないことに変わりありません。そことの兼ね合いを考えつつ検討を進めたいと思います。

§ 開発案件 今月もkintoneを軸としたシステム構築にまい進しました。AWSやGoogle Apps Scriptとの連動を行いながら、kintoneをユーザーインターフェースとして利用する。そうした認知が浸透し、それを担うことのできる弊社にも引き合いが来ています。そして、まだまだ既存のkintoneサードパーティーツールでは行えない開発はたくさんあります。それが弊社への引き合いとなって現れているのでしょう。さらに、今や上流設計から入って欲しいというご依頼や、既存のコードをレビューしてほしいという引き合いも増えています。

kintoneとSalesForce、kintoneとGoogle Calendarなどの連携は、まだまだできる技術者が少なく、それは引き続き弊社の武器になるでしょう。一方で、kintoneとboxの連携において、予期せぬ動作がバグを引き起こしてしまいました。ブラウザー自身の内部のパケットやリクエストの動きにについてより深い知見が求められることを痛感させられました。必ずやこの経験は次回に活かしたいと思います。引き続きkintone案件は続々と引き合いを賜っているので。

今月はAWS Summitが開催され、時間の限られた中、二時間だけ現場の空気に触れてきました。また、AWSの上流工程への参画も引き合いをいただいています。AWSは今後、弊社の柱として技術習得に引き続き励んでいくつもりです。

§ 財務基盤の堅牢化 財務をきっちりすること。前からの課題です。昨年度までの売上額を活用し、かなり財務の改善は進みました。ようやく財務面では回り始めたとはいえ、それは単に売り上げ増によるものです。まだまだ財務基盤は弱いです。引き続き改善に向けて動きます。

§ 社内体制 こちらはまだ道半ばです。年始に定めた3月に人を雇う目標がとん挫しています。6/26にも若い方とお会いしましたが、これからもまだまだ人とお会いして、相性や能力を確かめたいと思います。私のリソースに限界が来ていますが、とはいえここで安易に妥協すると後が大変なので。6/20に弊社のサテライトオフィスを開設し、場所だけは確保できました。続いて人の確保に着手したいと思います。懇意にしている社労士さんや税理士さんからも後押しをいただいていますし。そのためにも遅れている経営への考察(業務計画、SWOT分析、経営計画、就業規則、財務計画など)を深める作業を進めなければ。オンラインで経営計画書を作られるサービスを知ったので、これを試したいと思います。

§ 人脈の構築 今月もさまざまな場所で新たなご縁ができました。下の対外活動にも記載していますが、それらの場所では貴いつながりができました。引き続きよろしくお願いいたします。

§  対外活動 今月はほとんど商談や作業に終始しました。なので新規の交流はほとんど結んでいません。もちろん、既存の関係をきちんと作って行くことが大切であり、なによりも稼働中の案件が優先であることは変わりありません。もちろん、新たにお会いした方も動いている案件を通じて二十名ほどいらっしゃいます。そうした方々との関係を作って行きたいと思います。皆様、ありがとうございました。

§ 執筆活動 昨年の春まで連載していたCarry Meさんの運用する本音採用サイトの「アクアビット 航海記」ですが、今月は1本アップしました。(「アクアビット航海記 vol.8〜起業のデメリットを考える その2」)。2年の空白期間を挟み、内容を読み返してみても代表の人生観・仕事観にブレがないことを確認する意味では、意義がある連載再開になっています。

今月書いた本のレビューは1本(「本当はすごい!東京の歴史」。
今月書いた映画のレビューは1本(「アラジン」。
今月書いた観劇のレビューは1本(「二人静 第四回 金春流能楽師中村昌弘の会」。

§ 年表 

 ・6月お仕事

  横浜でデモ、名古屋でデモ、名古屋でお客様と飲み、築地で商談、京橋で作業×3、狛江で商談×2、みなとみらいで商談×2、狛江のパートナー企業と商談×4、下北沢で作業、品川でランチミーティング、品川で商談、AWS Loft Tokyoで作業、京橋で商談と作業×2、三越前で商談、AWS Summit Tokyo 2019、桜木町で商談、恵比寿で作業、恵比寿で商談、恵比寿でWednesday Lounge、紀尾井町で作業、鶴川で作業、新橋で商談、築地で商談、鶴川で作業

 ・6月ツイート

https://togetter.com/li/1371430