Salesforceハッカソン2021にアドミンが参戦した記録

Salesforceハッカソン2021に参加しましたので、参加者としての目線で記事を書きます。
https://developer.salesforce.com/jpblogs/2021/12/salesforce-hackathon-2021-dec12/
※初めてQiita書くので無作法があると思います。。。申し訳御座いません。


Salesforceハッカソン2021は2日間で作成されたアプリで6チームが競います。
今回が初開催で、今後も開催予定有り（?)とのことでしたので、来年に参加される皆さんの為に私達の戦いの記録を残しておきたいと思います。



11月末
選考結果発表

何と30チームも応募があったそうです。
その中で私達"チーム寄せ鍋"が当選。
尚、選考理由は特に開示されていません。
富〇通さん、NT〇データさんとかの大手や、
この界隈では誰もが知るであろうツワモノを揃えたチームとかのなかで、
正直なところ何故うちが当選?という感じもあります。
別々のユーザー企業のアドミン3名、フリーランスのデベロッパー2名というチーム編成が面白いと思われたのかもしれません。

12月初旬
パーカー到着
ついに僕もあの黒いパーカーを着れるんだ、とかなりルンルンしてパーカーの到着を待ちました。
勝手に飛び跳ねたり、満点の笑顔で写真撮っちゃうぞ～！と思っていました。
が、、、

![IMG-0190.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/796d177d-eef4-7afe-dfee-b148582b572d.jpeg)

Salesforceさん、これはこれでプレミア感あって嬉しいのですが。。。
黒いパーカーを着られるようになるにはまだ先が長いようです。


前段、ここまで。
以降は戦いの記録である。

12月11日
ハッカソン1日目
9:00

Salesforceさんからテーマが発表。お題は『保育園』。
園長、保育士、栄養士、看護師、保護者のそれぞれの詳細なペルソナが示され、
彼らの課題をSalesforceを使って解決するように指示された。
尚、園長はお金に糸目をつけないらしい。

![テーマ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/34adb339-f142-c6e0-a7fa-e71afc30c214.png)


うわーめっちゃ細かい…と私がアセアセしている間に普段は営業企画を兼任しているアドミンA氏が、
スクショとって課題の整理をQuipで始める。
我々はA氏の資料作成スピードにこの後も救われるのである。

9:30

要件定義を始める。
特に普段はパートナーセールスも兼任しているY氏が中心になり顧客課題を分析し始める。
(私が一番役にたったのは子供の保育園の連絡帳を提供したことである)

![Quip1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/dc213556-b98a-c308-0dba-356cffa64e57.png)

11:00

開発チーム2名がオブジェクト構成を考え始める。
![構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/871a39ff-51fd-217c-9085-218a9bbf1024.png)

ここで我がチームがアドミン中心らしいというか、
実際に使ったときの問題点が無いかを真面目に考え始める。
エクスペリエンスクラウドを使うだからセキュリティ要件をしっかりきめようと私が言い始めてしまった。
そこで取引先を世帯とし、同世帯であれば互いのレコードが見えるようにした共有セットの条件を真面目に考え始めた。
※後でわかったことだが共有セットを設定して、セキュリティの見えないところまで作り込んだのは我がチームだけであった。
が、後悔は無い。我々はこの時点で保育園のことを本気で考えていたのだ。

13:00
今回のハッカソンではメンター制度があり、業界内で"神"と崇められているトッププロがこの時間に降臨し、
困っていることを相談できる。
我々は"神"に啓示を求めた。
"神"はこうおっしゃった。

「堅い。もっとワクワクするような、実現できるかわからないけどチャレンジしたい、と思わせるようなことをして欲しい」

まさかのもっと遊べという言葉をもらう。
ここで「登園した際に今日の目標を選んで、達成したらバッチが貰える」という私達が大好きな制度を園児にも適用しようというアイディアが生まれる。

![バッチ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/84656d1a-22be-2f13-4f90-44070de3b7c7.png)


15:00
やるべきことは決まった。
ここからはとにかく作ることになる。
community cloud時代のほぼテンプレであるが代理店管理を構築したことがある私と数々の現場を生き抜いてきた開発者のO氏がコミュニティ側を、
残りのメンバーはオブジェクトと項目の作成を始める。
我がチームはアドミン中心であり、ここでも真面目にきちんと定義決めや使用場面も考えているのである。
ユーザインタビューも欠かさず、保育園の先生の友人に電話し始めるアドミンチーム。

![項目.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/38345a0d-444d-b1f5-cbab-ecbff17f371a.png)


16:00(?)
運営から衝撃の言葉を受ける。
衝撃過ぎて、時間はあやふやである。

「コミュニティはLWRテンプレートしか許可していませんからね～確認ですよ」

O氏が固まる。
お休みの連絡フォームをフローで作っていた私には何のことなのか全くわからない。

O氏がLWRテンプレートでコミュニティを作ってくれた。
https://help.salesforce.com/s/articleView?id=release-notes.rn_cms_lwr.htm&type=5&release=230
そこは何もない真っ白のテンプレートだった。
そして見慣れた標準コンポーネントは何も無かった。

「Oさん、これって。。。」
「はい、全部1から書く必要があります」

ここで開発できない私は全く役に立たなくなったので、
コミュニティはO氏とS氏の開発コンビに任せることになった。

私はセキュリティとケース関連の自動化という標準の裏側作業とダッシュボード構築に専念することになる。

18:00
一応終了時間。
他のチームも集まる。
どのチームも疲れと焦りの表情が出ている。

我がチームの構築は当たり前だが、まだまだ終わるわけが無い。
ただ、やるべきことは明確になっているので、それぞれ分かれて無理しない範囲までやろう、ということになる。

24:00
ひたすら作り続ける。
結局この時間まで誰も抜けない。
アドミンチームは項目作成が終了。
開発チームも出来上がってきた。
項目作成してイメージ整えつつA氏が発表用のスライドの格子をほぼ作ってくれている。
A氏のような営業企画がいればそりゃ営業は仕事しよすいよね、、、と惚れそうになってしまう。

朝方の私は一旦寝る。

05:00
起床。
S氏が既にいる。
ん？既にでなく、まだ居た!?S氏寝たのか!?

08:00
全員集合
とりあえず現状況で無理やり発表したらどんなイメージなのかを確認するために私がデモをする。

全員の感想『堅い』
リーダーY氏が『寸劇を入れよう』というアイデアを持ち出し、A氏がそれをもとにしたスライドを作ることになる。
気が付いた。
この時点ではまだ指定されたデータをインポートしていないのである。
というか物によってはオブジェクトもまだ出来ていない。

11:00(?)
ここからY氏のデータインポートスキルが火を噴く。
世帯、保護者、園児、体温、クラスマスタ、クラス、バッチマスタ、獲得バッチ、成長記録と
中間オブジェクトだらけのデータを凄まじいスピードで入れていく。
※後からわかったが、作成したオブジェクトのレコードを全部入れたのはうちだけであった。

権守はダッシュボードの調整を続ける。
終わる気がしない。

![今日の集計.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342996/53eb9bb7-74f2-d8d1-6689-ffc0856ecb4c.png)

14:45
開発チームの画面が完成。
権守のダッシュボードもギリギリ完成。
パッケージにまとめる。
同時にスライドも完成。
ギリギリでコミュニティにパッケージをあげる。
一回だけの通しでの発表練習をする。
発表者は練習にだけ時間かけた方が良かったのかもしれない。
が、そんな余裕は無かった。

15:00
完成。
発表これからなのに最早やり切って眠くなる自分。
遅いお昼ご飯をかきこむ。

15:15
発表控室に通される。
寄せ鍋らしく全員で発表しよう、と決めて、全員で控室に入る。

15:25
音声リハ。
心臓がバクバクする。

15:30
画面共有開始
スタートした。
(あれ、資料の台本がスライドに表示されない・・・)

15:31
覚悟を決めて、アドリブで説明開始
最初にギャグをかますもスタジオ内なので、誰の反応も聞こえなく辛い。

15:32
全員での全力の寸劇。
さあ、この場面をデモします！とナレーションするも、コミュニティからログアウトされていたのか動かないというトラブル発生。
レコード作成されたことにして、落ち着いてデモを進める。が、やはり緊張したのか多少操作ミスが。。。
※デモを動画にするアイデアはあったもののそこまでは私では間に合わず。。。ちょっと後悔

15:39
時間は予定通りに終了。

15:40
質問タイムが開始。
有識者からの意見なのでもっと聞きたいと思ったが、あっというまに3分経って終了。

15:45
終了し、次のチームの発表を待つ。
ところで我がチームの発表は最初だった。
最初で良かった。
発表が終わった我がチームは箱根駅伝をコタツで見る家族のように、
他の発表を見ながら、「すごいね～」「お～これはうちと同じ部分だ」と、
平和な会話をしていた。
正直に言うとこの瞬間が一番楽しかった。

16:30~
結果発表&全体懇親会
我がチームは残念ながら受賞ならず。
審査員からの総評を聞く限り、
敗因としては全ての課題を拾おうとしてしまったことだろうか。
限られた時間の中だから、何を拾うかより何を捨てるかの方が大事、という言葉があった。

同じお題で競い合ったことから懇親会はとても盛り上がった。
我がチームは受賞はできなかったものの、
懇親会でメンターや審査員の皆さんからもらった以下の言葉は嬉しかった。
「Salesforceの機能を使って最も現実線に乗せていた点は評価高かった」
「共有セット使って実際に運用しても問題無いようにしたのはたぶん寄せ鍋だけ」
「朝から晩までの一連を具体的に使用して、リリースできるようにしたことはすごい」
と、毎日「どうやったら問題無く毎日が流れるか」を考えているアドミンとしては嬉しい言葉をもらった。

20:00
泥のように眠る


Salesforceハッカソンにアドミンが出場しての感想

とにかくいえることはチャレンジして良かったです。
次のハッカソンの際に出るかで無いか悩んでいる人がこの記事を見ていたら是非参加してください。

この二日間で成長したと自信を持っています。
アドミンが出てもいいものか？と思ったものの、
運用をどうするか？という面では現場感覚を持つアドミンの強みは出せます。

この機会を与えてくれた、
チームのみんな、
Salesforce社の皆さん、
SalesforceSaturdayの勉強仲間の皆さん、
本当にありがとうございました。