モデリング言語の魅力を知り、快適な図示ライフを送ろう

これはGeek Women Japan Advent Calendar 7日目の記事です(大幅納期遅延ごめんなさいごめんなさいごめんなさいごめんなさい)。

物事を理解するためのアプローチには色々ある中で、自分は割とを大事にしています。よく「人に説明出来てこそ本当に分かったとみなせる」とか言う気がしますが、言葉での説明のみならず、理解した内容を頭の中で図示出来るかを考えることが多いです。wikiを書いたり、プレゼンで何らかの概念を説明したりするときも、チャンスがあれば内容を噛み砕いて図を入れるようにしています。
個人的には、全体をパッと把握することも部分にフォーカスすることも可能な一枚絵で表現するのが好きです(上手に出来るとは限らない)。

さて最近、ちゃんとルールのある図…というか所謂モデリング言語を学ぶことが面白いし、何より便利だと感じています。今更かよとは思うんですが、以前は超オリジナルなお絵かきか、クラス図、フローチャートくらいしか使ってこなかったんですよね。それ以外は正直「納品のために整理するドキュメント」みたいな良くない思い込みのもと、価値も分からぬまま敬遠(反省)。しかし、図を描くのはゴールではなく目的を果たすための手段だと実感して以来、態度を改めました。

というわけで、モデリング言語について個人の感想レベルですが綴ります。


まずモデリング言語とは何ぞやという話ですが、とりあえずWikipediaを覗く程度としましょう。色々あるなぁ・・・VRのとかもある。Javaモデリング言語っていうのもある。へぇ・・・
モデリング言語 - Wikipedia

良いところ

積極的に使うようになってから感じたうまみを挙げてみます。

  • 作業の本質だけに時間を割くことが出来る
    表現の仕方やレイアウトを考える時間が無駄なケースってありますよね。モデリング言語の本来の目的と自分がやりたいことがぴったりマッチした場合とか、見せ方にこだわる必要がさほどない場合とか。そんなとき、ルールが決められている記法に頼ってしまえばすぐに手を動かせます。設計なら設計そのものだけに時間や労力を費やせますね。
  • 誰にでも分かる
    図を共有さえすれば相手がすぐに理解できるのはとてもよいです(まぁ標準化ってそういうことなんだけどw)。メンテする人を選ばないのも利点ですね。独自ルールで書かれた図はどうも他の人が手を入れにくいものです。
  • ツールが豊富である
    ユーザーが多く、広く普及したモデリング言語だと特に、便利ツールも色々あります。例として、愛用しているPlantUMLを後ほど挙げてみます。
  • 先人の知恵がつまっている
    経験値や知恵の蓄積によって練られた記法なので、上手く使うと便利です。ここぞというときに活用出来るようにしておくと頼もしいのは自然なことですね。

付き合い方

いつもこんな意識で使ってるよーという話もしておきます。

  • 学習コストを恐れない
    モデリング言語には分厚い仕様があったり、いつ使うねんっていうコンポーネントが存在したりするもので、一見複雑に見えることもあります。しかし、自分の表現したいものが必要とするのはきっと一部。見よう見まねで使ってみたら手に馴染むかもしれません。
  • 使う図に迷ったら、まずラフに描いてみる
    何かを図示しようと意気込んだ時、「この内容なら使えるモデリング言語あるかも!?」という直感が働いたらとりあえずググってみましょう。使えそうなものが運良く見つかったら、途中までざっくり描いてみるとよい気がします。複数候補がある場合の比較にも使えます。自分はnu boardを使ってお絵描きしてみることが多いです(FOLIOではnu boardが流行っている・・・というか結構多くの人が持っていて、影響を受けて購入した)。
    例えば、会社で某承認フローを分かりやすく表現したくてスイムレーンを採用したことがあるのですが、そのときはまさにこんなプロセスを踏みました。
  • レイアウトにこだわる余地があればこだわる
    格通り描くものの、色とか文字の大きさを使い分けることでより効果的な図に出来そうだったらトライしています。

仕事での活用例

仕事では主にUMLやBPMNを使う日々('ω')せっかくなので図の活用例とツールを紹介してみます。

シーケンス図を用いてコミュニケーションすることがこれまで何度かあったのですが、そんなときに同僚たちの真似して使い始めたPlantUMLというツールがとても便利です。

PlantUMLを使うと、こういうDSL(書き方は公式を参照してね)を描けば

@startuml beer.png
actor よこな as yokona
participant 注文用タッチパネル as orderMachine
participant コックさん as cook
participant ウエイター as waiter

loop
yokona -> orderMachine: 注文🍺
note left: 飲みたい
orderMachine --> yokona: 注文結果
orderMachine -> cook: 注文内容
cook -> waiter: 料理🍺
waiter --> cook: 了解
waiter -> yokona: 提供🍺
end
@enduml

画像を吐き出してくれます👏
f:id:ihcomega:20171210133409p:plain

処理が複雑だとか、整合性を担保するため情報を整理したいとか、理由は色々ありますが開発者が必要だと思ったらシーケンス図を描くことが割とよくあります(強制ではなく都度判断している)。コードを書き始める前にシーケンス図だけレビューして認識をすり合わせると手戻りやバグの防止になってよいです。pumlファイル自体はテキストなのでGitで差分も見られるし。
あとはユニットテストを描く時網羅性の確認に使ったりもします。簡単に言うと、全部の矢印に大してテスト書けてるかなーとかalt網羅してるかなーとかチェックする感じです。これもわざわざ改めてパターンを洗い出す必要がなくて便利だなーと思ったことがあります。

ちなみに私はIntelliJ IDEAにPlantUMLプラグインを入れて使っています。

編集中はリアルタイムに図が表示され続けるし、
f:id:ihcomega:20171210133434p:plain

文法の間違いにもすぐ気付くことができます。
f:id:ihcomega:20171210133454p:plain

PlantUML、社外のエンジニアお友達に聞くと意外と知られていなかったりするみたいなので、本当にライトですが紹介してみました。クラス図や状態遷移図など、他にも色々描けます。

適材適所('ω')

ところで、当たり前ですが全ての図という図をモデリング言語で表現したいわけではなくて、大事なのは使い分けです。オレオレ記法の方が目的を達成する近道だと判断したならばそれもよいと思います。

不要なコストをかけずに、伝わりやすい表現ができるのは何か?というのを考えて、最適と思われる選択をしていきたいものですね。知っている図は活用しつつ、時々新しい図もインプットしながら華麗な図示ライフを送りましょう💪

証券会社のエンジニア・デザイナーが社外でも最大限活躍するためにFOLIOで取り組んでいること

これはFOLIO Advent Calendar1日目の記事です。

株式会社FOLIOというテーマ投資型オンライン証券サービスを提供している会社でバックエンドエンジニアをしています、よこなです。
会社のことをブログに書くのは5月の入社エントリ(リンク)以来。おかげさまで入社して半年以上たちました!毎日クソ楽しいです。自慢。

今日は入社以来開発の傍ら取り組んできたFOLIOブランディングについて書いてみます。「ブランディング」が何かはこのエントリ内で徐々に明かしていきますが、OSSに貢献したりイベントで登壇したりQiitaに記事を書いたり、そういった「社外でのアウトプットに関するなにか」だと思って読み進めていただければ幸いです。設立2年目のスタートアップということもあって、いけいけどんどんの精神でがむしゃらに活動しています!という話ではありません。既視感ある内容だと侮ることなかれ・・・我々はスタートアップ企業であると同時に証券会社なのです。そんな金融機関ならではの一味違うチャレンジについてご紹介します!

ちなみに私、19日(火)もこのアドベントカレンダーに参加しており、そちらでは技術の話をする予定です。

クリエイターブランディングのこれまで

まずお伝えしておきたいのですが、FOLIOではものづくりをしてユーザーに価値を届ける存在、すなわちデザイナー・エンジニアをあわせて「クリエイター」と呼んでいます。

立ち上げ - FOLIOメンバーが活躍している場を知るところから

同僚の伊藤 (@itohiro73 さん)と、「クリエイターの対外発信、推進していきたいね〜」とか「FOLIOでもエンジニア向けイベントやりたいな」とか言いつつ行動しだしたのがことの始まりです。

ちなみに推進と書きましたが、「もっと外へ出ていこう」「アウトプットしてみよう」といったはじめの一歩を支える働きかけみたいなことではありません。それをするまでもなく、イベントで登壇したりブログをバズらせたり本を出したりと、FOLIOのクリエイターたちは社外でも活躍している状況でした。なので、そういった個々の活動を会社のイベント*1と連動させてより大きくポジティブな効果を生み出すとか、イベントのスポンサーシップや個人へのインセンティブなどで支援すべく制度を整えるとか、戦略的に動く組織を作るイメージでした。

はじめは伊藤と私というJavaコミュニティ寄りな人間だけの組織だったので、その他インフラ、フロントエンド、iOSAndroid、デザイン、サイエンス担当のクリエイターたちにランチを食べつつヒアリングするところから始めました。コミュニティやイベント事情、OSSのこと、情報収集でどんな人やサイトをウォッチしているかなど、色々教えてもらったのを覚えています。
ブランディングを手探りでスタートして分からないことだらけな上に、入社したばかりでまだ皆とのコミュニケーションにぎこちなさも残っており、毎回緊張しながら臨んでいた記憶が・・・。でも、未知の世界だったデザイン界隈やサイエンスのことを知れたり、皆の思いが聞けたり、今考えても貴重な場だったなぁと思います。ちなみに、FOLIOアドベントカレンダーをやろうという話があがったのもフロントエンドエンジニアとランチした場でした。

皆に聞いた話を参考にしつつ、まずはカンファレンスレベルの大きめなイベントをウォッチするところから始めました。あとは、自分の専門外のイベントであっても社員が登壇する時は足を運んでみました。ブランディングとして出来ることは様々ですが、技術イベントは入り口として自分に合っていたためです。準備なしに参加できるし(運営・登壇者のみなさまありがとうございます・・・)、雰囲気を掴むのにちょうどよいし、元々コミュニティ運営をやっているのもあってイベントが好きだし。抵抗なく取り組めるところからやっていったのは今思えばよかったです。活動を継続できている理由にもなっている気がします。

徐々にFOLIOからの発信も増加、反応も上々

もはや何がきっかけだったかも忘れましたが、FOLIOがメインで進める発信にも取り組んでいきたいねという声が挙がるようになってきました。入社して2ヶ月もした頃には「ブランディング」という言葉も社内で広がりつつあったし、クリエイターブランディングチームとして定例MTGを始めたりもして組織らしくなっていきます。メンバーも増えた上に、人事やマーケティング担当も巻き込んで、色々やれるようになりました。

FOLIOからの発信でどんなことをやってきたかについては、実際にものを見ていただきたいです!

Wantedlyでのクリエイターインタビュー記事

いろんなチームのクリエイターに、取り組んでいる仕事や大事にしていること、ビジョンなどについて存分に語ってもらう記事です。人事担当と協力して作ってきました。メンバーの個性がよく出ているし、FOLIOで働くことのイメージが伝わりそうな、個人的に気に入っている企画です。

www.wantedly.com
www.wantedly.com
www.wantedly.com

reladomo-scalaというOSS

FOLIO初のOSSです。
github.com

次の記事に詳しく記載していますが、開発秘話や機能については社外のカンファレンスで語られたこともあります。
www.wantedly.com

そんなこんなで色々試みていますが、最近我々の発信が届いているなーと感じさせるエピソードも出てきました。採用面接にお越しの方が「記事を見て興味を持った」とおっしゃってくださったり、エンジニアの友達が「Reladomo面白そうだね」と声をかけてくれたり。嬉しいことですね。

衝撃の事件

順調に手を広げながら挑戦を続けていたのですが、とある事件が起こります。
技術イベントで会社としてノベルティを配ろうとしたところ、コンプライアンス部からストップがかかったのです。別におかしなものを配ろうとしたとか、道徳的に良くないアイテムを用意したとかではありませんwクリエイターにとっては至って普通の、FOLIOオリジナルグッズでした。

何やら急に出てきたコンプライアンス部って?馴染みのない方もいらっしゃるかもしれませんが、法令違反のリスクなどを未然に防止し、経営や組織の健全性維持のため存在する部署です*2

さて、肝心のノベルティ待ったの理由は

「広告」に該当する可能性があるため、金融商品取引法等の規定に抵触していないか審査の必要がある。

ということでした。

???

法?規定?????

驚きました。

いやいやそんなこと言われても、エンジニアやデザイナーのイベントで法律まで意識するとか聞いたことある?どこがダメ?なんでダメ?広告だなんて、そんなつもりないからセーフでしょ。
色々な思いと言い訳と疑問とが浮かんできたのを覚えています。そして、それを持ち出してコンプライアンス部を説得・・・というか論破すればなんとかなるもんだと思っていました。

しかし審査の結果どうにもならず、そのときはノベルティを配ることを断念。当時は正直全然納得がいきませんでしたが、金融機関における「コンプライアンス」の存在が自分の中で大きくなり始めた出来事でした。おそらく他のクリエイターたちにとっても同じだったはず。

必死に環境整備する今日このごろ

先に述べた事件は衝撃が大きく印象的であったものの、何も急に厳しいことを言われたとか、いきなり禁止をつきつけられたとか、そういうわけではありません。FOLIOは創業当時から、ノベルティ配布に限らずコンプライアンス部による社外活動の管理を行ってきています。

一方で、管理体制があるのみでクリエイター側の理解は十分でなく、そこに改善の余地があるのも事実でした。門外漢なのでよく分からないけどコンプライアンス部の言うとおり動くしかないな・・・という状態(ノベルティを諦めたときは正直そんな感じだった。今これを読みながら、なぜかノベルティ配布を禁止されたっぽいな?どういうこと?って思っているあなた、その感覚です)は望ましいものではないので、クリエイターも法令遵守の意識をきちんと持った上で、適切な判断が出来るような仕組みづくりこそが必要でした。

こうした課題をふまえ、最近は目下そういった整備に取り組んでいます。ルールをメンテナンスしたり、その背景や考え方などを正しく伝えるための研修を行ったり、 クリエイターからの疑問に答えるべく有識者への確認や調べ物を行ったり・・・。

技術コミュニティで「金融機関に勤めながら、全社を巻き込んで対外活動に向けた取り組みをしています!」というような方には会ったことがないし、私のキャリアに証券のバックグラウンドは一切ないし、新しいことだらけ、戸惑いだらけです。でも、「資産運用をバリアフリーに。」というミッションで「金融の難しさ」を取り払うことを目指す我々にとっては、これも宿命といえるべき挑戦だと捉えています。入社前は、半年後に自分がこんなことしてるなんて予想もしていませんでしたがw

Advent Calendarも証券会社としては新しい取り組みであり、こうして形になって、25日間完走を目指す段階に至ることが出来たのはとても嬉しいことなのです。いやぁほんとうに。

なお、法令遵守の環境整備といっても、ただ制約を課す、活動を制限するといったものではなく、のびのび情報発信できる環境を目指しながらも「絶対にこれは守らないといけないよね!」という意識や自覚が皆の中に根付くような取り組みを目指しています。究極の理想形までの道のりは険しそうですが、協力者としてコンプライアンス部がいてくれるので少しずつ前進中です。同じインプットに対し必ず同じアウトプットが返ってくる関数が大好きなエンジニア脳にとって、「法解釈」というものはなかなか理解が難しいですが、ちょっとずつ考え方も学んでいます。

今は少なくとも、ノベルティにNGが出たとき真っ先に思った「コンプライアンス部を論破」しようという思想には至らなくなりました。月並みですが、歩み寄ってこそ会社としてのパワーが発揮されるからです。たとえ社員を論破したところで、我々が対峙するのは法律であり、国なのです。大きい・・・!同じ方向を見て力を合わせようとするのが、証券会社のブランディングチームとして大事な心構えかなぁと思っています。

知っていることも、大事にするものも、これまでの働き方も、すべてがあまりに違う者同士で協力するのは面白くもあり、難しくもあります。でも順調に、知らないところをカバーし合い、文化の違いも考慮しながらポジティブに頑張っているところです。例えばコンプライアンス部のメンバーがSlack、Confluence、GitLabなどを覚えて使ったり、クリエイターが証券外務員の資格を取ったり、法律を学んだり。

そんな中、ブランディングというミッションをいかにスピーディかつ効果的に遂行するか、そこがブランディングチームの腕の見せ所です。とにかく我々に何が出来るか?どうやったら上手くいくか?頭の回転を止めず、諦めず、考え抜くことを大事にしたいです。まぁ弊社のクリエイターたちはおかしいと思ったら何でもズバズバ言ってくれるので、意味のないことや効率の悪いことをやろうもんなら皆が軌道修正してくれる安心感もありますw

なぜ続けられるのか

色々書いてきましたが、ぶっちゃけ、なんかめんどくさそうですよね。法律なんて、聞いただけでぎょっとするし。一体なんでそんなことまでして・・・と思う方も多いのではないでしょうか。自分も(良くも悪くも)ゆるふわweb系エンジニアであることに慣れていたので、外野だったらそう感じていたに違いありません。

なぜやるか。それはただFOLIOが魅力的で、挑戦したいと思うからです。FOLIOは代表の甲斐が公言しているくらい、クリエイターを大事にしてくれる会社です。それぞれが抜きん出て得意なことを持った、魅力的なメンバーが集っています。それは私が語るまでもなく、きっとこのあとに続くAdvent Calendarの記事をご覧いただければ伝わるはず。

そんなFOLIOメンバーの面白さとか、よいサービスを全員が真剣に考え高いスキルをもって作り上げようとしている会社なんだなーってこととか、その他あれもこれもいろーーーんなよい側面がもっと広がっていったら嬉しい!そんな思いで挑戦するクリエイターブランディングチームなのでした。

さきほども述べましたが、証券会社によるAdvent Calendarはきっと前代未聞!?25日間ぜひぜひチェックしてくださいな〜!!!


全てが挑戦続きのFOLIOは、一緒に働く仲間を全力募集しています!

私がいるバックエンドチームの求人はこれ:
www.wantedly.com

他にも幅広く募集しています:
www.wantedly.com

まずはぜひ遊びにお越しくださーい!(最近移転もしたよ: FOLIO Office Tour @半蔵門 | 株式会社FOLIO)

以上、お付き合いいただきありがとうございました。明日はchocoiさんの「AWS Direct connectの利用に関して」です!

*1:例: サービスのローンチ、業界にインパクトあるメンバーの入社

*2:そもそもコンプライアンスとは、経営や組織の健全性を維持するために、法令や諸規則に基づき、ルールが制定された趣旨や背景を十分に熟知し、それらを遵守し実践していくこと

JJUG CCC 2017 Fallで基調講演する機会をいただいた #jjug_ccc #ccc_e1

11月18日(土)、ミッキーさんの誕生日にJJUG CCCを開催しました。

転職したての頃からJJUG幹事業はお休みモードにさせてもらっていたので、今回運営にはほとんど協力できておりません。ぼちぼち復活していきたいな・・・

しかし、基調講演という大きなミッションをいただくことが出来たので、そちらには全力投球しました。


幸運にも新卒1年目のときにコミュニティと出会い、会社にいるだけでは出来なかったであろう色々な経験をしてきた身として、これまであったことや思っていることを伝えたかったセッションです。ギリギリ若手を自称できる(?)今だからこそできる話をしてきました。
資料は公開しているものの、語った言葉こそが大事なので、とにかくご参加いただけた方が少しでも楽しんでくださっていれば幸いです。朝早くからありがとうございました。


(こちら嬉しいツイートオブザイヤー受賞)

そのあとはちょっとだけ幹事の仕事もしましたが、15時くらいから抜歯のため1度抜け(抜歯だけに)、戻ってきてマスクのまま懇親会を楽しみ、二次会には出ず直帰して1日を終えました。お酒が飲めず我慢している私に「アルコール消毒しよう」と言ってくる大人がたくさんいるJJUGが大好きです( '_' )

ということでこれまでと比べたらあまり参加した感がないのですが、色々な方に会えたよい1日でした。
幹事、ボランティアスタッフ、登壇者、参加者のみなさん、本当にありがとうございました。お疲れ様でした。また半年後!

仙台IT文化祭のため初めて仙台に行った #sendaiITfes

10月28〜29日の2日間、仙台IT文化祭なるものに参加し、人生で初めての仙台へ。昔から関東より北の地域とは疎遠なんですよねぇ。こんな機会でもなければまだしばらく訪れることがなかった気がします。

今回は、Java女子部でお子さん向けのプログラミング基礎講座をやるのが主な目的でした。それ以外の時間は頑張ってセッションを聞くわけでもなく、ただ仙台での休日を楽しめればいいや〜とゆるふわな過ごし方を選びました。結果、食い倒れ1人旅になりましたが、ノープランだった割にそこそこ満喫した気がします。ということで雑にようすをメモ。

Java女子部の登壇

「ゲームで学ぼう、プログラミング!」ということで、遊びながらプログラミングの考え方(変数、座標、繰り返し、条件、配列)を学んでもらいました。対象年齢は小3くらいで、それに合わせてスライドも小3までに習う漢字しか使わないという小さな工夫をしていたのですが、その作業をするたび自分が習ってない漢字や公式を乱用したがる小学生だったことを思い出しました(どうでもよい)。

お子さんたちみんな、2時間弱のセッション中ずっと一生懸命取り組んでくれて、よい刺激を貰いまくりました。単純に子供らしさに癒されたり、夢中になる姿にぐっと来たり、最近忘れていた何かを取り戻したように思います。

あと、参加者の1人がセッション後にてらださんと会話している様子が印象的でした。その子はプログラミング経験者で、我々の提供した課題も物足りなかったらしく裏メニューをやってもらっていたほど。自分が取り組んでいることを仕事にしているプロとおはなしする機会って、普通に小中学生やってるだけじゃなかなかない気がするんですよねぇ。学生さんやお子さんを大事にしているこのイベントの良さを感じさせる一幕でした。

まーやさんの登壇

まーやさん、この長さの技術セッションは初とのこと。でも落ち着いていたし、JShellを使ったデモもスムーズでしたねぇ。お忙しい中の準備、本当に大変だったんじゃないだろうか・・・お疲れ様でした!

唯一興味駆動で聞いたセッション

楽天さんのおはなしを聞いてきました。

togetter.com

キャラクター大好き勢としてはとても興味深かったです。こういう仕事やってみたいw

ごはん

あとはひたすらご飯を貼りつつこのエントリはおしまいにしまーす。

まずは東北大学の学食。これしか食べるものなかったんや・・・

お次。仙台初心者にはマストな牛たん。なんか量多いしカウンターでカップルに囲まれるし1人なのがとことん辛かったけど、たたきは感動的に美味しかった。



牛たんのあと、偶然ふじたくさんも仙台にいることが分かったのでちょっとだけ一緒に飲んだwハロウィン仕様でわちゃわちゃしており知らない人とも結構話した。

ラスト飯、会社の先輩に教わったコスパ最強寿司。マグロの頭肉よかった。

そして、まったく期待してなかったのに本当に美味しかったずんだシェイク。1人でいたのに「えぇっ美味しい・・・」って声出た。

帰りの新幹線も大事。しかしビールは普通だったな。ほやはもっと美味しいやつを食べたかった。

以上。

仙台IT文化祭、今年始まったイベントだと思うのですが、初回とは思えないほど元気なイベントでした!参加者も多く登壇者も豪華、おまけに景品が最高な抽選会(何も当たらなかった)まであってすごかったです。運営のみなさんには頭が上がりませんね。本当にお疲れ様でした―!!!また参加したい💪

あと大学生になって青春したい

折り返し地点 - JavaOne2017のきろく④ #j1jp

あっという間に3日目が終了。この日は某作業(後日書きます)のため朝8時から10時まで呼び出されていました。おかげで狙っていたScalaのセッションを聞くことが出来ず、心の中で咽び泣いていました。

気を取り直してようすをお届けします。

API Deep Dive: Designing Eclipse Collections

内容メモ:
togetter.com

今一緒に働いている伊藤さん(@itohiro73)の元同僚でありライブラリコミッター仲間である、Donaldさん(@TheDonRaab)とNikhilさん(@NikhilNanivade)によるセッションです。内容はEclipse Collections(リンク※日本語版はこっち)開発の経緯や、最近リリースされたバージョン9.0の機能についてでした。

Eclipse Collections(EC)については、名前がGS Collectionsだった頃に伊藤さんのセッションやハンズオンに参加したことがあるのですが、もう3年くらい?前になる気がします。ただ、その頃よりは自分の理解力もアップしているし、久々に聞くECの話はそれ自体に全然詳しくなくても面白かったです。どうやら私はコレクション操作が結構好きらしい。

終わった後はスピーカーのお2人にも挨拶して、こんなにいい写真が撮れました!やったね!毎年増やしていきたい!

Ten Simple Rules for Writing Great Test Cases

内容メモ:
togetter.com

テストを書くときのポイントを10個紹介しながら2人のスピーカーがディスカッションしていました。基本的な内容だったのですが、それが全部当たり前に実現出来ているかというと・・・自信を持ってYesと言えないので、自分のテストコードを振り返るきっかけとして良かったです。
あとは、Java女子部とかで「テストコード書いたことないよ〜」という人向けの勉強会をする時の参考に出来そうな気がします!

ブースめぐり

この日も空き時間はブースで遊んでいました。
1番よかったのはビールを配っていたことです。"IoT Cloud Brewed Beer"ということで、多分温度とか量とか色々をセンサーで頑張って管理して作ったビールたちです。

4種類もあったし、何回並んでも怒られないという天国状態。でも3杯くらいでやめておきました。

気分をかえてOracle OpenWorldのブースにも行ってみました。スピーカー特権でせっかく無料入場出来るので、一応行ってみようかな〜と。ノベルティが欲しいだけですが・・・

かなり広いブースを歩き回ったのに、しばらく戦利品が↑これしかなくて笑いました。結局ノートとかペンとかいくつかいただきつつ、JavaOneと違ってやっぱりエンタープライズ感強いな〜というのを感じながらさらっと楽しみました。

Developer Keynote

www.youtube.com

ごめんなさい、疲労と眠気で本っ当にダメでした・・・いろんなサービス紹介したりPepperが出てきたりしてました(雑)。なお毎年JavaOneに来てる皆さんも、今年のは(というかここ数年ずっと?)そんなに面白いKeynoteではなかったとおっしゃっていました。サプライズがないよねって。そうなのかー。

How to Be Accepted to Speak at a Conference

BOF(Birds-of-a-Feather)に参加してみました。BOFって何かというと、通常セッションよりはちょっとゆるい、ディスカッション多めのセッションという感じです。オーガナイザーによっても変わってきて、まるまるディスカッションにあてる人もいたり、始めにプレゼンをしてから皆で話すひともいたり、とにかく様々のようです。

参加したBOFは、スピーカーとしてカンファレンスに参加することについての話でした。これはtogetter作ってないので内容をメモしておきます。

スピーカーになる方法

  • CfPを提出する: 今日のテーマはこれ!
  • 招待される
  • 友達として登壇する
  • スポンサーになる

スピーカーの特権

  • 無料でイベントを楽しむことができる
  • 宿泊費・旅費も出してもらえることがある
  • スピーカーディナーとか特別なイベントにも参加できる

イベントやCfPを見つける方法

よいCfP

  • モチベーションと内容が明らかである
  • 参加者と運営の両方にとって分かりやすいものである
  • 内容に合ったタイトルがついている

その他

  • まずはローカルイベントで登壇して、自信や慣れを獲得して外へ出ていくとよい
  • イベントのオーガナイザーに知り合っておくのもプラスに働くかもしれない(ケースバイケース)

うんうん、そうだよねぇという感じでした。
ただここに日本人の場合は英語の壁を乗り越えるというのが加わってきますよね。実はスピーカーの方もネイティブではないらしいのですが、「間違いが多少あっても伝えられるしいいと思う!チャレンジすべきだ!」とのこと。うんうん分かります。うん。せやな。そうは言っても難しいんや…。「個人の努力」以外の切り口でそこをクリアする術を考えたいなぁという気持ちです。

ちなみにこのセッション、多分20人くらいは参加者がいたし、やや長めの質疑応答はあったもののプレゼン中心なセッションでした。もっと少人数で色々お話するようなBOFに出てみたいです。どうやら今年はそのチャンスを逃したようなので、また来年('▽')ノ hopefully.

ごはん

夕方まーやさん(@maaya8585https://twitter.com/maaya8585)と噂のこちらに。

夜はきしださん(@kis・すぎやまさん(@zinbe)とThirsty Bearってとこでビールを飲みました。日本が昼なのにビールの写真をSNSに上げるのはとても楽し…心苦しかったです。

3日目もお疲れ様でした。

いよいよ本編がはじまったぞ - JavaOne2017のきろく③ #j1jp

かなり時間が経ってしまいましたが、JavaOneについての更新を続けていきます。調べたり整理したりするのに時間がかかるところはすっとばして、とにかく日々小出しにしていこうかと。

10/2(月)、いよいよ技術セッション目白押しな4日間が始まりました。この日からはCommunity Dayに比べると明らかに会場の人が増え、Wi-fiが安定しなくなったりウォーターサーバーが品切れ状態になったりします盛り上がりが増します!

IntelliJ IDEA Tips and Tricks

タイトル通りのセッションです。

www.youtube.com
こちらにインスパイアされたものだとか。

ショートカット大量に紹介されてたんですが、おさらいしきれてないのでここでは「知らなかった!」という機能・プラグインについてお伝えします。

IntelliJ IDEAの使い方の傾向が見られます。「このショートカットを最後にいつ使ったよ」とか、「この機能を過去に何回使ったよ」とか。
初めて知ったし数値を眺めるのは楽しいけど、何に使うんですかこれ・・・

これはデバッグで使えそうなので知らなかった人はレッツトライ!
かなり適当な例ですが、

List<Integer> numbers = List.of(80, 130, 20, 10, 210, 50, 30);
numbers.stream().filter(n -> n <= 100).mapToInt(n -> n * 2).sum();

これで2行目にデバッグポイントを貼るとこういう画面が見られるようになります。なかなか便利では!?詳しくは上のリンクを。

f:id:ihcomega:20171019092730p:plain

(めちゃくちゃに久々にJava触ってわけがわからんかった・・・)

このセッションは、スピーカーがオーディエンスに結構な頻度で挙手を促しているのが印象的でした。
IntelliJ IDEAを使うときにマウスのクリックしちゃう人〜?」とか「ここまででまだ1つも新しい情報を得ていない人〜?」とか。
これって会場とのコミュニケーションをとるのにお手軽で有効な反面、手の挙がり方が想定と乖離しても動じない心が必要だし、場合によっては臨機応変なコメントをすべきなので意外とドキドキするんですよね。
その点、彼は「オーディエンスに有用な情報を届けられているか」ということをうまく確認しながら進めていたのではないかと思います。

Java Keynote

Java SE 9リリース直後ということで注目のKeynote!別記事で書きますw

ブースめぐり

JavaOneにはバカデカいブーススペースがあります。出展している企業・団体の方と話したり、プロダクトのデモを見せてもらったり、ノベルティを貰ったり出来て楽しいです。ノベルティは人気だと初日になくなったりもするので、欲しい人は早めに行くのがよさそうでした。

少しだけ写真を。


ことりん!同僚のふじたくさん(@magie_pooh)にお土産。可愛すぎる。

SteveたちがCNC Light Sculptureなるものを作っていました。

私もトライしたけど、実は画像がうまく保存されていなかったせいでsculptureになることは叶わなかったのでした。

インタビュー

Oracle OpenWorldの動画制作チームみたいなところから協力要請があったので、まーやさん@maaya8585と一緒にインタビューを受けました。

内容は

といったものでしたが、そもそもOracle OpenWolrdの参加者でない我々にとっては難題の極みでした。もっとコミュニティの話とかさせてくれる場だったら嬉しかったんだけどな、違った・・・エンプラ色強め・・・

とにかく答えるのが難しい内容で大変だったし、1人ずつすごいセットの中で話す慣れない環境だったし、2人ともかなり緊張して消耗しきったなかなか辛い記憶です。経験としては良かったしかなり頑張ったのですが、今思えば普通にセッション聞いてた方が正解でしたw何でも引き受けるのはやめよう・・・


(でも当日のツイートはとてもポジティブ。その時はやりきった感があったのです。気持ちに嘘はついていませんw)

インタビューの後も、会場でまーやさんと楽しそうにしている様子を撮影するという謎企画が続きました。結局作られた動画にはその様子が使われ、インタビューは全てボツだったようです。そんなこともあるさ。

結構普通に登場してますね。意味は分からないけど。

2017 JCP Party & Awards Ceremony

夜はJCP(Java Community Process)主催のパーティに参加しました。

マリオットホテルの高層階で行われ、お酒が豊富でご飯も美味しく満足度が高かったです。そして無料!

  • JCP EC/VIP
  • JUG Leader
  • JCP Member - Spec Lead or Expert Group
  • Friend of the JCP
  • Java Champion

に該当すれば誰でも申し込む権利を有しており、他の参加者と交流出来ます。「Duke's Choice Award」というJavaによるイノベーションを称える賞の発表も行われ、今年はJava SE 9にちなんで9つの表彰がありました(受賞一覧リンク)。これ、受賞し得るのはプロダクトとかサービスに加えてJUGもなんですよね。自己推薦も認められているようだし、JJUGJava女子部も狙えそうな・・・?

その他、Dukeの着ぐるみが現れたり、参加者へのプレゼント企画があったり、盛りだくさんでした。

帰りにはお土産も貰えてとても嬉しかったのですが、最近家の栓抜きが壊れたのは使い過ぎではありません。安物だったからね。

ということで、インタビューでHP削られすぎてへとへとでしたが、ついにJavaOneの盛り上がりに触れることが出来たぞ!という1日でした。

日本のJUGリーダーとしてJava女子部の話をしてきた - JavaOne2017のきろく② #j1jp #javajo

10/1(日)、JavaOne初日はCommunity Dayでした。

技術セッションもありますが、各国JUGの様子だったり、運営のTipsだったり、Javaコミュニティに関する話が繰り広げられる日です。技術的な収穫だけを求めると物足りなく感じる人もいるようですが、時差ボケと戦いつつ、これから始まる英語漬けの日々に備えてウォーミングアップがてらふらっと立ち寄ってみるのも良いです。
もちろん、コミュニティというものに興味がある人、運営している人なら有意義に過ごせます!!!やっぱり日本で、かつ慣れ親しんだ地域だけを見ていたりなんかするとそれがスタンダードだと考えてしまうし、新しい発見とかも減って来ますしね。世界中のJUGリーダーやJavaチャンピオンと距離が近いセッションが多いといううまみもあるので、参加してみるのが個人的なオススメです。

さて、今回のCommunity Day、日本からは2人登壇者がおりました。1人は久保田さん(@sugarlife)!なんと2本のセッションでご登壇されており、すごいとしか・・・本当にお疲れ様でした!!!
そしてHello, JavaOne:) - JavaOne2017のきろく① #j1jp - よこなのへたのよこずきに書いた通り、私も登壇の機会を頂いたのでトライしてきました。

speakerdeck.com

"WIT Lightening Session"というセッションで、10名弱の女性エンジニアがかわるがわるトークを繰り広げるものです。なお、WITというのはWomen In Techの略。

特に事前打ち合わせもなかったためどういう場になるのか本当に分からなくてドキドキしました。発表の順番すら決まっていなくて、"Who is the next〜?" みたいな恐怖の挙手制でした('_')
結局、自分の番は終わりの方となり、それまでの記憶があまりありません・・・うぅ・・・楽しむ余裕が欲しかった・・・

(錚々たるメンバーの中に紛れ込んでしまった)

ということで今日は、海外カンファレンスでの登壇を通して学んだことと良かったことを2点ずつ書いておきます。

学んだこと ≒ 思い知ったこ

プレゼンテーションにおいて、英語は本質ではない

今更何を言ってるんだという話なんですが、どうしてもよりよい表現を使おうとか、なるべく流暢に話そうとかそういう意識が働いてしまって、もっと大事なこと―メッセージを伝えることが弱まってしまった気がします。それだけは避けないとなーって思っていたにも関わらず、結局・・・
表現や話術は長期的に身につけるものであって、近い将来に控えたプレゼンに向け何とかしようとしてはいけませんね・・・w もちろんなるべくスムーズに話せるよう練習するのはまた別の話で、伝わりさえすれば英語について背伸びをする必要はないということです。

環境も考慮してオーディエンスからの見た目を考える必要がある

2点目は、今回の経験なしにはしばらく気付かなかったであろうこと。

このツイートにある通り、なんと私は背が低かったのです。いや、言われてみればもちろん欧米の方より小さいのは知ってましたが、それを認識している必要がありました。
今回は黒曜石(プレゼンめくる機械: コレ)を使えなかったのもあって、台を離れずその場に立ってプレゼンしたのですが、オーディエンスからは私の首しか見えていなかったようでした。その場では笑い話にしてしまいましたが、これだと伝わるものも伝わらない・・・立ち位置を少し変えれば回避出来たので、事前に考えておくべきでした。

また、服の色が背景と同じ黒だったので同化してしまったこと(これも、会場が極寒だったことによる無意識の行動)、髪型が顔を隠すようなものだったことなど、いろいろな要素が重なって、相手に与える印象で損をしたところがあるみたいです。

見た目という意味だとpostureが大事という意識はあったのですが、もっと身だしなみレベルから気をつけるのも忘れてはいけないことでした。それが身をもって分かったのは大きな学びだと言えます。

良かったこ

反省はこのくらいにして、ポジティブな話に移ります!

いとうさん(@itohiro73)に学び多きレビューをしていただいた

主に資料と構成について、みっちり見ていただきました(直前にも関わらず・・・)
私が伝えたいであろうことを汲み取って、「こう言えば伝わる」というのを教えてくださったり、こういう流れにしたら伝わりやすくなるんじゃないかとアドバイスを下さったり、他にも散ッッッッッ々見てくださって、目から鱗の連続でした。本当にありがとうございました。

感謝の気持ち on 会社Slack:

Java女子部および私自身が海外へ出ていけた

Java女子部は周りの皆さんのおかげで順調に成長中です。日本だけでも関東、関西、九州と3拠点ありますし、登録者は500人を超えました。運営メンバーも5人となり、慣れも出てきています。

始めた当初の規模を忘れるくらい大きなコミュニティにはなってきましたが、より面白いことをするために、より多くの人にリーチするために、現状に満足せず色々なことに挑戦していきたいです。
その1つが海外進出!

Java Day Tokyoで海外のエンジニアに出会うにつれ分かってきたのですが、私たちにも日本を飛び出して出来ることがたくさんあります。

まずその第一歩として、先日Java女子部は"Javajo"の名でglobal JUGの一員になりました。

そしてそれに続く挑戦が、今回の登壇です。地道にこうした発信も続けて、新しい出会いが生まれるとか、コミュニティを立ち上げたい人の参考になるとか、ベテラン勢が新米コミュニティに協力したいと思えるきっかけになるとか・・・何かにつながれば幸いです。もちろん、グローバルに!

今後も海外カンファレンスへ出ていったり、JCPに参加したり、引き続き突き進んでいきたいです!

最高の思い出たち:

嬉しすぎるまーやさんのブログ:
JavaOne 2017 1日目ハイライトhotchpotchj37.wordpress.com

最後に・・・Java界では #てらだよしおがんばれ という有名な(?)ハッシュタグがあるのですが、今回そのオマージュ(?)的ハッシュタグ #よこながんばれ をつけてツイートしてくださった皆さん、本当にありがとうございましたー!!距離も時差もあるところから気にしてくださる方がいて、とても嬉しかったです。
いい意味でJavaOneへの登壇に対するハードルが下がったよい経験、今のうちにできたことが幸せです。必ずまた挑戦したいし、他の人にもすすめていくぞー!!

#よこながんばった

というわけで、この日はHPが0になって体調崩したのでパーティーの類には出ず直帰しましたwビールチャンスを逃して悔しいです。