デブサミ2018に参加してきた

#はじめに
デブサミ2018に参加してきました。初参加です。

申し込みの時に空きがあったものを選んだのでジャンルもバラバラ。違う世界に触れてみる目的で。

初日だけ参加したので、自分用に所感を残しておきます。

#なぜ400以上の開発チームが同じサイクルでリリースできるのか？～Salesforceで行われているプロダクトマネジメント
まずはsalesforceの紹介。恥ずかしながら知りませんでした。世界で最も革新的な企業と言われているそうです。
https://forbesjapan.com/articles/detail/17275
CRMのクラウドサービスを提供している会社だそうです。
https://www.salesforce.com/jp/

テーマは開発プロセス。

* 5～10人のチームが400チームある。
* 年3回リリースがある。
* 2週間のスプリントでアジャイルしている。
この結果、年間に1000近くのプロダクトを継続的にリリースできているそうです。

その他、興味を持ったことがら。

* アジャイルで工夫していること
 * 1日6時間で計画（メールを見たり、会議をしたりする時間があるでしょ、という話）
 * 約束したのと違う、と言われないように5年、1年、2リリース、1リリース、スプリント、デイリーに分けて計画している。大きなビジョンを全員で共有するのは大切。
 * 想像していたのと違うといわれないように、1ページでデザインとすユーザーストーリーをまとめたプレゼンをする。レビューでOKが出たらポスター印刷し、オフィスに張り出す。ペンが置いてあって誰でもフィードバックできる。
 * もっと早く見せてほしいと言われたので、エグゼクティブミーティングを月1回実施。プレッシャーがすごいので、チームで練習をする。
 * オートメーション。CIのテストfailがあるとチームの連帯責任で全体がコミットできなくなる（笑）

スピーカーのケンさんがすごく楽しそうに話していたのが印象的でした。エンジニアがハッピーになるような働き方ができているといってたのが印象的でした。

#属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。

タイトル通りJavascriptのお話でした。
テクニカルなところの話はついていけなかったけど、「イベント発火とイベントハンドラが離れてわかりにくいので、ソース的に近づけた」とか「何やっているかわからないのでプレフィックス付けた」とかはよくある話かな～、と思った。
多分、このセッションの意義の1割も理解できていない^^;

#Spinnakerで実現するデプロイの自動化
組み込みしかしていないのでこの辺の話は逆に興味があった。
JenkinsとかCIツールでやればできるけど、いろんな環境のAPI差分を吸収するためのツールを探したらSpinnakerにたどり着いた、というお話でした。
あと、AWSで動かした事例が日本語で少ないので紹介したかったとのこと。

green/brueデプロイとか、どっちかというと基本的なことが勉強になったな～。

あと、このランチセッションは軽食（サンドイッチ）とお茶が出ました。

#自然言語処理・機械学習を活用したファクトチェック業務の支援
スマホアプリのスマートニュースでやっている内容の紹介。

世の中の情報には、フェイクニュースに代表される事実とは違うこと（正しいか悪いかは別の話）が多く、チェックするファクトチェックという業務があるそう。

業務プロセスは確立されているものの、情報量に対して人手が非常にかかるのでAI使おう、という話。
国と東北大学と一緒にやっているとのこと。

* インプットはtwitterにリンクされたweb記事。
* web記事単位でtwieetをグルーピング。
* 日本語はそのままだとDNNに流せないので、自然言語処理が必要。ここは東北大学の研究室にお願いしている。
* あとは分析パラメータと過去のチェック内容を学習させて、「ファクトではない可能性」を数値で算出。
* そのフィルタを見て人が上位から最終チェック。チェック内容はまた機械学習にフィードバック

来月学会にて発表とのこと。
課題を解決可能な技術にしっかり落とし込んでやっているところが勉強になりました。

#事例2本立て！Redmineユーザ達が語る現場定着化への取組みと導入アンチパターン
ワコムさんとRedmineエバンジェリストの方の2パターンの紹介。

* ワコムさんは「新組織立ち上げ→業務プロセスが確立できずブラック労働環境に陥る」からの脱却で、PMさんが経験あるRedmineを導入した話。
 * 課題は知識が人についていたので、情報を引き出せない、目の前に精一杯で計画が立てれない。
 * 解決のために緩いルールで導入。No ticket, No task。
 * 最初は使ってもらえなかったけど、担当さんがメールをやめて全部チケットで仕事したり、サービスマンが使いやすいように大きいファイル添付を許可したりしたら、徐々に使われるようになってきた。
 * 使われるようになると情報と仕事が見えるようになり、計画を立てれるようになってきた
 * 誰かに聞かないと回答できないことも、検索して即答できるようになってきた
 * チケット作ると似た業務に気が付くので、業務の定型化が進んで効率が上がった
 * 休日出勤減ったよ、と言っていた。

* 帽子大好き小林さんはアンチパターンを紹介
 * 上からの押し付けでは使ってもらえない。ちゃんとメリットを理解してもらう。導入は手段ではなく目的ではない（目的はプロジェクトの成功）
 * 今のままでうまくいっているから使いたくない。けど何かいけないところがある、みたいなチームは課題分析を一緒にしてあげて、成功体験を感じてもらえるとよい。
 * 今の開発プロセスを厳密にワークフロー化すると、ワークフローやトラッカーが増えすぎる。プロセスはワークフロー化しない、トラッカーは分類ではなく入力項目の定義。そもそもRedmine導入は形骸化したプロセスを見直す良いチャンス。
 * WBSプラグインを入れると、みんな今の計画に進捗率を合わせてしまう。（MS Projectでもあるある）進捗率を使わず、作業を小さく分割してクローズだけで管理するのがおすすめと言っていた。
 * レビューまでは順調、レビューが終わらず伸び続けるガントチャート。レビューや調査のチケットは分割する、指摘対応が重たいものは小チケットを作る、指摘が重要ではないものは課題管理にチケット変更して後日対応、など。
 * いつの間にかなくなっている。担当がクローズさせたいと思うのはいいこと。マネジャーが見落とす場合がある。承認待ちステータスあるといいよ。
 *  おまけ。Redmine警察、Redmineマイスターがいるといいよ、といっていた。

全体通して共感できるものが多かったので、明日から何か使えるものは使おうと思いました。

# 幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
開発PlatformとしてのSalesforceの紹介。とりあえずtrailheadやってみようと思いました。

# さらばダミーデータ！～超高速開発を実現するテストデータ活用～
製品紹介のウェイトが強かったかな。現場のログからテスト用のデータベースのスナップショットを作るツールの紹介でした。データベース使っていないからな。。。

けど、現場のログをうまく使ってテストデータ構築するってのは何かつかえるかも、と思いました。

# お父さんが教えるプログラミング、我が子に伝えたいワクワク
Salesforceの阿部さんが学術的なところとSalesforceの取り組みを、Redhatの平さんが5歳の息子に対してやった実体験を話してくれました。
自己紹介だけで10分。砕けた雰囲気が半端ない（笑）

* 国は第4次産業革命に向けた人材育成の柱にプログラミング教育と言っている。
* プログラミング教育とはプログラミング言語の習得ではなく、論理的思考（情報を読み解く、課題発見、解決能力、学んだことを生かす）を育むこと。（そこに興味を持ってもらうこと）
* 電子レンジとかなんでもいいので子供が興味を持ちそうなものと関連させて話すと興味持ってくれる！
* 子供はキーボードを触るのも楽しい（触るな、といわれているから）
* まずは親が作って見せてみるところから。
* 次にロボットに興味を持った。（電子工作）
* ロボットはいろいろな要素があってよい。
* STEM教育ってのがあって、論理的思考→ロボット→プログラム言語みたいなのがよいといわれているのでロボットは効果ある
 * ちなみにsalesforceは創業者の考えで労働時間の1%は教育へのボランティアを、株式の1%は福祉へ寄付を、製品の1%は教育などへ無償提供を、と社会貢献への1-1-1モデルという取り組みをしているそう。感心！
* 中学、高校レベルでは処理手順、自動実行の原理を理解してもらうと、世の中の課題実現（テクノロジーの応用）に目が行く
* ITリテラシー教育は避けて通れない。家庭ごとでもやるとよい（やるべき）

#まとめ
普段仕事では関係しない内容ばかりで刺激になりました。また、知識を得るのは本からでもえれるけど、コミュニケーションを含めてその場で話を聞くのは全然違うと思いました。

体験って大切だと思った次第です。これからもいろいろ参加したり手を動かしたりしようと思いました。