(2019/09/27 追記: 資料が公開されたため、反映しました。)
9/17(火)にヤフー福岡 Tech Meetup #5に参加してきました。今回のテーマは 「ヤフーの開発文化」 ということで、本稿はそのレポートです。尚、当日カメラをもって行き忘れたため、写真はスマホで撮った1枚のみです。
おことわり
筆者の知識が足りず、正確性に欠ける表現があるかと思います。ご了承ください。また、発表資料公開の有無についてはYahooの方に確認をお願いしているので、公開され次第追記します。
tl;dr
- Yahoo社は法令遵守がすごい。
- Yahoo社の風通しは良い。
- Yahoo社は部署問わずコラボレートできる職場。
- Yahoo社はチャレンジできる職場。
- We are hiring!!
開場前
1.「大規模Slackをセキュアに運用する」 by 伊藤 康太 (@koh110) さん
www.slideshare.net
概要
- Slackを使う上で気を付けるセキュリティのこと
- セキュアなSlackアプリ作成
詳細
1. Slackを使う上で気を付けるセキュリティのこと
個人情報保護法について。Slackは仕組み上、メールと氏名などなどが抜けてしまうので、利用者全員に利用許諾に同意してもらう必要がある。
Legacy Tokenについて。Legacy Tokenを使用すると、想定より大きい権限が付与されてしまうなど、不都合が生じるので滅すること。
法令順守について。監査対応などで情報が必要な場合、e-Discovery APIというものを使用しないと情報が上手く抜けない。が、Slack公式のUIが無く、問い合わせしても対応しなさそうなので、自前で用意しないといけない。また、Rate limitも厳しめ。
Multiworkspaceについて。例えば、ゲストと社員等でワークスペースを独立させている場合、お互いの情報が参照できないようにしたいという要望がある。しかし、Slackのアプリの仕様の抜け道を利用すると、「社員ワークスペースでしか許可していないアプリを、ゲストワークスペースでも使用できてしまう」(間違ってたらごめんなさい)ということができてしまう。現状、この状況に対応策が無いため、非公開APIでワークスペース間の通信を定期的に止めている。
2. セキュアなSlackアプリ作成
Slackに任意の社内アプリを使いたい場合。セキュリティ上のレビューは、特に以下のような項目を確認している。
- Source IP
- Request URL
- Manage Distribution
- Permission Scope
Slackアプリに発行するTokenでは、Src/Dst等も確認する術がないため、注意する。slack/boltはいいぞ。権限はほとんどのケースでBot scopeで足りるはず。
2.「プランニングポーカーができるツールの開発」 by 迫田 辰太郎さん
www.slideshare.net
概要
- プランニングポーカーを社内でWebアプリケーションとして実装し、運用した
- 実装、運用等を通した経験を元に、Yahoo社の開発文化を紹介
詳細
課題
Yahooでは、チームによってスクラム開発でプランニングポーカーを採用することがある。従来は、チームがある場所に一同に会して、物理的なカードで、プランニングポーカーを実施していた。
地理的な制約により、ビデオ通話を用いて行う必要が出てきたが、ビデオ通話で行うと、"テンポが悪く"なってしまうことがあった。具体的には、アプリケーションによる遅延や、ビデオの画質による数字の視認性の悪さがあった。
解決方法
このテンポの悪さを解決するために、特別なアプリケーションが不要なアプリケーションの開発を考えた。その結果、Webアプリケーションとして実装することで、どの社員でも、社内社外問わずどこでも利用できるプランニングポーカーを開発することとした。
具体的には、Node.js, Exspress, Socket.IOを利用したリアルタイムな双方向通信によって実現した。
開発文化
このプランニングポーカーは、おおよそ100名、20チームに利用されており、現在も利用している。利用するだけにとどまらず、利用者からのフィードバックも受けており、
ツール作成までの壁がいくつか考えられるが、Yahooでは下記に示すような豊富な資源やそれを支える文化がある。
- お金・時間といった コスト
- IaaS, PaaSといったものをすぐ利用できる。
- 運用
- CI/CD、脆弱性を検知する社内システムを利用
- 主業務への影響
- Yahooでは、業務時間のうち、一定の時間を別のこととして利用することができる。
- 開発者が居なくなる問題
- 社内GitHubのため、誰でもメンテ可能
まとめると、「課題 x エンジニア x 環境」(スライド参照)
3.「ヤフーのHack文化」 by 武居 秀和さん
www.slideshare.net
概要
- Hack Dayとは?
- 社内Hack Dayについて
- コミュニティの立ち上げについての知見
詳細
Hack Dayとは?
詳細に覚えてないので公式サイトへ。
(myThingsについてつぶやいたのは、このセッションにおいて過去のHack DayのPV中に映っていたためであり、2019/01/31にサービス終了していることを懐かしんだため。)
社内Hack Dayについて
外部で公開する以外にも、社内でのHack Dayがある。所属を超えてチームが組めるほか、優秀なアイディアは特許化される。また、業務として行うため、振替休日もある。
コミュニティ立ち上げについての知見
そんなHack Dayは、武居さんが発起人となって運営していた。現在は半期ごとに運営メンバーを募集しているが、その運営を通して得た知見を簡単にだが紹介していた。継続成長するために必要な要素は、大きく以下の通り。
- 自分が参加したい?
- 賛同してくれる仲間が集まる?
- 参加者アンケート・コメント
- ポジティブなもの・・・保持
- ネガティブなもの・・・改善
- "三方良し"
- 参加者 / 運営 / 会社 or 団体
- 全てのステークホルダーが幸せか
- 参加者 / 運営 / 会社 or 団体
Hack Time!!!
LT1.「スクラムコミュニティを立ち上げた話」 by 小川さん
www.slideshare.net
Scrum Masters Night! in FukuokaとScrum Beginners Nightを立ち上げた小川さんの話。東京のスクラムコミュニティから派生したものだが、開催にあたっては、東京開催のノウハウを借りたり奮闘した上で福岡開催を実現し、盛況だった。コミュニティを立ち上げる上で、業務外にも関わらず上長やメンバーも協力をしてくた他、人の輪も広がったとのこと。
LT2.「Hack U しっとーと?」 by 高岡さん
www.slideshare.net
Hack Dayの学生版。1ケ月ほど長期間を取って実施するもので、Yahoo社員がメンターとなって実施するため、現場で働く人の指導を受けて非常に良い環境で学べる場で、「学生⇒クリエイターになるキッカケ」の提供したいとのこと。
話の中でも印象的だったのは、誰もが綺麗なパスでクリエイターになるのではなく、泥臭く、Hack Day最終日の1日前に仕様変更をして何とか動かすとか、そういうのは誰もが通る道という話。
LT3.「開発とか文化の話」 by 平田さん
www.slideshare.net
(1)社内でeスポーツイベントを開催した話。社内でスプラトゥーンやろうぜ!と提案した結果、24チーム96プレイヤー、開催用のコミュニケーションツール内には574人の大所帯に。気が付いたら社内ストリーミング環境も整備されるといった事態に。
(2)社内Slackには10000ものemojiが登録されている。その中で、リアクションしたら:pudding:を返すpudding botを作成した結果、色んな人を巻き込んだ大惨事に・・・(副次的に、ツールのバグを見つけたので結果オーライ?)
Yahooは、社内だけでもとにかく規模も大きく、風通しが良いことがこういった事例でうかがえるという話でした。
LT4. by Fujimon Chiaki CTOさん
W3Cの関係でいらっしゃっていたFujimonさんの番外LT。広瀬すずさんファンとのこと。
全社の風通しの良さを現すエピソードとして、Fujimonさんから全社員に向けたメールを送った際、「Slackでやれ」と社員さんから全社員向けのMLが入ったまま返信が飛んできたとのこと。すごい。
また、流れでHack Dayで作成したFujimonさん作のアプリをライブ披露。詳細書いていいのか不明なため伏せますが、Z社のシステムと連携したらすげぇことになるんではって気持ちがすごかった。
終わりに(感想など)
全体を通してYahoo社の開発文化をプレゼンされていたわけですが、どの人も笑顔で楽しそうに話されていたのが非常に印象的でした。プレゼンのレベルも平均的に高く(、恐らく著作権大丈夫?とか、細かいチェックも入ってるのだと思いますが)、技術的な知見も得ることができました。
(発表中のオーディエンスのリアクションを求めるとこで大きい声で返事してましたが、後で感謝のお言葉をいただいてちょっとうれしかったですw)
Yahoo社さんはWe Are Hiringということで、情報はこちらから見ることができます。門はいつでも開いているそうです。(狭そう)