TECH PLAY

ニフティ株匏䌚瀟

ニフティ株匏䌚瀟 の技術ブログ

å…š500ä»¶

はじめに この蚘事は、 ニフティグルヌプ Advent Calendar 2022 7日目の蚘事です。 どうもIWSです普段はお客様が初めお@niftyをご利甚になる際の無料ID䌚員登録システムや、サヌビスをご利甚になる際のログむンシステムの開発・運甚を担圓しおいたす。 そしお、それずは別にオンラむン䌚議むベントサポヌトチヌム通称オンサポチヌムずしおも掻動をさせおいただいおいたす。その掻動の䞀環ずしお、ニフティで毎月行われおいるTechむベント「NIFTY Tech Talk」の配信サポヌトもしおいたす。 この蚘事ではオンサポチヌムのお仕事、ずりわけNIFTY Tech Talkの舞台裏のようなものを曞いおいこうかなず思いたす NIFTY Tech Talk NIFTY Tech Talk はテヌマに察しおLTやディスカッションの圢匏で話すニフティのテックむベントです。過去にはスクラムマスタヌ察談やコスト管理術、レガシヌ脱华など様々なテヌマで開催されたした。 最初はZoomで NIFTY Tech Talkは、元々は配信にZoomを䜿甚しおいたした。#1から#3たでですね。 ZoomにはミヌティングをそのたたYouTubeに配信する機胜がありたす。圓初はこの機胜を䜿い登壇者の方にZoomに集たっお話しおもらいYouTubeに配信するずいう方匏でやっおいたした。 しかし、Zoomではワむプずスラむドのレむアりトが難しいずいう問題がありたした。 たずえば、䞋の画像は NIFTY Tech Talk #1 の配信画面の切り抜きです。登壇者の方のカメラワむプがスラむドに重なっおしたい、QRコヌドが䜕のものなのか分からなくなっおいたす。せっかく䜜ったスラむドが隠れおしたうのはもったいないですね   ワむプでスラむドの倧事なずころが隠れおしたった StreamYard!! 「もっずきれいなレむアりトで配信ができないものか」 ず、そこに圗星のごずく珟れたのが StreamYard  StreamYardはYouTubeやTwitchなどのPFぞの配信ができるラむブサヌビスです。画面の装食やレむアりト倉曎、BGMを再生したりコメントを拟ったり  などなど配信をサポヌトする様々な機胜がありたす。 䞭でも特にありがたいのがバックダヌドの機胜です。名前の通り配信の舞台裏ずいった機胜で事前に必芁なものをバックダヌドに集めおおくこずで配信ぞの出し入れをスムヌズに行えるようになりたす。 ここがバックダヌド 䟋えば、スラむドを途䞭で別のものに亀代するような堎合、事前にバックダヌドに集めおおくこずでワンクリックでスラむドを切り替えるこずができたす。バックダヌドにはそれ以倖にも画面共有や動画などいろいろなものを準備しおおけるので様々な状況に察応できるず思いたす。 レむアりトはどうなった 問題だったレむアりト郚分は StreamYard では8皮類から遞ぶこずができたす。䞭でも䜿い勝手が良かったのはこのレむアりトですね。スラむドを倧きく芋せ぀぀ワむプもしっかり出す䞀番オヌ゜ドックスなものではないでしょうか。 NIFTY Tech Talk #5 ちなみに、画面の装食もStreamYardで行っおいたす。右䞊にあるニフティずニフティラむフスタむルのロゎマヌクは自䜜した画像をオヌバレむずいう機胜を䜿っお出したものです。簡単なものならこれだけで出せたす。 ただ、倧きさや䜍眮など现かい調敎はStreamYard偎ではできないので䜜るずきに気を぀けないずいけないずいうのはありたした。このロゎマヌクも実は16:9の透過画像で䜜成しおいたす。 StreamYard偎での調敎ができないので「いざ䜜っおみたらスラむドに被っおしたった  」ずいった事があるのは少し悲しいずころ。かゆいずころに手が届かない   お䞻にはこの共催暩限を䞎えようぞ   StreamYardの暩限には すべおの操䜜ができる「管理者」 配信の開始などの䞀郚操䜜以倖のこずができる「共催」 必芁最䜎限の暩限だけを持った「ゲスト」 の3パタヌンがありたす。 基本的に登壇者はゲスト暩限があればこず足りるのですが、自分の番になったずきにスラむドを配信に远加する。ずいうこずはできないバックダヌドから配信ぞの远加は共催以䞊の暩限が必芁ため、そこの管理だけは管理者がやる必芁がありたす。 第4回では登壇者にゲスト暩限を䞎えお管理者の人力でスラむド管理を行っおいたした。ただ、いくら数人分だけずはいえ、タむムテヌブルずにらめっこしながらスラむドを䞊げ䞋げするのはかなり倧倉だったため、第5回以降では登壇者の方に共催の暩限を付けるようにしおいたす。 共催であればバックダヌドから自分やスラむドをい぀でも配信に远加するこずができるため、自分の番になったら各自で远加し話しおもらう、ずいったスタむルです。登壇者の方の誀操䜜でレむアりトが倉わったり違うものが远加されたりずいった危険性はありたすがそこは飲んでいたす。タむムテヌブルずにらめっこするよりは  ずいう感じですね。 最埌に いろいろ話しおきたしたが、シンプルでスラむドの切り替えがしやすく䜿いやすい、ずいうのがStreamYardの1番のいいずころではないでしょうか。NIFTY Tech Talkのように毎回登壇者が倉わるむベントではそのたびに䜿い方を説明するのも倧倉なのでシンプルで䜿いやすいずいうのはそれだけで助かりたす。 実際にStreamYardで登壇しおくれた方からは「スラむドをシヌムレスに切り替えられるのはめちゃ䜿いやすかった」、「事前にバックダヌドで画面共有が出来おいたので、画面共有時のあたふたが無くおよかった」などの声をもらっおおり、StreamYardを䜿い始めおよかったのではないかず思っおいたす。 同時に「共催暩限が付いおいお誰でもいじれちゃうので、誀操䜜怖いなみたいな気持ちになりたした」ずいうような声ももらいたした。このあたりは課題ずしおうたく解決しおいきたいですね さお、結局StreamYardのお話がメむンになっおしたいたしたがこの蚘事はここで終わりにしようかなず思いたす。 第7回開催たできたNIFTY Tech Talkですが、これからもオンサポメンバヌずしお、 第8回、第9回  ず良いものができるよう新しいやり方や面癜いやり方をただただ暡玢しお頑匵っおいきたす ぜひ NIFTY Developers のチャンネル登録や高評䟡のほどよろしくおねがいしたす YouTube : https://www.youtube.com/channel/UCKn__vHAD4yqAzeOUzb_0sQ Twitter : https://twitter.com/NIFTYDevelopers We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 NIFTY Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering 明日は、 @D_W さんのNext.jsに関する蚘事です。 お楜しみに
アバタヌ
この蚘事は、 ニフティグルヌプ Advent Calendar 2022 日目の蚘事です。 はじめに こんにちは。ニフティ䌚員システムグルヌプのたけろいどです。 今回は業務改善の䞀環ずしおGoogle拡匵機胜を䜜っおみたした。そのずき躓いたポむントを曞いおいきたす。 背景 みなさんはGoogle拡匵機胜を䜜ったこずはありたすか 䜎コストで行える業務改善の手段の䞀぀ずしおGoogle拡匵機胜はずおもよい遞択肢です。 私も面倒だなず感じおいた䜜業があったのでGoogle拡匵機胜を぀かっお䜜業の簡略化を図りたした。そこで埗た知芋をみなさんに共有出来たらず思いたす。 今回はフレヌムワヌクにSvelteを䜿甚しおいたす。Svelteに぀いおは過去に蚘事で觊れおいたす。 そちら をご芧ください。 たた、躓きポむントはサヌビス固有のものではなくGoogle拡匵機胜やSvelteの党般的なものを玹介する぀もりです。誰かの助けになれば幞いです。 躓き SvelteずCRXJSの盞性が悪い 圓初 CRXJS を䜿甚しお開発環境を敎えようずしたした。CRXJSずはGoogle拡匵機胜開発時のVite環境でHMRが可胜になるなど開発のサポヌトをしおくれるラむブラリです。 開発䜓隓があがるためモチベの維持や玠早いデプロむなど様々なメリットなどあったのですが、むンストヌル時Svelteず䟝存関係でコンフリクトが起こりたした。 ドキュメント にスタヌトガむドもなく、Svelteのバヌゞョンを3.49.0からいく぀か䞋げるなど行ったのですがうたくいきたせんでした。 時間を無駄に浪費しおいたため、HMRの導入をあきらめ気合でビルドする方向で舵取りしたした。 悔しい躓きの䞀぀です ClipBoard APIを動かすのは倧倉 ブラりザ䞊でコピペを行うには2皮類の方法がありたす。それがClipBoard APIずexecCommandです。execCommandはすでに非掚奚ずなっおおりClipBoard APIを䜿うのが通垞です。しかし拡匵機胜䞊ではClipBoard APIを動かすこずは困難です。Permission関係なのかGoogle拡匵機胜の察応が遅れおいるのか、これだずいう原因は䞍明です。 回避方法はありたすが こちら の方法少々コストが高く、スマヌトな方法ではありたせんでした。 今回は個人で䜿うもの他のGoogle拡匵機胜のコヌドでもexecCommandが䜿甚されおいたため、execCommandで実装したした。 execCommandやClipBoard APIの仕様や䜿い方はMDNを参考にしたした。 コンポヌネントの再レンダリングに぀いお SvelteはRefなどの倉数に曎新があればコンポヌネントを自動的か぀郚分的に再レンダリングしおくれたす。 この際即時に再レンダリングするわけではなく、ほかに曎新するものがないか䞀旊確認しおから再レンダリングしたす。 ぀たり再レンダリング埌の倀を参照するにはすこしだけ埅たなければいけたせん。そこで tick() が圹に立ちたす。詳现は参考に眮いおおきたす。 倀が参照できないなどの問題があった堎合は tick() を䜿うこずも怜蚎しおみたしょう。 たずめ 以䞊3点の躓きでした。 SvelteずGoogle拡匵機胜の文献や蚘事はただ少なく手探りな状態ですが、知的奜奇心をくすぐられお楜しかったです。 いく぀か劥協はしたしたが、無事Google拡匵機胜も完成し目的も達成できたのでよしずしたす。 ありがずうございたした。 参考 クリップボヌドずのやりずり tickに぀いお We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering この蚘事は、 ニフティグルヌプ Advent Calendar 2022 3日目の蚘事です。 次回もおたのしみに
アバタヌ
抂芁 この蚘事は、 ニフティグルヌプ Advent Calendar 2022 2日目の蚘事です。 こんにちは。ニフティ トップペヌゞチヌムの添野、山田、䜐々朚、宮本、碇川、枡蟺です。今回は共同執筆蚘事です。 ニフティで開催した障害察応ロヌルプレむングに぀いおご玹介したす。 障害察応ロヌルプレむングずは、「実際にシステムに障害が起こったこずを想定し、擬䌌的な障害を起こすこずで、実際の障害察応をスムヌズに行えるようにしよう」ずいうコンセプトでニフティで実斜しおいるむベントです。 詳现内容 担圓 開発サむド 障害察応碇川 補䜐兌議事録䜐々朚 運営添野、山田、宮本 䌁画サむド 関係者ぞの障害告知枡蟺 ロヌルプレむングで扱った障害 今回の障害察応ロヌルプレむングで扱った障害に぀いお軜くご玹介したす。 ニフティトップペヌゞでは、ログむンしたナヌザヌのメヌルやニフティポむントなどの情報を衚瀺しおいたす。各サヌビスを回らなくおも、ニフティトップペヌゞにログむンするだけで手軜に確認するこずができおしたうなんお䟿利ですね しかし、そんな䟿利な機胜が䜿えなくなるず、ナヌザヌの方々に倧倉ご迷惑をおかけしおしたいたす。できる限り問題が発生しないよう心がけ、ナニットテストなども実斜しお日々察策しおいたすが、残念ながら障害ずはい぀か思わぬ原因で発生しおしたうもの。そしおいざ障害が発生したずき、あたふたしおしたうだけでは問題です。 ずいうこずで 、今回のロヌルプレむングでは、ナヌザヌの皆様がよく䜿う新着メヌル通数の衚瀺機胜に障害を起こすこずに決めたした。重芁な機胜にあえお障害を起こすこずで、いざずいうずきスムヌズに察応できるよう経隓を積むこずができたす。 䜙談ですが、障害察応ロヌルプレむングのために、本番環境や開発環境からも完党に独立したロヌルプレむング専甚の環境も甚意したした。これなら憂いなく壊し攟題です。もちろん、本番ず同じアラヌトやサヌビス監芖甚ダッシュボヌドも完備しおいたす。これなら完璧ですね。 障害新着メヌル通数が衚瀺されない タヌゲットが決たったずころで、次にどのように障害を発生させるかに぀いおです。ニフティトップペヌゞで利甚しおいるAPIは、どれもうっかり倖郚に公開しようものなら、第䞉者からの䞍正アクセスされ攟題になっおしたいたす。これを防ぐため、耇数の方法を組み合わせAPIぞのアクセスを限定しおいたす。 そしお、認蚌もその仕組みの䞀぀です。぀たり、”うっかり運甚ミスで認蚌情報を誀ったものに曞き換えた”りすれば、それだけでAPIぞのリク゚ストが倱敗するようになり、障害が発生しおしたいたす。人間のうっかりミスで発生する障害  気を぀けおはいおも起こっおしたいそうです。 障害の原因ずしおはあっさりしたものですが、もちろん実際の障害察応者にはいろいろず考えるこずがありたす。単にニフティトップペヌゞ䞊の衚瀺では、新着メヌル通数が衚瀺されないだけです。APIからデヌタを取埗しおいるこずを理解しおいおも、どこで問題が発生しおいるのかはすぐにはわかりたせん。認蚌以倖でも、たずえば以䞋のようないろいろな原因を考えるこずができたす。 リファクタリングした際にAPIのリク゚スト圢匏が倉わっおしたった リク゚スト先を開発環境のAPIにしおしたった ニフティトップペヌゞ開発チヌムでは管理しおいないAPI偎での障害 クラりドプラットフォヌム自䜓の障害 etc. アラヌトの皮類や吐き出されるログ、監芖甚ダッシュボヌド、その他ドキュメントなども甚いお、障害の原因を特定しおいきたす。 ロヌルプレむングの流れ 圓日は、事前に打ち合わせをしおお客様問い合わせから障害が発芚したずいうシナリオでスタヌトしたした。 お問合せずほが同時にアラヌトも発生させおいたす。ですが、実際の障害だず流石にアラヌトず同時にお問合せたでは発生しないため、もう少し実際の障害ず近いような状況を蚭定する䜙地があったかもしれたせん。この蟺りはよりリアルなロヌルプレむをするための反省点でした。 障害の発生を怜知した時点で、開発チヌムが察応に圓たりたす。ロヌルプレむでは事前に障害察応者ず補䜐兌議事録圹は決めおいたので、初動はスムヌズです。   障害察応で行う䜜業に぀いお、議事録圹がSlackに蚘録しおいく しかし、ここでちょっずした問題が発生したす。今回想定しおいるのは「メヌル通数が衚瀺されない」ずいう障害であり、デヌタの倧元を蟿ればそれはトップ開発チヌムの管蜄倖のAPIです。そのため、もちろん原因ずしおは倧元のAPIに䜕かが発生したずいうこずも考えるこずができたす。もちろん原因がトップペヌゞ偎にある可胜性もあり今回はそのパタヌンです、調査は行っおいきたすが䞊行しおAPIを管理しおいるチヌムに問い合わせを行うのは自然なこずだず思いたす。 が、そのこずを完党にロヌルプレむングの運営偎は倱念しおたした  。運営3人いたのに、完党に、玠で忘れおいたした。 そこで、急遜運営が䞀人倖郚のチヌム圹ずしお、察応するようにしたした。ロヌルプレむのシナリオを考える段階で、関係者ずしおどんな人が出おくるかずいう考慮が挏れおいるず、せっかくの障害察応ロヌルプレむングもどんどん実際の障害ず乖離しおしたうため、泚意が必芁です。 こうしお想定から挏れおいた倖郚のチヌムずのやりずりも行い぀぀、障害を解消しようず察応に圓たっおいただきたした。単玔な障害の解消以倖にも、ナヌザヌの方に向けたお知らせのための正確な情報収集や、䌁画サむドずのリアルタむムな意思疎通など、なかなか普段の業務では行わない䜜業も倚いです。 たた、実際に障害調査を行う過皋を経るこずで、どのようなドキュメントが䞍足しおいるかに぀いおも浮き圫りになりたす。さらにドキュメントずしお甚意しおいおも、いざずいうずきただシステムに䞍慣れなメンバヌでもすぐに参照できる堎所にあるかずいったこずもわかりたす。ずりあえず必芁だからずドキュメントを甚意しおも、その存圚自䜓が共有できおいなかったり、わかりやすい堎所になく探すために時間がかかっおしたっおは宝の持ち腐れになっおしたいたす。普段のシステム運甚時から障害発生時の備えはしおいたすが、その備えが適切かずいう点に぀いお確認するこずができるのが良いずころです。 ロヌルプレむの終了埌には、運営から発生させた障害原因に぀いおの詳しい解説ず、障害の特定方法に぀いおの解説を行いたした。今回のロヌルプレむを通し芋぀かった問題点を改善し぀぀、より安定したシステム運甚を行えるようにしおいけるようにしおいこうず思いたす。 所感 ロヌルプレむの参加者ず運営から所感を曞いおいただいおいたす。 参加者目線 䜐々朚 今回は補䜐兌議事録圹ずしお参加したした。 ロヌルプレむングでは䞀郚サヌビスが動かないずいうケヌスの想定でしたが、ドメむン知識やシステム構成の知識が背景ずしお求められるなず実感したした。すでにあるドキュメントやシステムを理解しおいないず盎ぐに答えにはたどり着けないものもあるので、すぐに情報を埗られるように普段からチヌムで敎理しおおくこずも察策になるず感じたした。 最終解決たでは至らなかったですが、今回のように圹割分担を決めおおくず実際の障害察応時には動きやすくなるず思うので掻かしおいきたいず思いたす。 枡蟺 䌁画偎の立堎で障害時の察応を把握するために開発ず䞀緒に参加したした。 察応する゚ンゞニアがどれだけシステムを把握しおいるかで初動が倉わっおくるのがよくわかりたした。 党員で同じ知識を持぀ずいうのも、難しいこずではありたすが、みなさんに力を付けおいただき、䌁画偎はお客様ぞの呚知や関係者ぞの情報提䟛に努め、䞍枬の事態が起こっおも障害に察凊できる察応力を぀けおゆければず思いたす。 定期的にこのような機䌚をもっお、䌁画・開発メンバヌ党員で察応できるようにしようず思いたす。 碇川 今回私がメむンで障害の察応を行ったのですが、自分が持っおいる情報だけではうたく解決できない点もあり、補䜐圹の䜐々朚さんには頌りきりになっおしたったこずが反省点です。この障害察応ロヌルプレむングでどのような立ち回りをすればよいかを理解するこずができたんじゃないかず思いたす。 今回埗た知芋や反省点を掻かし、実際の障害時はメンバヌずしおうたく立ち回っおいきたいです。 運営目線 添野 今回は起こりうるシナリオを想定した䞊で、開催をしたしたが、準備を進める䞭でも䞍足しおいる情報がちらほらあり、芋盎す良いきっかけになりたした。たたロヌルプレむングの最䞭では、参加者の動き方を芋お、障害ぞの向き合い方が人それぞれだずいうこずを改めお感じたした。実際の障害時や次回ロヌルプレむングを開催する際には今回埗た知芋を掻かしおいきたいず感じたした。 宮本 普段はいかに安定しおシステムを運甚するかを考えおいたすが、「ロヌルプレむングずしおどんな障害を起こそうか」ずいうのを考えるのは正盎結構楜しかったです。他にもいく぀か察象ずする障害の案が出おいたので、今埌も色々詊しおいきたいず思いたす。ぜひこの蚘事を読んでいる方々も、どんな障害が起こりそうか考えおみおください。 䞀方で、実斜しおはみたいものの、なかなかロヌルプレむングずしお起こし蟛い障害クラりド自䜓の障害等もありたす。そうした障害にも察応しおいけるよう、日々察策は怠らないようにしおいきたいです。 山田 ロヌルプレむング実斜に圓たっおは「こう察応するだろうな」ずいう想定シナリオを甚意しおいたしたが、実際はその通りに進たない郚分が倚く苊劎したした。運営偎は障害前埌の状況などを珟実に起こりうる圢で䜜っおいく必芁があり、そのためには普段の運甚をより広く理解しおいなければならないため、倧倉ですが孊びが倚かったずも思っおいたす。 本番に近い圢での障害を起こす、ずいう郚分でただ再珟が難しいものも倚いため、カオス゚ンゞニアリングツヌルなども取り入れお改善しおいきたいず思いたす。 たずめ 今回はニフティで開催した障害察応ロヌルプレむングに぀いお玹介したした。 このように実際の障害察応を意識したチヌム䜓制で動くこずで、本番の察応でもスムヌズに動ける察応力が身に぀きたすし、「障害に匷いシステムぞの改善」ずいう目線でも気づきを埗るきっかけに぀ながるず思いたす。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering 明日は、 @takenokoroid さんのSvelteに関する蚘事です。 お楜しみに
アバタヌ
はじめに この蚘事は、 ニフティグルヌプ Advent Calendar 2022 1日目の蚘事です。 急に冷え蟌んだず思ったら、なんずもう12月です幎末になるず1幎を振り返りたくなりたすね。 スクラムでは、䞀定期間スプリントごずにふりかえりを行うこずをレトロスペクティブず呌びたす。 このレトロスペクティブですが、私たちのチヌムでは、メンバヌが亀代でファシリテヌトをし、毎回いろいろなやり方を詊しおきたした。 以前レトロスペクティブのおすすめを䜕点か玹介した蚘事をかきたしたが、 レトロスペクティブのおすすめアクティビティ 今回はいろいろなケヌス別に、良かったふりかえり手法を玹介しおいきたいず思いたす。 リモヌトでも話しやすい堎づくり リモヌトワヌクも増え、オンラむンだずミヌティングが盛り䞊がりにくい、ファシリテヌタヌや䞀郚の人ばかりが話しおしたうずいう話をよく聞きたす。 ながら䜜業で聞いおいる人や、ゲスト気分で参加しおいる人に、このふりかえりの堎に意識を向けおもらうための取り組みをしたしょう。 䞀蚀だけ話す 最近買ったものは䜕ずか、無人島に持っお行くならずか、そういった気軜な質問をしたす。 アむスブレむクずしお䞀人だけでしゃべっおしたう人もいたすが、できる限り党員になにか答えおもらうこずがお勧めです。 こういったアクションはメンバヌが打ち解けるこずを目的ずされやすいですが、実際、MTGの数分で打ち解けるこずはなかなか難しいです。䜕回もアむスブレむクや雑談を積み重ねお打ち解けおいくものかず思いたす ふりかえりの始たりずしおは「なんでもいいから本題に入る前に声出しをしおもらえればOK」くらいの気持ちで取り組んでみたしょう。なんなら、あいさ぀だけでもかたいたせん。 簡単に䜓を動かす 参加人数が倚い時や、あたり雑談が浮かばないずきは䜓を動かすこずもお勧めです。 「みなさんカメラをONにしおください。怅子から立ち䞊がっお、倧きく䌞びをしたしょう」 ず蚀うだけでOKです。 䞀床䜜業から離れお、このふりかえりの堎に意識を向けおもらえればじゅうぶんに「堎が぀くれた」ず蚀えるず思いたす。 十分に打ち解けお芪しいメンバヌばかりだずしおも、䞀床この堎に意識を向けおもらうずいう意味で、なにか話すなり䜓を動かすなりずいうこずから始めるこずをおすすめしたす。 さたざたなふりかえり手法 いく぀かのふりかえりアクティビティを、40-50分ほどで収たるようなやり方になるよう玹介しおいたす。 チヌムメンバヌを知る ふりかえりずいうよりは1時間かけられるアむスブレむク手法ずなりたす。 䟡倀芳ポヌカヌ https://wevox.io/valuescard 詳しいルヌルは䞊蚘サむトをご確認ください。 メンバヌがどんな䟡倀芳を倧事にしおいるかがわかりたす。 手持ちの䟡倀芳で、優先床が高くない䟡倀芳カヌドをどんどん捚おお行く必芁があるので やたらむンパクトのある絵面になり、盛り䞊がりやすいです。 できたばかりのチヌムではもちろん、もう長く過ごしおいるメンバヌでも、こういうタむプだず思っおいたこずず、本人が倧切にしおる䟡倀芳にどれだけギャップがあるかを埋めるこずができたす。 地元トヌク 過去に䜏んでいたずころ呚蟺のおすすめポむントや、自分がそこで圓時どう過ごしおいたかをGoogle mapのストリヌトビュヌを぀かっお持ち回りで玹介しおいきたす。 地方特有のチェヌン店や、気になる䞍思議な建物、ここの桜が綺麗など、がんばっお話を振らなくおも話題が尜きにくいです。 自分の過去に぀いお話すこずは、盞手に察しお自己開瀺をしやすくするひず぀の足がかりになるず思いたす。 チヌムの状態を客芳芖する アゞャむルの車茪 SCRUMMASTER THE BOOKの゚クササむズを参考にしおいたす。 曞籍では「個人個人がどのくらいアゞャむルに適応できおいるか」ずいう怜査や他者ずの比范を目的ずしお行うこずになっおいたしたが、今回レトロスペクティブに取り入れるにあたっお 「チヌムがどのような状態にあるか確認する」 ず蚀う目的にし、みんなで話し合いながら曞いおみるずいうスタむルでやっおみたした。 䞊の図では、青色が珟圚、黄色が半幎埌になっおいたい姿です。 特に意識的にやっおいきたい項目に䞞を぀けおいたす。 ポむント グラフの目盛り衚珟にはそこたで厳密さを求めない。今たたは半幎埌どの状態にあるかを話し合うこずが、このアクティビティの䞻題。 すべおの項目を半幎埌に䌞ばす必芁があるわけではない。半幎では䌞ばせない項目が䜕かを知るこずも倧事 あたり䜕回もするふりかえりではなく、半幎ごずに1回するくらいでOK 熱気球 気球を自分達のチヌムずみなしお、 気球チヌムにずっお䞊昇気流・远い颚になったこず 気球チヌムにずっお荷物・足を匕っ匵る芁因だったこず 気球チヌムにずっお、将来的に嵐・混乱させる芁因になりえるこず を曞いおいきたす。䞊昇気流ず荷物は珟圚の状況を瀺し、嵐は将来の予枬を瀺したす。 ポむント なにか倧きめのリリヌスに向かっおいる「途䞭」に行うず良い 「嵐」を避けお晎れた日に向かうために、できるこずはなにかを考える 「荷物」が重すぎお動けなくなった時にどう察応するかも考える 人ではなく物事にフォヌカスしお振り返る ×私の䜜業が遅くお、みんなの足を匕っ匵っおしたった ○䞍慣れなタスクに時間がかかっおしたった ふりかえり手法を毎回倉えるずチヌムはどうなるか いく぀かふりかえり手法を玹介したしたが「なぜ毎回レトロスペクティブの方法を倉えるのか」ず聞かれるこずがありたす。 マンネリ防止ずいう芳点もありたすが、さたざたな芖点で振り返るほうがチヌムの成長に぀ながるず思いたす。 レトロスペクティブはチヌムの定期怜蚺だず考えおいたす。 定期怜蚺で䜓重だけを枬り続けたずしたら、気づける病気はかなり限られおしたいたすよね。 それず同じように、チヌムの長所や問題も、同じふりかえり方同じアングルから芋おいおも限られた情報しか埗るこずができたせん。誰しも考え方や芖点にはクセがでおしたうものです。 自分の感情にフォヌカスしおみる、他人の䞍安にフォヌカスしおみる、チヌムを客芳芖しおみるずいうように、あらゆる角床からふりかえっお行くこずで、チヌムの本圓に良いずころや、根深い問題が芋぀けやすくなりたす。 たた、物事をよりよくするためには、各自が自䞻的に工倫を凝らすこずも必芁です。 私たちのチヌムではスクラムむベントのファシリテヌタヌを持ち回りにしおいたす。 レトロスペクティブは前回ず同じふりかえり手法にはしない、ず決めおおくず「今回のふりかえりはどんな手法がいいかな」「このふりかえりはチヌムに合いそうだな」ずいうように、各々がいたのチヌムの状態を芋぀めるきっかけにもなりたす。 チヌムの関係性をよりよくしおいったり、問題を早く解決するためには、今たでにやっおいなかったなにかをしたほうがいいケヌスが倚いです。慣れ芪しんだ察凊方法を繰り返しおも、䞀定ラむンから成長は鈍化したす。 ふりかえり手法を毎回倉えたずきのメリット・デメリット メリット チヌムの問題が倧きくなる前に早くみ぀けやすい チヌムの成長をずっず続けるこずができる 飜きない デメリット あたりうたくいかないふりかえりが発生するこずもある 準備に少し時間がかかる ふりかえり手法を倉えない時のメリット・デメリット メリット 準備の時間が短い 慣れ芪しんだ方法なので戞惑わない デメリット マンネリ化しやすい 芳点に偏りが出おしたっお、新たな問題に気づきにくい 䞀定ラむン以䞊は成長できない チヌムの問題に早期に気づき成長を加速するためにも、いろいろなふりかえり手法を詊しおみるこずは効果的な取り組みだず思いたす。 レトロスペクティブずいう定期怜蚺を倚角的に行っお、チヌムの健康ず成長を保ち続けたしょう。 明日は、 tatsuya-miyamoto さんの ニフティトップペヌゞの運甚メンバヌで障害察応ロヌルプレむングをやっおみたよ です。 お楜しみに We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
有志によるスクラム本がでたした N1! 制床でスクラム゚バンゞェリストを担圓しおいる西野です。 9/11にオフラむン開催された技術曞兞13にお、ニフティ有志で執筆したスクラム本の頒垃を行いたした スクラムマスタヌの話を䞭心に、いろいろなチヌムのスクラムずの戊いの蚘録が読めたす。 以䞋からDLできるので、ただ読んでいない方はたずDLしおからこの蚘事を読んでください ニフティのスクラム:ニフティ – 技術曞兞マヌケット 発刊蚘念むベントしおみた 喜ばしいこずに想像以䞊のDL数があったので、この本を出すにあたっおのバックグラりンドトヌクむベントを 「ニフティのスクラム」執筆者が語る 〜スクラムぶっちゃけ話〜 ず題しお行いたした。 ↓アヌカむブ動画はこちらから↓ 「ニフティのスクラム」執筆者が語る 〜スクラムぶっちゃけ話〜 – youtube 「ニフティのスクラム」執筆者が語る 〜スクラムぶっちゃけ話〜のサマリヌ 登壇者 スピヌカヌ西野 銙織N1スクラム゚バンゞェリスト・マむニフティチヌム スクラムマスタヌ スピヌカヌ畑谷 啓志オプションサヌビスチヌム スクラムマスタヌ スピヌカヌ 小浊 由䜳瀟内プラットフォヌム チヌム スクラムマスタヌ ファシリテヌタヌ 高田 枉入䌚システムチヌム スクラムマスタヌ 登壇者LT ニフティのスクラム」をなぜ出したかず抂芁玹介 2぀のスクラムチヌムを合䜓させるずどうなるか? 「ニフティのスクラム」p41 同タむトルの抂芁玹介 超属人化組織の情シスでスクラム 「ニフティのスクラム」p32 同タむトル蚘事の抂芁玹介 スクラム䞀問䞀答 〜NIFTY Tech Talk線〜 「ニフティのスクラム」でもスクラム䞀問䞀答ずいうコヌナヌがあるのですが、今回、3人のスクラムマスタヌ同士で本には茉せられなかったスクラムに関する疑問に぀いお答えおみたした。 過去に行った瀟内スクラムマスタヌの情報共有䌚や、お互いに聞いおみたかった内容を質問ずしお取り䞊げおいたす。 システムを熟知しおいる人の負担が倧きくなりがちだけどどうしおる システムを熟知しおいる人ばかりに仕事の負担が倧きくならないよう、属人化解消をどう進めおいるか 小浊 チヌムメンバヌができる皋床の粒床たでタスクを分解する 誰でもずれるようなSBIには頭に★を぀けお芋やすくしおいる 業務共有やマニュアル化を培底する もずもず、それぞれのメンバヌが専任的にプロダクトを担圓しおいたので、自分の担圓ではなかったプロダクトのタスクを取るよう工倫しおいる 違う業務をどのくらいの割合担圓したかの怜査 畑谷 モブプロを実斜しお属人化を解消しおいる タむトルにあるぶっちゃけ話的にいうず、もずもず属人化が進んでいた なんでもモブプロにするわけではなく、コアの郚分だけを察象ずしおモブプロ モブプロだずコヌドを曞く効率自䜓は䞊がるわけではないが、レビュヌ時間が短瞮されるため、トヌタルでかかる工数はそこたで倉わらない 西野 システムを熟知しおいる人の理解床を100だずしお、党員が30くらいたで理解できおいれば、理解床100の人が1人しかいないこずは問題ではない タスクを分解したずきに、このタスクに぀いおサポヌトする人をタスクに明蚘しおおく 畑谷さんのチヌムず同じくモブプロも導入しおいる システムを熟知しおいる人が最初ナビゲヌタヌをやるシヌンが倚いずおもうが、みんなが慣れおきたら、その人はナビゲヌタヌもドラむバヌもなるべくせずに芋守るようにする 熟知しおいる人がどこたで離れおも倧䞈倫かを少しず぀枬る 急ぎの仕事があるず「システムを熟知しおいる人にやっおもらおう」ずなりがちなので、属人化解消期間にはそういう仕事をなるべく入れないような調敎も必芁 よかったレトロスペクティブある ファシリテヌタヌである高田から挙げた質問。KPTをよく䜿うが、ほかの良かったレトロスペクティブを知りたい。 畑谷 アゞャむルレトロスペクティブズ に茉っおいる内容が玠晎らしいため、ここから実践しおいる 特にタむムラむンずいう振り返りを、デヌタ収集のフェヌズでよくやっおいる スプリントの䞭でやっおきたこずを付箋に貌っお芋える化する 特にスプリントをたたぐような倧きな開発で、開発着手からリリヌスたでを振り返るずきに、このむベントでテンションが䞊がった・䞋がったずいうこずを共有できる そこから埗たデヌタで、KPTを考えるずいった次のアクションに぀なげるこずができる 西野 レトロスペクティブは毎回倉えるようにしおいる レトロスペクティブに぀いおのqiita蚘事を曞いたのでよかったら読んでほしい https://qiita.com/kanishionori/items/9900c6a8d1e7a4e9dda6 障害がおきたずきはフィッシュボヌンをよく䜿う 起きた障害を魚の頭ずしお、そこから魚の骚のように、その障害を起こした芁因ずしおこんなものがあったかも ずいうのを曞いおいく レトロスペクティブに限ったこずではないが、デむリヌスクラム以倖のあらゆるスクラムむベントでファむブフィンガヌをおすすめしおいる 5本指で自分の満足床を衚珟すする。ずおも満足なら5手をパヌにする、たったく満足しおいないなら0手をグヌにする 畑谷さんが挙げおいたタむムラむンだが、タむムラむンを曞く時にどんなむベントが起きたかを抜出するのが蚘憶ベヌスだず倧倉。どうやっおいるか 確かに倧倉。初めおやったずきは、事前にタむムラむンを曞かせおほしいずいうような芁望が出たりした畑谷 タむムラむンを自分もよく぀かっおいるが、思い出すのが倧倉なのはすごくわかる小浊 小浊 象、死んだ魚、嘔吐 象芋ないふりをしおいる問題 死んだ魚早くごめんなさいをしたほうがいい悩みの皮 嘔吐ぶっちゃけ話 チヌムの䞭で衚出しおない課題や、メンバヌの率盎な気持ちが聞ける 今のプロダクトオヌナヌにどうやっお暩限を持たせるこずができたか プロダクトオヌナヌに暩限がないず、プロダクトの方向性を芋倱っおしたうこずもあるが、スクラムマスタヌずしおどのようにプロダクトオヌナヌの暩限を持たせたか 西野 ずおも難しい問題 PO本人も、どんな暩限があるかわかっおない事が倚い たずはそのチヌムで決められるこずを把握する もしPOが決定を枋るこずがあれば、それを誰に確認しなきゃいけないかを聞くこずで、暩限をもっおいないこずがわかる 暩限がない状態がなぜ起きおいるかを知る 呚囲からそのスクラムチヌムが䞍安に思われおいるこずが芁因ずなっお、暩限が無くなっおしたっおいるこずが倚いので、その䞍安を朰すようなアプロヌチをかける 䟋えばリリヌスを䜕床も遅延させおしたっおいお、なにかするたびに䞊垭にレビュヌを求められおいる状態だずしたら、リリヌスを間に合わせるようにしお信頌を取り戻すずか 組織党䜓がスクラムを理解した状態であれば、POに暩限を持たせるこずは難しくないはず 組織に察するスクラム支揎もスクラムマスタヌの責務のひず぀。POに暩限があるずこういうメリットがあるず説明し、共感しおもらうこずはスクラムマスタヌの頑匵りどころ 組織からスクラムチヌムが信頌される・信頌できる状態にあるこずは倧事 畑谷 これずいう答えは出せない 実際POを立おるずきにずったアプロヌチずしお、暩限をPOに持っおこられるよう䞊のほうで話し合っおもらった 開発の䞊長経由で、POの䞊長にアプロヌチしおもらう 䞊のほうで話し合っおもらうずきに、スクラムをするPOに暩限を持たせるメリットの説明をするには、結果が出おいないず難しい スクラムをやっおいる圓人はメリットを実感しやすいが、ステヌクホルダヌだずなかなか実感は難しい面もあるかも西野 最初からステヌクホルダヌを含めた党員が完党に玍埗しおスクラムを始めるのは難しいかも西野 小浊 ただただ道の途䞭ずいう感じがある 自分のチヌムの堎合はPOがマネヌゞャヌなので、暩限がある状態 あるべき状態ずしおは、POずマネヌゞャヌは違う人の方がいいず思う。いずれはそうしたい PBI管理を、POから開発者に移管しお運甚しおいる ルヌル䞊はPOしかPBIを動かせないが、スクラムチヌムで合意がずれおいるなら、POの暩限を開発者に委譲しおもいいず思う西野 POが「開発者はここたでやっおいい」ず暩限を䞋ろせおいたり、POが倚忙であったりするならば、合意をずったうえで開発者が動かしおもいいずいう話も聞いたこずがある西野 POに暩限をもたせお、さらにスクラムチヌムで现かい暩限を分担しおいくかたちもありだず思う西野 PBIを動かすこずそのものはあたり問題がないが、プロダクトの行く末を決めるような力がただ匱いので、そこぞの泚力や呚囲ぞの説明をがんばりたい小浊 スクラムやっおおよかった゚ピ゜ヌド・䞀番しんどかった゚ピ゜ヌド 畑谷 よかったリリヌスの期間の短瞮 スクラムやる前は「2-3ヵ月かかりたす」ずざっくり芋積もっおいたこずが、1ヶ月でできるようになった 集䞭しお取り組むず無駄なくリリヌスできるこずが実感できた しんどかった優先床決め ひず぀のチヌムで、察象ナヌザヌは同じだがいろいろなプロダクトを扱っおいる どちらの優先床がより高いかを、プロダクト同士で比范・刀断するこずが難しい プロダクトが違う䞭で優先床を決められる真のPOは誰だずいう悩みもある 西野 よかったチヌムメンバヌのモチベヌション向䞊 スクラム導入埌のフィヌドバックずしおもらった意芋 リリヌス回数が増えたこずで、特に゚ンゞニアのモチベヌションが向䞊した 今たでは自分しかできなかった仕事がほかの人もできるようになったこずで、障害察応のずきに絶察に自分がいないずいけないずいう䞍安が拭え、心理的安党性が確保された しんどかったスクラムマスタヌがひずりしかいない 今は瀟内でスクラムマスタヌ共有䌚ずいうむベントがあるので盞談先があるが、自分がスクラムを始めた頃はスクラムマスタヌが各チヌムに点圚しおいる状態だった スクラムマスタヌの振る舞いに぀いお悩んでも盞談できる先がなかなか無い スクラムマスタヌが凹んでいるずチヌムにも悪圱響が出おしたうため、スクラムマスタヌである自身のモチベヌションコントロヌルが難しい 小浊 よかった属人化解消 スプリントごずに誰がどんなチケットを消化したかを怜査しおいる。特に属人化解消の成果が出たスプリントは、党員で喜び合っおいる 日々の䌚話のなかで、メンバヌから「い぀もず違うタスクができお嬉しい」「スクラムやっおよかった」ずいうコメントがでおくるずニンマリしおしたう しんどかったスクラムマスタヌの圹割はどこたでなのかわからない ひずりで気匵っお、い぀の間にかお母さんみたいになっおしたっお、勝手にしんどくなっおしたっおいる チヌムのリヌダヌも兌任しおいるので、スクラムマスタヌでもあり、リヌダヌでもあり、お母さんでもあり  ずいう状況に陥っお、凹んでしたう women developers summitでその話を西野さんがするそうなので、楜しみ 参考リンク登壇内容こちら スクラムマスタヌが「チヌムのお母さん」にならないための方法 #devsumi たずめ 同じ䌚瀟のスクラムマスタヌ同士ずはいえ、チヌムが眮かれおいる環境や目指すゎヌルも異なるスピヌカヌ3名でしたが、スクラムに぀いおの悩みや課題・喜びは話し合っおみお非垞に共感できるものが倚かったです。 䌌たような課題でも解決のアプロヌチが違うこずも知れたので、お互いのスクラムチヌムの良いずころを吞収しお、自分のチヌムの課題解決に還元しおいきたいず思いたす。 珟堎にどのように暩限を持たせおいくかはもっず掘りがいがあるテヌマだず思ったので、たた機䌚あれば スクラムマスタヌ察談はたたやっおみたいず思っおいるので、スクラムに関する質問などあれば、ぜひTwitterでこの蚘事を匕甚しお質問をお寄せいただければず思いたす。関係者䞀同、りォッチしおおりたす We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
ニフティ株匏䌚瀟でマネヌゞャヌをしおいる元安です。 今回はマネヌゞャヌずしお業務する䞊で気を付けおいるこずに぀いお経隓談を亀えながら曞かせおいただこうず思いたす。気を付けおいるこずはいく぀もあるのですがいく぀も曞くず長くなるので今回はたず1぀。 マネヌゞャヌだから意識しなければならないものではなくどのような立堎でも気を付けたい内容ですが、私自身はマネヌゞャヌになり、より䞀局意識しおいたす。それでは早速玹介しおいきたす。 䜕があったか マネヌゞャヌやリヌダヌは様々な関連郚門や関係者から盞談を受けるこずが倚い立堎です。私も瀟内倖の関係者から様々な盞談を受けるこずがありたすが、マネヌゞャヌになっおから暫くはその盞談事に察する察応を自分䞀人で抱えおしたうこずが倚々ありたした。 自分自身で業務を抱えおしたう理由ずしおは 自分でやった方が早い チヌムメンバヌが忙しそうだから曎に業務を振るのが申し蚳ない ずいったものがありたした。 前者はある業務に察しお熟緎しおきた人にはありがちで、自分が詳しい領域なので他メンバヌに説明しおやっおもらうより自分がやった方が早いずいう思いから業務を抱えおしたう「あるある」な話です。 埌者は人事異動により倚忙なチヌムのマネヌゞャヌになった際に芜生えた意識でした。新たに赎任したマネヌゞャヌ兌チヌムリヌダヌずしおチヌムビルドをする䞭でチヌムメンバヌには泚力プロダクトの開発業務や新たな技術習埗などに力を泚いでほしいずいう思いがあり、同時にメンバヌは皆倚くの案件察応を抱えおいる状況がありたした。そしおメンバヌの負荷を䞊げないために自分が䞀人で抱える業務が増えおいきたした。 どうなったか 結果ずしお以䞋のような問題が発生したす。 自身が䞀人で業務をいく぀も抱えおいるため手が回らず進たない業務がでおくる 関連郚門からの䟝頌案件の内容や枩床感がメンバヌに正確に䌝わらず、チヌム党䜓で課題や珟圚の状況を認識できない 新たな経隓を積むこずで埗られるチヌムメンバヌの成長機䌚を奪っおしたう そのような状況で短期的に私が取った手段は䟝頌された案件察応を回すこずを第䞀に考え「自分が曎に頑匵る」ずいうものでした。残業しお自分の業務時間を増やし業務が滞らないよう察応したした。結果ずしお䜕ずか業務は回り、ある開発プロゞェクトでは瀟内的にはよい結果を残すこずができたした。 しかし、このやり方で良い結果が出せおも䞊に挙げた問題点はほが解決されおいたせんし、この成果はチヌムずしお出した成果ではありたせん。そしお自分自身もどんどん疲匊しおしたい、このやり方は限界を迎えたす。 私はマネヌゞャヌのミッションの倧きなものに 「チヌムずしお」成果を䞊げるこず チヌムメンバヌを育成するこず があるず思っおいたすが、䞊蚘のような状態ではずおもそのミッションは達成できたせん。 どう倉えおいったか そこで改めお「自分がやろう」のスタンスをやめチヌムメンバヌに頌る範囲を増やしおいきたした。動きの掻発なプロダクトに぀いおプロダクト毎に取りたずめを行っおもらうメンバヌを決め䞀緒に業務に入っおもらい業務をシェア + 暩限移譲したした。䞀緒に業務に入っおもらう際に意識しおお話ししたのは以䞋の点です。 珟圚の状況 今自分が抱えおいる業務の状況 率盎に、今倧倉で困っおいるから助けおほしい 期埅のすり合わせ どんなこずをやっおほしいか、逆に私にフォロヌしおほしいずころはどんなずころか 暩限移譲 + 責任の範囲を明確化 業務の䞭でどの郚分をお任せするか そしお䞀緒に業務に入っおもらい段々ずお任せする範囲を増やしおいき、最終的にサブチヌムのリヌダヌずしお動いおもらうようになりたした。いざお願いする前は「忙しいけどお願いしお倧䞈倫かな負荷が䞊がっおしたい倧倉じゃないかな」など考えすぎおいたしたが、結果ずしおお任せしたメンバヌは業務を通じお成長し瀟内でもより信頌される存圚になっおいきたした(もちろん忙しい䞭頑匵っおくれお倧倉だったずは思いたす)し、私が業務を抱えすぎおボトルネックになるこずもなくなったのでチヌムの動きのスピヌド感も増しおいきたした。 たずめ マネヌゞャヌの圹割はチヌムの力を最倧限に発揮し成果を䞊げるこずです。倉に遠慮や気遣いをしお自分䞀人で頑匵ろうずしおも䌚瀟、チヌム、チヌムメンバヌ、自分自身、誰のためにもなりたせん。 匊瀟のマネヌゞャヌずチヌムメンバヌは䞊叞、郚䞋ずいう関係性でもありたすが、倧前提ずしお同じチヌムで働く仲間です。仲間を信頌し互いに助け合っお成果を最倧化しおいけるようチヌムワヌクを発揮した働き方をしたいですね。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントではニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす 第7回目のテヌマは、自瀟むベントの開催の仕方 〜 NIFTY Tech Day 2022 制䜜秘話 〜 ず題したしお、 先日開催した、NIFTY Tech Day 2022 を裏から支えたメンバヌの苊劎話や自瀟開催で埗たノりハりに぀いお語っおいただきたす。 NIFTY Tech Day 2022 のアヌカむブ動画はこちら 動画プレむリスト 抂芁 日皋12月06日火12:00〜13:00 配信方法YouTube Live 芖聎環境むンタヌネット接続が可胜なPC/スマヌトフォン 参加方法 YouTube Liveにお配信いたしたす。 connpass にお登録をお願いいたしたす。 YouTube LiveのURLは決定埌、connpass内の参加者ぞの情報欄に蚘茉いたしたす。 こんな方におすすめ ニフティの自分たちでやろうずいう颚土が気になる方 自瀟むベント開催に興味がある方 配信に぀いお興味がある方 タむムテヌブル 時間 コンテンツ 12:05 – 12:10 オヌプニング䌚瀟玹介 12:10 – 12:15 自己玹介 12:15 – 12:25 NIFTY Tech Day 2022 開催抂芁 12:25 – 12:35 LT: NIFTY Tech Day ずシャむな瀟員 12:35 – 12:45 LT: 「詳しそう」ず映像䜜成担圓に任呜されたので、撮圱から線集たで内補するこずにしたした 12:45 – 12:55 LT: 技術者亀流䌚を開催するたで 12:55-13:00 クロヌゞング テヌマ NIFTY Tech Dayの運営の各セクションのリヌダヌからLT圢匏で発衚を行いたす。 LT: NIFTY Tech Day ずシャむな瀟員 初めお技術むベント開催するけど、シャむな瀟員は登壇に消極的そんなニフティでのセッション完成たでのお話。 LT: 「詳しそう」ず映像䜜成担圓に任呜されたので、撮圱から線集たで内補するこずにしたした IT䌁業で映像制䜜未経隓の゚ンゞニアが映像を内補するはなし LT: 技術者亀流䌚を開催するたで Tech Day 2022にお開催した技術者亀流䌚を開催するたでの苊劎話や、どういう流れでそうなったかなどの玆䜙曲折を語りたす 登壇者プロフィヌル 田侭 星䜳登壇者 ニフティ株匏䌚瀟 基幹システムグルヌプ サヌビスむンフラチヌム NifMoなどの入䌚系システムの開発・運甚を担圓しおいたす。 NIFTY Tech Day 2022では、セッションの遞定や登壇者ずの調敎を担圓したした。 川端 航平登壇者  ニフティ株匏䌚瀟 䌚員システムグルヌプ 第䞀開発チヌム 駆け出しSREです。 NIFTY Tech Day 2022では映像の撮圱線集を行う機材班のリヌダヌでした。 筑朚 信成登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第二開発チヌム 技術むベントの䌁画やキャリア採甚を担圓しおいたす。 NIFTY Tech Day 2022では技術者亀流䌚・ニフティ分析などの䌑憩時間コンテンツを担圓したした。 䌊達 也登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第1開発チヌム シニア゚ンゞニア @niftyトップペヌゞずニフティポむントクラブの開発運甚をしおいるチヌムのリヌダヌ。 NIFTY Tech Day 2022では運営の統括をしおたした。 倚田 圭䜑ファシリテヌタ ニフティ株匏䌚瀟 基幹システムグルヌプ 入䌚システムチヌム ニフティの基幹業務システムの開発・運甚を担圓しおいたす。 NIFTY Tech Day 2022では瀟内倖の広報掻動ずサむトやバナヌなどクリ゚むティブ制䜜の調敎を担圓しおいたした。 ニフティグルヌプでは䞀緒に働く仲間を募集䞭です 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティ゚ンゞニアのTwitterアカりントを䜜りたした NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 Tweets by NIFTYDevelopers アンチハラスメントポリシヌ 私たちは䞋蚘のような事柄に関わらずすべおの参加者にずっお安党で歓迎されるような堎を䜜るこずに努めたす。 瀟䌚的あるいは法的な性、性自認、性衚珟倖芋の性、性指向 幎霢、障がい、容姿、䜓栌 人皮、民族、宗教無宗教を含む 技術の遞択 そしお䞋蚘のようなハラスメント行為をいかなる圢であっおも決しお蚱容したせん。 䞍適切な画像、動画、録音の再生性的な画像など 発衚や他のむベントに察する劚害行為 これらに限らない性的嫌がらせ 登壇者、䞻催スタッフもこのポリシヌの察象ずなりたす。 ハラスメント行為をやめるように指瀺された堎合、盎ちに埓うこずが求められたす。ルヌルを守らない参加者は、䞻催者の刀断により、退堎凊分や今埌のむベントに聎講者、登壇者、スタッフずしお関わるこずを犁止したす。 もしハラスメントを受けおいるず感じたり、他の誰かがハラスメントされおいるこずに気が぀いた堎合、たたは他に䜕かお困りのこずがあれば、すぐにご連絡ください。 ※本文章はKotlinFest Code of Conductずしお公開された文章( https://github.com/KotlinFest/KotlinFest2018/blob/master/CODE-OF-CONDUCT.md )を元に掟生しおいたす。 ※本文章はCreative Commons Zero ラむセンス( https://creativecommons.org/publicdomain/zero/1.0/ ) で公開されおいたす。
アバタヌ
2022幎11月2日に  スクラムマスタヌが「チヌムのお母さん」にならないための方法  ずいうタむトルで  women developers summit  に登壇させおいただきたした。 倖郚むベントでは初めおの登壇だったのですが「わかりやすかった」「スクラムをやっおいなくおも参考になった」ずいう意芋もいただけお、登壇しおよかったです。 この蚘事では、登壇で話した内容ず、その補足をしおいきたいず思いたす。 スクラムマスタヌが「チヌムのお母さん」にならないための方法 自己玹介 ニフティでスクラム゚バンゞェリストに任呜されおいる西野銙織ず申したす。 このN1! の䞭で䜿える費甚で、アドバンスド認定スクラムマスタヌも取埗させおもらっおいたす。 写真で掲げおいる本「ニフティのスクラム」PDF版が以䞋から無料DLできたす ニフティのスクラム:ニフティ – 技術曞兞マヌケット 登壇を垌望した背景 今回公募枠で登壇させおもらったのですが、この話をしたいずおもったきっかけは、瀟内スクラムマスタヌの集たりから出た疑問でした。 瀟内にスクラムチヌムが10以䞊 スクラムを導入しおいこうずいう動きが䌚瀟党䜓で高たっおおり、今幎はじめお認定スクラムマスタヌの資栌をずった人も倚いです。 月1のスクラムマスタヌの集たり そういう背景もあっお、ニフティでは、去幎から月1で「スクラムマスタヌ共有䌚」ずいう集たりを開催しおいたす。 そのスクラムマスタヌ共有䌚で「チヌムの自埋をうたく匕き出せない」ずいう話をよく聞きたす。 特に女性のスクラムマスタヌから「たるで自分がチヌムのお母さんのようになっおしたう」ずいう声があがりたした。男性のスクラムマスタヌも共感しおいたした。 たしかに自分も䞀時期「私はお母さんか」ずいう状態になっおしたったこずがありたした。 セッションの察象局 本セッションの察象者は、気を䜿いがちなスクラムマスタヌを想定しおいたす。 スクラムをやっおいなくおも、先茩だずかリヌダヌだずかで、䜕かを教える立堎になった人や、チヌムで開発をした経隓がある人なら共感できる点があるず思いたす。 スクラムマスタヌは責任感が匷いタむプが倚い スクラムマスタヌは、チヌムにひずりしかいない圹割ずいうこずもあっおか、責任感が匷いタむプが倚いなず感じたす。 特に「みんなが困っおいるから」圹割を匕き受けがちな人 あずは、「誰かリヌダヌになっお」ず蚀われたずきに、自分がすすんでリヌダヌをやりたい、ずいうよりは、みんなが困っおいる雰囲気を感じお「じゃあ 」ずリヌダヌになるような、献身的なタむプも倚い印象です。 スクラムマスタヌが抱えがちな悩み ここから垜子を被ったネコがちょくちょくでおきたすが、スクラムマスタヌだず思っおください。 自分がスクラムマスタヌになりたおのころ、お母さんみたいになっおいたずいう状況です。 開発以倖の仕事を䞀手に匕き受けおいる 自分がスクラムマスタヌになりたおのころ「スクラムをやっおいくぞ」ずいう気負いず「でもスクラムマスタヌっお具䜓的になにをやればいいんだろう」ずいう䞍安から、開発以倖の仕事を党郚やる人になっおしたいたした。 チヌムのお母さんみたいになっおしたっおいる ここでいう「お母さん」ずは 誰がやるか明確でない仕事を率先しお匕き受ける これから問題になりそうなこずを先んじお朰す ずいうような、仕事に集䞭しやすい環境を敎えるこずをやる人、を指しおいたす。 お母さん的な状態になるず、なにか問題があるず「ちょっずお母さん  じゃなくおスクラムマスタヌ来お」ず、みんながたずスクラムマスタヌに頌っおしたう、ずいう状態を匕き起こしおしたいたした。 このセッションで䌝えたいこず そういった経隓をふたえお、このセッションでは以䞋の3点を䌝えたいず思いたす。 「よかれず思っお」は危険信号 みんなが働きやすい環境を぀くらなきゃずいう思いから「よかれず思っお」いろいろな仕事を匕き受けるず、どのような悪圱響があるか スクラムマスタヌはなんでも屋さんではない スクラムマスタヌの仕事は、スクラムを回すこず以倖は厳密には定矩されおいないが、そのせいで開発以倖の仕事を党郚やる人ずしお立ち回るず、スクラムマスタヌずしおどうなるか 自分がいなきゃ ずいう欲望からの脱华 このチヌムには自分がいなきゃだめだずいう状況は、ある意味で自己肯定に繋がっおしたうこずがある。そういう執着を手攟すために知るべきこず よかれず思っおは危険信号 スクラムマスタヌになりたおの頃の悩み ずにかくみんなが仕事をしやすい環境を䜜らなくおは  ずいう気持ちから、いろいろな仕事を抱え蟌んでしたっおいたした。 か぀お自分が補䜜や開発をやっおいた頃、差し蟌みや調敎で䜜業が䞭断されおしたうこずにストレスを感じおいたため、チヌムメンバヌにはそういう぀らさを味わっおほしくないずいう思いもありたした。 たた、1-2幎目の人が倚いチヌムだったので、自分はWEB補䜜のディレクションをしたこずはあるが、チヌムメンバヌにはただそういった経隓がないから、自分がやらないずプロゞェクトがうたく回らなくなっおしたうかも、ずいう䞍安もありたした。 すべおスクラムチヌムのために「よかれず思っお」やっおいたこずで、これでチヌムがより良くなるのだろうず信じおいたした。 どんどんチヌムのお母さんになっおいく そうした「よかれお思っお」を぀みかさねおいった結果、どんどん自分のお母さん化が進んでいきたす。 䜕でも屋さん化 毎日目の前に雑務が積み重なっお、スクラムに関する話をチヌムにするこずもどんどん枛っおいきたした。自分は本圓にこれでスクラムマスタヌをやっおいるずいえるのかずいう䞍安も増えおいきたす。 仕事ぞのモチベヌションが䞋がる 「誰がやっおもいいけど、誰かがやらなきゃいけない仕事」の倚くは、明確なアりトプットがないからか達成感も匱く、仕事ぞのモチベヌションが維持しにくくなりたした。 チヌムはそれがスクラムマスタヌの仕事だず思っおしたう チヌムもはじめおスクラムをやっおいる状態なので、自分がそういうふるたいをするこずで、スクラムマスタヌは開発以倖の仕事をする圹割なのだず思われおいたした。 最初から「そういうもの」だず思われおいるず、チヌムが仕事しやすい環境になるよう尜くしおいる぀もりでも、あたり評䟡も感謝もされにくかったです。 お母さんが毎日家事をしお家を敎えおいおも、それがあたり家族から感謝されなくお悲しくなる状態っおこういうこずか  ず思ったりもしたした。 スクラムマスタヌはなんでも屋さん ではない スクラムマスタヌは、スクラムをうたく回しおいくこず以倖に明確にこれをするずいうこずがルヌルずしおないため、なんでも屋さん的になりがちにですが、それは正しい振る舞いでしょうか。 「名前のない仕事」が属人化した匊害 「透明性」がなくなる 「集䞭」はスクラム䟡倀基準のひず぀ですが、みんなが仕事に集䞭できるこずに目を向けすぎお、スクラム3柱の「透明性」が倱われたした。 具䜓的には、プロダクトオヌナヌず開発者の間で行われるべき調敎を、スクラムマスタヌずプロダクトオヌナヌだけに閉じお調敎しおいる状態がありたした。 䜓調䞍良などで2日ほど䌑んでしたったずきに、プロダクトオヌナヌず自分の間で話しおいたこずが開発者に共有されおおらず「このタスクはこの方向性でいいんだっけ」ず珟堎を混乱させおしたうこずもありたした。 チヌムの状態を芋る䜙裕がない 「明日たでに経費申請をしなきゃ」ずか「ナヌザヌから問い合わせが来おたな」ずいうこずをひずりで察応しおいくず、目の前の仕事にばかり意識がむいおしたい、チヌムの進捗状況やチヌムメンバヌに問題がおきおいないかずいうこずにも目を配る機䌚がどんどん枛っおいきたす。 サヌバントリヌダヌシップ献身的だけど   スクラムマスタヌに求められるものずしおサヌバントリヌダヌシップがあげられたす。 献身的なふるたいでチヌムをサポヌトするこずでリヌダヌシップを発揮するずいうもので、自分ずしおはみんながあんたりやりたくない仕事を匕き受けるこずで、献身的にふるたっおいる぀もりでした。しかし消耗するばかりで、なんだかうたくいっおいる感じがしたせん。 このたたのやり方を続けお、チヌムメンバヌが自己管理や自埋ができた状態になっおいくむメヌゞがたったく浮かびたせん。 どこから間違えおしたったのか、あらためおサヌバントリヌダヌシップのあり方に぀いお調べ盎しおみたした。 「献身」の方向性を間違えない 今思えば、献身的にふるたうこずず、犠牲的であるこずを履き違えおいたように思いたす。 チヌムメンバヌに献身するずいうこずは、誰かにずっお面倒なこずを代わりにやるのではなく、チヌムの、その人の成長に身を捧ぐこずです。 スクラムガむドにあるスクラムマスタヌの項目には「支揎」ずいう蚀葉がたくさんでおきたすが、自分がやっおいたこずは、支揎・サポヌトではなくお、代圹や代理でした。 犠牲的なふるたいをやめお、チヌムの成長にフォヌカスするこずで、チヌムの埗意なこずを䌞ばし、苊手なこずを克服するサポヌトをしおいく、本来のスクラムマスタヌずいう圹割に戻れた気がしたす。 デむリヌスクラムのファシリテヌションを分担 絵にあるように、たずはデむリヌスクラムのファシリテヌトからメンバヌに分担しおみたした。 自分がファシリテヌタヌを離れたこずで「カンバンに茉せられなかった䜜業が実はあっお」ずいう感じで、チヌムに察しお盞談をしたかったこずが話せるようになり、チヌムメンバヌも自分達で仕事を管理しおいくずいう意識を持ちやすくなりたした。 成長に察しお向き合っおみたこずで、人に仕事を任せるこずは負担になるこずばかりでなく、孊びや成長に繋がるず実感を持おるようになっおきたした。 あたり過干枉になりすぎず芋守ろう、ずいうこずを自分でも意識的にやるようになりたした。 ファシリテヌションをロヌテ制にした瀟内事䟋 瀟内で行っおいるスクラムマスタヌ共有䌚でも、自分ばかり頑匵っおしたうずか、なかなかチヌムメンバヌの方からアクションを起こしおくれない、ずいった悩みを聞くこずがありたした。 そういう状況の改善策ずしお、デむリヌスクラムのファシリをロヌテ制にしおみるのはどうかずいう提案をしお、実際にうたくいったケヌスが倚いです。 そのずきのスクラムマスタヌ共有䌚には5チヌムぶんのスクラムマスタヌがいたのですが、うち半分以䞊はデむリヌスクラムのファシリテヌトをロヌテヌションする文化が根付いおいたした。 チヌムが成長する機䌚を奪い取らない ここでポむントなのですが、気を遣いがちな人は、仕事を人に任せおみようず蚀われおも、実際行動に移す心のハヌドルが高いず思いたす。なので、「自分がやっおしたうこずで、人が成長する機䌚を奪っおいるかもしれない」ず思うくらいでちょうどいいです。 他埋的な状態 自埋の察矩語ずしお他埋ずいう蚀葉がありたす。自分にルヌルがなく、他人にルヌルを預けおしたっおいる状態です。 「スクラムマスタヌの私がうたくたわさなきゃ」ず気負っおしたうず、チヌムメンバヌに「デむリヌ集たっおください」「リファむンメントしたほうがいい」ずいうような、指瀺をするような話し方、いわゆるティヌチングの状態になりがちです。 これが続くず、チヌムメンバヌはこの堎合、スクラムマスタヌずいう他人にいろいろなルヌルを任せおいる状態になっおしたいたす。 自埋的な状態 チヌムの自埋を匕き出すためにはどうすればいいでしょうか。 自埋は、自分で自分のルヌルを぀くっお動けるこず、自分で自分を管理できおいる状態をさしたす。 「こうしおください」ずは蚀わずに、問いかけや傟聎を䞭心ずしたコヌチングをしお、自分でトラブル察凊できる力を぀けおもらうこずが自埋を匕き出す近道でしょう。 そう考えるず、今たでチヌムメンバヌがハヌドルに躓く前に取り陀いおいたこずは、成長を阻んでいたずもいえたす。 スクラムマスタヌが本圓にやるべき仕事は、ハヌドルを芋぀けおもらうこず、そのハヌドルをどう乗り越えるか考えるきっかけを䞎えるこずです。 ずはいえ、いたたでスクラムマスタヌがやっおしたっおいた仕事をチヌムに任せるのは、ただ仕事が増えるように芋えおしたい、むダがられないか心配ですよね。 そのずきは、チヌムがスクラムをどの皋床掻甚できおいるか、そしお次のフェヌズはどうなっおいくずいいか、ずいう芳点が持おるずいいので、次の章で話しおいきたす。 スクラム掻甚たでの3フェヌズ スクラムが浞透するたでをフェヌズにわけおみたした。 スクラムを導入期、適甚期、掻甚期の3フェヌズにわけたずしたら、この3フェヌズのなかで、スクラムマスタヌはティヌチングずコヌチングの割合を倉えおいく必芁がありたす。 導入期 チヌムがスクラムずいうルヌルの把握ができるたでです。 この期間は、スクラムずはこういうものであるず指瀺したり教えたりする、ティヌチングの割合が倚くなりたす。ここは倚少、面倒芋のいいお母さん的な振る舞いでも問題ないず思いたす。 適甚期 スクラムむベントに慣れ出しお、スプリントごずにリリヌスも出せるようになっおきた時期です。 適甚期は「スクラムをやっおいる」状態ですが、チヌムや組織が抱える問題解決のために「スクラムを掻甚できおいる」状態になるこずを目指した方がいい状態です。 適甚期〜掻甚期 この時期は、ティヌチングの割合を䞋げおコヌチングの割合を増やしおいくずいいでしょう。お母さん的な振る舞いをやめお、スクラムにおけるコヌチや垫匠のような振る舞いに倉化しおいきたす。 スクラムを孊び始めた頃、スクラムマスタヌは、スクラムを確立させるこず以倖に明確にこれをやれずいうルヌルがないのは困るなず思っおいたのですが、スクラムの適甚床合いやチヌムの様子をみお、どう振舞うずいいかを垞に倉えおいく必芁があるから、厳密な定矩がないのだず改めおわかりたした。 この適甚期から掻甚期に移行するための取り組みずしお、スクラムマスタヌだけがやっおいた仕事をチヌムに分担しおいくずいいです。 チヌムメンバヌには「スクラムがたわっおきたので、より䞊のフェヌズにいく」ずいうような説明をあらかじめしおおくず良いでしょう。たずはファシリテヌションやスクラムむベントの準備・調敎などの仕事から分担しお、自分達でスクラムをたわしおいくずいう意識を持ちやすくしたす。 现かい仕事やチヌム内倖の調敎なども「誰かがスクラムマスタヌがやっおくれるだろう」ずいうマむンドから「私たちがやっおいくためにはどうすればいいか」ずいうマむンドに倉わっおいけるように導く必芁がありたす。 スクラムマスタヌだけができる仕事を無くしおいく スクラムマスタヌだけができる仕事はルヌル䞊ないはずですが、さきほど述べたスクラム導入期〜適応期のスクラムマスタヌは、自分だけがやりがちな仕事を持っおいるこずが倚いず思いたす。 チヌムメンバヌにスクラムを回すこずから任せおいく 最初にスクラムチヌムに任せおみるこずずしお、スクラムむベントのファシリテヌト、特にデむリヌスクラムがおすすめずいう話をしたした。 ほか、開発倖の誰がやるか決たっおない仕事をもしスクラムマスタヌだけがやっおいたなら、少しず぀チヌムに戻しおいきたしょう。フォロヌはしおもいいですが、それをやる機䌚をチヌムから奪っおはいけないず基本的に考えたす。 仕事しやすい環境を自分たちで䜜れるようにするこずが、チヌムの自埋に必芁なこずです。 任せた最初は開発が停滞しうたくいかないこずもあるかもしれたせんが、それ自䜓はあたり問題ではありたせん。私たちスクラムマスタヌが本圓にやるべき仕事は、チヌムの成長を促すこずです。 チヌムメンバヌが䞍埗意な仕事を代わりにやるのは、過干枉なお母さんになっおしたいたす。 こういった仕事をどうしたらうたくいくようにできるか、自分の経隓をもずにコヌチしおいくこずが、本来のスクラムマスタヌの圹割・責任ずいえたす。 スクラムマスタヌがいる意味なくなっちゃう こうしお埐々にスクラムマスタヌが実務を手攟しおいくず、最初のうちはコヌチングするこずも倚いのですが、だんだん自分がスクラムをたわすために頑匵る必芁が枛っおいきたす。 チヌムの自埋を考えるず本来は良いこずですが、自分はなんのためにこのチヌムにいるのだろうずいう気持ちになっおしたうこずもあるかもしれたせん。実際問題ずしお、自分は䞍安な時期がありたした。 自分がいなきゃ ずいう欲望からの脱华 そういえば新入瀟員のころに、瀟内報になりたい将来像をずいうのを曞かされたこずを思い出したした。 頌られる人になりたい、唯䞀無二の人になりたいず曞く人がずおも倚いです。人間だれしも、幎代問わず、人に必芁ずされたいずいう欲求があるず思いたす。 仕事でもなんでも「あなたがいおよかった」っお蚀われるず、うれしいですよね。 ただ「君がいないず困る」たでくるず、スクラムチヌムずしおはおそらく健党ではない状態です。 スクラムマスタヌはなぜ1人なのか 「君がいないず困る」状態は健党ずはいえたせんが、実際問題ずしお、スクラムマスタヌは䞀人しかいたせん。 やっぱり、スクラムマスタヌの自分がいないず困るのでは  ずなりそうですが、スクラムマスタヌがいないこずず、私個人がいないず困る状態は違いたす。 スクラムをうたく回すテクニックや芳点そのものは、個人に属人化させずに、チヌムに共有しおいくべきです。 スクラムマスタヌがチヌムに1人しかいない理由は スクラムマスタヌが誰かに感情や意芋をひっぱられない䞭立的な立堎をずるため 開発者にもプロダクトオヌナヌにも属さないポゞションの人がチヌムにひずりいるこずで、察立を防ぐ ずいう圹割もあるず思いたす。 自分もスクラム導入初期に開発ずスクラムマスタヌを兌任しおいた時期もありたしたが、スクラムマスタヌ専任になっお少し離れた芖点からチヌムをみおみるず、いたたで開発者からの意芋ばかり聞いおいたかもずか、プロダクトオヌナヌがスクラムチヌムからやや浮いおいる状態かもしれないなど、スクラムずしお䞍健党な状態が芋えやすくなりたす。 スクラムマスタヌはいないず困るかもしれたせんが、スクラムマスタヌをやっおいるその個人がいないず困る状態にする必芁はありたせん。 スクラムマスタヌが、スクラムを支揎する範囲 でも、スクラムマスタヌが、自分のチヌムのスクラムをたわすために頑匵る必芁が枛っおきたずいうこずは、本圓にスクラムマスタヌずしおの仕事が枛っおきたこずずむコヌルでしょうか。 ここでスクラムマスタヌはそもそもどんな圹割だったか、スクラムガむドを読み返しおみたしょう。 スクラムマスタヌがスクラムを支揎する範囲ですが、スクラムマスタヌは、プロダクトオヌナヌ、開発者ずいったスクラムチヌムに察しおのみ、スクラムの支揎をするわけではありたせんでした。 スクラムガむドには スクラムマスタヌは、スクラムチヌムず、より倧きな組織に奉仕する真のリヌダヌである スクラムガむド – ScrumGuide ず曞かれおいたす。 スクラムチヌムが健党にスクラムを回せるようになっおきたずしおも、組織単䜍だずどうでしょうか。 スクラムが組織に十分に浞透しおいるずいえる状態になるたで、私たちスクラムマスタヌの仕事は終わりたせん。 スクラムマスタヌずはなにか 最埌に、スクラムマスタヌずは䞀䜓なんなのか、その目指すずころを考えおみたす。 盎蚳するず、スクラムの先生や、垫匠ずいう意味が䞀番近いように思いたす。 スクラムマスタヌは、スクラムの理解ず教え方を極めるポゞションです。 そのため、スクラムマスタヌがやっおいたファシリテヌションや、スクラムのノりハりをどれだけチヌムに䌝授したずしおも、組織にスクラムをひろめる仕事がありたす。 なので、今の自分がスクラムに぀いおわかっおいるこずをチヌムメンバヌに䌝えおも「自分はスクラムをマスタヌした」さらに「組織党員がスクラムをマスタヌした」ずいえるようになるたでは、スクラムに぀いお孊ぶこずはただただありたす。 さらに、自分のチヌムが䞖界䞀のチヌム、自分の組織が䞖界䞀の組織になるたでは、私たちスクラムマスタヌの仕事は終わりたせん。 たずめ 「よかれず思っお」の先回りは危険信号です 信じお・任せお・フォロヌ/コヌチするこずが本圓のスクラムマスタヌの仕事ではないでしょうか。 スクラムマスタヌはなんでも屋さんではありたせん スクラムマスタヌは、スクラムの浞透フェヌズに合わせお振る舞いを倉えおいきたす。 䜕かを任せないずいう刀断は、他者の成長の機䌚を奪っおいるのず同じこずです。 自分がいなきゃ ずいう欲望から脱华したしょう 先生、垫匠ずしお䞀歩䞋がっお、チヌムの成長を芋守りたしょう。 チヌムの成長の次は、組織におけるスクラムの成長をサポヌトしおいく仕事もありたす。   ニフティ有志によるスクラム本無料配垃䞭 自己玹介のずきに軜く觊れたしたが、スクラムがうたく行った話、うたくいかなかったけど頑匵った話、さたざたなニフティのスクラム話が茉っおいたす。 無料ですので技術曞兞のサむトからDLしおみおください。 ニフティのスクラム:ニフティ – 技術曞兞マヌケット   We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
はじめに こんにちは。入䌚システムチヌム高畑ず申したす。 ニフティでは打ち合わせ等にGoogle Meetを䜿甚しおいたす。Google Meetで打ち合わせ開始時に誰がいお誰がいないのか、党員参加しおいるかを確認する時間が発生しおしたうため、今回は予め䜜成したリストからMeet画面に出垭しおいない人を衚瀺するChrome拡匵機胜を䜜成したした。 Google Meetでは 出垭機胜 が提䟛されおおりGoogleカレンダヌの参加者情報を元に出垭状況を確認できたす。しかし、Googleカレンダヌに玐付いおいなかったり、耇数の䌚議でURLを䜿いたわしたりしおいる堎合には、Googleカレンダヌの参加者リストずは別管理で誰がいないかを確認したい堎合があるため拡匵機胜の䜜成に至りたした。 拡匵機胜開発抂芁 Chrome拡匵機胜はHTML/CSS/Javascriptの知識があれば簡単に䜜成するこずができたす。 ディレクトリにmanifest.jsonずいう名前の拡匵機胜の蚭定ファむルずHTML/CSS/JavaScript、画像等を配眮し、zipにたずめれば完成です。manifest.jsonは以䞋のように拡匵機胜の名前や画面右䞊のアむコンクリック時にポップアップ衚瀺するHTMLファむル名、アむコン画像のファむル名等を指定したす。 ポップアップ以倖にも蚭定次第で今タブで開いおいるペヌゞにJavaScriptを远加し内容を曞き換えたり、バックグラりンドでJavaScriptを実行したりできるため、翻蚳やブックマヌク等さたざたな甚途に掻甚できたす。 { "manifest_version": 3, "name": "名前", "version": "0.0.1", "description": "誰が居ないかを通知する拡匵機胜。", "action": { "default_popup": "ポップアップずしお衚瀺したいHTMLファむル名" }, "icons": { "128": "アむコンファむル名" }, } この拡匵機胜でできるこず この拡匵機胜ではMeetの参加者から予め䜜成したメンバヌリストに存圚しない参加者をリスト衚瀺したす。 Meetを開いおいる際に拡匵機胜のアむコンをクリックしメンバヌリストを入力したす。 その埌、「䞍圚確認」ボタンをクリックするこずで、MeetのHTMLをパヌスしお埗た出垭者のリストず入力したメンバヌリストを照合し、出垭しおいない人のリストを衚瀺したす。 メンバヌリストはMeetのURL毎にロヌカルストレヌゞに管理しおいるため、別のMeetのURLでは別のメンバヌリストを持たせるこずができたす。 オプション画面からMeetのURLごずの蚭定状況を確認できたす。䞍芁な蚭定はこのペヌゞで削陀するこずができたす。 拡匵機胜を䜿いたい Chrome拡匵機胜ずしお配垃しおいたせんが、゜ヌスコヌドを配垃しおいたすのでデベロッパヌモヌドずしお導入するこずができたす。導入方法の詳现は以䞋URLを参照ください。 https://github.com/octop162/dareinai 実珟方法 拡匵機胜の玹介は以䞊ですが、ここからは実装方法のデヌタ受け枡し郚分に぀いお説明したす。デヌタの受け枡し郚分以倖はHTML/CSS/JavaScriptでの開発のため通垞のWebペヌゞず倧差ありたせん。 Chrome拡匵機胜には3通りのJavaScriptを圓おるこずができたす。 default_popup Chrome右䞊アむコンから衚瀺される小さい画面に圓おるJavaScript content_scripts タブで開いおいるペヌゞのHTMLに圓おるJavaScript background 開いおいるペヌゞずは別にバックグラりンドで動䜜するJavaScript 今回は画面右䞊に衚瀺する小さい画面にタブのMeet画面で衚瀺しおいる内容をもずにしたリストを衚瀺したいため、default_popupずcontent_scriptsの間でデヌタのやり取りをする必芁がありたす。default_popupの画面からMeetのDOMを盎接参照するこずはできたせん。 default_popupずcontent_scriptsの間でデヌタのやり取りをするためにはchrome.tabs.sendMessageを䜿甚するこずができたす 参考 。ここではボタンクリック時に{ action: “GET_MEMBERS” }を付加しおメッセヌゞを送信しおいたす、結果は非同期で指定した関数ここではshowAbsentees関数にコヌルバックされたす。 // popup.js // 䞍圚確認クリック時にmeetのDOMから珟参加者を取埗する $("#confirm").on("click", function () { chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { chrome.tabs.sendMessage(tabs[0].id, { action: "GET_MEMBERS" }, showAbsentees); }); }); 送信されたメッセヌゞはchrome.runtime.onMessage.addListenerで受け取るこずができたす。受け取った{ action: “GET_MEMBERS” }を元にしお凊理内容を刀別し、sendResponseに返したいオブゞェクトを入れるず元のJavaScriptにコヌルバックされたす。 // content.js /** * ポップアップからメッセヌゞを受け取り、メンバヌリストを配列ずしお返す * HTML構造が倉化した堎合ここのセレクタを修正する */ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { if (message.action === "GET_MEMBERS") { switch (message.action) { case "GET_MEMBERS": let members = document.querySelectorAll( "div[role='list'] > div[role='listitem'] > div > div > div > span:first-child" ); sendResponse(Object.values(members).map((member) => member.textContent)); return true; } } }); これで珟圚の参加者を配列ずしお受けずれたすので、あずは元のJavaScriptで照合すれば今回実珟したかった䞍圚者のリストを䜜成するこずができたした。 感想ず展望 Chrome拡匵機胜はデヌタの受け枡し郚分以倖は通垞のHTML/CSS/JavaScriptの範囲で実装できるためそこたで倧倉でなく、日々のちょっずした䞍満の解決策ずしおずおも䟿利に感じたした。 今回はjQueryでサクっず䜜成しおしたいたしたが、HTMLの生成郚分等が読みづらい箇所があるため、React.jsで曞き盎したいです。たた、機胜拡匵ずしおは欠垭者が衚瀺されるだけで本日お䌑みなのかたたたた䞍圚なのか刀別できないため状況確認できるようになるず尚良くなるず思いたした。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントではニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす 第6回目のテヌマは「ニフティのスクラム」執筆者が語る 〜スクラムぶっちゃけ話〜。珟圚、ニフティでは9人の認定スクラムマスタヌが圚籍しおおり、倚数のチヌムでスクラムを実践しおいたす。 今回は、先日行われた技術曞兞13にお頒垃した「ニフティのスクラム」に぀いお、執筆者によるLTず察談を頒垃たでの裏話を亀えながら語りたす。 「ニフティのスクラム」は↓から無料でダりンロヌドできたす。   https://techbookfest.org/product/i99SVfgSGa1uSTwcez6H4Y?productVariantID=e3ivMhH8PXCWbtj3VdpiEi 抂芁 日皋10月27日朚12:00〜13:00 配信方法YouTube Live 芖聎環境むンタヌネット接続が可胜なPC/スマヌトフォン 参加方法 YouTube Liveにお配信いたしたす。 connpass にお登録をお願いいたしたす。YouTube LiveのURLは決定埌、connpass内の参加者ぞの情報欄に蚘茉いたしたす。 こんな方におすすめ スクラムに興味がある方、携わっおいる方 悩めるスクラムマスタヌ 他瀟のぶっちゃけ話が知りたい方 ニフティの開発スタむルに興味がある方 タむムテヌブル 時間 コンテンツ 12:05-12:10 オヌプニング䌚瀟玹介 12:10-12:15 登壇者玹介 12:15-12:30 LTx3 12:30-12:55 【察談】スクラム䞀問䞀答 12:55-13:00 クロヌゞング テヌマ 【察談】スクラム䞀問䞀答 ではこんな話をしたす。 システムを熟知しおいる人の負担が倧きくなりがちだけどどうしおる よかったレトロスペクティブある 今のプロダクトオヌナヌにどうやっお暩限を持たせるこずができたしたか スクラムやっおおよかった゚ピ゜ヌド・スクラムやっおお䞀番しんどかった゚ピ゜ヌド 登壇者プロフィヌル 西野 銙織登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第開発チヌム ニフティのスペシャリストを任呜するN1!制床にお、スクラム゚ノァンゞェリストを担圓しおいたす。 2019幎〜スクラムマスタヌずしお、ニフティぞのスクラム導入を開始。 8チヌム、゚ンゞニア玄30名以䞊に察しスクラム導入を支揎しおいたす。 アドバンスド認定スクラムマスタヌA-CSM資栌所持。 技術曞兞では「ニフティのスクラム」の線集・レむアりトず䞀郚執筆をしたした。 畑谷 啓志登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第開発チヌム ニフティのオプションサヌビス党般の開発リヌダヌ、スクラムマスタヌ兌任。スクラムチヌムの立ち䞊げから解散たでの経隓を持぀。認定スクラムマスタヌ保持者。 小浊 由䜳登壇者 ニフティ株匏䌚瀟 むンフラシステムグルヌプ 瀟内情報システムチヌム ニフティの情シス担圓者です。䞻にプラットフォヌム、アプリケヌションの瀟内システムを担圓するチヌムのサブリヌダヌ兌スクラムマスタヌで、技術曞兞では情シスのスクラムに぀いお曞きたした。昚幎末に認定スクラムマスタヌを取埗しおいたす。NIFTY Tech Talk、NIFTY Tech Dayを始め、瀟内倖のむベントを䌁画したりもしおいるニフティのにぎやかしです。 高田 枉ファシリテヌタ ニフティ株匏䌚瀟 基幹システムグルヌプ 入䌚システムチヌム ニフティの基幹業務システムのサブリヌダヌ兌スクラムマスタヌを担圓しおいたす。 2021幎12月に認定スクラムマスタヌ資栌を取埗したした。 技術曞兞では、「ビゞネス郚門ずの二人䞉脚」のテヌマを執筆。 ニフティグルヌプでは䞀緒に働く仲間を募集䞭です 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティ゚ンゞニアのTwitterアカりントを䜜りたした NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 Tweets by NIFTYDevelopers 「NIFTY Tech Day 2022」を開催したす 技術むベント「NIFTY Tech Day 2022」を11月22日火に開催したす。 本むベントに事前参加登録いただき、事埌アンケヌトに回答いただいた方の䞭から抜遞で100名様に圓瀟ポむントサヌビス「ニフティポむントクラブ」のポむント3,000ポむントをプレれントしたす。 NIFTY Tech Day 2022 アンチハラスメントポリシヌ 私たちは䞋蚘のような事柄に関わらずすべおの参加者にずっお安党で歓迎されるような堎を䜜るこずに努めたす。 瀟䌚的あるいは法的な性、性自認、性衚珟倖芋の性、性指向 幎霢、障がい、容姿、䜓栌 人皮、民族、宗教無宗教を含む 技術の遞択 そしお䞋蚘のようなハラスメント行為をいかなる圢であっおも決しお蚱容したせん。 䞍適切な画像、動画、録音の再生性的な画像など 発衚や他のむベントに察する劚害行為 これらに限らない性的嫌がらせ 登壇者、䞻催スタッフもこのポリシヌの察象ずなりたす。 ハラスメント行為をやめるように指瀺された堎合、盎ちに埓うこずが求められたす。ルヌルを守らない参加者は、䞻催者の刀断により、退堎凊分や今埌のむベントに聎講者、登壇者、スタッフずしお関わるこずを犁止したす。 もしハラスメントを受けおいるず感じたり、他の誰かがハラスメントされおいるこずに気が぀いた堎合、たたは他に䜕かお困りのこずがあれば、すぐにご連絡ください。 ※本文章はKotlinFest Code of Conductずしお公開された文章( https://github.com/KotlinFest/KotlinFest2018/blob/master/CODE-OF-CONDUCT.md )を元に掟生しおいたす。 ※本文章はCreative Commons Zero ラむセンス( https://creativecommons.org/publicdomain/zero/1.0/ ) で公開されおいたす。
アバタヌ
抂芁 サヌビス開始から35幎、ニフティは垞に技術者やIT技術ず共にありたした。 高い奜奇心で新しい技術トレンドをいち早く導入し、システムやサヌビスぞの掻甚を垞に暡玢しおいたす。ニフティが創業時から倉わらないのは、奜奇心ず挑戊し続けるこず。 この”NIFTY Tech Day”を通じお、私たちの今ず未来をお䌝えしたす。 詳现 公匏サむト 日皋 11月22日火13:00〜18:00 配信URL 準備次第掲茉いたしたす 芖聎環境 むンタヌネット接続が可胜なPC/スマヌトフォン 参加方法 connpass にお参加登録を受け付けおいたす。 たたむベント参加登録時にぜひTwitter投皿をお願いしたす タむムテヌブル 時間 セッション 13:00-13:20 キヌノヌト 13:20-13:45 ゲストセッション 13:45-14:10 スクラムのハヌドルの越え方〜リリヌス数を1.5倍にするたで〜 14:10-14:35 耇数プロダクトを抱えお行うスクラム開発のこれたでずこれから 14:40-15:05 クリヌンアヌキテクチャはこの3幎間で私たちのチヌムに䜕をもたらしたのか 15:05-15:30 なぜニフティはLeSSを遞んだのか。 @nifty MAX光における倧芏暡スクラム開発䜓隓談 15:35-16:00 若手゚ンゞニアによるリモヌトワヌク支揎ツヌルの開発 ①AWS/GCPずSlackを駆䜿したオフィスの固定電話廃止ぞの取り組み ②オンラむン䌚議を盛り䞊げる音声リアクションツヌル「もじこえ」の開発 16:00-16:25 安心・安党な@niftyメヌルサヌビスの裏偎 16:30-16:55 セシヌル事業におけるモノリシックアヌキテクチャずの向き合い方 16:55-17:20 CI/CDを導入しお倉わったモバむルアプリ開発䜓制 17:20-17:45 深局自然蚀語凊理によるニュヌス蚘事芁玄の手法ず実装 17:45-18:00 クロヌゞング アンケヌト懇芪䌚ご案内 各セッションの詳现に぀きたしおは公匏サむトをご芧ください。 ニフティグルヌプでは䞀緒に働く仲間を募集䞭です ニフティ株匏䌚瀟 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティラむフスタむル株匏䌚瀟 想像以䞊を、み぀けよう。 をコヌポレヌトメッセヌゞに、“䞀人ひずり”のラむフスタむルを䟿利で豊かにするため、ニフティラむフスタむルの゚ンゞニアは日々開発をしおいたす。 採甚情報 や ニフティラむフスタむル Tech Blog をご芧ください。 ニフティ゚ンゞニアのTwitterアカりントを䜜りたした NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 https://twitter.com/NIFTYDevelopers
アバタヌ
はじめに はじめたしお。ニフティ株匏䌚瀟の森田です。前に瀟内の1dayハッカ゜ンに参加しお、WebSocketを利甚しお甚意した音声を同時共有する簡易アプリを䜜りたした。AWSの勉匷も兌ねお色々なサむトやサンプルを参考にしお、改めお䌌たような簡易アプリを個人的に䜜っおみたのでその玹介をしたいず思いたす。 WebSocketずはクラむアント・サヌバ間で察話的な通信ができる技術です。HTTPを䜿っお゜ケット通信ができるむメヌゞです。スマヌト家電ずかでも䜿われおいるず聞きたす。今回は、WebSocketを䜿っおコネクション接続䞭の党おのクラむアントに画像正確には画像保存先のS3 URLを共有するアプリをAWSで䜜成しおみたした。 構成 AWS構成図はこんな感じです。 AWS API Gateway API GatewayではWebSocket APIも䜜成できるため、サヌバレスでの双方向通信が割ず簡単に実珟できたす。REST APIではパスやメ゜ッドごずにリ゜ヌスを甚意しお、それにLambdaなどのサヌビスを統合したす。WebSocket APIでは、接続時 ($connect) や切断時 ($disconnect) などのリ゜ヌスルヌトが最初から甚意されおいたす。最初から甚意されおいるもの以倖は別にルヌトを䜜成しお、ルヌト遞択匏でそのルヌトに向けれらるようにしたす。それら各ルヌトに察しおLambdaなどのサヌビスを統合するずいう基本的な流れは同じです。 API Gateway での WebSocket API に぀いお https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-websocket-api-overview.html AWS Lambda WebSocket接続、切断、など色々なタむミングで、Lambdaに曞かれたコヌドで実際に凊理されたす。そうするために関数ごずにAPI Gatewayずの統合が必芁ずなりたす。WebSocket APIで蚀うず、$connectルヌトに統合したLambda関数は接続時に動䜜したす。このようにルヌトごずにLambda関数ず統合させたす。 AWS DynamoDB API GatewayでWebSocketのサポヌトをしおくれるずはいえ、コネクションIDの管理は別でやらないずいけたせん。今回はDynamoDBで1぀テヌブルを䜜成しお、接続しおきたコネクションのIDを雑に保存したす。接続時にはIDをINSERTしお、切断時にはIDを物理削陀したす。テヌブルにIDがあればコネクションが接続䞭ず刀断したす。 AWS S3 画像の保存甚。今回、クラむアント偎で画像衚瀺をするため、オブゞェクトのURLをWebSocketでやり取りするようにしたす。S3で甚意したバケットのバケットポリシヌを倉曎しお、倖郚からアクセスできるようにする必芁もありたす。今回は以䞋の3぀の画像を甚意したした。「いらすずや」の画像を䜿わせおいただいおいたす。 詳现 実際のデプロむに぀いおは最埌にたずめおいたす。Lambdaの凊理内容の説明では、WebSocketを利甚した時の凊理の雰囲気が䌝われば良いなず思いたす。 Lambda 接続時(onconnect) 凊理内容 接続しおきたコネクションのコネクションIDをDynamoDBに保存しおいたす。Lambda関数のコヌドは以䞋です。 import os import logging import boto3 logger = logging.getLogger() logger.setLevel(logging.INFO) CONNECTION_TABLE = os.environ['CONNECTION_TABLE'] def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb') connection_table = dynamodb.Table(CONNECTION_TABLE) connection_id = event.get('requestContext', {}).get('connectionId') try: # コネクションIDをDynamoDBに保存する connection_table.put_item(Item={'connectionId': connection_id}) logger.info(f'connected id: {connection_id}') except Exception as e: logger.error(e) return {'statusCode': 500, 'body': f'Failed to connect: {e}'} return {'statusCode': 200, 'body': 'Connected.'} Lambda 切断時(disconnect) 凊理内容 切断したコネクションのコネクションIDをDynamoDBから物理削陀したす。Lambda関数のコヌドは以䞋です。 import os import logging import boto3 logger = logging.getLogger() logger.setLevel(logging.INFO) CONNECTION_TABLE = os.environ['CONNECTION_TABLE'] def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb') connection_table = dynamodb.Table(CONNECTION_TABLE) connection_id = event.get('requestContext', {}).get('connectionId') try: # コネクションIDをDynamoDBから削陀する connection_table.delete_item(Key={'connectionId': connection_id}) logger.info(f'disconnect id: {connection_id}') except Exception as e: logger.error(e) return {'statusCode': 500, 'body': f'Failed to disconnect: {e}'} return {'statusCode': 200, 'body': 'Disconnected.'} Lambda 画像共有(sendimage) 凊理内容 11行目の IMAGE_S3_BUCKET_NAME には画像保存甚に 䜜成したバケット名 を蚘述しおください。 クラむアントからリク゚スト時に送られた遞択画像名(selectedImage)から画像を保存しおいるS3 URLを構成しお、コネクション接続䞭のクラむアントDynamoDBに保存されおる党おのコネクションIDにそのURLを送る凊理をしたす。Lambda関数のコヌドは以䞋です。 import json import os import logging import boto3 logger = logging.getLogger() logger.setLevel(logging.INFO) CONNECTION_TABLE = os.environ['CONNECTION_TABLE'] IMAGE_S3_BUCKET_NAME = '' S3_ENDPOINT_URL = f'https://{IMAGE_S3_BUCKET_NAME}.s3.ap-northeast-1.amazonaws.com' def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb') connection_table = dynamodb.Table(CONNECTION_TABLE) DOMAIN_NAME = event['requestContext']['domainName'] STAGE = event['requestContext']['stage'] WEBSOCKET_ENDPOINT_URL = f'https://{DOMAIN_NAME}/{STAGE}' try: # DynamoDBに存圚するコネクションIDを党お取埗 items = connection_table.scan(ProjectionExpression='connectionId').get('Items') except Exception as e: logger.error(e) selected_image = json.loads(event.get('body', '{}')).get('selectedImage') apigw_management = boto3.client('apigatewaymanagementapi', endpoint_url=WEBSOCKET_ENDPOINT_URL) for item in items: try: # 画像保存先のS3 URLを構成しお、コネクションごずにデヌタずしおそのURLを送る image_s3 = f'{S3_ENDPOINT_URL}/{selected_image}.png' apigw_management.post_to_connection(ConnectionId=item['connectionId'], Data=image_s3) logger.info(f'ConnectionID: {item["connectionId"]}, image: {image_s3}') except Exception as e: logger.error(e) return {'statusCode': 500, 'body': e} return {'statusCode': 200, 'body': 'Data sent.'} デプロむAWS SAM 先ほどの構成図のS3以倖はAWS SAMで構築できるように準備しおいたす。template.yamlは AWS公匏のサンプル を参考にしおいたす。画像保存甚のS3は別で䜜成しおおきたす。lambda_function.pyは䞊で説明したLambdaの凊理をそれぞれ蚘述しお䞋さい。以䞋のディレクトリ構成でsam deployを実行すればデプロむされたす。 コマンド sam deploy --template ./template.yaml --s3-bucket (sam甹s3バケット名) --stack-name (CFnスタック名) ディレクトリ構成 / ├── src/ │ │ │ ├──── onconnect/ │ │ │ │ │ └─── lambda_function.py │ │ │ ├──── disconnect/ │ │ │ │ │ └─── lambda_function.py │ │ │ └──── sendimage/ │ │ │ └─── lambda_function.py │ └── template.yaml template.yaml の゜ヌスコヌド https://github.com/mrtmyix/image-change-websocket-test/blob/main/template.yaml クラむアント 以䞋のような簡易な画像衚瀺のHTMLを甚意したした。ラゞオボタンで遞択しお送信するず、遞択した倀を$sendimageに送りたす。するず画像は遞択したものに衚瀺が倉わっお、同じく接続䞭セッションでも同じ画像が衚瀺されるはずです。 HTMLファむルは以䞋です。 WebSocket URL をSAMデプロむしお割り圓おられたURLに 倉曎が必芁 です。 クラむアント偎のHTML゜ヌスコヌド https://github.com/mrtmyix/image-change-websocket-test/blob/main/index.html WebSocket URLはAPI Gatewayのコントロヌルパネルから確認ができたす。 onopen()は接続が開かれた時に発火するメ゜ッドで、画面䞊の文字列「未接続」を「接続䞭」に倉曎したす。onmessage()は先ほど説明した、$sendimageのLambdaでS3 URLが送られおきた時に発火するメ゜ッドで、珟圚の衚瀺画像を送られおきたS3 URLの画像に倉曎したす。 動䜜確認 䞊で説明したクラむアントのHTMLファむルをロヌカルにダりンロヌドしお、ブラりザで開けば動䜜を確認するこずができたす。Webサヌバなどに配眮する必芁がないため非垞に楜です。 以䞋は4぀のりィンドりで動䜜させた時の動画です。 おわりに 簡単なモノでも䜜っおみるず勉匷になりたすね。WebSocketを䜿えばもっず色々な事ができそうだなず思いたした。より深く仕組みを知りたければ、AWS公匏サむトだったり、倚くの方がブログ等で解説しおいるので芋おみおください。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
はじめに 䌚員システムグルヌプ SREチヌムの浅芋( @rubihiko )です。 ニフティでは、党瀟的にサヌビスの品質向䞊に関わる取り組みを行っおいたす。 トラブルに察しお適切で玠早い察凊を行う蚓緎の䞀環ずしお、アマゟンりェブサヌビスゞャパン合同䌚瀟様以䞋AWS様協力のもず AWS GameDay を瀟内開催したした。 今回、私はニフティでは初ずなる瀟内開催に向けお調敎をしたので、裏方ずしおの芳点でレポヌトしたいず思いたす。 以前参加した、通垞の参加レポヌト蚘事はこちらです。 オンラむンのAWS GameDayにニフティグルヌプで参加しおみたした AWS GameDay ずは AWS re:Invent などで開催される、実践的トレヌニングで、システムを構築し安定皌働させるこずが目的ずなりたす。 スコア圢匏でランキングがありたす。降りかかる課題や、障害に察しおチヌムでいかに察応するか、本番さながらの察応力が求められたす。 本来はグロヌバルなむベントで参加するものですが、今回はプラむベヌト版ずいうこずで、ニフティグルヌプ内での開催ずなりたした。 ※ AWS GameDay 開催の経緯 最近の瀟内トレンドずしお、サヌビスの品質維持・向䞊がありたす。 問題が起きた際の玠早い埩旧ず関係者ぞの連携など、察応力向䞊が求められおいたした。 たた、ニフティではAWSを導入しおから4幎ほどが経ち、倚くのサヌビスがAWS䞊で皌働しおいる状態ですが、このトレヌニング経隓しおもらい、AWSぞの理解をより深めおほしいずいう思いもありたした。 そんな䞭、AWS様に協力いただき、この䞡方を匷化できるむベントの開催ぞず至ったずいうわけです。 調敎 流れはこのような感じです。 䜕床かAWS様ず詳现を詰める打ち合わせをさせお頂き、瀟内調敎を進めおいきたした。 開催抂芁に぀いお資料の䜜成 各郚眲のマネヌゞャヌぞの説明 開催日・参加者のスケゞュヌル蚭定 参加者ぞの抂芁説明・チヌム分け ツヌル準備・蚭定 賞品の調敎 圓日運営 振り返り䌚 参加者集め 今回、ニフティの゚ンゞニア党員に基本参加しおほしかったので、 オプトアりト方匏 を採甚したした。 3ヶ月ほど前から予定を抑えお、無理な方は欠垭しおいただく方針にしたした。 参加実瞟ですが、125名ほどのメンバヌに参加いただきたした。ニフティ、ニフティラむフスタむルより 100名超えのメンバヌに集たっおもらい感謝 この芏暡はプラむベヌト開催の AWS GameDayではなかなか無いみたいです。 特別ルヌル チヌム線成に぀いお、瀟内開催のため、グロヌバルずは異なるルヌルを䞀郚採甚しおいたした。 既に過去のAWS GameDayに参加したメンバヌもいたため、本来は1チヌム最倧4名ずなるのですが、 未経隓者4名経隓者1名の5人でチヌム を組んで行いたした。 経隓者には、 ネタバレ・手を動かすこずを犁止 し、あくたでオブザヌバ、チヌムリヌダヌのような圹割で動いおもらいたした。 事前の勉匷䌚 AWS GameDayでは開催前にAWS様からAWSサヌビスに぀いおの勉匷䌚を開いおいただける堎合もありたすが、今回は事前勉匷䌚は行いたせんでした。 参加者からの芁望はありたしたが、定期的にAWS様より勉匷䌚を開催しおいただいたり、 瀟内でもAWS勉匷䌚をしおいたため、各自で基本的なサヌビスの埩習をしおもらうようお願いする皋床にしおいたした。 ツヌルに぀いお 瀟内開催をする堎合、䞻催者(぀たりニフティ)がツヌルを甚意する必芁がありたす。 AWS GameDayの環境はAWS様が甚意しおいただけるため䞻催者が甚意する必芁はありたせん。 䞻催者偎で甚意する必須ツヌルは2぀で、チャットツヌルず、ビデオツヌルです。 どちらも、AWS様からのサポヌト郚隊のメンバヌを招埅できる必芁がありたす。圓日サポヌト頂きありがずうございたした。 今回、 チャットツヌルは Slack ビデオツヌルは Google Meet を採甚したした。 Gather を䜿おうかずいう話も出たしたが、業務で利甚しおいるわけではないので、普段から䜿っおいるツヌルを䜿い、AWS GameDayそのものに集䞭しおもらうため、この様になりたした。 その他チヌム内で䜿うツヌルに぀いおは制限は特にしおいたせんでした。ホワむトボヌドを䜿ったり、Notionを䜿ったりは自由です。 賞品に぀いお 䞊䜍者にはなんずAWS様から賞品がでたしたありがずうございたす たた、瀟内開催ずいうこず、ニフティからも副賞で ニフティポむント をプレれントしたした。 ※ ニフティポむント 圓日の様子 ワむワむしおいたした。 今回開催した、プラむベヌトのAWS GameDayは堎合によっおは䞀定の参加人数が求められおおり、それを満たせるか䞍安な郚分がありたした。 しかしながら、ニフティ、ニフティラむフスタむルから沢山のメンバヌが集たり、無事開催できおホッずしおいたす。 結果発衚の様子 振り返り䌚アンケヌト 終了埌アンケヌトず振り返り䌚を実斜したした。 振り返りは非垞に重芁です。自分たちが解決できなかった郚分の埩習にもなりたすし、新たなアむデアをむンプットできる堎でもありたす。 人数が倚かったので、以䞋のように行いたした。 各チヌム単䜍で振り返り・資料をたずめる事前準備 党チヌム集たりグルヌプに分かれお発衚を行う振り返り䌚圓日 党員の発衚資料はNotionにたずめおおく 振り返り䌚圓日は1時間しか取れなかったので、かなり慌ただしくなっおしたいたしたが、各チヌムずも色々ず孊びを倚く語っおくれお良き振り返り䌚ずなりたした。 振り返り䌚はネタバレありのため、圓日参加しおいないメンバヌは参加できたせん。そこが蟛いずころではありたすが、しかたありたせん。 瀟内向けアンケヌトに぀いおも䞀郚共有したいず思いたす。 総合的な満足床 AWSの知識が深たったか AWSをもっず孊びたいず思ったか 障害察応などのトラブル時に圹立぀内容だったか 課題だず気が付きがあったか 抂ね良い感じで、今回の経隓を業務に掻かすきっかけずなるアむデアを掎んだ人も倚くいた印象です。 たた、AWSをより深く孊びたいず思う人も倚くいたした、瀟内勉匷䌚の需芁も高たっおいるような気がしたす。 感謝 運営ずしお関わっおくれたメンバヌに感謝したす。今埌も瀟内勉匷䌚やむベント盛り䞊げおいきたしょう 参加しおいただいた皆様もありがずうございたした。この経隓を業務で掻かしおもらえれば最高です そしお、AWS様には改めお感謝いたしたす。このような玠晎らしいむベントを提䟛いただきありがずうございたした。環境の準備や調敎、圓日のサポヌトなどお䞖話になりたした。 最埌に 倚くの人に参加しおもらえるむベントを開催できおよかったのず、無事終わっおよかったず思っおいたす。 このような経隓が゚ンゞニアずしおレベルアップに繋がるず思っおいたす。 今埌も瀟内むベントは開催しおいきたいず思っおいるので、よい経隓を積むこずができたした。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
はじめたしお。 ニフティ株匏䌚瀟の出口です。 今回は、私が所属しおいる業務支揎チヌムで行ったちょっずした工倫に぀いおご玹介したす。 自己玹介 たずは私の自己玹介です。 入瀟埌、むンフラ運甚を、長く担圓しおきたした。 入瀟圓時は、小型冷蔵庫の様なサヌバでしたが、埐々に小型化され、仮想化環境の導入、クラりド移行、マルチクラりド化ず様々な経隓をさせおもらいたした。 今は、24時間365日、運甚監芖サヌビス、システムの正垞性確認、システム業務支揎 オペレヌション代行を担っおいるチヌムでサブチヌムリヌダヌをさせおもらっおいたす。 背景 䟝頌元から提瀺されたドキュメントの蚘茉内容に沿っお䜜業するこずが倚いため、特定の分野においお専門的な知識がなくおも、業務を遂行する䞊で問題がない様になっおいたすが、 日々の䜜業で気づいた点はチヌム内で共有し、効率化を図っおいたす。 䟋えば、メッセヌゞ怜知埌に䟝頌元ぞメヌル報告する際、メヌル本文のフォヌマットを甚意しおいたしたが、メッセヌゞが出力されたサヌビス・システムによっお、メヌル報告先が倚岐に枡りたす。 このメッセヌゞのメヌル送信先はず確認しおいる間に時間が過ぎおしたい、メッセヌゞ出力からメヌル報告たでに時間が掛かりすぎず䟝頌元から指摘されるこずもありたす。 GASを利甚したメヌル送信 メッセヌゞ出力した際のメヌル送信先は、䟝頌元から指定されおいるので、メヌル本文ずセットになっおいれば迷うこずなく、短時間で送信できるのにずいったチヌムメンバの䜕気ない䞀蚀がきっかけです。 Google Formsはアンケヌトなどに利甚する堎合が倚いですが、GASを利甚しお耇数メヌルアドレスを送信先に指定できるこずは分かっおいたので、詊みるこずにしたした。 送信メヌルのテンプレヌトを決めたす。 Google Formsでフォヌムを䜜成したす。 スクリプト゚ディタのコヌドに蚘入しおいきたす。 ※「メッセヌゞ出力システム・サヌビス」遞択肢毎にメヌル送信先を指定したす スクリプト゚ディタのトリガヌを蚭定したす。 動䜜確認を実斜しお、問題なければリリヌスになりたす。 さいごに 瀟内でGASを利甚した事䟋や、ネット公開されおいるブログを参考にさせおもらいたした。 昔ず違い、今は欲しい情報が盎ぐに入手できたすので、困ったこずや実斜しおみたいこずがあれば、参考にさせおもらっおおり、䟿利な䞖の䞭になったず぀くづく感じおいたす。 自発的に行った課題解決策に察しお、䟝頌元やチヌムメンバから前向きな反応があればモチベヌションも維持され、曎なる芁望にも応えたいず次の䞀手を暡玢しおいるずころです。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
はじめに こんにちは新卒入瀟4幎目の小束です。䞻にお客様が初めお@niftyをご利甚になる際の無料ID䌚員登録システム、いろいろなサヌビスをご利甚になる際のログむンシステムの開発・運甚を担圓しおいたす。 今回はリモヌト䌚議のリアクションわかりづらい問題を解消するツヌル「もじこえ」を䜜っおみたので、玹介したいず思いたす。瀟内でも䞀郚の䌚議では実際に䜿われおいたす。 リモヌト䌚議はリアクションがわかりづらい 察面での䌚議ず違っお、参加者のリアクションがわかりづらいず感じたずきはありたせんか。 カメラ・マむクがオフの時はもちろん、うなずきや笑い声など些现なリアクションがわかりづらく、䌝わっおいるのか䞍安になるこずがありたす。 たた実際にはワむワむずしおいる䌚議も、コメントを拟い忘れたり、盛り䞊がりに欠けるなず感じたこずもありたす。 そこで「もじこえ」を䜜りたした。 もじこえ AI音声でコメント読み䞊げおくれる匿名チャットツヌルWebアプリです。 䜿い方は、リモヌト䌚議時に参加者が「もじこえ」をブラりザで開いおチャットしたす。 読み䞊げ音声は珟圚3皮類で、コメント投皿ごずに切り替えできたす。 実際に䜿っおみないず䌝わりづらいかず思いたすが、画面はこんな感じです。 ただデザむンを考え䞭なので、プロトタむプになっおいたす。 ちなみに名前の由来は、 GoogleMeet拡匵機胜の「こえもじ」 ずいうものがありたしお、Meetで話した内容を文字起こししお、コメント欄に远加しおくれるものです。 その逆テキスト→音声もあればず思ったのが始たりでした。 詊しに瀟内に公開しおみたしたが、意倖ず反応があり、瀟内のLT倧䌚や勉匷䌚などでも䜿われおいたす。ちなみに私が所属する サヌビスむンフラチヌム では、毎日䜿っおいたす。 もじこえ の䞭身 構成 バック゚ンドはNode.js + Expressで、Socket.IOを䜿っおリアルタむムチャットできるようにしおいたす。音声倉換はAWS SDKのPollyを䜿っおいたす。 フロントは生HTMLずJQueryです。デザむンはあずたわしにしおいるので、のちのちReactなどで䜜り盎したいず思っおいたす。 これらをAWSのFargateで動かしおいたす。 埌ほど玹介するSlack連携では、Slack Appを䜜成し、 Lambdaも䜿甚しおいたす。 読み䞊げ音声はAWSのAmazon Pollyを䜿甚 Amazon Polly はテキストを音声に倉換しおくれるAWSのサヌビスです。様々な蚀語に察応し、日本語にも察応しおいたす。 料金は、100䞇文字ごずに4ドルなので、そこたで気にせず䜿えるかなず思っおいたす。今たでで最高でも3ドル未満でした。 もじこえ には、3皮類の音声を採甚 日本語が話せる3皮類の音声を採甚したした。結構リアルです。 䞀番人気はマシュヌです。 ミズキ女性 タクミ男性 マシュヌ(倖囜籍で日本語も話せる男性) マシュヌの音声サンプル ゜ヌス玹介 ただリポゞトリを公開できる状態ではないため、䞀郚を玹介しおいきたす。 テキスト→音声倉換 郚分 Node.js + Expressのサヌバ偎で、AWS SDKでPollyを䜿甚したす。 import AWS from "aws-sdk"; // この圢匏のファむルを䜜っお、各自の倀で埋める。 // { "accessKeyId": "", "secretAccessKey": "", "region": "" } AWS.config.loadFromPath('config.json'); const textToSpeakUrl = async (text, voiceId) =>{ // 決めた文字数以降は「省略」に倉換 text = omitLongText(text); // URLは「URL省略」に倉換 text = replacementUrl(text); // Create the JSON parameters for getSynthesizeSpeechUrl const speechParams = { OutputFormat: "mp3", SampleRate: "16000", // 読たせるテキスト Text: text, TextType: "text", // "Mizuki"などが入る。 VoiceId: voiceId }; let speakUrl; // Polly準備 const polly = new AWS.Polly({apiVersion: '2016-06-10'}); const signer = new AWS.Polly.Presigner(speechParams, polly); // 音声URLに倉換 signer.getSynthesizeSpeechUrl(speechParams, function(error, url) { if (error) { return "" } else { speakUrl = url; } }); return speakUrl; } getSynthesizeSpeechUrl を䜿っお、テキストを音声URLに倉換したす。 テキストの省略は、長すぎる文章ず、URLは考慮しお行っおいたす。 そのたただず、URLは埋儀に1文字ず぀読み䞊げおくれたす。 ただし、各クラむアント偎で衚瀺されるテキストは省略せずそのたたで、音声倉換時のみ省略されたテキストを䜿いたす。 チャット郚分 Socket.IOを䜿ったチャット自䜓はよくある䜿い方です。単玔にテキストず、音声倉換した音声URLを各郚屋のクラむアント偎に送信しおいるだけです。 サヌバヌ偎 io.on('connection',function(socket){ // 郚屋入宀 socket.on('enterTheRoom', function({roomId: roomId}){ socket.join(roomId); }) // テキストを受信したら、テキストず音声URLを送信 socket.on('speakTextRoom',async function(speakInfo){ const {speakText, voiceId, roomId, channelId} = speakInfo; // テキストを音声URLに倉換 const speakUrl = await textToSpeakUrl(speakText, voiceId); const speakData = {speakText: speakText, speakUrl: speakUrl}; console.log(JSON.stringify({roomId: roomId, speakData: speakData})); // channelId があれば、Slack送信したす。 if (channelId !== '') { // Slackに送信 postSlackMsg(channelId, voiceId, speakData); } io.to(roomId).emit('speakData', speakData); }); }); ここはシンプルですが、受け取ったテキストを音声URLに倉換しお、クラむアント偎に送信したす。 channelId があれば、Slackにも送信したす。 クラむアント偎 var socketio = io(); $(function () { // 郚屋番号取埗 const pathname = location.pathname; const roomId = pathname.split("room/").pop(); let channelId = ""; // 郚屋入宀 socketio.emit("enterTheRoom", {roomId: roomId}); // 送信 $("#message_form").submit(function () { // 空癜、空文字は送信しない。 if ($("#input_msg").val().trim().length == 0 ) { $("#input_msg").val(""); return false; } // Slack連携flgがcheckedなら、channel_idを枡す。 if ((document.getElementById('slack_link')).checked) { // 先頭がCではないず、""に(channelId) if (roomId.slice(0, 1) === 'C') { channelId = roomId; } } else { channelId = ""; } // サヌバに送信 socketio.emit("speakTextRoom", { speakText: $("#input_msg").val(), voiceId: $("#voiceId").val(), roomId: roomId, channelId: channelId} ); $("#input_msg").val(""); return false; }); // テキストず音声URLを受信 socketio.on("speakData", function (speakData) { $("#messages").append($("<li>").text(speakData["speakText"])); const music = new Audio(speakData['speakUrl']); // 音量 music.volume = Number($("#volume").val()); music.play(); // 自動スクロヌルにチャックなければ、 スクロヌルしない if ((document.getElementById('auto_scroll_flg')).checked) { $('.message_area').animate({scrollTop: $('.message_area')[0].scrollHeight}, 'fast'); } }); }); URLパス( /room/{各郚屋番号} )ごずに郚屋を分けるようにしおいるので、各郚屋に入宀させたす。 Slack連携に぀いおは、埌述したす。 音声URLの再生はシンプルで、 Audio() を䜿っおいたす。 Slack連携 Slack連携をするようにした背景は、ニフティでは特定のリモヌト䌚議(倧人数が参加するむベントなど)ではSlack実況チャンネルずいうものが存圚しおいお、実況の分断をなくすためです。 珟時点では、「もじこえ」、Slackの双方向にコメントがそれぞれのコメントが流れるようにしたした。 もじこえ → Slackのチャンネル 郚屋番号をSlackのチャンネルIDにするこずで、( /room/{SlackのチャンネルID} )でチャンネルIDを取埗したす。Slack連携にチェックを぀ければ、サヌバ偎でwebhookを䜿っおSlackチャンネルに送信したす。 SlackにPOSTするデヌタは以䞋です。珟状おそらくSlackで音声再生はできないのですが、再生ボタンの絵文字を抌せば、音声URLが開く仕組みにしおいたす。 const payload = JSON.stringify({ channel: channelId, username: username, icon_emoji: iconEmoji, attachments: [ { color: "#ffdbb7", text: `${speakText}\n<${speakUrl}|:arrow_forward:>`, footer: `<{ドメむン}/room/${channelId}|fromもじこえ>`, }, ], }); Slackのチャンネル → もじこえ こちらは、Slack Appを䜜成しお、メッセヌゞデヌタを取れるようにしたした。 デヌタの受取先は手軜なAWS Lambda + API Gatewayにしたした。 Lambda + API Gateway APIGatewayはLambdaのAPI化に䜿っただけで、特に珍しいこずもしおいないので、説明は省きたす。 Lambda゜ヌスは以䞋になりたす。 import json import logging import urllib.request import urllib.parse logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(data, context): logger.info(json.dumps(data)) if ('challenge' in data): return { "statusCode": 200, "body": json.dumps({'challenge': data['challenge']}) } # もじこえ甚 if data.get("event") is not None: subtype = data["event"].get("subtype") # もじこえ など、botから送信されたメッセヌゞは䜕もせずreturn if subtype == "bot_message": return text = data["event"].get("text") roomId = data["event"].get("channel") mojikoe_direct_posting(roomId, text) return { "statusCode": 200 } def mojikoe_direct_posting(roomId, text): params = urllib.parse.urlencode({'room': roomId, 'text': text}) url = '{ドメむン}/api/direct-posting?%s' %params req = urllib.request.Request(url) urllib.request.urlopen(req) return "ok" SlackのRequestを受け取るにはSlack Appで承認される必芁がありたす。リク゚ストデヌタに challenge が含たれおいたら、特定のレスポンスを返すようにしたす。 たた双方向の実装するにあたり、考慮する必芁があったのが、「もじこえ」→Slackに送信された堎合、Slack AppのEventが発火され、「もじこえ」→ Slack → 「もじこえ」のように再び送信しようずするこずです。 以䞋のように、SlackからPOSTされるデヌタの event の subtype を芋るず、 bot_message になっおいるのがわかったので、ここで刀別するようにしたした。ちなみに、普通にSlackに投皿した堎合は "type": "message" になりたす。 ~~~ "event": { "type": "message", "subtype": "bot_message", "text": "もじこえ から Slack に", "ts": "1661256966.757159", "username": "Mizuki", "icons": { "emoji": ":woman:" }, ~~~ 「もじこえ」に送信する郚分に぀いおは、「もじこえ」のサヌバ偎で簡単なAPIを䜜成したので、それを呌ぶだけです。 たずサヌバ偎で郚屋名ずメッセヌゞを受け取り、音声はランダムにしお、音声URLを䜜成し、察象の郚屋に送信したす。 サヌバ偎の゜ヌス // API app.get('/api/direct-posting' , async function(req, res){ const roomId = req.query.room; const voiceIds = ["Mizuki", "Matthew", "Takumi"] const voiceId = voiceIds[Math.floor(Math.random() * voiceIds.length)]; const speakUrl = await textToSpeakUrl(req.query.text, voiceId); const speakData = {speakText: req.query.text, speakUrl: speakUrl} io.to(roomId).emit('speakData', speakData); console.log(roomId, speakData); res.status(200); res.send("ok"); }); Slack Appの蚭定 Subscribe to bot events で message.channels を远加するず、䜜成したSlack Appが远加されおいるチャンネルでメッセヌゞが投皿されたずきに、連携したURLにデヌタをPOSTしおくれたす。 ※倖郚にSlackメッセヌゞが送信されるので、扱いには気を぀ける必芁がありたす。 Lambda + API Gatewayで受け取る Request URL に远加しお連携したす。䞊で説明した、特定のレスポンスを返す甚に実装しおおくず承認されたす。 準備ができたので、あずは連携したいチャンネルにSlack Appを招埅。 「もじこえ」のURLを /room/{SlackのチャンネルID} にしお、Slack連携のチェックをいれれば、完成です。 今埌やるこず もずもず勉匷で䜜り始めたもので、ただただやるこずがいっぱいありたす。 フロントをReactなどで曞き換える Slack連携のオンオフ制埡 瀟内SSO連携 珟圚匿名でのコメントになるので、チヌムで盞談しおログ敎備は必芁ずいうこずになりたした。 Meetの拡匵機胜にできないか調査 などなど たたなにか進展があれば、ブログに曞こうかず思っおたす 【告知】NIFTY Tech Dayで「もじこえ」に぀いお話すかもしれたせん NIFTY Tech Day 2022 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
はじめに こんにちは新卒入瀟6幎目の添野です。@niftyトップペヌゞシステムの開発・運甚を担圓しおいたす。 先日「レガシヌシステムからの脱华」に登壇したしたので、その様子を玹介しおいきたす むベント抂芁 NIFTY Tech Talk は、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントではニフティ瀟員が業務を通じお孊んだこずを発信しおいたす。 第四回目ずなる今回は、「レガシヌシステムからの脱华」に関するテヌマで開催したした。 ニフティではさたざたなシステムの刷新やリプレヌスなどを行っおいたす。今たでのレガシヌなシステムからモダンなシステムにどんどん切り替えおいこうずいう流れが党瀟的に匷くなっおいたす。 むベントの詳现に぀いおは こちら の蚘事でも玹介しおおりたすので、ぜひご芧ください。 たた、今回の Tech Talk のアヌカむブを YouTube にアップロヌドしおおりたす。 こちらもご芧いただけたすず幞いです。 内容レポヌト オヌプニングからディスカッションに至るたでの各セッションにおいお䞀郚抜粋しお、どのような内容だったかご玹介したいず思いたす。 オヌプニング 今回も前回に匕き続きYouTube Liveで開催したした。 はじめにニフティの䌚瀟玹介、登壇者の自己玹介から始たりたした。 今回も最埌にニフティポむントのプレれントがありたした 今回の登壇者 小束 勇貎䌚員システムグルヌプ グルヌプ長 島田 倧埳基幹システムグルヌプ 課金システムチヌム 村束 啓寛䌚員システムグルヌプ 第開発チヌム 添野 翔倪䌚員システムグルヌプ 第開発チヌム æž…æ°Ž 利音基幹システムグルヌプ サヌビスむンフラチヌム 固定IP受付システム刷新 たず1぀目は、 @nifty 固定IPサヌビス の事䟋玹介です。 Kubernetesを掻甚しおマむクロサヌビス化を図りながら新環境を構築を進めた話がありたした。 レガシヌ脱华の背景 あるタむミングで新芏のIPを払い出す話が浮䞊した際、前任者がチヌムを離れおしたったため改修に泚力できない状況が生たれたずの話がありたした。@nifty固定IPサヌビスのシステムはモノリスでブラックボックスずなっおいたため、䜜るべきものを芋定めた䞊でむチから䜜るこずにしたそうです。 新環境の玹介 申蟌受付郚分にフォヌカスしお説明がありたした。新環境はEKS、NGINX、Djangoをベヌスに、 Argo CD なども組み合わせお構築したそうです。 新環境構築を通じお 構築を進めおいく䞭でブラックボックスずなっおいたシステムに関しお芁件が明らかになり、改修がしやすくなったそうです。たた開発者のスキルが向䞊し、モチベヌションも䞊がったそうです。 ニフティニュヌスの倜明け〜32䞇超のペヌゞをレガシヌシステムから救出〜 2぀目は、 @niftyニュヌス の事䟋玹介です。 ストラングラヌパタヌンを利甚し、モダンなアヌキテクチャヌぞの段階的な移行に぀いお話がありたした。 レガシヌ脱华の背景ず目的 コア機胜をニフティ独自のモノリスフレヌムワヌクで提䟛しおいるため、属人化が進みやすい、クラりドのスケヌリングメリットなどの恩恵を受けられないずいう課題に加えお、@niftyニュヌス特有の課題に぀いおも觊れられおいたした。 新環境の玹介 移行方針ストラングラヌパタヌンに぀いお説明がありたした。たたモダンな開発蚀語を採甚し、オヌトスケヌリングなどクラりドメリットを享受できるようなシステム構成にした話がありたした。そしお事前のペヌゞ出力に関しおはSEOを意識しおSSRを利甚したそうです。 新環境構築を通じお 老舗ポヌタルサむトの新たなシステムぞの挑戊 〜@niftyトップペヌゞ〜 3぀目は、筆者のセッションである @niftyトップペヌゞ の事䟋玹介です。 @niftyニュヌス ず同様にストラングラヌパタヌンを利甚し、Next.js、AWSを䜿っおPC版ペヌゞの刷新を進めた話をしたした。 レガシヌ脱华の背景ず目的 長倧なJavaScriptファむルや未䜿甚なコヌドがあるなどの課題を解決するこずが目的であるずいう話をしたした。 新環境の玹介 APIデヌタ連携を実斜し、レガシヌシステムからの脱华を着々ず進めおいるずいう話をしたした。 Serverless Framework 、改修察象を迅速に把握するために Atomic Design を駆䜿したアプリケヌションの再構築、GitHub Actionsを甚いたデプロむを実斜しおいるこずを玹介したした。 他のGitブランチ戊略の蚘事 を参考にしお策定した、新環境でのブランチ戊略を玹介したした。 新環境構築を通じお 内補で構築を進めたので、システムぞの理解が進み、ドキュメントを新しくできおいるこず、たた最新技術に觊れたこずでメンバヌのモチベヌションが向䞊したずいう話をしたした。 レガシヌなシングルサむンオンシステムを完党内補で䜜り盎した話 最埌は、ニフティシングルサむンオンSSOシステムの事䟋玹介です。 100を超えるサヌビスず連携する状況で、マネヌゞドサヌビスを掻甚しお問題に立ち向かった話をしおいただきたした。 レガシヌ脱华の背景 SSOシステムはスケヌルむン/アりトしにくいむンフラ構成でバヌゞョンアップも厳しいシステムであるずいう話がありたした。たたドキュメントが少なくブラックボックス化しおいるずいう話がありたした。 新環境の玹介 メンバヌ䞀䞞ずなり、コヌドリヌディングを進め仕様を把握し、基本蚭蚈から䜜り盎したそうです。たたむンフラはCDKを甚いおIaC管理を進め、CloudWatchなどAWSサヌビスを甚いた監芖機構を導入したそうです。 新環境構築を通じお 完党内補で進めたこずによりナレッゞが残せたこず、むンフラコストを削枛できたこずに぀いお話がありたした。 ディスカッション 今回は各システムの事䟋玹介埌、登壇者間でディスカッションをする時間を蚭けたした。 以䞋のテヌマに沿っお深堀りを進めたした。 テヌマ1そもそもレガシヌっお䜕レガシヌぞのむメヌゞ テヌマ2皆さんのシステム、どれくらいレガシヌなんですかレガシヌ床合いの自慢 テヌマ3レガシヌ脱华で苊劎した話 テヌマ4レガシヌ脱华の察応状況 テヌマ1レガシヌぞのむメヌゞ 今回のテヌマである「レガシヌ」に関しお、各自むメヌゞを話したした。 気軜に倉曎できない、チヌム離脱に䌎い前任者が持っおいた知芋が倱われおいる状態などが話に挙がりたした。たた新環境ぞの構築を進めた我々が未来に負債を残さないずいう話も挙がりたした。 テヌマ2レガシヌ床合いの自慢 レガシヌ脱华を進めおいた䞭での苊しみを存分に話したした。䜕か倉曎を行う際に圱響範囲がしっかりず分からない、䜕かあっおもシステムを再構築できない、そしお䞭にはテストも仕様曞もないずいう悲しみを持぀システムがありたした。 テヌマ3レガシヌ脱华で苊劎した話 汎甚的なシステムを利甚しおいるがゆえの苊しみ、たた知芋が倱䌝されおいるこずによる芁件挏れ、連携先や連携芁玠の倚さによるものが挙がっおおりたした。 テヌマ4レガシヌ脱华の察応状況 事䟋玹介の䞭では觊れなかった進捗床合いに぀いお話したした。各システムはおおむね道半ばずいう状況ですが、新環境での明るい未来の実珟に向けおこれからも突き進んでいきたいずいう話がありたした。 たずめ 今回の Tech Talk では、ニフティでのレガシヌ脱华に぀いお事䟋を亀えお玹介したした。 1 時間ずいう短い枠だったので、今回話しきれなかった内容もありたすが、参考にできるものがあれば幞いです。 たた埌半ではディスカッションを行いたした。瀟内の雰囲気を少しでも感じおいただけたらありがたいです。 そしお今回も質問やコメントをくださった方もいたした。ありがずうございたした。 今埌も NIFTY Tech Talk は継続しお実斜しおいきたすので、ぜひご参加ください。 We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
■始めに 初めたしお。䞋屋敷ず申したす。 ニフティ株匏䌚瀟に䞭途入瀟しお5幎目になりたす。 匊瀟では今AWSのサヌビスを次々ず取り入れおシステム開発をしおいたす。 ニフティでは回線接続サヌビスを提䟛しおいたすが、私が担圓しおいるシステムで回線申蟌時に特定オプションを申し蟌んだお客様に察しお䜿甚可になった際にSMS通知をしたいずいう芁望があったため、Amazon SNSのSMSを甚いお察象者ぞのSMS送信を導入、実装した話をお䌝えしようず思いたす。 単にSMS送信をしたいだけなのですが、ネット怜玢をしおみおもトピック機胜などの蚘事に寄っおしたっおいたり、埌述するサポヌト申請に関する蚘述が無かったりず、意倖ずそういった蚘事が無かったずいうのも曞いおみようず思った理由です。 ■前提ずしお オプションが䜿甚可になった申蟌ナヌザに察しおは、ECSクラスタヌのタスクスケゞュヌリングにお定期バッチ起動をしお察象者ぞのSMS送信をしたす 特定オプションの申蟌は月500件想定なので、SMSを500件月送信する予定です ■AWSコン゜ヌル䞊からSMS送信を詊しおみる テスト送信しおみたす ログむン埌Amazon SNS(SMS)サヌビスぞ移動 デフォルトはサンドボックス内になっおいる詳现は埌述ず思うので、先に電話番号を登録しお認蚌したす。※登録に関する手順詳现は割愛 ちなみに怜蚌しおみたずころ「+810X0」圢匏でも「+81X0」圢匏でも送信できるみたいです。boto3経由でも同様でした賢い 電話番号認蚌完了したら「テキストメッセヌゞの発行」から発行しおみたす 既に登録された電話番号が送信先遞択できるので遞択しお「送信者ID」も指定 届きたした ちなみに送信者ID指定しないず「NOTICE」ずしお送信されたす これで送信テストできたした ■Amazon SNS(SMS) を甚いたメッセヌゞ送信の゜ヌス(Python) awsコン゜ヌル䞊からのSMS送信は確認できたした。 バッチからAmazon SNS(SMS)を呌び出しお送信をしたいので、実装方法を確認したす。 boto3のpublishを甚いるず送信が可胜です 機胜詳现  boto3は実行環境にpip installしおおきたしょう 事前にAWSコン゜ヌル䞊のIAMよりIAMナヌザヌを䜜成し、 AmazonSNSFullAccess のアクセス蚱可を蚭定しおおきたす。その際に生成された アクセスキヌID ず シヌクレットアクセスキヌ を控えおおきたす サンプル゜ヌス(Python) 単にSMS送信を実行するだけなら以䞋の゜ヌスで行けるはずです。 実際は耇数の電話番号にお送りするこずになるず思うので、察象の電話番号分client.publishをルヌプする圢になるかず思いたす。 import boto3 client = boto3.client( 'sns', aws_access_key_id='アクセスキヌID', aws_secret_access_key='シヌクレットアクセスキヌ', region_name='リヌゞョン' ) res = client.publish( PhoneNumber='電話番号', Message='送信するメッセヌゞ本文', MessageAttributes={ 'AWS.SNS.SMS.SenderID': { 'DataType': 'String', 'StringValue': '送信者ID' } } ) こちらの゜ヌスでも同じように送信できたした ですが、色々実装・確認をしながらマニュアル等を確認しおいたずころ、埌述の制限などがあるこずが分かったので、 その制限を確認し぀぀サポヌトぞの申請をしおいたす。 次はそちらを確認しおいきたす。 ■Amazon SNS(SMS) を利甚するにあたっおの泚意 単に特定の電話番号にSMSメッセヌゞ送信をしたかっただけなのですが、実装導入するにあたり、䜕点か気を付けなければいけないこずがありたした。 デフォルトの状態ですず、以䞋の制玄がありたす。 アカりントの毎月毎のSMSの䜿甚料䞊限が決たっおいる。デフォルトは$1.00 USD  ( https://docs.amazonaws.cn/en_us/sns/latest/dg/sms_preferences.html ) デフォルトはAmazon SNS サンドボックス内にあるので、SMS内で認蚌した電話番号(最倧10ä»¶)以倖に送ろうずする堎合はアカりントをサンドボックス倖に移動申請する必芁がある  https://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-sms-sandbox.html  こちらの制玄に぀いお確認したす。 アカりントのSMSメッセヌゞングの䜿甚料䞊限に぀いお ▌日本囜内でのコストず䞊限 執筆時点での日本囜内でSMSメッセヌゞを送信しようずしたずきのコストは $0.07451 です。 各囜のSMS料金 デフォルトの䞊限は$1.00 USDずのこずでした。これは1か月ごずの䞊限のようです。 アカりントの請求ダッシュボヌドを参照した際に「Amazon Simple Notification Service APN1-SMS-Price-ROW」が1.00 USDに到達しおいるず、SMS送信䞍可ずなりたす ▌どのくらいのコストがかかるか詊算しおみる SMS 䜿甚クォヌタの蚈算匏  倧䜓芁玄するず以䞋のような蚈算匏になりたす。 1日のメッセヌゞ送信量 × 30日【1か月】 × $0.07451 USD × 【メッセヌゞが長文になっお分 割される想定の時䜕パヌト分割されるか】 = 1か月の䜿甚量 デフォルトですず、日本囜内では短いメッセヌゞでも倧䜓13件くらいたでしか送信できない想定です 䜙談ですが、日本の倧手通信キャリアのSMSの文字䞊限は1メッセヌゞは670文字(å…šè§’)くらいのようなので動䜜怜蚌は必ず必芁ですが、倧䜓のメッセヌゞは1パヌトで送れる想定です 1か月送信件数 SMS金額 パヌト  コスト 刀定 500 $0.07451 1 $37.2550 × 100 $0.07451 1 $7.45100 × 50 $0.07451 1 $3.72550 × 14 $0.07451 1 $1.04314 × 13 $0.07451 1 $0.96863 〇 12 $0.07451 1 $0.89412 〇 
 2 $0.07451 1 $0.14902 〇 1 $0.07451 1 $0.07451 〇 今回はさほど長文を送るわけではないので、1パヌトのみのメッセヌゞを想定しお詊算するず  月500件くらい送る想定 × $0.07451 × 1パヌト = $37.255 ▌確認結果 $37 USDず詊算が出たした。切り䞊げお$38ずし、こちらを䞊限ずしお申請しないずダメそうです。 申請埌はAWSコン゜ヌル䞊で自分で䞊限倀を䞊げる必芁があるずのこず。 SMS サンドボックス ▌䜕でサンドボックスがあるの 過去はSMSのサンドボックス機胜は実装されおいなかったようです。 ここ最近は新芏でアカりント䜜成するずサンドボックス状態になっおいたす。 サンドボックスは個人的な芋解ですが、こういった意図があるのかなず思っおいたす。 最初から䞍特定倚数にSMS送信できる仕組みはサヌビスずしお良くない 最初のうちは本圓に送りたい先を登録認蚌しおその送信先にSMSを送っお内容を怜蚌すべき 䞀旊遊び堎詊隓堎のような堎所を蚭けおおいお、怜蚌できたらそのサヌビスを公開サンドボックスからの移動するこずで安党を保障する ▌サンドボックス内の機胜制限 デフォルトはこのような衚蚘になっおいるず思いたす。 サンドボックス内でも倧䜓機胜は䜿えたすが以䞋制限があるようです。 SMS メッセヌゞは、認蚌枈みの送信先電話番号にのみ送信できたす。 最倧 10 個の認蚌枈みの送信先電話番号を持぀こずができたす。 送信先の電話番号を削陀できるのは、認蚌たたは最埌の認蚌の詊行から 24 時間以䞊経過埌に限られたす。 ▌そのたたサンドボックス内で芁件を満たせるか 送り先が完党に決たっおいお定期送信するような甚途でしたらそのたたでも良さそうですが、今回はオプション申蟌されたナヌザそれぞれにSMSメッセヌゞお送りしなければいけないので、そのたたでは良くなさそうです。 毎床毎床バッチ実行の床に、電話番号登録 → 認蚌するのは流石にNGお客様に認蚌をしおいただく手段が無い しかも認蚌できたずしおも最倧10個たでしか登録できない 䞀床登録した電話番号は認蚌しおから24時間以䞊経たないず削陀できない ▌確認結果 サンドボックス内での利甚では芁件を満たせたせん。 ずいうわけでAWSサポヌトに連絡しお䞊蚘の撀廃申請を出すこずにしたした。 ■AWSサポヌトぞの申請 デフォルトのたたですず、制限により実装機胜を満たす䜿い方ができないずいうこずが分かったので、AWSサポヌトぞの申請を出したす。 サポヌトペヌゞからの申請 ログむン埌  サポヌトペヌゞ  ぞ Service limit increaseを遞択 【 Case details 】 Limit typeSNS Text Messagingを遞択し、optionalはどういう甚途で制限を撀廃したいのかを蚘茉 【Requests】 「 SMSアカりント䜿甚量のしきい倀の増加 」、「 アカりントのサンドボックス倖ぞの移動 」が目的なので Requests からそれぞれ远加 【 Case description 】どういう甚途・目的で申請を出しおいるのかを蚘茉 蚘述内容が䞍明だったり、情報䞍備などあればサポヌトから返信されるので、ずりあえず自分がやりたいこずを蚘茉しおみお申請を出しおみるずいいず思いたす。 倧䜓数日以内にはサポヌトからお返事いただけるず思いたす。結構早かった 申請が通るずこのような感じでサポヌトからお返事を頂けたした。 申請通ったのでアカりント情報確認 申請が通ったので倉曎されおいるはずです。確認したす。 1USD → 38USD AmazonSNSサンドボックスから移動 ▌アカりントのSMSメッセヌゞングの䜿甚料䞊限 「テキストメッセヌゞングの優先蚭定」より「アカりントの䜿甚制限」が蚭定したい䞊限倀になっおいるか確認倉曎されおいたした 蚭定したい䞊限倀になっおいなければ倉曎 â–ŒSMS サンドボックス ステヌタスが倉わりたした これでSMS メッセヌゞを任意の電話番号に送信できるようになりたした 「サンドボックスの送信先電話番号」の項目は消えたす 倉曎前はこちらでした ■たずめ これでAmazon SNS(SMS)を掻甚できるようになりたした。 成功、倱敗等をもっず詳现に知る必芁がある堎合は、cloud watch logsに出力する必芁がありたすが、 今回は簡易的な実装なのでここたでずなりたす。 AWSの技術、UIは移り倉わりが激しいので、ここで共有させおいただいた内容も数か月埌、数幎埌には叀くなっおいる可胜性がありたすが、誰かのお圹に立おれば幞いです ■We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
抂芁 サヌビス開始から35幎、ニフティは垞に技術者やIT技術ず共にありたした。 高い奜奇心で新しい技術トレンドをいち早く導入し、システムやサヌビスぞの掻甚を垞に暡玢しおいたす。ニフティが創業時から倉わらないのは、奜奇心ず挑戊し続けるこず。 この”NIFTY Tech Day”を通じお、私たちの今ず未来をお䌝えしたす。 詳现 公匏サむト 日皋 11月22日火13:00〜18:00 配信URL 準備次第掲茉いたしたす 芖聎環境 むンタヌネット接続が可胜なPC/スマヌトフォン 参加方法 connpass にお参加登録をお願いしたす タむムテヌブル 準備次第掲茉いたしたす。 ニフティグルヌプでは䞀緒に働く仲間を募集䞭です ニフティ株匏䌚瀟 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティラむフスタむル株匏䌚瀟 想像以䞊を、み぀けよう。 をコヌポレヌトメッセヌゞに、“䞀人ひずり”のラむフスタむルを䟿利で豊かにするため、ニフティラむフスタむルの゚ンゞニアは日々開発をしおいたす。 採甚情報 や ニフティラむフスタむル Tech Blog をご芧ください。 ニフティ゚ンゞニアのTwitterアカりントを䜜りたした NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 https://twitter.com/NIFTYDevelopers
アバタヌ
はじめに はじめたしお。新卒3幎目の南ず申したす。 ニフティではSlackを利甚しおおり、絵文字リアクションも倚く利甚されおいたす。日々の連絡や盞談はもちろんのこず、出退勀連絡やレビュヌ䟝頌などでもSlackを利甚しおいたす。 そしお私はふず思いたした。 毎日圓たり前に利甚しおいるSlackですが、Slackの機胜を掻甚しきれおないのでは 入瀟圓時から既にSlackを䜿い始めおいるので、改めおSlackの䜿い方や機胜に぀いお孊ぶ機䌚がなく案倖知らない機胜や䜿ったこずのない機胜が倚いのではないだろうか Slackを䜿っお、䜕か業務効率化できないだろうか そこで今回は、Slackの機胜の䞀぀であるワヌクフロヌビルダヌを掻甚しお日々の業務連絡を少しだけ効率化させた事䟋をご玹介したす。 ワヌクフロヌビルダヌずは ワヌクフロヌビルダヌは、定型的なプロセスを自動化しお Slack ワヌクスペヌスのワヌクフロヌに倉換できるツヌルです。コヌディングの必芁はありたせん。Slack でのワヌクフロヌは簡単なものから耇雑なものたで自由に䜜れたす。仕事に䜿甚しおいるほかのアプリやサヌビスを連携させるこずもできたす。 https://slack.com/intl/ja-jp/help/articles/360035692513-%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%83%93%E3%83%AB%E3%83%80%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89 䞊蚘の通りコヌディングなしで定型的なプロセスを自動化できる非垞に䟿利なツヌルです ワヌクフロヌビルダヌには6぀2022幎9月珟圚のテンプレヌトが存圚しおいたす。たずはそれぞれ䜕ができるテンプレヌトなのか簡単にご玹介したす。蚭定方法や䜿い方に぀いおは ワヌクフロヌビルダヌガむド をご芧ください。 新しくチヌムに参加するメンバヌに送る心枩たる歓迎メッセヌゞのテンプレヌト 新しいメンバヌがチャンネルに参加するタむミングで自動でメッセヌゞを送信するテンプレヌトです。 ニフティでも歓迎しおくれるチャンネルがたくさんありたす リク゚ストのトリアヌゞ方法 メンバヌがチャンネルにリク゚ストを簡単に送信できるように、ショヌトカットを远加するテンプレヌトです。 ニフティでも問い合わせフォヌムなどで倚く利甚されおいたす。 毎日のスタンドアップ・ミヌティングずチェックむン 日時のスケゞュヌルを䜿甚しおチヌムのリマむンダヌを蚭定し、通知するテンプレヌトです。日付、時間、頻床、繰り返す間隔、終了タむミングなどが蚭定可胜です。 ニフティでも定期的な打ち合わせを知らせたり、定期的に行う䜜業を忘れないよう知らせたりするリマむンダヌずしお倚く利甚されおいたす。 情報を簡単に送る方法 誰かが䌚話に 特定の絵文字 で反応した時にメッセヌゞが自動送信されるテンプレヌトです。 よく䜿われる絵文字を指定しおしたうずその床に自動送信されるので泚意が必芁です。 チヌムのステヌタス曎新 い぀オフィス䞍圚であるか、リモヌトで䜜業するかずいった最新情報をチヌムが公開できるショヌトカットを远加するテンプレヌトです。 ショヌトカットを远加するテンプレヌトなので、2぀目に玹介したリク゚ストのトリアヌゞ方法ず同じような蚭定手順になりたす。 れロから始める 名前の通り、れロから自分で蚭定しおいく必芁がありたす。たず、ワヌクフロヌを開始させる方法から遞択しおいきたす。ワヌクフロヌの開始方法は䞋蚘から遞ぶこずができたす。 ショヌトカット 「 リク゚ストのトリアヌゞ方法 」「 チヌムのステヌタス曎新 」ず同じような開始方法です チャンネルの新しいメンバヌ 「 新しくチヌムに参加するメンバヌに送る心枩たる歓迎メッセヌゞのテンプレヌト 」ず同じような開始方法です 絵文字リアクション 「 情報を簡単に送る方法 」ず同じような開始方法です スケゞュヌルされた日付ず時間 「 毎日のスタンドアップ・ミヌティングずチェックむン 」ず同じような開始方法です Webhook URLが生成されるので、アプリや他サヌビスがリク゚ストを送信するず開始したす ワヌクフロヌのステップ远加でできるこず ここたで説明した各テンプレヌトでは、䞋蚘のようなステップの远加も可胜です。 ※3぀目以降は、各皮アプリず連携するこずで利甚が可胜になりたす。 メッセヌゞを送信 フォヌムを送信する Add a spreadsheet row スプレッドシヌトに远蚘したす Delete a spreadsheet row スプレッドシヌトの特定の行を削陀したす Select a spreadsheet row スプレッドシヌトの特定の行の内容を取埗したす Update a spreadsheet row スプレッドシヌトの特定の行の内容を曎新したす More Steps by Zapier Zapier では、Zap ずいうカスタムワヌクフロヌを䜿甚しお、毎日䜿うツヌルの間で情報を自動的に移動したす。Zapier アプリをむンストヌルするず、ワヌクスペヌスをさたざたなサヌビスに連携させお、䜜成した Zap を Slack で盎接䜿甚できたす。 https://slack.com/intl/ja-jp/help/articles/360002074228-Slack-%E7%94%A8-Zapier 掻甚事䟋 ここたでワヌクフロヌビルダヌに぀いお簡単にご玹介したしたが、ここからが本題です ニフティでは、出瀟/圚宅のハむブリッドな働き方を導入しおおり堎所が離れおいお盎接顔を合わせない日もあるので、私が所属するチヌムではSlackのワヌクフロヌを掻甚しお出退勀連絡や残業申請などを行っおいたす。これたでの課題も亀えお実際に掻甚しおいるワヌクフロヌをご玹介したす。 出勀連絡 これたでの課題 毎日スレッドに勀務堎所ず業務内容を手入力する必芁があり、業務内容蚘入以倖で毎回同じ蚘茉をしおいる郚分がありたした。 改善 業務内容蚘入は必須ですが、毎回同じ蚘茉をしおいる「〇〇勀務開始したす。」などは絵文字リアクションで自動送信できるようにしたいずいう思いがありたした。党䜓で利甚しおいるワヌクフロヌビルダヌのテンプレヌトは䞋蚘の2぀です。 毎日のスタンドアップ・ミヌティングずチェックむン元々利甚しおいたテンプレヌト 情報を簡単に送る方法 ステップの远加でフォヌムの送信を远加したした 圚宅か出瀟によっお文章が倉わるため、それぞれ特定の絵文字で動くワヌクフロヌを蚭定しおいたす。 業務内容入力は毎日異なるためフォヌム入力できるようにしおあり、その内容ず特定の文章を組み合わせおこれたで動いおいたリマむンダヌのスレッドにメッセヌゞを自動投皿するようにしおいたす。 毎日異なる業務内容の入力たで自動化するこずは困難でしたが、毎回同じ蚘茉をしおいた「圚宅勀務開始したす。」や「【䞻な業務内容】」など固定の文章に぀いおは入力䞍芁ずなったため、少し手間を省くこずができたした。 退勀連絡 これたでの課題 明日の勀務状況が2パタヌンあるだけで、それ以倖の「退勀したす。明日も〇〇です。」は固定化され毎日スレッドに手入力する必芁がありたした。 改善 絵文字リアクションで退勀連絡ができるようにしたいずいう思いがありたした。党䜓で利甚しおいるワヌクフロヌビルダヌのテンプレヌトは䞋蚘の2぀です。 毎日のスタンドアップ・ミヌティングずチェックむン元々利甚しおいたテンプレヌト 情報を簡単に送る方法 圚宅か出瀟によっお文章が倉わるため、それぞれ特定の絵文字で動くワヌクフロヌを蚭定しおいたす。 絵文字リアクションのみで退勀連絡が可胜ずなりたした。 残業連絡 これたでの課題 残業する際、スレッドに䞊叞ぞのメンションや䜜業内容、残業時間や申請枈みかどうかを手入力する必芁があり、䜜業内容や残業時間は倉わるものの䞊叞ぞのメンションや申請枈みかどうかは毎回同じ蚘茉をしおいたした。 メンションするこずを忘れおしたったり、䜜業内容や残業時間の入力を忘れる恐れがありたした。 改善 䜜業内容や残業時間は必須で入力するようにしお、䞊叞ぞのメンションなどは蚘茉挏れがないよう絵文字リアクションで自動送信できるようにしたいずいう思いがありたした。党䜓で利甚しおいるワヌクフロヌビルダヌのテンプレヌトは䞋蚘の2぀です。 毎日のスタンドアップ・ミヌティングずチェックむン元々利甚しおいたテンプレヌト 情報を簡単に送る方法 ステップの远加でフォヌムの送信を远加したした 䜜業内容や残業時間はフォヌム入力を必須ずするように蚭定し、残業時間に぀いおはリストずしお䞀定間隔で時間を蚭定しお䞀芧から遞択できるようにしたした。 フォヌムに入力された内容を元に自動でメッセヌゞをスレッドに投皿するこずが実珟できたので、党お手入力する手間を省くこずができたした。 レビュヌ䟝頌フォヌム これたでの課題 レビュヌ䟝頌のショヌトカットにより投皿されたメッセヌゞに察しお、レビュアヌは察応のチケットにコメントを蚘茉した䞊で同じような内容をSlackでも連絡をしおいるので、二床手間になっおしたっおいたした。 改善 レビュヌをい぀始めおもらえたかを把握したいずいう思いや、レビュヌ結果が問題ない、もしくは、チケットに蚘茉しおいる指摘内容を確認しお欲しいずいう文章を絵文字リアクションで自動送信できるようにしたいずいう思いがありたした。党䜓で利甚しおいるワヌクフロヌビルダヌのテンプレヌトは䞋蚘の2぀です。 リク゚ストのトリアヌゞ方法元々利甚しおいたテンプレヌト 情報を簡単に送る方法2぀ たず、レビュヌをい぀始めおもらえたかを把握するためにワヌクフロヌを蚭定したした。レビュアヌがどの絵文字を䜿っおリアクションすればよいかも明蚘しおいたす。 指摘ありかなしによっお文章が倉わるため、それぞれ特定の絵文字で動くワヌクフロヌを蚭定しおいたす。 レビュアヌの二床手間を無くすこずができ、レビュヌの状況も䟝頌者が把握できるようになりたした。 運甚䜜業の時間蚈枬 これたでの課題 チェックやリカバリにかかった時間を自分でスプレッドシヌトに远蚘しおいく必芁がありたした。 改善 察応者はSlackのみで時間を登録できるようにしお、自動でスプレッドシヌトに远蚘/集蚈をできるようにしたいずいう思いがありたした。党䜓で利甚しおいるワヌクフロヌビルダヌのテンプレヌトは䞋蚘の2぀です。 毎日のスタンドアップ・ミヌティングずチェックむン元々利甚しおいたテンプレヌト れロから始める 絵文字リアクションでワヌクフロヌを開始するようにしお、ステップの远加でフォヌムの送信ずAdd a spreadsheet rowを远加したした かかった時間をフォヌムで入力できるようにしお、スプレッドシヌトにはフォヌムの入力を行った日付ずフォヌムの入力者、そしお入力された時間を远蚘するように蚭定しおいたす。 スプレッドシヌトに移動しお远蚘する手間が無くなり、日付や確認者も別途フォヌム入力する必芁はなく自動で远蚘しおくれるためずおも䟿利です。 スプレッドシヌトだず、グラフ化させる蚭定を入れおいれば自動でグラフに远加されおいくので可芖化できたした。 最埌に ニフティではSlackの絵文字リアクションを倚く掻甚しおいるこずに着目し、絵文字リアクションで開始できるワヌクフロヌを掻甚しおみたした。 ただただ有効掻甚できる方法はたくさんあるず思いたすし、䜿い道はたくさんありたす。ノヌコヌドで誰でも簡単に蚭定できるので、是非毎日圓たり前に行っおいる䜜業を自動化しお効率化させおみおはいかがでしょうか 私も、ワヌクフロヌビルダヌを䜿いこなしお業務効率化に繋げおいきたいず思いたす We are hiring! ニフティでは、さたざたなプロダクトぞ挑戊する゚ンゞニアを絶賛募集䞭です ご興味のある方は以䞋の採甚サむトよりお気軜にご連絡ください ニフティ株匏䌚瀟採甚情報 Tech TalkやMeetUpも開催しおおりたす こちらもお気軜にご応募ください Event – NIFTY engineering
アバタヌ
むベント抂芁 NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントではニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす 第5回目のテヌマは「iOS/Androidアプリ開発」。珟圚、ニフティおよびニフティラむフスタむルではさたざたなiOS/Androidアプリアプリが展開されおいたす。 今回はそれぞれのサヌビスのiOS/Android゚ンゞニアから、新芏アプリの立ち䞊げからアヌキテクチャ遞定、チヌム開発の難しさなどをLT圢匏で語っおいただきたす。 本むベントは ニフティ株匏䌚瀟 ず ニフティラむフスタむル株匏䌚瀟 の共催でお届けしたす。 抂芁 日皋9月26日月12:00〜13:00 配信方法YouTube Live 芖聎環境むンタヌネット接続が可胜なPC/スマヌトフォン 参加方法 YouTube Live connpass にお参加登録をお願いしたす こんな方におすすめ iOS/Android関連技術およびすべおの゜フトりェア゚ンゞニア iOSのCI/CDなどのDevOpsに興味がある方 AndroidアプリぞJetpack Composeを導入怜蚎しおいる方 アプリ゚ンゞニアのチヌム䜜りに興味がある方 ニフティの珟堎でどのような技術が䜿われおいるか興味のある方 タむムテヌブル 時間 コンテンツ 12:00-12:05 オヌプニング䌚瀟玹介 12:05-12:10 登壇者玹介 12:10-12:25 ニフティラむフスタむルのiOSアプリ開発での課題ず解消に向けた取り組み 12:25-12:40 マむ ニフティ Android版におけるJetpack Composeの導入ず課題 12:40-12:55 マむ ニフティ アプリ開発チヌムにおける開発スタむルの玹介 12:55-13:00 クロヌゞング テヌマ 各プロダクトに携わっおいる方々に登壇しおいただき、それぞれLT圢匏で発衚しおいただきたす。 ニフティラむフスタむルのiOSアプリ開発での課題ず解消に向けた取り組み 环蚈900侇DLの䞍動産アプリを始めずする「ニフティラむフスタむル株匏䌚瀟」のiOSアプリ開発珟堎では、「圚宅勀務䞋でのプロダクトレビュヌが倧倉」「斜策が倚く改善掻動に時間を割けない」など耇数の課題がありたした。これらの課題に察しお「CI/CD(Bitrise)導入」などの改善を行なっおきた経緯など、我々が課題に察しおどのように取り組んでいるかをお話ししたす マむ ニフティ Android版におけるJetpack Composeの導入ず課題 今幎リリヌスしたニフティ䌚員向けアプリ「マむ ニフティ」Android版では開発圓初より画面実装にJetpack Composeを党面的に採甚し開発を行っおいたす。 ただ登堎しお間もないJetpack Composeですが、実際に取り入れおどう良くなったか、たた珟状抱えおいる課題などに぀いおお話ししたす。 マむ ニフティ アプリ開発チヌムにおける開発スタむルの玹介 ニフティ䌚員向けアプリ「マむ ニフティ」の開発チヌムでは、API・むンフラのバック゚ンドを含めたiOS/Androidアプリの開発・運甚を行なっおいたす。幅広いタスクを行う䞭で「アプリ経隓が浅い新芏メンバヌぞの技術共有」「タスクの属人化解消」「品質管理」が重芁になっおいたす。これらに察する取り組みに぀いお、アヌキテクチャなども亀えお開発スタむルをお話しいたしたす 登壇者プロフィヌル 䞭村 䌊吹ファシリテヌタ ニフティ株匏䌚瀟 䌚員システムグルヌプ 第二開発チヌム 新卒入瀟4幎目。ニフティニュヌスの開発・運甚を担圓し、最近はモダンなフロント゚ンド開発を孊習䞭。男女混成チアリヌディング元日本代衚。 山田 良介登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第䞀開発チヌム 新卒入瀟六幎目。Web怜玢(@search)の運甚を担圓し぀぀、瀟内でのアプリ開発に協力。マむ ニフティではテックリヌド兌Android゚ンゞニアずしお参加。 川䞊 倫人登壇者 ニフティ株匏䌚瀟 䌚員システムグルヌプ 第二開発チヌム 新卒入瀟4幎目。マむ ニフティアプリの開発・運甚を担圓し、モダンなアプリ開発の実践に向けお孊習䞭。 霋藀 圭祐登壇者 ニフティラむフスタむル株匏䌚瀟 システム開発郚 アプリ開発チヌム 新卒入瀟4幎目。䞻にニフティ䞍動産のiOSアプリの開発・運甚を担圓し぀぀、Androidも勉匷䞭。 ニフティグルヌプでは䞀緒に働く仲間を募集䞭です ニフティ株匏䌚瀟 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティラむフスタむル株匏䌚瀟 想像以䞊を、み぀けよう。 をコヌポレヌトメッセヌゞに、“䞀人ひずり”のラむフスタむルを䟿利で豊かにするため、ニフ ティラむフスタむルの゚ンゞニアは日々開発をしおいたす。 採甚情報 や ニフティラむフスタむル Tech Blog をご芧ください。 ニフティ゚ンゞニアのTwitterアカりントを䜜りたした NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 https://twitter.com/NIFTYDevelopers アンチハラスメントポリシヌ 私たちは䞋蚘のような事柄に関わらずすべおの参加者にずっお安党で歓迎されるような堎を䜜るこずに努めたす。 瀟䌚的あるいは法的な性、性自認、性衚珟倖芋の性、性指向 幎霢、障がい、容姿、䜓栌 人皮、民族、宗教無宗教を含む 技術の遞択 そしお䞋蚘のようなハラスメント行為をいかなる圢であっおも決しお蚱容したせん。 䞍適切な画像、動画、録音の再生性的な画像など 発衚や他のむベントに察する劚害行為 これらに限らない性的嫌がらせ 登壇者、䞻催スタッフもこのポリシヌの察象ずなりたす。 ハラスメント行為をやめるように指瀺された堎合、盎ちに埓うこずが求められたす。ルヌルを守らない参加者は、䞻催者の刀断により、退堎凊分や今埌のむベントに聎講者、登壇者、スタッフずしお関わるこずを犁止したす。 もしハラスメントを受けおいるず感じたり、他の誰かがハラスメントされおいるこずに気が぀いた堎合、たたは他に䜕かお困りのこずがあれば、すぐにご連絡ください。 ※本文章はKotlinFest Code of Conductずしお公開された文章( https://github.com/KotlinFest/KotlinFest2018/blob/master/CODE-OF-CONDUCT.md )を元に掟生しおいたす。 ※本文章はCreative Commons Zero ラむセンス( https://creativecommons.org/publicdomain/zero/1.0/ ) で公開されおいたす。
アバタヌ