Articles tagged with: JavaScript

事例:株式会社エクステンド様


kintoneの長期持続開発を開発と伴走支援の併用型で請け負いました

  Topへ↓

株式会社エクステンド様は、事業再生コンサルティング、M&Aコンサルティング、経営承継・事業承継を軸とした中小企業に強い企業価値を最大化する使命を担って活動しておられます。
中小企業の経営者は、会社の維持発展のため、常に悩んでいます。その選択肢の中にはM & Aによる売却や、事業・経営承継なども含まれます。

株式会社エクステンド様のコンサルタントは、全国各地の経営者からのご依頼を受け、各地のお客様のもとに伺って、長期的にあるいはスポットでコンサルティングを行います。

株式会社エクステンド様は、そうしたコンサルティング業務の顧客管理、案件管理に対して長年試行錯誤してこられました。

SFA製品を使っていたものの、コストに見合った使いこなしができず、数年前にkintoneに切り替えました。
そして、kintoneのカスタマイズができるシステムベンダー様に移行から構築までを依頼しました。

開発方法の変更を提案

  Topへ↑

システムベンダー様の力を借りてSFAツールからkintoneに顧客・案件管理を移管したエクステンド様ですが、保守フェーズに入って以降のそのシステムベンダー様とは相性がイマイチだったようです。
そこでエクステンド様はkintoneのベンダー交替の検討を始められました。その時にご相談されたのが、請求や入金消し込みで利用していた請求管理ロボで知られるROBOT PAYMENT社様でした。ROBOT PAYMENT社様は弊社をご紹介くださり、そこからエクステンド様とのご縁が始まりました。この場をお借りして感謝申し上げます。
エクステンド社のK野様とやりとりを始めた日付は、2021/3/15でした。
事前にNDAを締結した上で、エクステンド社の大阪オフィスでK野様とお会いし、お話を伺いつつkintoneのアプリ群も拝見しました。

その内容を拝見した上で私が提案したのは、システムベンダー様の開発の手法がエクステンド様に合わないのではないかということです。

そのシステムベンダー様は請求管理ロボに対してデータ連携を行うため、プラグインを用いておられました。
また、カスタマイズのJavaScriptファイルのほとんどは、webpack×TypeScriptを用いてパッキングされていました。
それらのカスタマイズを拝見すると、それほど難易度が高くない処理であるにもかかわらず、webpack×TypeScriptを用いることによってJavaScriptファイルのサイズが数十倍になっているケースも見受けられました。

webpackはブラウザによる動作の差異を吸収し、複数のJavaScriptファイルに分散した処理を統合するためのすぐれた仕組みです。
また、複数のJavaScriptファイルをたばね、統合が可能なため、開発者によって異なる環境の違いを均すことができるため、複数開発者による開発が可能です。

内部の開発環境体制が固まっている場合には迅速なコーディングとデプロイが可能です。
ただ、内部の体制に異動があると、様々なオプションを設定したwebpackの環境の差異を取りまとめる必要が生じます。

私が想像した見立てとは、システムベンダー様がwebpackを実装したことによって、却ってエクステンド様からの簡単なご依頼に迅速に対応できなくなっているのではないかというものです。

そもそも、webpack×TypeScriptの仕組みは、エクステンド様にとっては直接的には影響はなく、どちらでも良いわけです。間接的にシステムベンダー様側の開発が効率化され、それがエクステンド様に還元されれば良いだけの話。
エクステンド様からいただいた処理フローを拝見すると、マスター管理からリード獲得、案件化から案件管理、請求管理、入金消込処理までの一連の流れを考慮する必要があります。
各機能をまたいだ処理を実装するには、webpack×TypeScriptによって統一した規約のもとでパッキングした方がよいのは確かですが、なまじ複雑な仕組みを採用したために簡単な改修依頼にも応えられなくなっているようでは問題です。

それらの状況を判断し、弊社からの提案は、以下のようなものでした。
・新規のカスタマイズご依頼分については、webpack×TypeScriptによるパッキングを行わず、JavaScript単体で行う。
・システムベンダー様によるプラグインや既存のwebpack×TypeScriptによってバッキングされたJavaScriptは無理にいじらない。
・Google WorkSpaceや請求管理ロボ、Garoonなど、kintoneと周辺のシステムとの連携実装についても対応する。
・伴走支援とカスタマイズ構築を併用して対応する。
・ビジネスフローや全体構造は既存の方法をいかす。

上記記載の提案書を出してから、エクステンド様でもかなりの期間を検討にあてていただいたようです。
システムベンダー様との協業を継続したほうがよいのか、弊社に切り替えるべきか。

弊社に対してご連絡があったのは、約一年半の後でした。
その結果、2023年の年始よりご支援を開始しました。

webpackやプラグインを改修し、適宜プログラムのカスタマイズや追加を実施

  Topへ↑

上に書いた提案のとおり、弊社が支援を開始するにあたってはエクステンド様の運用に大きく手を加えません。
また、システムベンダー様とエクステンド様の間では、webpack×TypeScriptのパッキングする前のソースコードは提供され、弊社が編集可能な旨も合意いただいていました。

なので、弊社はまずwebpack×TypeScriptによってパッキングされる前のJavaScriptファイルおよび、プラグインの元ソースコードの分析を開始しました。

また、そうした複雑な処理以外の改修のご要望には、順次手をつけて行きました。

例えば以下のようなご要望がありました。
・ChatWorkによるコンサルティングを行うためのルーム追加を行った際、それをkintoneと連携し、Chat履歴をkintoneに反映する実装。
・Garoon上の申請フォームのカスタマイズフィールドをkintoneの任意のアプリに連携する実装。
・マーケティングツールの切り替えにあたっての検討のご支援。
・クラウドサイン導入にあたっての検討のご支援。
・別事業の立ち上げ検討にあたってのGoogleの別ドメインの開設検討のご支援。

kintoneについても、画面のカスタマイズや、ある計算ロジックの組み込みなどを行いました。
その中ではgusuku Customineの提案もしたことがあり、Cybozu Circus 大阪にK野様をお連れしたこともあります。
残念ながらその時はCustomineのご採用には至りませんでしたが、今後もそうしたツールのご提案は随時行うつもりです。

そうしたご支援を行いながら、一つ一つ課題を解決していきました。
今も引き続き、これからの改修に向けてご支援を続けています。

kintoneだけでない周辺の知識の必要性

  Topへ↑

今、kintoneの周辺には連携できるサービスがたくさんあります。サイボウズ社のサービスもありますし、サイボウズオフィシャルパートナーの提供するサービスやプラグインも。また、さらにその周辺には多種多様なSaaS/PaaSがあります。

エクステンド様に限らず、増え続ける一方のkintone周辺の状況を把握し続けることはとても困難です。
数多あるkintone周辺サービスを把握し、kintoneと接続し、お客様の業務に適したツールの提案ができるスキルは、これからもkintone開発会社やベンダーに必要となるでしょう。

システム開発会社に求められる期待とは、コーディングだけが解決策ではなく、また、ツールを提案して導入して終わりではありません。
社会の環境の変化についていけるよう、お客様の求める最適解を一緒に考え、長期的な視点で提案していくためには、弊社も引き続きの切磋琢磨が必要です。
kintone開発の場合、さらにお客様自身が業務改善を進めるためのツールとしての視点が必要です。開発者としての目線だけにとらわれず、お客様の求める価値実現に向けての視点が必要ではないでしょうか。

エクステンド様へのご支援を通じて、弊社の姿勢とエクステンド様の求めるkintone開発支援の方向性が一致していたのであれば、弊社としてはうれしいことです。

まとめ

  Topへ↑

実はK野様は昨年(2024)の夏から秋にかけて、退職されました(そのため記事の中では実名にしていません)。

ただ、それまでのご支援の間に、エクステンド様の皆様とは協業を重ねてきました。また、信頼もいただいてきました。
上に書いたご支援の必要性は変わっていません。
むしろ、より一層弊社に対するご期待も増しておられると考え、気を引き締めてご支援をさせていただくつもりです。

既存資産を活かしながら、業務を止めずに改修を重ねることに注力した事例でした。
技術者の視点ではなく、お客様の視点で開発を行うこと。そして、業務を止めずに改修を重ねていくことの必要性を感じました。

株式会社エクステンド様より

  Topへ↑

導入からの日々をエクステンド社の奥田様は、こう語ってくださいました。

「社内に担当者はおいていたものの、システムやソフトの扱いに専門家ではないことから、
担当者としてはこの変更を行っても大丈夫なのか?この不具合をどう改善すべきか?といった不安毎が絶えず付きまとう中、
ここまでの一連の取り組みにおいては自社単体では到底できなかったため、いつでも気軽に相談できるアクアビットの長井さんが
いることで不安の解消に繋がり、かつ専門性が補完され、ここまでの対応が進んだことと考えております。
またアクアビットの長井さんと接していて、絶えず利用者である我々目線で開発を進めて頂けること(入力や改修の容易さ含め)が
あるのですが、それを今現在の足元の目線だけではなく、将来予測されるリスクから検討を行い、現状の社内体制を考えた中での最善策を
ご提案いただけることが安心に繋がっていると感じ、深く感謝しています。」

導入からの日々をエクステンド社の牧野様は、こう語ってくださいました。

「一番最初にお話を伺った際から、同席させていただいておりました。
請求書関連を担当しておりましたため、どのような点が使いづらいのかというお話をさせていただいた記憶がございます。
システムの打ち合わせを並行して進めていたおかげで、請求書の件とは別に、kintoneの運用方法について実際の動きを確認しながら段階的に理解を深めることができました。

当初にお願いしていた請求書関連の困りごとについては無事に改善が実現し、作業の迅速化とミス防止の両面で大きな改善効果が表れております。

社内の担当者が退職し、専門的な相談が難しくなった中で、長井さまには丁寧かつ明確なご指導をいただき、また問題発生時には迅速なサポートをいただいており、大変感謝いたしております。」

株式会社エクステンド様のご紹介

社名 株式会社エクステンド
代表取締役 沖原 厚則
設立 2004年10月(フィナンシャル・インスティチュート設立)
2015年12月(フィナンシャル・インスティチュートMBO)
認定 経営革新等支援機関(財務局長・経済産業局長認定支援機関)
事業内容 ・事業再生

顧問契約を結び、専任のコンサルタントがまずはお客様の資金繰りをまわるようにし、倒産を回避させ、その後事業の再生へ向かってお手伝いさせていただくサービスです。改善後もさらなる改善策をご提供いたします。

・M&A

赤字企業、債務超過企業、或いは、業種、規模に関わらず小規模企業、中小企業のスモールM&Aも積極的にご支援いたします。最適なM&A スキームの決定と、完了までをサポートいたします。

・経営承継・事業承継

豊富な事業再生で培ったコンサルティングノウハウをフル活用し、企業を承継する幹部・従業員の教育・育成まで踏み込んだご支援が可能。また親族内承継の経営承継と資産(所有権)承継をワンストップでご支援致します。

資本金 1500万円
従業員 30名
会員数 216団体(正会員43、賛助会員139、県市町村会員34) 令和6年9月19日現在
アクセス 本社(東京)
〒103-0028
東京都中央区八重洲1-4-16 東京建物八重洲ビル3階

大阪オフィス

〒541-0046
大阪市中央区平野町3丁目1-6 ビズミックス淀屋橋 202号

名古屋オフィス

〒450-0002
名古屋市中村区名駅2丁目41-10 アストラーレ名駅7階

福岡オフィス

〒812-0013
福岡市博多区博多駅東1-1-33 はかた近代ビル3階

広島サテライトオフィス

〒730-0022
広島市中区銀山町3-1 
ひろしまハイビル21 16階

山陰営業部

〒690-0888
島根県松江市北堀町224番地1 
交通 松江市営バス「塩見縄手」バス停留所徒歩1分

URL https://www.extend-ma.co.jp
YouTube
X(twitter)
facebook

事例:株式会社フラン様


基幹システムと店舗POSレジシステムの刷新にあたって、周辺システムにkintoneを選定

  Topへ↓

株式会社フラン様は、40年以上前の創業時から女性向けランジェリーを扱っておられます。
当初は輸入ランジェリーの販売が主でした。その後、各地のショッピングモールにチェーン展開を始めると同時に商品ラインナップを大幅に見直し、今では豊富なデザイン・機能・サイズのランジェリーを展開しています。
本稿を執筆時点では全国にリアル店舗が19店舗。オンラインショッピングモールに11店舗を出店し、順調に成長しておられます。

フラン様を弊社にご紹介くださったのは株式会社スマレジ様及び大幸パートナーズ株式会社様です。
フラン様と弊社のご縁のきっかけとなったのは、フラン様が各店舗のPOSレジシステムの刷新を行うと決めた時点からです。
フラン様はまず、スマレジ社にお声掛けしました。
スマレジ社の運営するスマレジはPOSレジ機能に特化しています。POSレジ機能を補完するため、スマレジにはアプリストアが用意されています。多くのアプリ群がスマレジの機能を支えています。そのアプリ群の一つにスマレジから請求書を出す「セイキューン」があります。大幸パートナーズ様は、この「セイキューン」を開発・運営されておられます。
ところが、フラン様が望む請求書発行の運用は「セイキューン」で満たせたものの、他の店舗運用を満たすためのアプリがアプリストアにはなく、その解決策をフラン様より相談された大幸パートナーズの五十嵐社長が提案したのがkintoneでした。
そして、kintone側を担うシステム開発会社として弊社を推していただきました。

多種多様の品揃えを管理するための設計

  Topへ↑

スマレジの標準機能では実現できない運用。フラン様の課題は最初から明確でした。

まず、商品管理です。
フラン様が展開するランジェリー商品のラインナップは、上に書いたとおり多種多様にわたります。そのラインアップを支える上で細かい商品管理が欠かせません。ところが、スマレジの備える商品管理機能はフラン様の要望を完全に満たしていませんでした。
例えば、フラン様のランジェリー品目はサイズごと色ごと品番ごとに設けています。それらの商品管理単位(SKU単位)の数はアクティブな点数だけを数えても五万点を超えています。その入力方法はどのように行うのか。データの関連性はどう設定するか。
さらに、SKUの一つ一つにJanCodeを発番する必要があります。スマレジのPOSレジ機能にはその機能がありませんでした。

次に商品物流管理です。
スマレジのリテールビジネスプランには入庫、入荷、出荷、出庫などの機能が備わっています。また、高度な在庫管理機能も備わっています。
ですが、それらの処理をスマレジに指示する際、一店舗ずつ処理を行う必要がありました。
つまり、多店舗×多品種で運用するフラン様の業務上、入力の手間が生じることが予想されていました。

続いて、売上分析機能です。
スマレジが擁する売り上げ分析機能では、経営のかじ取りを行うための分析ができず、分析をkintoneで代替させたいとのご要望もお持ちでした。

あと一つは、オンラインショップの売上データを変換し、そのデータをスマレジの売上データとして登録する機能です。
これもkintoneを経由させ、データを加工させればよいのではという構想をおもちでした。

最後に、ピッキングリストを発行する機能です。これが一番のフラン様のご要望でした。
ピッキングリストとは、倉庫の担当者が商品を棚から選ぶ際のリストの事です。
つまり出荷/出庫予定に対し、迅速に棚から商品を出すリストの出力が喫緊の課題でした。
スマレジはタブレットから簡単に出庫予定を出せます。が、紙のリストを出す機能はありません。SKU点数が多いフラン様の運用上、より運用に即したピッキングリストを出す必要に迫られていました。
望ましいピッキングリストとは、現在の在庫数に加え、入荷・入庫予定を算出してくれるものです。
店舗ごと、SKUごとに設定した在庫定数を下回るか、または指定した任意の期間の売上数に応じた数量を反映したピッキングリストを出すことは、フラン様の各店舗の在庫管理の肝でした。

スマレジはPOSシステムとして優れた機能を持っています。
ですが、それでも上記のようにフラン様のような多品種を扱う業種では補いきれない点がありました。
これらの機能をkintoneで補完し、スマレジのPOSレジ機能の良さを生かす。これが今回の案件のミッションでした。

SKUの多さを克服することが大変

  Topへ↑

開発の期間は約半年。
約半年の間、kintoneのアプリ間の連携や、JanCodeの発番機能の実装など、kintone側で出来ることは順次仕上げていきました。
特に商品管理を実現するため、多くのアプリを組み合わせました。品番やSKU、カラーやサイズなど。そうしたアパレル系のお客様ならではの商品管理を実現することがまず最初の難関でした。
フラン様のご担当者と何度もオンラインで打ち合わせを重ね、kintone自体の癖や特徴もお伝えしながら、より良い商品管理につなげていきました。

また、フラン様が求めるSKU単位で商品管理を行うご要望では、多数のレコードが必要でした。
それは、kintoneのレコード数の増加と、レコード数が多いことによる処理時間の増加に直結します。
処理時間を工夫し、タイムアウトエラーを起こさずに処理を実現する。それが開発上でもっとも苦労した点でした。
どうすれば処理時間を短くし、業務に影響を与えぬように短時間で処理を終わらせられるか。

例えば、新たな商品を登録した場合の処理です。
kintoneには商品データの背後に多くのマスタアプリが連なっています。商品データを登録した際、多くのアプリにデータを連動することが求められました。
さらに、kintoneで作ったデータをスマレジに登録する際も大量データによる問題が発生しました。
そのため、当初はフラン様がCSVを取り込む運用を行う想定でしたがうまく行きませんでした。
そこで、当初は開発範囲外だったkintoneからスマレジへの商品登録の必要が生じました。

また、店舗ごとSKUごとに在庫の定数レコードを作成する処理も必要です。
頻繁に新商品が発生するフラン様の場合、細かいデータの連携が必要となります。
当初はデータを連携するためにkintoneの画面上にボタンを設置していました。ところがボタンを押した後に処理を待つ時間が生じ、さらには大量のデータを処理する間にタイムアウトエラーが生じてしまいました。
これは一件ずつ、追加と更新の判断をしながら、大量のレコードをkintoneで処理する必要があったためです。これをどのように制御するか。処理がタイムアウトしてエラーになる事象をどのようにして回避するか、ここでも開発に腐心しました。
こうした処理はkintone内でJavaScriptに担わせる実装をやめ、サーバー内においたphpプログラムに任せるように処理を変更しました。
その際も、夜間バッチや都度処理の併用を幾パターンも試しました。

大量データに関する課題は、ピッキングリストの発行処理でも生じました。商品データ、在庫定数データ、売り上げデータ、そして入荷/入庫予定データ。ピッキングデータを出すまでにはいくつものアプリで大量のデータを扱う必要がありました。
これらの処理も全てphpに移管しました。しかもkintone画面上でもタイムアウトを生じさせないよう、Ajax処理を時折挟んで制御を行い、タイムアウトが生じないような工夫を行いました。

あと、ご要望としてあったのが、スマレジの各種データをバッチでkintoneに取り込む処理の実装てす。これも何度も調整を重ねました。
バッチ処理を実行するのは一時間おきなのか、それとも一日一回なのか。
スマレジのAPIの条件設定も含めて、その実装にもかなりの創意工夫を凝らしました。

スマレジのデータを追加/更新する際、スマレジ側で処理時間のタイムアウトにならないような工夫も必要でした。
そのエラーを回避する検討にもかなりの時間を掛けました。
ブラウザで制御を行うため、一定期間ごとにAjaxで処理を更新する機構はまさにその一つです。
データ数が何万件にもなる場合、kintoneとスマレジの両方で考慮しなければならない点が多く、それらを満たすための処理にはかなりの時間を掛けました。

お客様にもkintoneに関わっていただきながら運用へ

  Topへ↑

並行してフラン様にもkintoneの理解を深めていただきました。
フラン様のご担当者様は、kintoneのコマンドラインツールであるcli-kintoneの使い方を学び、自力で kintoneからの出力処理を実装するまでになりました。
弊社はこうした実装については助言をし、お客様自身で可能なように支援しました。
その助言をもとにkintoneを使いこなしていただけたのは、今回の開発において手応えを感じたことの一つです。

kintoneアプリの修正も双方で連携をとりながら、破綻させずに少しずつ運用開始に向けてkintoneとスマレジの双方で実装を進めていきました。
各店舗のスタッフ様への操作研修も順次実施していただき、無事に11月に運用が開始できました。

特筆すべきは、初めのご挨拶から運用開始まで、一度もフラン様とはオフラインの対面でお会いしていないことです。
全てをリモート(zoomとチャットワーク、たまに電話)の連絡だけでやり切りました。

これは弊社にとっても大きな自信となりました。フラン様の皆様には感謝です。

フラン様より

フラン社の奥村社長はこう語ってくださいました。

「ここまでクライアントの要望を何度もくみ取り対応頂ける開発会社は初めてです!」

弊社のPOSレジの切り替えに伴い、業界でも注目されているスマレジの利用を検討しておりました。機能を調べたところ弊社の運用において不足している機能が多々あり導入を半ば諦めていたころ、ご縁を頂いたのがアクアビット様になります。弊社ではKintoneの利用経験がなく実際の運用にあたり問題が発生しないか心配しておりましたが、アクアビット様の度重なるヒアリングをベースにした開発や問題発生時の素早い対応などにより、当初の心配が嘘のように無くなっていきました。これからも弊社のパートナーとしてサポート頂きたいと思ってます!

フラン社の小林様はこう語ってくださいました。

「kintoneについての知識がゼロの段階から、
毎回のミーティングを通して弊社側の要望や意図を汲み取り、
個別アプリの作成、アプリ間の連携、そしてスマレジとの連携に至るまで、次々と形にして頂けたこと、
またその後大きなトラブルもなく今日まで運用できているのは、
アクアビット様のお力無くしては出来なかったことだと改めて感じています。
運用開始後もエラー発生時の迅速な対応や、改善するために多くのサポート頂き、絶大な安心感を持って日々の運用が出来ていることにも本当に感謝しています。
引き続きどうぞよろしくお願いします。」

フラン様のご紹介

商号 株式会社フラン
本社 〒488-0044 愛知県尾張旭市南本地ヶ原町3-110
TEL 0561-54-6813
代表者 代表取締役 奥村 聡
設立 1981年1月23日
資本金 1000万円
ウェブサイト https://fran-de-lingerie.com/

アクアビット航海記 vol.36〜航海記 その21


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

衝動的にホームページの作成に取り掛かる


今の私には、いくつもホームページを立ち上げた経験があります。
単にウェブサーバーにファイルをアップロードするだけではありません。サーバー用マシンを購入するところからはじめ、Linuxのディストリビューションのインストールから、Apache、MySQL、PHPをインストールするところまで。
社内ネットワークを敷設しましたし、サーバーの中を開けてメモリーの増設も経験しています。その他にもいろいろと経験を積んできています。

当たり前ですが、そんな私にも初めてホームページを作った時がありました。
真っさらな状態からHTMLの〈head〉タグや〈body〉タグの勉強を始めた瞬間が。今回はその時のことを思い出してみたいと思います。
本連載の主旨である起業への道筋を語るには不可欠のはずなので。

前回の連載で娘の誕生に立ち合った経緯を書きました。その時の感動は、私の内部に記録したい、表現したいという欲を呼び起こしました。娘の誕生の感動をホームページで表現しなければ。そんな衝動に駆られ、私は矢も盾もたまらずホームページ作成に取りかかります。
娘の誕生が12/28だったので、仕事も正月休みに重なっていたことが幸いしました。

私の知る限り、その当時はブラウザーを使ったウェブアプリは一般的ではありませんでした。もちろん、スカパーのカスタマーセンターの中でも私の知る範囲では使われていなかったはずです。というのも、ブラウザーといえばInternet ExplorerかNetscape Navigatorの二択だった時代。ブラウザーとはシステムのためのものではなく、あくまでもビジネスの広告媒体、つまりホームページの表示用のソフトでした。つまり、私も含めた大多数の人にとってブラウザーとは誰かがアップしたページを見るだけの場所でした。

もちろん、私の知識もその程度。ですから、技術的にも大したページは作れません。ページも静的なHTMLだけで作りました。CGIどころかJavaScriptも皆無。CSSすら適用しなかったように記憶しています。フォントサイズはCSSで指定せず、フォントタグの中の要素値として指定するのが一般的でした。
ホームページの設置場所もどこに置けば適切なのか分からず、ドメインについての知識もありません。そこで、当時加入していたインターネット接続プロバイダー(DTI)の加入者用スペースを利用しました。そこにFTP接続用のソフト(FFFTP)で接続し、HTMLで組み上げたファイルと画像をアップロードします。そうすると、プロバイダーから割り当てられたURLでページが閲覧できました。

独学でホームページ作成を学ぶ


私は一からホームページの作り方やアップロードのやり方を調べました。どのようにすればホームページがアップロードできるのか。ページが表示できるのか。確か「とほほのWWW入門」には多大なお世話になったはずです。
その結果、娘が生まれた次の日あたりにはホームページをアップすることができました。確か、取りかかってから半日程度だったはずです。ちょうどその時、娘の誕生を応援するため、私の母も東京に来ていました。出来上がったばかりのホームページをうちの母に見てもらいました。

今の私の感覚からすると単に〈html〉や〈img〉タグを組み合わせただけのページに半日はかかりすぎです。でも、それも無理はありません。
私にホームページのいろはを教えてくれる先生はおらず、サーバーやネットワークの概念から独りで学ぶ必要がありました。学びつつ作業する。ですから半日でアップできたのはむしろ早かったともいえます。
この時、独学でホームページの仕組みを学んだことは、私のその後に有益でした。もちろん起業の上でも。

冒頭にも書いたように、今の私はホームページの仕組みについてさまざまな経験を積んできています。それらの知識はほぼ独学で学びました。
芦屋市役所で学んだマクロの初歩も、スカパーで集計の仕組みを改良したのも独学。そしてホームページ作成も。
もちろん、芦屋市役所でお世話になったSさんや「集計チーム」で私にアクセスを教えてくれたOさんのように、その時々で私の手本となる方はいました。それでも私は独学で学んだのだとと思っています。
言うまでもなく、独学は学習効率から考えるととても非生産的です。本来は褒められることでも自慢することでもありません。ですが私にとっては独学とは自分の力で得た知識なのです。それは私に自信を与えてくれています。
その経験は尊く、自分の力で手に職を身につけた実感。これは自信となりました。私の起業の本質は独学にあると思っています。

連載の第十九回で妻と出会ったきっかけが電子掲示板であることは書きました。そしてその当時の私が電子掲示板やICQを使って英語で海外の方とコミュニケーションをとっていたことも書きました。しかし、当時の私はただブラウザーを利用するだけでした。裏にどれだけ複雑なロジックが使われているかも意識することもなく。
そんな私がホームページをアップする作業を経験したことで、私にとってブラウザーの位置づけが変わりました。単にホームページを見てコミュニケーションするためのソフトから、コンテンツをアップし自分を表現する場所へ。ホームページを独力でアップしたことにより、私は自分を表現するための手段を手に入れました。

ホームページ作成で起業の発想はなかった


ブラウザーで何かを表現する。この時、私が表現したのは娘の誕生の感動です。
その時ホームページに掲載した十数枚の画像の中には、娘が生まれた瞬間をとらえた際どい画も含まれていました。それも含めてホームページとは表現なのだと思います。
そして、ホームページをアップすることによって、私は表現とはこれほどまでにやりがいのある営みなのかという感触を得ました。
この時、私がもう少しホームページの可能性を真面目にとらえていたら、関西にいる時に抱いていたクリエイティブな職に就きたいとの望みはもっと早くに叶っていたのでしょう。それどころか、ホームページを使った起業さえ成し遂げていたかもしれません。
ただし、それは今だからいえる話。当時の私はそのような発想を全く持っていませんでした。

その頃の私はあいかわらず旺盛に本を読みまくっていました。そして、何かで私自らの生の証しを立てたいと夢想していました。でも、残念ながら、それは夢想でしかなかった。当時の私はあまりにも未熟でした。
しかし未熟であるが故に伸び盛りでもありました。私が自分の伸びしろを持て余し、自分の能力の可能性に戸惑っていました。自分の可能性を感じながら、何に向かって具体的な努力をすれば良いのか、全く理解していませんでした。
今から考えれば、その時の私には強大なチャンスが目の前に転がっていたにもかかわらず。
私の心の中にビジネスで身を立てる発想は皆無でした。

私がビジネスに興味を持てなかった理由。
それは妻の妊娠と娘の出産を控えた親の心情にかかわりがありました。娘には自分が親として教えられることの全てを伝えたい。良き父、良き夫でありたい。そんな理想の家庭像、理想の自分像に私が縛られていたのです。
その幻想は私の眼にはとても魅力的に映りました。クリエイティブな職を目指す余地を奪うほどに。

何にもまして日々の生活が十分なほどクリエイティブだったのですから。娘の誕生、結婚の日常、そして広大な家での生活。仕事も含めて全てが新鮮でした。
そのクリエイティブな状態は、娘が生まれる二年前の自分を比較すると隔世の感すらあります。二年前の私はブラック企業で追い詰められ、何も考えられなくなるまで消耗していました。それから二年。正社員となり、妻をいつくしみ、娘の誕生にまで立ち会えました。しかも持ち家まで構えていられる。
そんな風に恵まれた自分が、その当時の境遇に満足し、上を目指そうと思えなかったのも仕方ないと思えます。その時の私は、クリエイティブな職を目指すだけのモチベーションを持ちようがなかったのです。自分の境遇の変化に追随するだけで精いっぱいだったのでしょう。

ところが、世間的にはステータスであるはずの持ち家が、私を苦しめはじめるのです。
次回からは持ち家の処分について語っていこうと思います。ゆるく永くお願いいたします。


kintoneのPromiseを説明できるスキル


以前よりお付き合いさせていただいている株式会社アディエム様(https://adiem.jp/)より、
先日ご依頼を受けたたkintone開発案件は、何重にも入れ子になった多重Promise処理が必要でした。

弊社にてコーディングと単体テストを行い、無事納品にこぎつけられたのですが、
アディエム社の技術者様にもコードの説明を行う必要が生じました。

弊社の代表もPromiseの習得にはかなり手を焼いたのですが、そのスキルを習得できたかの判断基準は、その内容を人に説明できるかどうかです。つまり今回、うまく説明できたかどうかは、弊社代表がPromiseを理解できているかのベンチマークにもなりました。

説明を行った結果、アディエム社の技術者様にPromise処理をご理解していただけたようです。追加の処理を実装し、さらにテストまでも行えるまでになったとか。その結果を以下のようなメッセージでいただきましたのでご紹介します。

先日はコードのレクチャーをありがとうござました。
本日、検索部分のエラーハンドリングを追加し、本番環境にリリース致しました。
負荷テストとして4001件のデータを使用して、正常に更新されることも確認しました。

kintone APIのノーマル呼び出しパターン、kintone promise を使ったパターン、promiseでも thenにresolve, rejectを引き渡すパターン、thenとcatchを書くパターンと、かなりケースの整理が できました。また返値の扱いもデバックすることで理解が進みました。
まだうまく関数化して可読性の良いソースを書く自信はありませんが、長井さんソースを参考にさせて 頂きたいと思います。

以上、ご報告まで。

弊社代表は以前より、kintoneのエバンジェリストとしてサイボウズ社より任命されております。
最近はこうしたマンツーマンに近い形で、技術をお伝えする案件も増えつつあります。
その中でこうしたご評価を頂戴したことは、弊社代表にとっても自信になりました。もちろん、スキルの習得に終わりはありません。新たな技術も次々と世の中に生まれています。まだまだ切磋琢磨していかねば。精進します。

今後もアディエム社とはkintone案件のご提案からコーディング・テストまでを協業できる関係を築いていければと思います。
kintoneでのシステム開発のご相談、アディエム社、および弊社にお気軽にお寄せ下さいませ。

また、もし御社の技術者に対し、こうしたマンツーマン形式でのレクチャーをご要望の際は、
ご連絡をください! ご相談に乗らせていただきます。