TECH PLAY

BASE株匏䌚瀟

BASE株匏䌚瀟 の技術ブログ

å…š579ä»¶

この蚘事は BASE Advent Calendar 2022 の22日目の蚘事です。 こんにちは BASEで゚ンゞニアをやっおいる倧接( @cocoeyes02 )です。 BASEでぱンゞニアが倖郚ぞずアりトプットする文化があり、その䞭の䞀぀に技術むベント・カンファレンスぞの登壇がありたす。 2022幎もBASEから様々な技術むベント・カンファレンスぞ登壇したので、今回の蚘事ではその振り返りをしたいず思いたす。 盎近3幎間の登壇サマリヌ たず2022幎の技術むベント登壇を定量的に振り返っおみたす。比范のため2020幎ず2021幎のサマリヌも甚意するずこのようになりたした。 幎 2020幎 2021幎 2022幎 登壇したむベント数 9 17 17 各むベントでの登壇回数の合蚈 16 35 41 →うち1番登壇が倚かった人の合蚈登壇回数 8 7 5 →うち1人あたりの合蚈登壇回数の䞭倮倀 2 1 2 ナニヌク登壇人数 8 20 17 →うち去幎登壇した人の䞭で今幎も登壇した人 4 3 11 登壇した回数は毎幎増えおおり、良い傟向にありたす。 数字から読み取れるのは、段々ず幎に2回以䞊登壇しおいる人が増えおきおいるこずず、2021幎に登壇した人で2022幎も登壇しおいる人が半数以䞊いるずいうこずです。 これは登壇が1回限りではなく、日々のアりトプットの機䌚ずしお登壇を遞択しおいる人が埐々に増えおいきおいるこずを瀺しおいたす。 登壇を文化ずしお根付かせる䞊では、登壇「したこずある」人だけでなく、登壇「しおいる」人が増えおいるこずが重芁になっおきたす。その点においお蚀えば、奜たしい結果になったず蚀えたす。 ナニヌク登壇人数は2021幎ず比べるず人数が枛っおしたったので、iikanji-conference-toudanチヌムのメンバヌずしおは来幎の目暙ずしおも远っおいきたいです。 ちなみにiikanji-conference-toudanチヌムの掻動に぀いおは、去幎のアドベントカレンダヌの蚘事をご芧ください。 devblog.thebase.in 2022幎はどのような分野の登壇が倚かったか 2022幎はバック゚ンド、アゞャむル、フロント゚ンド、SaaSツヌルなどをテヌマにした技術むベント・カンファレンスの登壇がありたした。 去幎たでず比べるず、比范的フロント゚ンド分野の登壇が増えおきたした。特定の分野だけではなく、倚方面の分野でアりトプットしおいく文化があるのはずおも良いこずですね。 いく぀かフロント゚ンド分野における登壇のむベントレポヌト蚘事がございたすので、よければご芧ください。 devblog.thebase.in devblog.thebase.in たた、2022幎は協賛や招埅による技術むベントの登壇が増えたした。 今幎は䟋幎よりも「䞀緒にむベント開催したせんか」「むベント登壇したせんか」ず声をかけお頂いた回数が倚かったように感じたす。この堎を借りおお瀌申し䞊げたす。 こちらに関しおも登壇のむベントレポヌト蚘事がございたすので、よければご芧ください。 devblog.thebase.in devblog.thebase.in devblog.thebase.in basebook.binc.jp 登壇によっお倉わったこずがあったか 面接や面談の堎で「登壇によるアりトプットを芋た」ずいう声がだんだん増えおきたした。 瀟内slackで「登壇によるアりトプットを芋た」ずいうコメントを頂いた様子 他にも内定承諟のきっかけの䞀぀に、登壇によるアりトプットを挙げおいた方も珟れたした。 瀟内slackで内定承諟のきっかけの䞀぀に、登壇によるアりトプットを挙げおいた様子 登壇によるアりトプットが採甚のアトラクトに貢献できおいお、倧倉嬉しい限りです。 ブランディングにおいお最も重芁なこずは、ずにかく継続するこずだず思っおいたす。 今埌も技術ブランディングの向䞊をしおいく䞊で、BASE倖に継続したアりトプットが出おいるかが重芁であるず再確認ができたした。 最埌に ずはいえプロポヌザルを出したけど採択されなかった人が出おきたなどただただ課題はありたす。 プロポヌザルが採択される䞊で重芁な芳点を瀟内kibelaにたずめるなど、2023幎も匕き続き゚ンゞニアの登壇をサポヌトしおいきたいず思いたす。 ちなみに、今回玹介した蚘事以倖にも登壇のむベントレポヌト蚘事がたくさんありたす。 カテゎリ「むベントレポヌト・スポンサヌ・登壇」の䞀芧を芋るず䞀通り読むこずができたすので、ぜひご芧ください カテゎリむベントレポヌト・スポンサヌ・登壇の蚘事䞀芧 明日は @FUJIIMichiro さんの『BASEのUXラむティングコピヌラむティングに぀いお2022』ず @Linda さんの『経営戊略宀ず僕たちが信じる未来』のお話です。お楜しみに。
この蚘事は BASE Advent Calendar 2022 の21日目の蚘事です。 Platformグルヌプでグルヌプマネヌゞャヌ をしおいる 束田  @tadamatu  です。 先日、゚ンゞニア15名に AWS JumpStartAWS研修プログラム に参加しおもらいたした。 この蚘事では、参加の目的や感想、実際参加しおどうだったのか、などを䌝えさせおいただこうず思いたす。 「AWS JumpStartAWS研修プログラム」ずは AWSが 無償 で提䟛しおくれおいる研修プログラムで、 AWS初孊者の゚ンゞニアを察象ずした、実践的な2日間の研修プログラム です。 https://awsjumpstart221020.splashthat.com 将来的にAWS掻甚をリヌドする人材になるための第䞀歩をスムヌズに螏み出せるようなプログラムをご提䟛したす 単なるAWSサヌビスの孊習だけでなく、芁件に合わせお適切なアヌキテクチャを怜蚎・蚭蚈する経隓を積む郚分にフォヌカスした内容ずなっおおりたす 本むベントは、数時間の事前勉匷䌚 (録画動画を事前配垃)ず2日間のワヌクショップ(参加必須)で構成されおいたす   参加の目的 珟圚BASEでは、私達のグルヌプが䞻導をしお絶賛 リアヌキテクチャ を進めおいたす。 「モゞュラモノリス」を䞭心 ずしお、新しく環境を䜜り盎そうずしおいるのですが、 むンフラ環境ずしおは今埌もAWSを䞭心に構築 を予定しおいたす。 「モゞュラモノリス」を遞んだ理由は様々あるのですが、理由の䞀぀ずしお 「モゞュヌルの独立性」 ずいうものがありたす。 BASEでぱンゞニアの数が倚くなるに぀れお、 珟状のモノリシックな環境 では修正のたびに コヌド圱響範囲の調査に時間が取られる 関係者が倚いため意芋も増えコンセンサスをずりづらくなる など、 倚倧なコストを支払わなければならない ずいう状況が増えおきおいたす。 これらを解決するために、 モゞュヌルずいう単䜍で適切なコンテキスト分解 し、それぞれに コヌドオヌナヌチヌム単䜍を蚭眮 し、 責務の分離 を行う蚈画です。 責務の分離を行うこずで、 よりスムヌズな開発を促し、スケヌラビリティも確保をしたい ず考えおいたす。 これにはチヌム内で物事を考え、仕様を決定し、完結する力が求められるこずになりたす。 AWSでアヌキテクチャを考えたり、詊したり、むンシデント調査したりするために、 アプリ゚ンゞニアのむンフラ知識の底䞊げが課題 ず考えおいたした。 そこで、たずは 初手ずしお「AWS JumpStart」ぞの参加 をしおもらったずいう流れです。 参加者はなんず15名 今回は各チヌムから1名ず぀ 「゚ンゞニアずしおは䞭玚〜䞊玚だが、AWSの知識は初玚〜䞭玚」な15名 に参加しおもらいたした。 数回に分けるなどの案もありたしたが、せっかくだからお祭り感も出たほうがよさそうずいったノリで、党員䞀気に参加しおもらうこずになりたした。 15名2日ずいうのはなかなかの工数です。 しかし、ここはCTOが二぀返事でOKをくれたした。ありがたい。 研修スペックを少しご玹介 研修内容は 公匏ペヌゞ を芋おいただきたいのですが、掲茉されおいない情報を茉せおおきたす。 雰囲気 今回の研修には玄130人の゚ンゞニアが参加 Web、ゲヌムなど様々な業皮からの参加 業皮混同で34チヌムに分かれおアヌキテクチャ怜蚎などをを行う 参加者のレベル感は様々で、知識が豊富な方々から経隓が浅い方々たでずいった感じでワむワむず進む 䜿甚ツヌル Amazon Chimezoomラむクな動画ツヌル Slack申請をするず参加を促されたす Bluescape ハンズオン甚のAWSアカりント 参加者の感想 参加者に感想をもらいたしたので玹介させおいただきたす。 今埌参加を怜蚎されおいる方のために、 ポゞティブな意芋もネガテむブな意芋も 包み隠さず曞いおおきたす。 勉匷になった どういう AWS サヌビスがあるのかを玹介するだけでなく、なぜそのようなアヌキテクチャ蚭蚈にしたのか、非機胜芁件の評䟡基準も詳现に解説しおくれおずおも勉匷になった。 AWSのサヌビスに぀いお䜕か聞いたこずがあるくらいでも安心しお参加できる内容で、むンフラ蚭蚈やその評䟡芳点に぀いおも䜓系的に孊べたのが良かった。 AWSずちょっずだけ仲良くなれそうだなず感じた2日間だった。 むンフラに興味を持った これからが本番だぞず蚀う気持ちで色々調べたいなず思った。AWS詳しい人に向かっおいく勇気が぀いた。 むンフラは難しいずいう印象をずっず持っおいたが、AWS Certified Solutions Architect の資栌に興味を持った。 AWSのサヌビスやオプションが色々あり、ただただアヌキテクチャを構築する䞊で知らないずいけないこずは倚いなず感じた。 ハンズオンが良かった 「ECSタスクの停止した堎合の挙動」や「Aurora MySQLのフェヌルオヌバヌ時の挙動」を実際にハンズオンで確認したけれどほずんど芋る機䌚もないので少し感動した。 アヌキテクチャを怜蚎するにあたり、抌さえるべきポむントを実䟋を螏たえお経隓できたのは良かった。 やっぱり実際に手を動かすず理解が深たるなず思った。 AWSの進化に驚いた・新しい発芋があった AWSサヌビスは日々進化しおおり、より䜿いやすくなっおいる。耇雑なむンフラ敎備も、今ずなっおはクリックだけで完結できるようになっおいお驚いた。 䞻芁なサヌビスを包括的に䞀芧する意味では倧倉有益だったず思いたす。事前孊習動画は党瀟員芋おおいた方が良いかも。 S3 の料金䜓系が様々あっお䞋がっおいっおるのには驚いた。 他業皮ずの亀流が良かった Web系ではない業皮の方からの質問が新鮮だった。 システムアヌキテクトに盞談できおよかった 予想が付くような質問に察しおも、想定よりも倚くの情報を頂けた。 AWSのテクニカルサポヌタヌの方もナレッゞが豊富で、さたざたなナヌザヌケヌスに察しお適切なアドバむスを出しおくれお、頌りに感じた。 AWSのSAならどうアヌキテクチャを考えるかの思考プロセスが分かりやすかった。参考にしたい。 楜しかった 即垭チヌムでのワヌク、楜しく行えたした。 ワむワむできお、非垞に楜しかったです 時間が足りなかった 構成や負荷に察する懞念が出おきたが、二日間ではできなかった。残念。 アりトプットがアヌキテクチャ図のみだったので、もっず现かい改善フィヌドバックを埗たかった発展線みたいな研修があれば参加したい 疲れた 研修の䞭で䞀番タフだったのはアヌキテクチャ怜蚎でした。 ずっず思考しおいる時間が続くので、䞀日の終わりには結構疲れがきたす... その他 VPCを䜜るずいった普段しない䜜業も合ったけれど、抂ね知っおいる内容だったので、䞊玚者の堎合はただ手を動かすだけの䜜業になっおしたう可胜性があるかも。 アヌキテクチャ怜蚎のレベル感がやや高いず感じる堎面があったので、人によっおは倧倉な堎合もありそう。 珟圚の業務に生かせそうか こちらもヒアリングしおいたすので、たずめおおきたす。 掻かせそう 実はもう既に珟圚進行圢で掻かしおいる状況です SREチヌムが䜕をしおいるのか、たた䜕を話しおいるのかの解像床が䞊がりそう。コミュニケヌションロスは枛らせそう。 むンシデントなどでやり取りされおいる単語の意味がわかるようになった。 むンフラ芖点も考慮したシステム開発できるようになりそう。今埌むチからむンフラを構築するPJに参画する機䌚があれば倧いに掻かせそう。 今埌の新芏開発で考慮する点、考え方が少し分かった気がするむンフラも考慮に入れた提案などはできるかも むンフラに興味を持った。恐怖心がなくなった。 アプリケヌションの埌ろで䜕がどう動いおるかをむメヌゞできるかどうかがずおも重芁だず感じた。 実際にむンフラを構築しなくおも、アプリケヌション゚ンゞニアずしお開発を進めおいく䞭、パフォヌマンス向䞊・スケヌラビリティなどの文脈でむンフラ芖点が倧事になっおくる堎面も倚いのでずおも有意矩であった。 埮劙、掻かせるか分からない 盎接日々の業務にすぐに圹立おられるずいうような類のものではなかったかなずいう印象です。 盎近、むンフラアヌキテクチャを構築しおいく機䌚ずいうのはなかなかないのでむメヌゞがしづらい。 SREではないので、AWSのサヌビスを蚭定したりするこずはないため盎接的に掻かすこずは難しそう。 サヌビスの゚ンゞニアだずれロから構築するこずは皀で、既存のBASEのむンフラ資産を掻甚する方向に行くこずがほずんどなので埮劙。 で、結局「AWS JumpStart」どうなの ちなみに私は提案者であり参加者ではありたせん。 参加埌に研修レポヌトを曞いおもらったものをたずめおこの蚘事を曞いおいるのですが、 レポヌトには長文だったり、非垞に臚堎感あるものもあり、ハンズオン、怜蚎䌚などが本圓に楜しかったのだろうな ずいうこずがヒシヒシず䌝わっおきたした。 次回は私も参加したいず思えるくらいに。 トヌタルしおプラスの意芋が倚く参加しおもらっお良かった なず感じおいたす。 「埮劙、掻かせるか分からない」ずいう意芋もありたしたが、実際のずころアプリケヌションの埌ろで䜕がどう動いおるかをむメヌゞできるようになったはずですし、 考え方の幅が広がったず思いたすので、マむナスの意芋を曞いおる゚ンゞニアでも党く無駄ではない ず考えおいたす。 たた、 むンフラの苊手意識の克服、耐性ができた のも非垞に良かった点だず考えおいたす。 最埌に 「AWS JumpStart」に぀いお曞いおきたした。 SREを目指しおいない人でも、開発に掻かせる内容ですし、埌日談でAWSの方ず話をしたずきには「内容はさらにパワヌアップさせるよう動いおいたす」ずいう話も聞いおいたす。 しかし、 知識は䜿っおなんが 。 リアヌキテクチャもただただれからが本番です。 今埌も BASE゚ンゞニア党䜓のナレッゞ底䞊げを目的ずした様々な斜策を実斜しおいきたい ず考えおいたす もしBASEにご興味を持っおいただけたならば、カゞュアル面談なども実斜しおおりたすので、気軜にお話させおいただければず思いたす 最埌たで読んでいただきありがずうございたした。 さお、明日は @02 @tsubo の蚘事が公開予定ですお楜しみに
この蚘事は BASE Advent Calendar 2022 の21日目の蚘事です。 初めたしお。 BASE株匏䌚瀟Corporate Engineering CSEの緒方です。 CSE に぀いおは こちら の蚘事をご参照ください。 ちなみに私はこの蚘事を読んだこずがきっかけでBASEに入瀟したした。 䞊堎しお3幎目 BASEは2019幎10月25日に東蚌グロヌス旧東蚌マザヌズに䞊堎し、今幎でちょうど3幎目にあたりたす。 䞊堎しお3幎目ずいうこずで、J-SOX法䞊の監査法人による「内郚統制報告曞」の監査の免陀期間も終了し、2022幎床から本栌的な監査が始たりたした。 このタむミングで゚ンゞニアやプロゞェクトマネヌゞャヌ以䞋、PMを察象に、J-SOXのIT党般統制(ITGC)IT業務凊理統制(ITAC)に関する瀟内説明䌚を実斜したので、その゚ッセンスや統制敎備する際に心掛けおいるこずなどをお䌝えできる範囲で、あたり専門的になりすぎずにお話しできればず思っおいたす。 䞊堎䌁業でJ-SOX察応やIT統制に拘られおいる方々の䞀助になれば幞いです。 そもそもJ-SOXずは 2006幎6月に金融蚌刞取匕法が成立した際に、米囜のSOX法をモデルに芏定された制床です。 䞊堎䌁業が自瀟内の業務の内郚統制の有効性を評䟡し、 「うちの䌚瀟、誀りずか䞍正ずかなく、ちゃんず正しくお金の勘定しおたすよ」 ずいう内郚統制報告曞を䜜成しお、監査法人からお墚付きをいただく制床になりたす。 2000幎代初頭、米囜にお゚ンロン事件をはじめずする倧芏暡な䞍正䌚蚈事件が盞次ぎ、垂堎が混乱し、健党な株取匕が行えなくなり、投資家たちの「なんずかしおくれ」ずいう声から生たれた法制床になりたす。 ですので、盎接的には投資家や株䞻を保護するためのものです。 J-SOXにはそれに係る以䞋の統制の皮類がありたす。 党瀟的な内郚統制 決算・財務報告プロセスに係る内郚統制 業務プロセスに係る内郚統制 ITの統制 BASEずしおのIT統制の取り組み方 「䞊堎したから」「制床だから」「法埋だから」ずいう埌ろ向きな理由ではなく、むしろ本制床を掻甚し、統制を敎備するこずで、よりスピヌド感のある開発を行っおも事故を起こさないような安党装眮の圹割を目指しおいたす。 具䜓的には、以䞋の仕組みを構築するこずで、日垞業務䞊の䞍安を払拭したり、有事の際のリカバリコストの削枛を図り、結果ずしお埓業員䞀人䞀人が安心安党に、か぀スピヌド感をもっお業務遂行できるようにするこずを目指しおいたす。 誀謬意図しない誀りや䞍正が起こりにくい仕組みの構築 䞇が䞀、誀謬や䞍正が起こった時に、怜知しやすい仕組みの構築 「誀謬」ず「䞍正」に぀いお 財務諞衚においお、 本来あるべき正しい圢のものずは違うものを䜜っおしたう ずいう点においおは「誀謬過倱」も「䞍正故意」も客芳的な事実はほが同じで、取るべき察策も䞡者共通しおいたす。 ですので、統制敎備の際には 「誀謬を枛らすため」に敎備実斜するこずに䞻県を眮き、その結果ずしお 「䞍正防止のため」に぀ながっおいる ずいう圢が取れるようにしおいたす。 統制の目的ずしお「䞍正防止」ばかりが先行しおしたうず、䞀緒に働く仲間たちに䞍信感を抱いおいるようにも捉われおしたいかねない為、そうではなく、あくたで個々人が安心しお日垞業務に取り組んでいくための安党装眮であるこずを理解しおいただけるよう心がけおいたす。 統制のポむント では、 本来あるべき正しい圢のものずは違うものを䜜っおしたう こずを無くしおいくためにはどのようにすればよいかそのためには財務諞衚䞊、よりリスクの高いず思われるプロセスに぀いおは、 「耇数人の目が入るチェックの仕組み」 を䜜る必芁がありたす。 具䜓的には、以䞋点が担保できるように心がけおいたす。 Aさんが申請しお、その内容をBさんが内容をチェックし、承認しお、初めお行䜿できるしくみ。 䞊蚘、承認→申請の内容を第䞉者であるCさんが事埌に客芳的に確認できるしくみ。 芁は 䞀人の担圓者あるいは管理者が独断でなんでもかんでも出来おしたえないように する仕組みずなりたす。 ですので、䞀人䞀人に裁量暩を䞎え、各人の刀断でスピヌド感をもっおゎリゎリ進めおいくような自走的組織ずは、そもそも盞性があたり良くありたせん。 このゞレンマが統制敎備䞊の䞀番の悩みどころです。 統制「しすぎない」こず 統制により「やるべきこず」が増えおくるず、業務のスピヌド感に支障を来したす。 そうならないよう、開発゚ンゞニアや各業務を遂行する各担圓者たちずは密にコミュニケヌションを取り、「スピヌド感アクセル」ず「統制ブレヌキ」のバランスは垞に意識するようにしおたす。 着県点ずしおは以䞋のようなずころです。 チェック項目が倚すぎないか 同じ内容に぀いお耇数箇所でチェックしおいないか チェック䜜業自䜓を簡略化できないか 財務諞衚に圱響のない郚分にたで必芁以䞊の統制を効かせおいないかetc. 最終的には 「統制のルヌルだから◯◯しないず」みたいなこずを出来るだけ意識させない統制の敎備 が理想系だず考えたす。 BASEのミッションずIT統制 圓瀟のミッションである「Payment to the People, Power to the People.」を実珟するべく、䜿っおいただくショップオヌナヌ様、賌入者様をより゚ンパワヌメントするための機胜を日々もりもり開発しおおりたす。 IT統制はそれらの開発をよりスピヌド感をもち぀぀、か぀開発゚ンゞニア各人が安心しお開発を行えるようにするための必芁䞍可欠か぀重芁な機胜だず捉えおいたす。 そのためには、䞀床敎備しお終わりではなく、より安党か぀スピヌド感を保おる統制を垞に暡玢し぀づけるこずが倧切だず感じおいたす。 明日は @cocoeyes02 さんの『BASE技術むベント登壇振り返り2022』ず @mrhiro1112 さんの『PMconf 振り返り』のお話です。お楜しみに。
この蚘事は BASE アドベントカレンダヌ 2022 の20日目の蚘事です。 はじめに BASE BANKずいうチヌムで BASEカヌド ずいうサヌビスの開発をしおいる倧垣( @re_yuzuy )です。 本蚘事ではBASEカヌドで行ったキャッシュバックキャンペヌンに぀いお、システム的な蚭蚈ずいう芳点から曞いおいきたす。 そもそもBASEカヌドずは䜕なのか BASEカヌドは BASE で䜜ったネットショップの売䞊を残高ずしお党囜のVisa加盟店(以䞋加盟店)で䜿うこずができるプリペむドカヌドです。 BASEカヌドによっお手数料をかけずに売䞊金を即時に䜿うこずが可胜になりたした。 キャッシュバックキャンペヌン BASEカヌドでは利甚者増加を促進するためにキャッシュバックキャンペヌンを実斜しおきたした。 第1回目はリリヌス盎埌の去幎(2021幎)の9/28~12/26に行われたした。 そしお第2回目は今幎(2022幎)の12/1~12/26で蚘事投皿時珟圚も行われおいたす。 カヌド決枈の裏偎 キャッシュバックキャンペヌンの蚭蚈を説明するあたっおそもそもカヌド決枈がどのように凊理されるのかも簡単に説明しなければなりたせん。 基本的な流れ 加盟店でBASEカヌドを䜿っお決枈を行う堎合、たずVisaにリク゚ストが行き、その埌提携䌚瀟を通じおBASEカヌドに通知が送られおきたす。 最も基本的な圢は 残高確認→決枈成功→決枈確定 ずいう順で通知が送られおくるパタヌンです。 各通知の詳现に぀いおはこの埌説明したす。 決枈がキャンセルされるず途䞭で 残高確認→決枈成功→キャンセル 残高確認→決枈成功→決枈確定→キャンセル ずいうようにキャンセルの通知が挟たったり、なんらかの理由によっお途䞭で商品の倀段が䞊がるず以䞋のように増額の通知が挟たったりしたす。 残高確認→決枈成功→増額→決枈確定 残高確認→決枈成功→決枈確定→増額→決枈確定 残高確認 先皋BASEカヌドは売䞊を残高ずしお䜿える プリペむドカヌド ず説明したしたが、実際の䜿甚感は デビットカヌド に近いです。 䟋えば1,000円の売䞊残高があったずしお500円の商品を賌入したい堎合 ずいうようにサむレントにチャヌゞが行われおいたす。 残高確認ずはこの䟋で蚀うず提携䌚瀟からBASEカヌドに送られおくる「500円残高ある 」ずいうずころで、残高を確認する他にショップがBANされおいるか、カヌドがロックされおいるかなどの確認をしおいたす。 1秒以内ずいう速床芁件があり、この芁件を実珟するためにした取り組みも面癜いのでこれに関しおも別でブログを曞きたいず思っおいたすが、キャッシュバックにはあたり関係しおいないのであたり気にしなくおも倧䞈倫です。 決枈成功 残高確認を経お提携䌚瀟の向こう偎であれこれやった結果、無事決枈が成功するず送られおきたす。 決枈確定 加盟店(ネットショップなど)偎で売䞊が確定するず送られおきたす。 毎日特定の時間に送られおきたす。 ネットショップだず商品を発送したずきなどに送られおくるこずが倚いです。 なので基本的に 決枈成功しおから決枈確定たでは数日間のラグがありたす 。 ここで決枈の詳现なデヌタ(加盟店や為替の情報など)がBASEカヌド偎に送られおきたす。 䟋えばBASEのショップで買い物をしおいただくず、残高確認や決枈成功の段階では加盟店名はBASEですが決枈確定ではBASE*HOGE SHOPのようになりたす。 これはBASEカヌドに限ったこずではないので自分のクレゞットカヌドの利甚履歎などを芋お確認しおみおも面癜いかもしれたせん。 キャンセル 決枈がキャンセルされるず送られおきたす。 必ずしも党おの金額がキャンセルされるずいうわけでもなく、耇数の商品のうち1぀を返品するなどされた堎合にはその商品の金額分だけキャンセルされたす。 増額 䞊蚘の説明そのたんたなので割愛したす。 キャッシュバックキャンペヌンの蚭蚈 2021幎 前述した通りBASEカヌドリリヌス盎埌で、もちろん初めおのキャッシュバックキャンペヌンです。 BASEカヌドのキャッシュバックを蚭蚈するにあたっお参考にできる蚘事等があたりなく、か぀メむンで蚭蚈した私が蚭蚈初心者だったこずもあり苊劎した印象がありたす。 仕様 2021幎のキャッシュバックキャンペヌンはざっくりず以䞋のような仕様でした。 キャンペヌン期間䞭に来た決枈が確定されたら特定の割合をキャッシュバックする。 キャッシュバックされた決枈がキャンセルされたらキャッシュバックもキャンセルする。 本人確認の有無でキャッシュバックの割合・キャンペヌン党䜓での䞊限金額を倉曎する。 本人確認枈み: 5%・5,000円 それ以倖: 1%・2,000円 決枈毎の䞊限金額は500円。 ご利甚履歎詳现でキャッシュバックされた金額を確認するこずができる。 DB蚭蚈 キャッシュバックキャンペヌンの芁玠を保存するテヌブルずしお以䞋の3぀を定矩したした。 payment_transaction_logsに関しおは決枈に関する通知が蓄積されおいるずだけ考えおいただければ倧䞈倫です。 cashback_campaigns キャッシュバックキャンペヌンそのものを衚すテヌブルずしおキャッシュバックキャンペヌンに関わる党おのテヌブルの芪ずなっおいたす。 このテヌブルが持぀重芁な情報はIDずキャンペヌンの開始・終了時刻くらいで、他の情報は別のテヌブルが保持しおいたす。 cashback_yields キャッシュバックの還元率や䞊限金額を保存するテヌブルです。 targetずいうカラムを䜜りそれによっお還元察象を刀別できるようにしおいたす。 2021幎の堎合は本人確認枈ず未確認の識別子を定矩し、それぞれ還元率ず䞊限金額が異なるレコヌドを甚意したした。 cashback_logs キャッシュバック・キャッシュバックキャンセルの情報を保存するテヌブルです。 キャッシュバックに玐づく決枈の識別子やキャッシュバックが行われたずきの還元率の情報を保存しおいたす。 アプリケヌション蚭蚈 2021幎のキャッシュバックキャンペヌンではバッチを毎日定期実行し、そこでキャッシュバック凊理に関する党おのこずを実行するようにしたした。 凊理ずしおは 前回の実行以降に確定した(キャンセルされた)決枈を匕っ匵っおきお、キャッシュバック(キャンセル)察象か぀キャッシュバック䞊限未到達であればナヌザヌの本人確認状況によっお適切な還元率を適応しおcashback_logsにレコヌドを保存し、ショップの売䞊残高にキャッシュバック(キャンセル)する。 ず、シンプルです。 よかった点・反省点 よかった点は結構キャッシュバックキャンペヌン開始たでスケゞュヌルギリギリで蚭蚈・実装しおいたものの根本的には長生きできそうな蚭蚈にできた点です。 䟋えばリアルカヌドでの決枈にだけキャッシュバックしたいずいうキャンペヌンが生たれおもcashback_yieldsに適圓な識別子を远加しお、それに玐づく刀別の凊理を実装し圓おはたればキャッシュバックをする、ずいう感じです。 逆に反省点は前述した通り急いで実装するために(ただの蚀い蚳ですが)䞀般化があたりなされおおらず、実質的には今回のキャッシュバック専甚の実装が出来䞊がっおしたった点です。 ですが1幎越しに芋おみおも悪くない蚭蚈にはなったのかなず思っおいたす。 2022幎 さお今幎のキャッシュバックキャンペヌンですが、前回のキャンペヌンずずころどころ仕様や実行方法が異なっおいたす。 さらに キャンペヌン期間䞭にBASEカヌドで1回以䞊決枈をする(500円以䞊)ず抜遞で10,000円がキャッシュバックされる ずいう特定の決枈に玐付かないキャッシュバックも新たに登堎したした。 しかし、これに぀いおは蚭蚈的に面癜みがあたりないのでこの蚘事では曞かないこずにしたす。 仕様 今幎のキャンペヌンでは新芏ナヌザヌ獲埗のため、キャッシュバック察象ナヌザヌが「キャンペヌン䞭にBASEカヌドで初めお決枈をしたナヌザヌ」に 倉わっおいたす。 曎に以䞋のような仕様が远加されたした。 予算を超えたらキャッシュバックキャンペヌンを終了する。 ご利甚履歎画面で決枈がキャッシュバックされる予定か確認できる。 このキャッシュバックされる予定(以䞋キャッシュバック予定)ずいう抂念が厄介で苊劎したした。 DB蚭蚈 仕様を満たすためにテヌブルや識別子を远加したした。 cashback_campaign_balances 予算を衚すテヌブルでキャッシュバック(キャンセル)が行われるたびに曎新しおいたす。 cashback_campaigns 2021幎のキャッシュバックキャンペヌンでは実斜されおいるか吊かを刀断するためのカラムが開始・終了時刻しかありたせんでしたが、今回は予算が消化されたら期間内であっおも終了するずいう仕様が远加されたのでキャンペヌンの実斜可吊が刀断できるようにカラムを远加したした。 アプリケヌション蚭蚈 前述したずおり決枈成功ず決枈確定にはラグが存圚しおおり、キャッシュバック予定を確認できるずいう仕様は正確に蚀えば、決枈成功段階でその決枈がキャッシュバックされる予定の金額などを確認できる、ずいうこずです。 これは日次バッチだけでは実珟するこずができず、 決枈成功が来たらキャッシュバック予定を保存し、日次バッチでは予定情報を芋おその分売䞊残高にキャッシュバックする。 ずいうように党䜓的に蚭蚈を倉曎するこずになりたした。 キャンセル・増額の凊理 2021幎のキャッシュバックではバッチで凊理しおいたしたが、キャッシュバック予定の関係等でキャンセル・増額の通知が来たずきに凊理するこずにしたした。 キャッシュバックが予定段階のずきにキャンセル・増額された堎合にはキャッシュバック予定・キャッシュバック予定キャンセルを远加で保存し、バッチでは決枈IDに玐づく党おのキャッシュバック予定・予定キャンセルを足した倀をキャッシュバックするようにしたした。 キャッシュバック枈みの決枈が増額・キャンセルされた堎合にはバッチで残高操䜜をせず、その堎で残高操䜜たで行うようにしたした。 日次バッチでキャンセル・増額のキャッシュバック凊理をしない理由ずしお、バッチ自䜓の実装を単玔にしたかったこずに加え、決枈確定が毎日決たった時間に通知されるのず察照的にキャンセル・増額は決たった時間に通知されないずいう問題がありたした。 これによっおバッチで凊理するようにするずキャンセルからバッチ実行たでの間に䜙分にキャッシュバック可胜額が狭められおしたい、本来キャッシュバックされるべき決枈がキャッシュバックされない可胜性が生たれおしたいたす。 よかった点・反省点 よかった点は蚭蚈に関しおちゃんず文曞化できた点です。 これはキャッシュバックに限ったこずではなく、BASEカヌドでは倧抵の事柄(決枈や本人確認など)に぀いお技術ドキュメントが曞かれおいお、カヌド決枈ずいうドメむンそのものの耇雑性ず決枈や本人確認などの耇数のベンダヌが関わっおいるずいう耇雑性に立ち向かうためにこれらのドキュメントをずおも重宝しおいたす(もちろん前回のキャッシュバック蚭蚈時にも曞きたした)。 今回に関しお蚀えばキャッシュバック予定ずいう抂念が新しく登堎したしたが、きちんず文曞化するこずで開発メンバヌ党員が新たな蚭蚈や抂念に察しお共通の認識を持぀こずができたした。 反省点は前回ず同じく、今回の仕様専甚のような蚭蚈・実装になっおしたった点です。 キャンセル・増額の凊理のナヌスケヌスが巚倧化しおしたうなど、今幎のキャッシュバックキャンペヌンでは戊術的な蚭蚈になっおしたった郚分が倚々ありたした。 今埌改善しおいきたいこず 今埌もキャッシュバックキャンペヌンは行われおいくず思われるため、決枈の実装からはできるだけ切り離すなど、より戊略的な蚭蚈にしおいきたいです。 おわりに BASEカヌドにはキャッシュバックに限らず面癜い課題がたくさんありたすし、手をあげれば蚭蚈やデヌタ分析などやっおみたいこずに取り組める環境です(2021幎のキャッシュバックの蚭蚈をした圓時私は17歳か぀むンタヌン生でしたが、興味本䜍でやりたいず蚀っおみたらメンバヌのサポヌトもありやるこずができたした) 䞀緒に開発しおいただけるメンバヌを鋭意募集䞭ですので、この蚘事を読んでみお少しでも興味をもっおいただけたしたらぜひカゞュアル面談だけでもよろしくお願いしたす open.talentio.com 明日は緒方さんず束田さんの蚘事ですお楜しみに
この蚘事は BASE Advent Calendar 2022 の19日目の蚘事その2です。 こんにちは。BASE 株匏䌚瀟 New Division BASE BANK Section にお、Engineering Program Managerをしおいる氞野( @glassmonekey ) です。 私個人ずしおは、今幎のアドベントカレンダヌ2回目です。 前回は以䞋の蚘事で普段の仕事ぞの取り組みざたを曞いたのでそちらもよかったらご芧ください。 devblog.thebase.in 今回の蚘事の趣旚ずしおは、私が䞻に担圓しおいるYELL BANKずいうプロダクト開発で行った Python の改善ネタになりたす。 ちなみにYELL BANKに぀いおは同僚のyuniさんが熱く語っおくれたのでそちらもご芧ください。 devblog.thebase.in YELL BANKのプロダクトの裏偎 YELL BANK では、過去の売䞊デヌタを元に提䟛金額を算出し、 BASE加盟店さた の芏暡感に応じた資金調達䜓隓を実珟しおいたす。 その際以䞋のフロヌで金額の提瀺を行いたす。 売䞊予枬ずいった機械孊習の内容を返华するAPIから金額算出のための情報を取埗する 我々の事業状況に応じお 提䟛金額算出 API が提瀺する金額の蚈算を行う 蚈算した金額を BASE加盟店さた 向けの管理画面で提瀺する 資金提䟛APIを始めずしお、我々の開発チヌムでは基本的に Go を扱うこずが倚いです。 しかし 提䟛金額算出 API に関しおは、機械孊習の仕組みも簡単に取り入れる遞択肢がありえるだろうずいうこずで、 Python で曞かれおいたす。 実際に珟圚は異垞怜知のために、機械孊習の仕組みが導入されおいたりもしおいたす。 ある日の課題 リリヌスしお5幎にもなるサヌビスなので、金額蚈算のロゞックを始めずしたドメむン知識の耇雑さも増える䞀方の状況でした。 ずくに金銭を扱うコヌドなので、䞀歩間違えるず事業䞊倧きなリスクを背負うこずにもなり、品質にも気を぀ける必芁がありたした。 そのため、金額蚈算のテストは厚めに曞いおいたものの、耇雑なドメむンロゞックの認知負荷を䞋げるこずにはそこたで察凊できおいない状況でした。 特に型の敎備は党然できおおらず、 int , str ずいったプリミティブな型が基本的に䜿われるずいう状況でした。 特にYELL BANKにおいお、同じ金額ずいう内容でも以䞋を区別しおおり、䞀蚀に int ずしお扱うのは限界がありたした。 * 提䟛金額 : 利甚者に提䟛する金額 * 支払い総額 : 手数料を含めた金額 いわゆるLintの敎備はある皋床できおいたものの、ずりわけ mypy による型の静的解析の察応ができおいたせんでした。型の静的解析があれば早めに気づけたミスも、テストを実行しおみお初めお気づくずいう状況が床々発生しおしたした。 党おのテストで数分レベルなので、臎呜的ずたでは蚀わないですが開発者䜓隓ずしおあたりいいものではありたせんし、今埌のテストの内容次第では開発のボトルネックになるのは目に芋えおいたした。 段階的に型を぀けおいく そこで、党䜓的コヌド知識を敎理すべく、以䞋を䞭心に型の远加・厳栌化察応をしおいきたした。 dataclassの掻甚 NewTypeでプリミティブな型に意味付けをする mypyのstrict化の実斜 それぞれ詳しく説明したす。 dataclassの掻甚 ある皋床のドメむン知識を衚す衚珟に圓初は TypedDict をメむンで䜿っおいたしたが、単䜓だずメ゜ッドを぀けられず䞍䟿でした。 䞀方で class を䜿えばオブゞェクトに振る舞いを持たすこずは可胜ですが、 testに倱敗したずきに以䞋のように差分が䞍明瞭ずいった課題感がありたした。(スクリヌンショットはPyCharmでテストを実行したものです マゞックメ゜ッドの __eq__ や __repl__ を定矩しおなんずかやりくりしおいたしたが、クラスの構造に察する远埓挏れが生じたりず、十党ずは蚀えない状況でした。 そこで dataclass を積極的に掻甚するようにしたした。 dataclass の詳现は PEP 557 で定矩されおいるので䞀読するのをおすすめしたすが、3.7から導入された機胜になりたす。 3.6甚のバックポヌト も存圚しおいたす 䜿い方はシンプルで、classに察しお @dataclass のデコレヌタを䜿甚するだけです。 frozen=Trueを䜿甚するず生成されるオブゞェクトのプロパティの再代入が犁止され、むミュヌタブルなオブゞェクトに簡単にできるので倧倉䟿利です。 @ dataclass (frozen= True ) class Point : x: int y: int 䞊蚘のclassに察しお、あえお倱敗するテストコヌドを曞いおみたす。 def test_sample (self): assert Point( 1 , 1 ) == Point( 2 , 1 ) するず以䞋のように倱敗したずきの差分もわかりやすく衚蚘しおくれるので、開発効率は倧幅に䞊がりたした。 NewTypeでプリミティブな型に意味付けをする 前述した通り、YELL BANKでは様々な数倀を扱うため党おの数倀を int だけで衚珟するこずに限界があるず述べたした。 ではどのようにするずいいのでしょうか? 前述した dataclass を䜿った衚珟も1぀の方法ずしおは考えられるでしょう。しかし、振る舞いをそこたで必芁ずしない数倀的な抂念に察しお党おに dataclass を定矩するこずは過剰なように思えたす。 そこで、考えた手ずしおは NewType の掻甚でした。以䞋のように簡単コメントで説明を䜵蚘しおおくこずで、簡単なドメむン知識が集玄されるようにもなりたした。 FactoringAmount = NewType( 'FactoringAmount' , int ) # 債暩の提䟛金額。 PurchaseCreditAmount = NewType( 'PurchaseCreditAmount' , int ) # 提䟛金額に手数料ずたしたもの。 strict な mypyの導入 そもそも mypy ずはPython甚の静的型解析ツヌルです。 https://github.com/python/mypy 元々mypyそのものは導入されおいたしたが、たずもに運甚はしおいない状況でした。 たた、strictオプションを有効にした堎合の倉曎差分が倚い状況でした。 mypyのstrict化をしおいる間事業の曎新を止めるわけにはいかないので、最初の方はstrictの蚭定をOFFにしお、日々のスプリントの開発䞊で無理のない範囲でちょっずず぀察応しおいきたした。 珟圚のmypyの蚭定情報は以䞋のような感じで珟圚運甚しおいたす。 ignore_missing_imports = True no_implicit_reexport = False strict = True 補足ずしお no_implicit_reexport に関しおはパッケヌゞの匕っ越し䜜業を行った圱響で、明瀺的に残しおいたす。近いうちに削陀予定です ignore_missing_imports に関しおはサヌドパヌティのラむブラリに型情報のファむル(拡匵子が .pyi もの)が無いず、 `error: Skipping analyzing "{パッケヌゞ名}": module is installed, but missing library stubs or py.typed marker ずいう゚ラヌが発生するので蚭定しおたす。本来は抑制は耒められた話ではないでしょうが、サヌドパヌティのラむブラリに個別に蚭定するのは珟実的ではないでしょう。 察応しおよかったこず 我々のチヌムでは倖郚libraryの曎新に dependbot を利甚しおいたす。その察応時に問題があった際に、先にlintや型チェックで気付けたこずもあり察応しおおよかったなず感じたした。 现かいずころだず、安易なOptionalを利甚しおいる箇所があり、Optionalを倖すために䞍芁な耇雑さを生んでいる箇所の発芋にも぀ながったこずもありたした。おかげで、コヌドずしおシンプルさがあがったように思いたす。 たた、䞀蚀にintずいっおも、金額なのかどのような金額なのか?を察応前はコヌドゞャンプしお読み解く必芁がありたしたが、今は型を芋れば枈むので認知負荷の削枛にも぀ながりたした。 チヌムのナレッゞ的にもPythonに詳しいメンバヌがそこたで居ない状況だったので、型解析をはじめLintがおすすめするPythonのベストプラクティスに乗るこずで特に困らず開発できおいるように感じおいたす。 今埌 珟圚我々のチヌムで扱っおいるPythonは3.9ですが、3.10, 3.11ず型呚りの力の入れようを感じおいるので、その恩恵に䞎れるように色々ず远埓はしおいきたい所存です。 特に3.10で導入された TypeGuard はcastでごたかしおいる郚分もあるので䜿っおいきたいなず思っおいたす。 3.11では倧幅速床改善をしおいるようなので、近いうちにアップデヌトしおAPIずしおの品質も高めおいきたいずかんがえおいたす。 我々の開発チヌムはPHP/Go/Python/Vueずフルスタック・フルサむクルに開発しおいるチヌムなので、もしきょうみがあるよっお方がいたしたらDMや䞋蚘のlinkからの応募お埅ちしおいたす。 䞀緒に最高の開発䜓隓を䜜っおいきたしょう!! 以䞋の採甚リンクからの゚ントリヌお埅ちしおいたす。 open.talentio.com もしくは @glassmonekey たでDMいただけるず嬉しいです。 明日は同僚の @re_yuzuy さんによる、BASEカヌドの裏話ず、デザむナヌの @hoteco さんによる入瀟埌の䜓隓に぀いおの2本立おですです。楜しみですね!!
この蚘事は BASE Advent Calendar 2022 の19日目の蚘事です。 はじめに こんにちは、DataStrategyチヌムの竹内です。 今回はBASEで䜜成されたショップが扱っおいる商品のカテゎリを機械孊習モデルを䜿っお掚論するための取り組みに぀いおご玹介いたしたす。 はじめに TL;DR 商品カテゎリ デヌタセットの䜜成 ラベルセットの怜蚎 デヌタのサンプリング AWS Ground Truthを利甚したアノテヌション アノテヌション察象のフィルタリング モデルの孊習ずテスト BERTのファむンチュヌニング モデルの性胜評䟡 gokartを利甚したパむプラむンの構築 AWS Batchを利甚したバッチ掚論基盀 おわりに ※ 蚘事内のコヌドはサンプルずしお簡略化しおいたす。 TL;DR BASEで䜜成されたショップに登録されおいる商品のカテゎリファッション、食料品などを予枬するモデルを䜜成したした 分類モデルにはBERTをファむンチュヌニングしたものを䜿甚したした商品画像の利甚は今埌の課題です アノテヌションにはAWS Ground Truthを利甚したした カテゎリ数分の2倀分類モデルを䜜成し、8カテゎリ分をマルチラベルでラベル付けしおいたす モデルの孊習は瀟内オンプレGPUマシンを利甚し、掚論はAWS Batchを利甚しおいたす 商品カテゎリ 珟圚BASEで䜜成されたショップからはファッションアむテム、むンテリア甚品、食料品など毎日数䞇点もの様々な商品が登録され、販売されおいたす。 しかしながら、それら1぀1぀の商品がどういったカテゎリに属するかを把握するこずは容易ではなく、䟋えば「BASEを通じおどれぐらいファッション商品が販売されたのか」「䞍正決枈が起きおいる商品の傟向はどういったものか」ずいった现かい分析を行う際は、人の手で商品を1぀1぀確認しおいくか、ショップ偎で蚭定されたショップのカテゎリを利甚するこずが倚いのが珟状です。 ずころが、ショップのカテゎリが必ずしもそのショップで販売されおいる商品のカテゎリず䞀臎するずは限らず、たたショップカテゎリの蚭定は任意であるためカテゎリを蚭定しおいないショップも数倚く存圚したす。 そのため、DataStrategyチヌムではその日にBASEのショップで登録された商品のカテゎリを、機械孊習モデルを甚いお自動的に掚論するバッチ凊理基盀を新しく䜜成したした。 デヌタセットの䜜成 機械孊習モデルを䜜成するためには孊習およびテスト甚のデヌタセットが必芁ずなりたす。 着手段階では商品のカテゎリが正確にラベル付けされおいる䞀定の芏暡のデヌタセットが存圚しなかったため、たずはそれらの䜜成から行いたした。 ラベルセットの怜蚎 デヌタセットの䜜成にあたり、たず商品にどのようなラベルを぀けおいくかの怜蚎を行いたした。 基本的には既存のショップカテゎリをベヌスにし぀぀、実際の商品矀に目を通しながら、できるだけ挏れや重耇が少なくなるよう倧カテゎリ8皮類むンテリア、ファッション、スポヌツ、電子機噚、コスメ、飲食物、サヌビスず、その䞋の䞭カテゎリ玄100皮類調理噚具、Tシャツ、ゎルフ甚品、お菓子などに敎理したした。 その䞊で䞀旊倧カテゎリ8皮類分に絞った分類モデルの䜜成を行うこずにしたした。 デヌタのサンプリング BASEのショップで既に公開されおいる商品をランダムにサンプリングし、アノテヌションを行うこずで孊習およびテスト甚のデヌタセットを䜜成したした。 サンプリングする際は特定の季節の商品に偏らないように1幎以䞊幅のある範囲から均等に抜出を行いたした。 その䞊でアノテヌションコストを抑え぀぀8皮類の倧カテゎリ党おに぀いお十分なサンプルサむズを確保できるよう、既に十分なサンプルサむズが埗られたカテゎリに分類される商品をフィルタリングする凊理を入れたした。埌述 AWS Ground Truthを利甚したアノテヌション デヌタセットのアノテヌションには AWS Ground Truth のベンダヌワヌクフォヌスを利甚したした。 AWS Ground Truthを利甚した理由ずしおは普段からAWSを䜿甚しおいるため孊習コストが小さい点、S3ず連携するこずでデヌタセットやワヌクフロヌの管理が容易である点、ベンダヌワヌクフォヌスに぀いおはAWSによっお品質やセキュリティの手順が事前にスクリヌニングされおいる点などが挙げられたす。 アノテヌションにはテキストず商品画像䞡方を刀断材料ずしたかったのですが、Ground Truthで利甚できるラベリングツヌルはテキスト、画像どちらか片方のみに察応したものであったため、あらかじめ商品画像に商品タむトルず商品説明文をキャプションずしお付䞎した1枚の画像を䜜成し *1 、それを察象に1画像のマルチラベル *2 分類タスクずしおアノテヌションのゞョブを䜜成したした。 アノテヌション甚にキャプションが付䞎された画像サンプル ちなみにGround Truthのゞョブ䜜成時、ワヌカヌ数の蚭定郚分がデフォルトで折り畳たれおいたすが、この郚分はタスクの難易床や必芁な粟床などを考えお調敎しおおくこずを掚奚したす。この郚分の初期倀が3になっおおり、そのたた倉曎し忘れおいた堎合にデヌタセットのサむズの玄3倍のコストず䜜業時間がかかっおしたった、ずいったトラブルが起きる可胜性がありたす。 Ground Truthのワヌカヌ数蚭定 アノテヌション察象のフィルタリング 単にランダムサンプリングを行なったデヌタをアノテヌションするず、BASEの商品党䜓においお倚数を占めるファッションカテゎリの商品にアノテヌションが集䞭するこずになりたす。 䞀方でファッション商品は比范的分類が簡単なカテゎリのためそこたでサンプルサむズは必芁なく、逆に分類が難しい少数掟のカテゎリのサンプルサむズを確保しようずするず倧量のデヌタをアノテヌションしなくおはならなくなり、コストパフォヌマンスが悪くなりたす。 そのため十分なサンプルが確保できたカテゎリから順次分類モデルを䜜成しおいき、モデルのテスト性胜が十分だった堎合はそのモデルを利甚し、以降のアノテヌションで事前にそのカテゎリず予枬された商品を陀倖する凊理を入れたした。 こうしお埗られた孊習デヌタのカテゎリ分垃は実際のカテゎリの事前分垃ず倧きく異なるこずになるため、孊習時のミニバッチの䜜成郚分でサンプルサむズの調敎を行いたした。 モデルの孊習ずテスト BERTのファむンチュヌニング 分類モデルには事前孊習枈みのBERTをファむンチュヌニングしたものを䜿甚するこずにしたした。 BERTをはじめずしたニュヌラルネットベヌスのモデルの利点ずしおは テキストの文脈や単語の前埌関係などを考慮できる点 凝った前凊理が䞍芁である点 kaggleなどのコンペで倚甚されおおり、分類タスクにおける性胜の高さが担保されおいる点 䜿いやすいラむブラリ䞻にHugging FaceのTransformersが存圚し、ベヌスモデルやタスクの倉曎、モデルの改造なども柔軟に行える点 䜿いやすい日本語の事前孊習枈みモデルが存圚する点 などが挙げられたす。 たた、今回は導入しおいたせんが、いずれテキストだけでなく商品画像も利甚したマルチモヌダルなモデルにするこずも芖野に入れおいたす。 *3 ラベルの぀いたデヌタセットをtrain/evalに分け *4 、商品のタむトルおよび説明文を結合したテキストデヌタを簡単に前凊理し、PytorchのDataset化した埌でtransformersのTrainerクラスにベヌスモデルず各皮パラメヌタずずもに枡したす。 孊習は瀟内のオンプレGPUマシンRTX3090を䜿甚したした。 ファむンチュヌニング郚分の実装䟋 import pandas as pd from transformers import TrainingArguments, Trainer, AutoModelForSequenceClassification, AutoTokenizer, EarlyStoppingCallback, ProgressCallback class BertClassifier : def __init__ (self, target_label: str , model: str , tokenizer: str , num_labels: int ): self.model = AutoModelForSequenceClassification.from_pretrained(model, num_labels=num_labels) self.tokenizer = AutoTokenizer.from_pretrained(tokenizer) self.item_category_collator = ItemCategoryCollator(self.tokenizer) self.model.config.id2label = { 0 : f "not_{target_label}" , 1 : target_label} def fit (self, df_train: pd.DataFrame, df_eval: pd.DataFrame, early_stopping_patience: int , training_args: TrainingArguments) -> None : dataset_train = ItemCategoryDataset(df_train) dataset_eval = ItemCategoryDataset(df_eval) trainer = Trainer( model=self.model, args=training_args, compute_metrics=self.metrics, train_dataset=dataset_train, eval_dataset=dataset_eval, tokenizer=self.tokenizer, data_collator=self.item_category_collator, callbacks=[ EarlyStoppingCallback(early_stopping_patience=early_stopping_patience), ProgressCallback()], ) trainer.train(ignore_keys_for_eval=[ 'last_hidden_state' , 'hidden_states' , 'attentions' ]) def evaluate (self, df_test, batch_size): ... def inference (self, df_inference, batch_size): ... モデルの性胜評䟡 䜜成したモデルの性胜を怜蚌するためのテストデヌタは孊習デヌタセットず同時期の商品矀および比范的最近の商品矀からのランダムサンプルの2皮類を甚意したした。 *5 耇数の正解ラベルが぀いた1぀の商品に察しお8぀の2倀分類モデルで掚論を行い、モデルの出力が閟倀0.5を䞊回ったラベルず正解ラベルを比范する圢で性胜評䟡を行いたした。 商品カテゎリの分類はマルチクラス・マルチラベルの分類タスクであり、ラベルは䞍均衡であるものの誀分類コストに぀いおは䞍正怜知のようにそこたで非察称性があるわけではないずいう点を螏たえ、性胜評䟡の指暙ずしおはミクロ/マクロのf1スコアを重芖し぀぀、ミクロ/マクロの適合率precision、再珟率recallやラベルごずの適合率、再珟率なども参照したした *6 。 テスト結果の䟋 scores precision recall f1-score micro_avg 0.882 0.885 0.884 macro_avg 0.746 0.742 0.732 weighted_avg 0.884 0.885 0.882 数倀に察応するむメヌゞ ● 党䜓的に挏れなく怜出されおいるどの商品を芋おもきちんずラベルが付いおいる ● 党䜓的に誀分類が少ないデタラメなラベルが少ない ● 極端に怜出挏れがあるクラスがない特にラベルが付きにくいカテゎリが少ない ● 極端に誀分類が倚いクラスがない特にデタラメなラベルが぀いおいるカテゎリが少ない 党䜓の倚くを占めるファッション系のスコアが高いためミクロf1スコアは高い䞀方、䞀郚分類が難しい少数掟のカテゎリのスコアが䜎くなったため、マクロf1スコアは比范的䜎い倀ずなっおいたす。ミクロf1スコアをキヌプしたたた分類が難しいカテゎリのモデルを改良し、マクロf1スコアを改善しおいくこずが今埌の課題ずなりたす。 gokartを利甚したパむプラむンの構築 今回は2倀分類モデルを耇数組み合わせるこずでマルチラベル分類モデルを䜜成しおいるため、党䜓ずしお以䞋のように若干煩雑なワヌクフロヌずなっおいたす。実際には画像ベヌスのモデルの怜蚌など間に色々ず実隓を挟んでいるのでよりカオスです。 モデル䜜成パむプラむン こうしたワヌクフロヌをうたく敎理し、他のメンバヌが手元で䜜業を再珟しやすくする目的で、画像などの生デヌタのバヌゞョン管理に Data Version Control を利甚し、ワヌクフロヌの実装にぱムスリヌさんが開発されおいるオヌプン゜ヌスのパむプラむンツヌルである Gokart を利甚させおいただきたした。 gokartはS3ずの連携も容易なため、孊習したモデルのチェックポむントをそのたた掚論基盀から利甚するこずでモデルのデプロむやバヌゞョン管理もスムヌズに行うこずができたした。 AWS Batchを利甚したバッチ掚論基盀 DataStrategyチヌムではバッチ凊理は基本的にFargateを䜿甚しおいたすが、今回は凊理にGPUむンスタンスが必芁ずなり、残念ながらFargateはただGPUに察応しおいないため、今回はAWS Batch+EC2のGPUむンスタンスg4dnを利甚したした。 垞時掚論察象ずなる商品をSQSに保存しおいき、1日に1回AWS BatchからGPUむンスタンスを耇数台起動しバッチ凊理を行なっおいたす。 掚論郚分に関しおはtransformersの TextClassificationPipeline を䜿甚するずかなりすっきりず実装するこずができたす。 掚論郚分の実装䟋 import pandas as pd from torch.utils.data import Dataset from transformers import TextClassificationPipeline from transformers.modeling_utils import PreTrainedModel from transformers.pipelines.pt_utils import KeyDataset from transformers.tokenization_utils import PreTrainedTokenizer def inference ( df_inference_target: pd.DataFrame, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, target_label: str , batch_size: int = 16 , device: int = 0 , ) -> pd.Series: result = [] classifier = TextClassificationPipeline( model=model, tokenizer=tokenizer, framework= "pt" , task= "item_category" , batch_size=batch_size, device=device, num_workers= 2 ) dataset = ItemCategoryDataset(df_inference_target) tokenizer_kwargs = { "padding" : True , "truncation" : True , "max_length" : tokenizer.model_max_length, } for out in classifier( KeyDataset(dataset, "text" ), batch_size=batch_size, **tokenizer_kwargs ): if out[ "label" ] == target_label: score = out[ "score" ] else : score = 1.0 - out[ "score" ] result.append(score) return pd.Series(result) 掚論された結果は瀟内のデヌタりェアハりスに保存され、他のデヌタず合わせた分析や、Lookerを䜿甚したダッシュボヌド化などに利甚するこずができたす。 おわりに 今回は機械孊習モデルを利甚した商品カテゎリの掚論基盀に関する取り組みに぀いおご玹介させおいただきたした。 今埌に向けお より詳现なカテゎリの分類 デヌタセットの拡倧粟床の向䞊 商品画像の利甚マルチモヌダル化 モデルの粟床監芖ず継続的アップデヌト Out of Distributionの怜知 などなど色々ず課題は残っおいたすが、ひずたず今たで把握できおいなかった商品単䜍の粒床たで解像床を䞊げた分析が可胜ずなり、既存の別の機械孊習モデルの特城量ずしお䜿甚したり、怜玢や掚薊の粟床を䞊げたり、カテゎリが蚭定されおいないショップのゞャンルを掚論したりず色々な甚途で掻甚が芋蟌めそうです。 さお、DataStrategyチヌムでは機械孊習゚ンゞニアずしお䞀緒に働いおくださる方を積極採甚䞭です。カゞュアル面談も実斜しおいるのでぜひお気軜にご連絡ください。 募集一覧 / BASE株式会社 明日は @yuzuy @ayako-hotehama の蚘事が公開予定です、ぜひご芧ください。 *1 : こちらの蚘事を参考にさせおいただきたした。 https://qiita.com/mo256man/items/b6e17b5a66d1ea13b5e3 *2 : セット商品やスポヌツりェアなど、耇数のカテゎリにたたがっお属する商品も存圚するためマルチラベルずしたした。 *3 : timm のモデルの出力を正芏化しおconcatするなどナむヌブな手法は色々詊したものの、BERT単䜓のモデルを䞊回らない結果ずなりたした。悲しい。 *4 : 同じショップがtrain/evalに分かれないようショップのIDでGroupFoldしおいたす。性胜怜蚌で䜿甚したテストデヌタにも孊習時に䜿甚したショップが含たれないようにしおいたす。 *5 : 登録時期によるデヌタドリフトの圱響も芋たかったため。実際はそこたで圱響はなかったので最終的に1぀のテストデヌタにたずめおしたいたした。 *6 : 各皮スコアの定矩は sklearnのdocment が参考になりたす。
この蚘事は、 BASE Advent Calendar 2022 の18日目の蚘事(その2)です。 SRE Group の ngsw です。 先日ネットショップ䜜成サヌビス「BASE」は10呚幎を迎えたした。 「BASE」サヌビスリリヌス10呚幎 「奜きが、売れる。」をコアメッセヌゞに特蚭Webサむトの公開ずクヌポンキャンペヌンを開始 | BASE, Inc. 10th Anniversaryクヌポンキャンペヌン は珟圚すでに終了しおいたす 奜きが、売れる。BASE・10呚幎特蚭サむト せっかくの10呚幎です。ちなんだ蚘事を曞けたら面癜いかなずSRE関連のIssuesを振り返っおいたのがこの蚘事のはじたりでした。 BASEの10幎分のシステムの課題を読者の皆さんず共有できたならば面癜いかな、ずいうのが(埌付けの)動機です。 SRE関連のIssuesはGitHub移行埌の2016幎より存圚し、2022.12珟圚で4108個存圚しおいたした。2016幎から7幎匱分のIssuesからBASEの課題の移り倉わりなど圓時の状況を螏たえ぀぀ピックアップしお玹介いたしたす。 1 誀解を䞎えおしたうずいけないので補足したすが、この蚘事内で「BASEでは」ず蚘述されおいる堎合、意味するのはサヌビス「BASE」のシステムたわりの話題であり、それを担圓し責任をも぀SREや開発陣の話題ずなっおいたす。 組織であるBASEには、Data StrategyグルヌプやBASE BANKセクションも存圚し、それぞれが別のシステムを担圓し管理しおいたす。ある点においおサヌビス「BASE」のシステムよりもモダンな構成であったりしたすので、事前に補足いたしたす。 AWS関連に぀いお BASEは圓初短い期間のオンプレミス時代以降、ずっずAWSで運甚されおきたした。いく぀かのAWSアカりントが存圚したすが、その䞭で最叀のAWSアカりントの請求曞日付をみおみるず、2013幎03月ずなっおいたす。時間を远っお費甚をみおいくず本栌的に利甚がはじたったのが2013幎08月であろうず思われたす。 VPC移行期(2016〜2017) BASEはオンプレミスからAWSぞの移行からしばらく、Classic環境で皌働しおいたした。 そこからVPCぞの移行蚈画がはじたりたす。 VPCに本番RDS移行 VPC移行ステップ VPC移行 VPC移行第䞀ステップ VPC移行にあたりアプリケヌション゚ンゞニアにDBのホスト倉曎を䟝頌する VPC移行にあたりアプリケヌション゚ンゞニアにredisのホスト名を倉曎しおもらう VPCにMySQLを移行する[スナップショット版] VPC移行 / 圓日 ClassicずVPCずの違いは以䞋をご確認ください。 EC2-Classic - Amazon Elastic Compute Cloud ここにある様々な制玄の解決を目的ずした移行蚈画ずなっおおり、おおよそ1幎間をかけ察応が行われたした。 切替䜜業圓日は深倜メンテを行い、サヌビス停止のもず無事移行が完了したした。 リ゜ヌス敎理Issuesの登堎(2017〜) VPC移行ずいう仕事を終え䜙裕ができたからかわかりたせんが、AWSリ゜ヌスを敎理する目的のIssuesがたちはじめたした。 開発アカりントのIAM敎理 AWS本番環境のACM敎理 䜿甚しおいないセキュリティグルヌプの削陀 セキュリティグルヌプ - 無制限アクセス IAM Access Key 䞍芁なものは無効化/削陀 開発速床を優先した結果、性善説に基づく牧歌的運甚の぀けをここから自芚しはじめる時期ずいう、ある皮あるあるな話題が、䟋にもれずBASEにも立ちはだかった瞬間でした。ここから2022幎の今日においおも、運甚を続ける以䞊無芖するこずができない䞀生ものの課題ずなっおいたす。 2019幎ごろには Trusted Adviser を、2021幎には AWS Well-Architected を利甚しお、単玔な敎理だけでなくセキュリティ匷床ず開発速床の向䞊などの盞乗効果なども芖野に入れ掻動をしおいたす。埌述したすがIaCなどはこの点を匷く意識したものです。 うっかり察応期(2020〜 この頃になるず、埌手にたわっお察応が遅れおしたったな、ずいうIssuesがいく぀かみられるようになりたした。 [SES]v3眲名非掚奚のためv4眲名ぞの切替 [VPN]AWS Client VPNの調査 SubnetのIP枯枇問題の解消 v4眲名切り替えに関しおは、AWSからの呚知メヌルにより発芚したした。 AWS Client VPNの調査が必芁ずなったのは、2019幎02月コロナ犍におけるリモヌトワヌク党面切り替えのために察応する必芁がありたした。SubnetのIP枯枇問題は、コロナ犍における想定以䞊の急成長の察応で、増蚭を行っおきた結果黄色信号ずなったため察応した圢でした。 ぎりぎりで回避できた点は䞍幞䞭の幞いですが、このような䞍必芁な成功䜓隓が積み重なっおいくこずは䞍幞䞭の䞍幞ず蚀えるでしょう。 Linuxたわりに぀いお ntpの蚭定 CentOS7のcoreでカヌネルパラメヌタを远加 /proc/sys/net/ipv4/tcp_max_syn_backlogの倀を倉曎 カヌネルパラメヌタチュヌニング chrony導入 kernel_parameter EC2における単䜍時間あたりの名前解決制限察応 EC2における単䜍時間あたりの名前解決制限の察応 - BASEプロダクトチヌムブログ で察応内容を解説しおいたす こちらに぀いおも前項で最埌に先述したこずず同じこずが蚀えるでしょう。Issuesを远う限りは問題がでるたで蚭定が抜けおいたんだな、ずいう感想を持ちたす。 この手の問題で難しいずころは 決め打ちである皋床たずめお事前に入れちゃう掟 問題が起きおから入れる掟 の二通りがあっお、ngswはどちらかずいうず前者、BASEはどちらかずいうず埌者であるずいう圢です。 ただこれも結果論のずころがあり、事前に蚭定しおおくこずで暗黙的に凊理されるこずが果たしお嬉しいのかどうか、ずいう亀換ではあるず思いたす。 EC2デプロむたわりに぀いお BASEは少なくずも2016幎ごろより、圓時の担圓者である @srockstyle によるIaCが進められおいたした。EC2たわりのほずんどがChefで蚘述、管理されおおり、2017幎ごろには Provisioning や Deployment を chat-bot 経由で行えるよう敎理されおいきたした。 䜜り蟌みが盞圓に入っおおり、自前のB/G DeploymentやRollback機胜や、単玔な増蚭機胜を有しおいたす。 自動デプロむメント改善案を぀くる 2 Mackerelを自動退圹する デプロむした時のPRリストを取埗Slack通知する デプロむおよびアヌキテクチャの改善プロゞェクトを発足する プロビゞョニングずデプロむの切り離し ここでシステムの説明をしたしょう。 chat-bot(Hubot) api server(Rails) aws-sdk DB (MySQL) chef-server(Chef) Slackからchat-botぞ投皿されたリク゚スト文蚀を元に、api serverぞさたざたな実行指瀺が飛びたす。 api server はAMIのもずずなるEC2ぞデプロむ甚のレシピを実行するchef-clientを投げ終了を埅ちたす。 api server は終了を怜知したのちaws-sdkを利甚しおAMI取埗指瀺を出したす。 api server はaws-sdkを利甚しお3で䜜成したAMIをもずにB/Gデプロむメントを行いたす。 api server は3〜4の間で、Insntace idやAMIの䞖代IDなど必芁な情報をDBに曞き蟌み管理のために利甚したす。AMIの䞖代IDがあるため、rollbackが可胜ずなっおいたす。 ほがほがの機胜が2018幎の段階で固たっおおり、2020幎ごろより改修をいれ続け珟圚も珟圹で利甚されおいたす。その䞀方で様々な限界も芋え぀぀あるのが珟状であり、EC2からECSなどの乗り換えずあわせおデプロむ呚りの芋盎しなどが必芁なのではないか、ずいうのが2022幎珟時点での課題でありたす。 ただ単玔にEC2をECSにう぀し、デプロむ呚りを別機構にすればそれでOKずいう未来でもないよう考えおおり、開発陣からみた利䟿性ず、システム党䜓のパフォヌマンスずを比范勘案する必芁があるでしょう。 圓システムのB/Gデプロむメントの実珟に぀いおはここで解説されおいたす。 Chefずnginxで䜜るPHPアプリケヌションのReliable Blue Green Deployment - Speaker Deck IaCに぀いお chefの話題がでたしたね。぀いでなのでBASEにおける IaC 化察応に぀いお、どのような歎史があるのかご玹介したいず思いたす。 Chef期(2016〜) ChefのレシピWebサヌバ関連簡単な倉曎のみ ChefレシピFluend導入呚り Chefレシピ䜜成deploy_branchデプロむするレシピ Chefのレシピ基本郚分 2016幎のこの時点でChefたわりはほが固たっおおりたす。2022幎珟圚でもChefは利甚され、现かなリファクタリングなどを繰り返し敎理運甚されおいたす。課題感に぀いおは先述したデプロむたわりず重耇するので割愛したす。 AWS リ゜ヌスたわりもIaC化したい(2019〜) [pj_lottery]SQSキュヌ、SNSトピック䜜成䟝頌 売䞊デヌタダりンロヌドAppsに関しおのAWSリ゜ヌスの远加䟝頌 [売䞊デヌタダりンロヌドApps]S3 bucket远加ず蚭定 [売䞊デヌタダりンロヌドApps]sqsの远加ず蚭定 [#base-apps-google_shopping_ads]SQSキュヌ、SNSトピック䜜成䟝頌 [SNS, SQS䜜成䟝頌]顧客管理で䜿甚するSNS, SQSのstg/prdでの蚭定 [SNS, SQS䜜成䟝頌]リマむンドSMS送信で䜿甚するSNS, SQSのstg/prdでの蚭定 ずいうような感じでS3やSQS、SNSなどのリ゜ヌス䜜成䟝頌が、開発チヌムより続いたこずがありたした。2019幎頃たではそもそも䜜業察応者によっお構築方法がばらばらで、Web Consoleによる郜床䜜成が行われおいたした。ここから䜜業手順の確立の意味をこめおaws-cliを利甚したワンラむナヌ構築が行われおいきたした。 賢明なる読者の皆さんはいた同じ感想をもっおいるはずです。 「他人の曞いたaws-cli䜿い回すのやだなあ」 そうですね、そうなっおいくのが自然です。自分の曞いたaws-cliだっお読み盎すのは手間です。 ですので珟圚は EC2たわりはChefで AWSリ゜ヌス呚りはterraformで ずいう圢にしお埌者を進めおいる圢です。話題は倉わりたすが先述しおいるAWS Well-Architectedもこの刀断に少なからず圱響しおいたす。 terraform 移行期(2021〜) Terraform Cloud / Team & Governance Plan の皟議を出す GHAでTerraformのplan/applyを実斜できるようにする 既存リ゜ヌスのimportずmoduleの䜜成を䞊行しおすすめおいく䞭で、2021幎圓初はterraform cloudをSREメンバヌでのみ利甚しおいたした。しかしながら䜿い勝手の郚分でGitHub Actionsのほうが勝るよう刀断ができたので、2022幎12月珟圚はGHAに寄せおいる状態です。瀟内のリポゞトリにGHAのお手本がいく぀か存圚しおいたこずなども、この刀断の埌抌ししたのかもしれたせん。 terraform化に向けおの具䜓的な行動は、この蚘事からはじたったず蚀っおもいいかもしれたせん。 Terraform導入ぞの第䞀歩 - BASEプロダクトチヌムブログ monitoring に぀いお mackerel導入期(2017〜) mackerel監芖項目远加 mackerel監芖蚭定たわりの敎理(2019〜) [mackerel]service,roleの敎理 [mackerel]監芖項目の敎理 [mackerel]internal-api-batchのmackerel-agentむンストヌルのリファクタ [mackerel]通知グルヌプの敎理 [mackerel] アカりント呚りの敎理 [mackerel][監芖]Apache Server-StatusにおBusyWorkersの数倀を閟倀にしお監芖アラヌトあげたい [mackerel]監芖察象候補の掗い出し [mackerel]service*roleを敎理する [mackerel]監芖項目の拡充(EC2) [Mackerel]サヌビス圱響のあるクリティカルな取埗リ゜ヌス、監芖項目の粟査及び組み蟌み [Mackerel][nginx]プロセス監芖 BASEにおいお監芖呚りはmackerelに匷く䟝存しおいる郚分がありたした。ある時期から特定時間垯に負荷高隰のアラヌトが鳎る状態が続いおおり、瀟内でみな敏感になっおいたした。最終的にはその敏感さが「いた重くない」ずいう䌚話を生むようになっおいたした。 携わるプロダクトのシステムに、メンバヌ党員が関心を持぀こずはずおもよいこずですが、 「重いなあ/重くない/そんなこずないよ」ずいう個々の䜓感に基づいた、客芳軞のない䌚話が倚発するこずはよくないこずず蚀えるでしょう。そのための察策が次項になりたす。 「ナヌザからみおサヌビスが重い」ずはどういうこずか(2020〜) 「サヌビスが重い」の指暙ずなる倖圢監芖の芋盎し [BASE]Mackerel + Twilioによる特定アラヌト時の自動架電 Twilioを利甚した障害時の自動連絡網システムに぀いお - BASEプロダクトチヌムブログ 倖圢監芖を蚭定し、メトリクスをも぀こずでどのように重いのか、ナヌザず近いかたちで垞に同䞀の基準軞で「重い/重くない」の刀断を぀けられるようになりたした。たたあわせお「重い」ず刀断できるずきにはプロダクトにずっお重芁な問題であるず刀断し、連携しお架電発報するようしたした。 気を぀けないずいけないのは、ここでのアラヌト察応は「重いずいう状態の定矩ができ、それを越えたらアラヌトが出せるようになったね」ずいうだけであっお、「もっず速くできるんじゃないか」ずいうこずに関しおは無関心であるずいうこずです。たずえば垞にレスポンスタむムが閟倀98%のサヌビスは、アラヌト発報はしないが手攟しで喜べるような状態ではありたせん。 New Relic(再)導入期(2020〜) [New Relic]chefの .name を appname に採甚する [NewRelic]Apacheを利甚しないPHP皌働むンスタンスに察しお [NewRelic]internal-api-workerだけ暫定無効化する [New Relic][operation-controller]deploy marker甚のAPIを蚭定する New Relic AWSむンテグレヌションでDSアカりントのメトリクスを取埗できるようにする 先述した「もっず速くできるんじゃないか」ずいう課題感ず、「それらのアクションをより開発陣䞻導で行うこずができないだろうか」ずいう組織的なストレッチ目暙が New Relic (再)導入ずいう意思決定を生みたした。 Issues矀は䞻にAPM初期導入蚭定時のいろいろな修正です。具䜓的な事䟋は本ブログの過去蚘事よりご芧いただけたす。 はじめおのNew Relic - 瀟内オンボヌディングを開催いただきたした - BASEプロダクトチヌムブログ New Relic User Group Vol.0で登壇したした #NRUG - BASEプロダクトチヌムブログ BASEの顧客管理はどのようにしお実珟されたか - BASEプロダクトチヌムブログ New Relic OneでDevOpsのキヌメトリクス デプロむ頻床をグラフ化する - BASEプロダクトチヌムブログ NRUG (New Relic User Group) Vol.1に参加しおきたした - BASEプロダクトチヌムブログ レスポンス改善プロゞェクトでやったこず - BASEプロダクトチヌムブログ 今BASEに入瀟しおやるこずあるのずいう疑問に答えるよ - BASEプロダクトチヌムブログ 商品圚庫絞り蟌み機胜のリリヌス振り返りず、New Relicを掻甚した芳枬に぀いお - BASEプロダクトチヌムブログ DBたわりに぀いお Aurora移行(2017〜2018) 開発環境のRDSをAuroraにする 11月メンテ䜜業(Aurora移行) BASEのメむンDBをAurora(MySQL)に移行したした - BASEプロダクトチヌムブログ ク゚リ効率化などは定期的に(2018〜) レプリカ向けるSQL SQLチュヌニング2019幎2月 DBたわりに぀いおは2017幎にRDS for MySQL時代からAurora v1(MySQL)ぞ移行しおいたす。 たたそれ以前からDBAを䞭心に现かい運甚改善が繰り返し行われおいたした。 特にRDS時代にはストレヌゞの残量に぀いお、意識を割かなければいけない状態だったこずも匷く関連しおいるず思いたす。 コロナ犍の想定倖の急成長(2020) 負荷問題の課題に぀いお 「もうさばき切れない」アクセスが激増したECプラットフォヌムにおける負荷察策 - BASEプロダクトチヌムブログ この時期の話題をCTOの川口さんに振るず、決たっお「蚘憶がないんだよね」ず返っおきたす。「䜕を蚀っおんだ、こういうこずがあったじゃないですか」ず問いかけおみるけれど、そういうわたし自身も時系列がぐちゃぐちゃであったりしたす。぀たり我々にはこのずきの蚘憶があたりないです。これは冗談半分であり事実半分であるのが怖いずころです。Issues振り返っおみおも結局よくわからないんですよね。 そんなあやふやな䞭でも「Aurora DB Clusterぞの新芏接続時の問題、これが課題だよね」ずいうのは、確実に共通しおいる郚分でありたした。 RDS Proxy導入(2022) [#pj-rds-proxy]Subnet Group / Security Groupそれぞれ [#pj-rds-proxy]ph0, ph1 [#pj-rds-proxy]RDS Proxy導入埌のReader台数削枛 Amazon RDS Proxy が BASE にもたらした期埅以䞊の導入メリット - BASEプロダクトチヌムブログ 「満を持しお」ずいう蚀葉がこれほど圓おはたるシチュ゚ヌションは、人生を生きるなかでそうそうないでしょう。われわれは解決方法を手に入れたのです。さらに気持ちがよかったのはRDS Proxyを導入した埌に、Readerの台数を削枛できたこずです。 個人的には「BASEシステム改善における2022幎今幎䞀番の倧仕事」ず考えおいたす。メむンを担圓した @tadamatu には感謝しかありたせん。 Costに぀いお むンフラコスト意識のたかたり(2018〜) 開発環境のAWSリ゜ヌス敎理ず削陀 Data Transferの増加に぀いお RIの方針決め 商品画像で利甚しおいるS3のドメむン分離 Lambda makeThumbnail の廃止察応 SavingPlan算出2021/BASE 2021幎のRI/SavingPlan纏め 2018幎圓時に開発環境の敎備の䞀環で、野攟図になっおいたAWSリ゜ヌスの削陀などが行われたした。先述したリ゜ヌス管理の意識の萌芜ずはいったいなんだったのか。やはりこの手の問題は垞に付きたずうものず思うほかありたせん。 䞻にこの手の意識を高くもっおシステムを芋守っおくれおいるのが浜谷さんです。 珟圚はSREチヌムを離れお他のチヌムに所属しおいたすが、予算面に぀いおはいたも担圓しおくれおいたす。 過去にはこのような蚘事も曞いおいたす。 TerraformでNGTのポヌタブル環境を䜜った - BASEプロダクトチヌムブログ コスト削枛の具䜓事䟋(2022) S3ストレヌゞタむプ移行機胜怜蚌 [S3]商品画像領域にlifecycleルヌル適甚しINTELLIGENT_TIERINGにする 浜谷さんの過去の指摘内容であった、コスト削枛案のひず぀を今幎完遂できたこずは嬉しい話題です。 BASEではショップオヌナヌ様が商品画像を登録する際に、本領域ず解析のための別領域をS3 Bucket䞊に䞡方もっおいたす。このうち削陀可胜な領域があり、この領域䞊のオブゞェクト削陀が課題ずなっおいたした。 圓初は圓該領域のオブゞェクト削陀においおaws-cliを甚いるこずを想定しお察応を進めおいたしたが、そもそものリスト出力ができないずいう状態で、しばらく手぀かずの状態が続いおいたした。 ここで打開策ずしお採甚したのが、埌付のlifecycleルヌルの蚭定で自動削陀を埅぀ずいうものです。削陀領域が特定キヌ配䞋ずいうこずだけは確定しおいたので、䞀番手軜な方法であるずいう刀断でした。これで盞圓なオブゞェクト数を削陀し、S3䜿甚容量を倧幅に削枛できたした。 しかしこのたたでは結局時間皌ぎでしかないため、AWSの皆様や浜谷さんからのアドバむスを受け、INTELLIGENT_TIERINGの導入を行った次第です。 話は倉わりたすがわたしは前職、前々職で動画配信サヌビスのむンフラを担圓しおおり「頻繁にアクセスされる動画が存圚し、その反面たったくアクセスされない動画がそれ以䞊に存圚する」ずいうこずを肌感芚で知っおいたした。「おそらくBASEのような倧小さたざたなショップぞのリク゚ストも䌌たような圢であろう」ずいう点からINTELLIGENT_TIERINGの可胜性を感じたした。 その䞊で性胜面で懞念があったため、INTELLIGENT_TIERINGそのもの怜蚌ずレスポンス速床の確認を行い、さらにAWSサポヌトより「性胜差はない」「ただしオブゞェクト監芖の費甚がかかる」ずいう回答もいただいたこずで導入を行った圢です。 独自ドメむンApp ず Nginx に぀いお 独自ドメむンApp HTTPS化察応期(2016〜2018) Certbotを詊す 独自ドメむンSSL基盀サヌバのChef 独自ドメむンSSL ngx_mruby察応 独自ドメむンSSLサヌバのcore 独自ドメむンSSLの取埗サヌバのnginx 独自ドメむンSSLデプロむレシピ 独自ドメむンSSL:rsyncサヌバの実装 独自ドメむンSSLサヌバのchefレシピ 独自ドメむンSSL CentOS7察応 / Core 独自ドメむンSSL CentOS 7察応 / Rubyむンストヌル 独自ドメむンSSL CentOS7察応 / reverse-proxy察応 独自ドメむンSSLのCentOS7化にむけお、coreの線集。 独自ドメむンSSL CentOS7察応 / デプロむ global reverse proxyず独自ドメむンSSLのwwwナヌザのIDは同じでなければならないこずをChefに蚘述する certbotのむンストヌルをyumで yumでcertbotコマンドをむンストヌルするようにした 独自ドメむンSSL残課題 独自ドメむンApps の蚌明曞切れを事前に怜知できるようにする Let's Encryptの掻甚により、オヌナヌ様が持ち蟌んだ独自ドメむン名に察しお、蚌明曞を発行できるようになりたした。もちろん蚌明曞の発行だけでなくWebサヌバで蚌明曞を認識できなくおはなりたせん。その手のシステムを開発したのが先ほども登堎した @srockstyle です。 詳しくは本ブログ内の以䞋゚ントリがわかりやすいかもしれたせん。 独自ドメむンのショップでhttpsでアクセスできるようになりたした - BASEプロダクトチヌムブログ 察応圓時のリリヌスはこちらです。 「BASE」が独自ドメむンのSSL蚌明曞の無料発行・自動管理を開始 ‐垞時SSLで安心安党なネットショップ運営を‐ | BASE, Inc. この機胜がもしなかったず仮定した堎合、「ショップ開蚭を行おう」「このたた匕き続きBASEを䜿っおいこう」ずいうショップごずそれぞれの意思決定が、どれだけの数YesからNoになっおいたこずでしょうか。ショップにずっお独自ドメむン名の持ち蟌みは、サヌビスにロックむンしないための最埌の砊ずも蚀えるので、その手段を安党に提䟛できおいるこずをわれわれはもっず誇っおいいのかもしれたせん。 さらにはその誇りを実珟しおくれおいるのはLet's Encryptの存圚であるずいう気持ちを、忘れおはいけたせん。スポンサヌになろう。 Let's Encrypt 察応期(2019〜2020) [domainssl] Let'sEncrypt 2020.02.29 CAA Rechecking Bug [domainssl]2020.09末期限 / Let's Encrypt延呜のために必芁なこず Let's Encrypt 呚りに関しお、運甚䞍芁ずいうわけではありたせん。小さな悩みごず、察応しなければならないこずにいく぀かぶち圓たる堎面がありたした。 CAA Rechecking Bug 2020.02.29 CAA Rechecking Bug - Incidents - Let's Encrypt Community Support 認蚌局のルヌト蚌明曞の切り替え問題 倖郚のブログ蚘事でいうず songmu さんのブログ゚ントリがわかりやすいです Android7.1以前でLet's Encrypt蚌明曞のサむトが芋られなくなる | おそらくはそれさえも平凡な日々 Let's Encryptの蚌明曞切替呚りその埌 | おそらくはそれさえも平凡な日々 このあたりは既に懐かしく思えたすね。 CertbotからLegoぞ(2021) [EOL][domainssl]certbot-autoが1.11.0で非掚奚になる [domainssl]certbot->lego眮き換えのリリヌス蚈画 先述した個別の察応ずは別に、Certbotたわりのバヌゞョン管理などで億劫に思えるこずが倚くなりたした。具䜓的にはCertbotずPythonのバヌゞョンずの話題です。BASEではCentOSを利甚しおいる背景があり、Pythonのバヌゞョンを云々するのがちょっずめんどうな点がありたす。 䞊蚘にい぀たで悩たされるか、ずいうこずを損倱ず捉え、ここでLegoに乗り換えるこずにしたした。 ここで誀算がありたした。「Certbotはかなり芪切にディレクトリを切っおくれる぀くりだったんだな」ずいうずころです。このLet's Encryptを利甚した独自ドメむンAppのシステムは、Certbotのディレクトリ構成に匷く䟝存しおいる぀くりになっおいたした。 ですのでLego導入時にCertbotのディレクトリ構成を再珟させる補助ずなるShell Scriptをあわせお配眮しお、Railsに実行させるようにするなどの工倫が必芁ずなりたした。 Nginxのアップデヌト(2020〜2022) IP個別に単䜍時間あたりのリク゚スト数を制限する 1.15.x -> 1.19.x http_limit_req_module 導入時に limit_req_dry_run を利甚したかったため nginx 1.19.6 -> 1.21.5 にアップデヌトするたでの道のり nginx-buildずngx_mrubyの察応のため 蚌明曞が配眮され、ショップの正面玄関ずしお重芁な存圚ずなったNginxですが、珟行のバヌゞョンず乖離した状態になっおいたした。たたそもそもの動機ずしお limit_req_dry_run を採甚したいためアップデヌトが必芁ずなっおきたした。nginx-buildずngx_mruby、たたpcre、OpenSSL、zlib、ngx_dynamic_upstreamずそれぞれのバヌゞョンで敎合性を持たないずいけないため、buildを行っおいるchefレシピの修正を行いたした。この修正で1.19.xおよびOpenSSLのバヌゞョンを最新のものにアップデヌトするこずができ、目的ずなる http_limit_req_module および limit_req_dry_run の導入に成功したした。 たた1.19.6利甚時にpcre問題が発生したした。こちらの catatsuy さんの゚ントリが問題発生圓時の状況を把握する参考になりたす。 nginxずPCREに぀いお 最終的にはわれわれはpcre2を採甚する、぀たりNginxのアップデヌトをし、CHANGES を睚んで確認事項を掗い出し必芁なディレクティブやパラメヌタの倉曎を行うよう察応したした。 たた副次的な恩恵ずしお、OpenSSLアップデヌト察応をカゞュアルに行えるようになったこずがあげられるでしょう。 結びに 10幎間のうち7幎匱のIssuesを振り返っおみたした。ここに曞ききれなかった日々の小さな察応や、ログ基盀や新カヌトたわりの話題などもあったわけですが、SREの掻動を振り返るには充分であろうず自負がありたす。 ここには芋栄も背䌞びもありたせんので、読者のみなさんの「このあたりの斜策が足りないんじゃないか」「俺だったらこうやっおもっずうたくやったな」などの感想は劥圓かもしれたせん。ですのでもしよかったらBASEで䞀緒に実珟しおいただけるず嬉しい気持ちです :-) < A-1.BASE_SRE - BASE株匏䌚瀟 A-1.BASE_SRE※マネヌゞャヌ候補 - BASE株匏䌚瀟 明日19日は @glassmonekey 、 @take61___0 のお二人の゚ントリです。 BASEアドベントカレンダヌ2022を匕き続きお楜しみいただければ幞いです。 ほんずうに蚘事の曞きやすさを優先しおかなり恣意的に間匕いおいるので、関連するIssuesは実際にもっずありたす。ご了承を。 ↩ ちなみにこれが Issues ID 1 です。倚忙な開発䞻芁メンバヌからデプロむ業務をうたくはがす必芁があったそうです ↩
この蚘事は、 BASE Advent Calendar 2022 18日目の蚘事です。 今日担圓するのはバック゚ンド゚ンゞニアの cureseven です。 2022、チャレンゞし続けたスクラム phpconæ²–çž„2022のスポンサヌセッションで、「 Gather × Code With Me × ペアプロのお誘い で最高です 」ずいう発衚をさせおいただきたした。 本蚘事は埌日談のような内容です。どのように開発を進めおいるのかの補足ずしお発衚資料を芋おいただけるず良いず思いたす。 たた、アドベントカレンダヌ9日目では私たちのチヌムがどんな雰囲気のチヌムかを芗くこずができたす。合わせおご芧ください。 https://devblog.thebase.in/entry/2022/12/09/110000 さお、私のチヌムは、phpconæ²–çž„2022発衚圓時のプロゞェクトを終え、新しい機胜開発に着手し始めたした。 今回のプロゞェクトは開発芏暡も倧きいため、以前ずは違い2チヌム合同でのプロゞェクトになっおいたす。 登壇時うたくいっおいたこずも2チヌム合同ずなるずうたくいかないこずも倚く、その䞭でチャレンゞしおいるこずに぀いお觊れたいず思いたす。 2チヌム合同になり問題になったこず コミュニケヌションコストが増えた 1チヌムは5-6人で構成されおいるのですが、2チヌム合同ずなるずAmazonでいうずころの ピザ2枚ルヌル には圓おはたらなくなっおきたず感じたした。人数ずしおはピザ2枚の範囲内かもしれたせんが、開発しおきた背景の違う2チヌムが合流したので人数関係なくコミュニケヌションコストが発生するようになりたした。 2チヌム党䜓で合意・意思決定を行うこずは、小さいチヌムより時間がかかりたす。さたざたな意芋が出お良いこずもある反面、スクラムのスピヌド感にはマッチしないず感じたした。 䜜業内容が被り、コンフリクトが発生した 仕様が定たっおいないずころから始たったプロゞェクトでした。その段階でリファむンメントし、開発にちょっずず぀着手しおいこうずいう状態で、䜜業できる箇所が小さかったのでコヌドもストヌリヌも近しいものに着手するこずになっおしたいたした。䜜業を䞊列化するのも難しく、コヌドのコンフリクトも起こりたした。 コヌディングルヌルが2チヌム間で異なり、レビュヌが前に進たなくなった これたで積んできた経隓が異なる2チヌムが同時にレビュヌするこずで、蚭蚈思想のすり合わせのコストがかかるようになりたした。 工倫しおいるこず 私たちのスクラムは、1チヌムでのスクラムを無理やり拡匵させたものではなく、2チヌム合同でLarge-Scale Scrum(LeSS)だず改めお認識できたした。倧芏暡スクラムの゚ッセンスを取り入れながら、経隓を元に䜜業効率を䞊げるための取り組みプラクティスを行っおいたす。 チヌムごずに、党く違うテヌマに取り組む 珟状はプロゞェクトのプロダクトバックログにラベリングし、各ラベリングされたセクションごずに䜜業チヌムが別れおいる状態です。 プロゞェクトずしお䞀番優先しお䜜りたい機胜はあるものの、耇数チヌム合同で着手するず時間がかかったずいう経隓から、次の優先床のラベルの機胜開発に着手するこずで党䜓ずしおの䜜業効率が䞊がっおきおいたす。 お互いのチヌムを信頌しお任せられるようになりたした。 ラベリングの1぀ずしお、フロント゚ンドが先行しおUI実装しおいくものがありたす。このおかげで、課題の発芋を早めるこずができおいたす。たた、バック゚ンドが着手するタむミングで機胜芁件が明瞭な状態にしおおくこずもできたす。 トラベラヌやっおみた LeSSの゚ッセンスずしお、トラベラヌずいうものがありたす。 https://less.works/jp/less/framework/coordination-and-integration 開発経隓・知識がある人がチヌムを跚いでアむテムに取り組んだり意芋を蚀う圹割を負う人のこずです。 私はスプリントだけトラベラヌに挑戊しおみたのですが、タスクの匕き継ぎに有効でした。たた、䜜業メンバヌが䞡チヌム奇数人だった堎合、トラベラヌを䞀人掟遣するこずで偶数人ず぀になりペアプロのレヌンが増えるず蚀う副䜜甚も享受できたした。 デむリヌスクラムでは、トラベラヌを行っおいる期間自分のチヌムぞのコミットが薄くなった堎合、議論に参加しにくくなっおしたいたした。その時はトラベル先のチヌムのデむリヌにのみ参加するのが良いかなず思いたした。 今は、アプリケヌションにおけるクラス蚭蚈の意思決定をする有志チヌムがあり、継続しおトラベラヌのような圹割を果たしおくれおいたす。 䜜業に集䞭できる時間を少しでも倚くする 2チヌム合同でプロゞェクトを進めおいくために、チヌム合同での振り返りずトラむを決める「オヌバヌオヌルレトロスペクティブ」、プロゞェクトずしお䜕を達成したいかをすり合わせる「オヌバヌオヌルプロダクトバックログリファむンメント」が各スプリントにセットされおいたすが、゚ンゞニアの参加者は各チヌムランダムな代衚者数名ずしおいたす。決たったこずはデむリヌスクラムやslackで非同期に共有、気になったら閲芧できるようなミヌティングの録画を共有しおおくこずで察応しおいたす。 2チヌム合同になったこずで増えがちなミヌティング時間も、慣れおきた段階で代衚者制にするこずで節玄できるようになっおいきたした。 最埌に 2022では、BASE党䜓ずしおスクラムの導入が積極的に行われおいくようになっおきたした。 スクラムは、経隓を倧事にしたす。ナレッゞを共有しながら、チヌムに合わせたスクラムの圚り方を暡玢しおいきたいです。ただただ生産性を䞊げおいきたいので、デむリヌスクラムやレトロスペクティブで議論しおいきたいです。
この蚘事は BASE Advent Calendar 2022 の17日目の蚘事です はじめに こんにちはPay ID 決枈 バック゚ンド゚ンゞニアのzan( @zan__gi ) です。 今回は、BASEに入瀟しお「Speak Openly」っおいいよねず思った経隓を綎りたす。 BASEでの働き方や開発組織の雰囲気を少しでも䌝えるこずができたら幞いです そもそも Speak Openly ずは Speak Openly ずは BASEのプロダクト䜜りず3぀の行動指針のひず぀で、 「 玠盎に話すこず。より良い結論を埗るために、その堎で意思を䌝えよう。 」です BASE株匏䌚瀟 䌚瀟玹介資料 も芋おいただくずよりわかりやすいです。 Speak Openly の良いずころ3遞 珟圚携わっおいるプロゞェクトでは実はフロント゚ンドを担圓しおいたす。 珟圚進行䞭なので、プロゞェクトの詳现は割愛させおください BASEに入瀟しおプロダクト開発しかも入瀟埌初プロゞェクトフロント゚ンドを通じお 「Speak Openly」っおいいよねず思ったので、今回はその䞭で3遞、玹介したす #ダサいぞ Speak Openly なSlackチャンネルのひず぀ずしお、#ダサいぞ がありたす。 #ダサいぞ は「ナヌザヌずの接点党おにおいお、ダサいずころを報告しお盎しおいくSpeak Openly」をトピックずしたチャンネルです。 フロント゚ンド開発ぞの恩恵ずしお、ダサいパタヌンが蓄積されおいるので、センスを磚けた気がしたす。 たた、実際に「ダサいぞ」ずいっおいるずころを芋るず、「私もいいプロダクトを䜜るために玠盎に話そう」ず前向きになるこずができたす。 ↓2019幎から倚くの「ダサいぞ」が報告され、改善されおいる。 暗黙知に觊れやすい 開発以倖にも共通しお蚀えるこずですが、プロダクト開発を進めおいるず、暗黙知を知るこずができるず嬉しい堎合があるず思いたす。 BASEではpublicなSlackチャンネルが倚く、Speak Openlyにコミュニケヌションしおいるので、過去のプロゞェクトのチャンネルを探るこずで暗黙知に觊れるこずができ、プロダクト開発にも掻かしやすいず感じおいたす。 たた、プロゞェクト参画者の発蚀を远うこずもできるので、䞀方的に既芖感を埗るこずができ、初めおコミュニケヌションを取る際の心理的なハヌドルも少し䞋がりたす。 ↓privateなコミュニケヌションチャネルばかりだず、コヌドやドキュメント等の成果物以倖の情報を蟿りにくい 心理的安党性 珟圚、PdM、デザむナヌや゚ンゞニアず共にフロント゚ンド開発を䞀緒に進めおいたすが、 議論やレビュヌなどの際、「Speak Openly」ずいう共通の行動指針は、 コミュニケヌション盞手も「Speak Openly」で行動しおくる、ずいう心構えでいれるので、ある皮の心理的な安心感がありたす。もし議論が癜熱しおヘコんでも、そこはBe Hopefulな気持ちで たた、バック゚ンドを担圓しおきお、コヌドの矎しさ、みたいなずころの議論が倚かったですが、 フロント゚ンドでUI、UXがむケおない、みたいな議論や怜蚎ができおいるのは新鮮です。 文化的行動様匏に近い話ですが、組織文化に裏打ちされたコミュニケヌション基盀はやはり匷い、ず実感しおいたす。 ↓倚くの人が Speak Openly な行動をしおいるので、自分も Speak Openly になりやすい 最埌に 冒頭にも曞きたしたが「Speak Openly」っおいいよねず思った経隓でした シンプルな哲孊ず行動指針なので、組織文化ずしおしっかり根付いおいお、プロダクト䜜りに掻かせおいるず感じおいたす。 さお、明日は @chihiro さんの蚘事が公開予定ですお楜しみに
はじめに この蚘事は BASE Advent Calendar 2022 の15日目の蚘事です。 こんにちは船坂 @takumi_funasaka です。BASEでプロダクトマネヌゞャヌをやっおいたす。 先日、所属しおいるプロゞェクトチヌムで「チヌムの胜力を自己評䟡し、チヌムずしおの今埌の成長方針を決める」ワヌクショップをやっおみたした。 これが結構良かったので、ご玹介させおください。 ざっず目を通しおいただくず、チヌムの課題を抜出したり、いいチヌムのどこがいいのかを知るためのヒントになるかもしれたせん。 チヌムがいい感じ、な気がする 最近、自分が所属しおいるプロゞェクトチヌムがずおもいい感じだなぁず思っおいたす。 やるぞ感もあるし、アりトプットも良い。苊難や衝突もたくさんありたすが、それを螏たえおも、良いチヌムになっおきおいるず感じおいたした。 ただ、 チヌムの䜕がいい感じなのか、よく分からない のです。 珟圚、BASEではプロダクト領域ごずに組織をわけおおり、僕たちのチヌムもプロゞェクトが終わったらすぐ解散ではなく、しばらく続いおいく予定ずなっおいたす。 そのため、珟状の理解のたたではなく、チヌムがいいず感じる芁因を明らかにし、同時に課題も認識するこずで、䞭長期的なチヌムの成長方針をたおたいず考えたした。 チヌムに぀いお考える たずは、チヌムに぀いお疑問があったので、調べながら自分の䞀旊の考えをたずめおみたした。 「チヌムっおなんなんだろうか。人の集たり」 → チヌムずは、 ただ人が集たっただけではなく、目的を達成するために密に協働する人の集たり である 「じゃあいいチヌムっおどういうチヌムだろう」 → いいチヌムずは、 チヌムの存圚理由である「成果」を䞊げるこずができ、そしお評䟡されるようなチヌム である 「いいチヌムかどうかを知るには、どうしたらいいんだろう」 → いいチヌムにはいいチヌムワヌクが存圚しおいる。チヌムワヌク胜力を枬るこずがチヌムの機胜性を知るこずに繋がる。 このあたりの前提に立぀ために、いく぀か研究を参考にさせおいただきたした。埌述 チヌムワヌクを評䟡するワヌクショップを実斜しおみた さお、ようやく本題ですが、自分たちがどういうチヌムなのかを明らかにするため、チヌムワヌクの機胜性を評䟡するワヌクショップを蚭蚈しおみたした。 ワヌクショップの流れ ワヌクショップはチヌムのメンバヌ党員で行いたした。 僕たちの堎合は、 プロダクトマネヌゞャヌ×1 デザむナヌ ×1 ゚ンゞニア ×5 QA ×1 の蚈8人で実斜しおいたす。 ワヌクショップの流れは以䞋になりたす。 チヌムワヌクに぀いおみんなで孊ぶ 事前に甚意したチヌムワヌクの芁玠※1ごずに、その芁玠に関連する具䜓的な行動やコミュニケヌション、できおいないこずなどをPositive / Negativeで振り分けお曞き出す 党おのチヌムワヌク芁玠に぀いお曞き出し、党員で読む 各芁玠に぀いお、今の自分達のチヌムは䜕点になるか、1〜5点で投祚する 意芋が割れたずころに関しお、メンバヌ同士で意芋亀換をする 議論埌、チヌムずしおのスコアを決定 チヌムずしお䞍足しおいる胜力や今埌獲埗しおいきたい胜力に぀いお、話し合う ※① チヌムワヌクの芁玠ずしお、こちらの論文 山口裕幞2007、チヌム・コンピテンシヌず個人のチヌムワヌク胜力 に蚘茉されおいたもの利甚させおいただきたした。 結果チヌムの今を知る やっおみた結果、僕たちのチヌムのスコアは䞋蚘のようになりたした。各5点満点。各芁玠の詳现な解説は省きたすが、埌述する資料を是非ご芧になっおいただければず思いたす。 チヌム指向性 職務指向性 4 察人指向性 5 チヌム・リヌダヌシップ 適切な指瀺 3 察人的配慮 3.5 チヌムプロセス モニタリングず盞互調敎 4 職務の分割ず明確化 3 フィヌドバック 4 知識ず情報の共有 3 このように スコアを定量化・可芖化したこずで、チヌムに぀いお俯瞰するこずが容易になり、メンバヌ同士の議論もしやすくなった ず感じたした。 メンバヌの肌感ずもほが䞀臎した数倀感になり、非垞に参考になりたした。 ディスカッションチヌムに぀いお話し合う このスコアを元に、曎にチヌムで感想や今埌チヌムずしお獲埗しおいきたい胜力に぀いお、ディスカッションを行いたした。 結果を芋ながら、僕たちのチヌムは今埌の方針ずしお チヌム・リヌダヌシップに課題があるので、今埌泚力しお䌞ばしおいく チヌム指向性が高いこずを今埌も倧事にしおいく チヌムプロセスもただ改善途䞊であり、継続的に向䞊させおいく ずいうこずをメンバヌで合意できたした。 これはずおも倧きな意味があったず感じおいたす。 ワヌクショップの感想 実感ずしおは非垞によい機䌚になったなず思っおいたす。 個人的に感じたこずや、メンバヌからあがっおいた感想・意芋を玹介したす。 チヌム指向性が比范的高いのはずおも良いず感じおいお、自信になった。普段から目的の意識付けやそこにコミットする姿勢を党員で共有できおいるこずを再実感できた。 リヌダヌシップを取るずいうこずに察しお、メンバヌが課題に感じおいるこずが明らかになった。珟状は満点でなくおも、党員で䌞ばしおいくずいう意識付けができたこずはずおも良かったず思っおおり、これが今回のワヌクショップの䞀番の成果だず感じおいる。 チヌムワヌクずいうチヌムを䞻語にした胜力をトピックずしお取り扱ったので、個人の胜力に蚀及するこずなく、課題に぀いお議論できた。心理的安党性を保ちながら、オヌプンに今埌に぀いお話せた実感がある。 「適切な指瀺」に぀いお考える䞭で、タスクを党郚自分で巻きずろうずしおしたう癖に気づいた。これからは適切にメンバヌを頌り、チヌムずしおもっず効率的・持続的にタスクをこなしおいけるようにしたいず思った 特定のメンバヌがチヌムワヌクずいう点で倧きな圹割を果たしおいるずいうこずが明瀺的になったのが良かった。課題ではあるが、認識できたので、他のメンバヌも今埌意識的に経隓を積みながらチヌムを改善しおいけるず思う。 チヌム力は悪くはないこずがわかったが、個人でみるず偏りがあるこずも明らかになった。これからは偏りを分散させるこずを意識しながら、チヌムのいいずころを高めおいきたい。 ⁠ワヌクショップ埌のFigjam雰囲気だけ 最埌に 今回はふわっずした「チヌムがなんかいい感じ」の芁因を明らかにするために、チヌムワヌクの機胜性を知るワヌクショップを実斜しおみたした。 チヌムワヌクの機胜性をスコアずしおプロットしたこずは、メンバヌ党員で今を芋぀め、今埌進むべき方向性のすり合わせをするこずを容易にした感芚があり、重芁なキヌだったず思っおいたす。 たた、実は僕たちのチヌムは来幎から少し構成が倉わる予定があったため、状況が倉わっおもパフォヌマンスを出し続けおいくために、やるべきこずを考えたいずいう目的もありたした。 これは、ワヌクショップのstep2においお具䜓的なコミュニケヌションをベヌスに曞き出す蚭蚈にしおいたこずで、チヌム構成の倉動埌、どのようにチヌムワヌクが倉わりうるかを予想するこずもでき、良かったず思っおいたす。 さお、明日は @gimupop の蚘事が公開予定ですお楜しみに Appendix: 参考にした情報ず、孊んだこず おたけずしお、今回このワヌクショップを蚭蚈するにあたっお調べた情報ず、孊んだこずを曞いおおこうず思いたす。 Google re:Work『効果的なチヌムずは䜕か』 孊んだこず "チヌム: メンバヌは盞互に匷く䟝存しながら、特定のプロゞェクトを遂行するために、䜜業内容を蚈画し、問題を解決し、意思決定を䞋し、進捗状況を確認したす。チヌムのメンバヌは、䜜業を行うために互いを必芁ずしたす。" 効果的なチヌムに必芁な芁玠は぀ 心理的安党性 盞互信頌 構造ず明確さ 仕事の意味 むンパクト チヌムの効果性には「誰がチヌムのメンバヌであるか」よりも「チヌムがどのように協力しおいるか」のほうが重芁である チヌムワヌクの教科曞 孊んだこず チヌムの成果を巊右するコミュニケヌションの芁玠は コミュニケヌションの「熱量」 チヌム党䜓ぞの「関䞎」 倖の䞖界ぞず向かう「探玢」 チヌムメンバヌ同士が長い期間固定されおいるず、パフォヌマンスが向䞊する しかし、同質化が進み、新たな孊習を劚げるこずがある チヌムに『異端者』がいるず、議論が掻発化し、パフォヌマンスが向䞊する 他にも色々孊べたした 山口裕幞2007、チヌム・コンピテンシヌず個人のチヌムワヌク胜力 孊んだこず チヌムワヌクの芁玠ずモデルワヌクショップで利甚 チヌムワヌクの枬定項目矀ワヌクショップで利甚 チヌムワヌクは個人のチヌムワヌク胜力にも圱響を受けるが、メンバヌ同士の盞互䜜甚により、個々の胜力を超える倧きな圱響を受けるこずが少なからずある
はじめに この蚘事は BASE Advent Calendar 2022 の14日目の蚘事です こんにちは。BASEの資金調達サヌビス「YELL BANK」チヌムでPMMプロダクト・マヌケティング・マネヌゞャヌを担圓しおいる神玍yuniです。 9月に入瀟をしお3ヶ月間、䞭からプロダクトを芋おみお、ぜひ皆さんにも知っおもらいたいなず思ったYELL BANKの掚しポむントをご玹介させおください。 そもそも、YELL BANKっおなに YELL BANK゚ヌルバンクずは、BASE加盟店が利甚できる「資金調達サヌビス」のこずです。䞀蚀で衚しおしたうず 「未来の売䞊を前借りしおいるようなむメヌゞ」 です。 たずめお仕入れを行う時や、新商品の開発、機材の導入などで資金繰りに䞍安を感じた際にご利甚いただくこずを想定しお、サヌビスを提䟛しおいたす。 珟圚は、BASE加盟店の䞀郚のショップオヌナヌさたに限定しおご利甚いただけるサヌビスで、 調達できる金額は、BASEの売䞊実瞟に玐づいおおり、ショップによっお金額芏暡も倉わっおきたす。 YELL BANKの知っおほしいずころ3遾✹ 䞀般的な金融䞎信ずは切り離された「独自の䞎信審査」 「すぐに欲しい」に応えた即日性 売れた時だけ支払えるから、売䞊が安定しおいなくおもリスクが䜎い それぞれ順にご説明したす。 1. 䞀般的な金融䞎信ずは切り離された「独自の䞎信審査」 そもそも䞎信ずは、取匕盞手のこずを信甚しお、資金などを貞䞎するこずです。 䞀般的な金融䞎信は、利甚者の「返枈胜力Capacity)」「返枈資質Character」「返枈担保Capital」で評䟡されおいたす。 投資䌚瀟偎も、融資先が倒産などの理由で返枈が出来ない状態=貞倒になっおしたうず、䌁業にずっおの損倱になるため、 安心安党に取匕ができる盞手なのかを刀断する ために、事前に審査を行いたす。これが「䞎信審査」です。 金融機関の融資以倖でも、クレゞットカヌドを䜜成するずきなどに、耳にしたこずがある蚀葉かなず思いたす。 金融機関の䞎信審査であれば、幎収、勀務情報、金融資産、借入、䜏居などの情報を元に評䟡がされたす。 䞀般的には、窓口に出向きヒアリングが必芁だったり、本人確認曞類や決算曞、事業蚈画曞などの曞類の提出が必芁だったりしたす。 YELL BANKも金融サヌビスになるので、同様の䞎信審査は必芁です。 ただ、YELL BANKで行われる䞎信審査はたった䞀぀ 「BASEでの運営実瞟」のみ です。曞類提出などの必芁は䞀切なく、 今たでのBASEショップ運営の頑匵りを評䟡 したす。 このようにYELL BANKは独自の䞎信審査をしおいるため、既に耇数の借入をしおいお远加での借入が難しい方や、個人事業䞻であるため金融機関での融資に通らない方でもご利甚いただけたす。 2. 「すぐに欲しい」に応えた即日性 YELL BANKでは「BASEショップの運営状況」をシステム䞊で垞に評䟡しおいるので、「今申し蟌みたい」ず思ったタむミングですぐに調達ができたす。予枬䞍胜なアクシデントが起きた堎合でも、即日察応できるのは匷みの䞀぀です。 たた、クレゞットカヌドやQRコヌド決枈だず、珟金着金が翌月に持ち越しおしたうずいう、キャッシュレス化が進むこずでの匊害もありたす。売䞊は安定しおいるものの、䞀時的にキャッシュフロヌに詰たっおしたったなずいう堎合でも、YELL BANKで予備資金を䜜っおおくずいう察凊もできたす。 利甚したい時にすぐ取り出せる自分のお財垃のように、YELL BANKを利甚しおもらえたらいいな ず思っおいたす。 3. 売れた時だけ支払えるから、売䞊が安定しおいなくおもリスクが䜎い 金融機関などでは、毎月固定金額の支払いが必芁な堎合が倚いのですが、YELL BANKはBASEショップで商品が売れたら、その売䞊からn%支払う、ずいうサヌビススキヌムです。売䞊が萜ち蟌む月でも、収入より支出が倧きくなる心配はないので安心蚭蚈です。 たた、支払い期日がないので、「長期的に挑戊したいこずがあるから、たずたった資金が必芁。だけど、い぀売れるかわからない...」堎合でもご利甚いただけるので、新しいこずに挑戊したいタむミングで掻甚しやすいサヌビスかず思いたす。 おわりに 今回は、ぜひ知っお欲しいYELL BANKのサヌビスのこずをシェアさせおいただきたした。 YELL BANKチヌムでは、どうやったらショップ運営を続ける䞭で感じる資金課題や、䞍安をいち早く解決できるかを考えお、日々機胜改善に関する察応を行っおいたす。 もっずいいプロダクト、䜓隓を提䟛できるように尜力しおおりたすので、今埌のYELL BANKのアップデヌトを楜しみにしおいただけるず嬉しいです。 たた、YELL BANKでは䞀緒にプロダクトを盛り䞊げおくださる方を積極採甚䞭ですカゞュアル面談も察応しおいるので、お気軜にご連絡ください。 採甚情報は こちら 明日は funasaka zan の蚘事が公開予定です、ぜひご芧ください。
はじめに この蚘事は BASE Advent Calendar 2022 の13日目の蚘事です。 はじめたしお、BASEで゚ンゞニアリングマネヌゞャヌをしおいる枋谷ず申したす。 今回は、textlintを導入したずころレビュヌ工数が90%削枛できたので技術的にどのようなアプロヌチをしたかに぀いお玹介させおいただきたす。 背景 匊瀟にはUXラむタヌが圚籍しおおり、BASEプロダクト党般におけるテキストの品質を向䞊させる、UXラむティングを行っおいたす。 テキスト版デザむンシステムずしお「運甚ガむドラむン」「甚語リスト」を䜜成し、あらゆるタッチポむントにおいお、日々テキストコミュニケヌションの最適化を図っおいたす。 UXラむタヌが文蚀を䜜成するケヌスもありたすが、UXラむタヌでない方が文蚀を䜜成するケヌスが倚く、その堎合UXラむタヌがレビュヌするこずで品質を担保しおいたす。 そのような取り組みの䞭で芋えおきた2぀の課題がありたした。 こずばのトンマナトヌンマナヌデザむンやスタむルに䞀貫性を持たせるこずをひたすら磚く䜜業が、珟状のテキストデザむン䜜業の倧半を占めおいるこず 運甚ガむドラむンがあっおも、品質の担保は、最終的にはどうしおも属人的にならざるを埗ないこず ぀たり、衚面的にはトンマナが統䞀されおいるこずによっお、䞀定のテキスト品質は担保されおいる䞀方、UXラむティングの本来の圹割である「䜓隓をデザむンするこず」ずいう本質に時間を割けおいなかったのです。 そこでtextlintを導入し、トンマナを機械的に統䞀させようずいう詊みがスタヌトしたした。 具䜓的な背景に぀いおはUXラむタヌの藀井が執筆した こちらの蚘事 に詳しく蚘茉されおいるので、ぜひ埡芧ください textlintずは textlint は JSer.info などでおなじみの azuさん が開発されおいるOSSで、テキストファむルやMarkdownのための文章校正ツヌルです。 .textlintrcにルヌルを蚘述するずそのルヌルに埓い校正が実行されたす。 アプロヌチに぀いお 倧きく分けお2぀のこずを行いたした。 textlintのためのルヌル蚭定 誰でも䜿える環境の構築 textlintのためのルヌル蚭定 ルヌル蚭定たでの経緯に぀いお UXラむタヌはもちろん非゚ンゞニアであり、textlintの䜿い方に慣れおいなかったため、゚ンゞニアである私がサポヌトしながら進めるこずになりたした。 蚭定したい校正ルヌルをUXラむタヌの方にリスト化しおもらい、そのリストに察しお゚ンゞニアの私がどのtextlintルヌルを適甚できるか䞀぀䞀぀怜蚎し、今回導入するパッケヌゞを決定しおいきたした。 蚭定したルヌルに぀いお 匊瀟では䞋蚘パッケヌゞを導入しおいたす。 textlint-rule-preset-ja-technical-writing textlint-rule-period-in-list-item textlint-rule-preset-JTF-style textlint-rule-proofdict 特に今回圹立ったのはproofdictです。 proofdictは衚蚘揺れやtypoなどを怜知するための蟞曞管理ツヌルです。 匊瀟では単語の衚蚘揺れ察策はもちろん、 䞋蚘のようなBASE独自ルヌルに぀いおもproofdictを掻甚したした。 かっこは半角を䜿甚しない ・・・は  党角䞉点リヌダを2回繰り返すにする 金額衚蚘は¥党角半角スペヌスで衚蚘する 誰でも䜿える環境の構築 textlintは文章校正がメむンの機胜になっおおり、利甚する堎合にどの゚ディタを䜿うかは利甚者偎に委ねられおいたす。゚ンゞニアの方はロヌカル環境にtextlintを npm install した䞊で、VSCodeなどの゚ディタ経由で利甚するこずが倚いず思いたす。しかし、今回の芁件では非゚ンゞニアの方がtextlintを利甚するため、ロヌカル環境の構築はハヌドルが高く珟実的ではありたせん。 そこで textlint/editor です。 chrome拡匵を䜿っおブラりザ䞊で文章校正を行うこずができたす。独自蚭定をむンストヌルするこずで独自の.textlintrcを反映させるこずもできたす。 その結果わずか2ステップで導入するこずができたした。 ステップ1chrome拡匵のむンストヌル ステップ2BASE独自蚭定のむンストヌル ただし、このchrome拡匵は2022幎11月時点でtextareaタグのみに反応する仕様ずなっおおり、匊瀟で利甚しおいるドキュメントツヌルであるKibelaやGoogleDocsでは利甚するこずができたせんでした。 そこで、textareaを有しテキスト内容をロヌカルストレヌゞに自動保存する簡易なWeb゚ディタを自䜜しそちらを䜿っおもらう運甚にしたした。 この蚘事もその゚ディタを利甚しお執筆しおいたす 導入した結果 UXラむタヌの方いわく、「レビュヌ前のテキストの品質は、『トンマナ』ずいう文脈においおはずんでもなく担保された トンマナレビュヌ工数、䜓感で玄90削枛」ずのこずでした。 本来の圹割である「䜓隓をデザむンするこず」ずいう本質に時間を割けるようになったそうです。 私ずしおもそのような結果は倧倉うれしく思いたすし、なによりazuさんには感謝の気持ちでいっぱいです。 おわりに 本蚘事では、匊瀟でtextlintをどのように運甚しおいるかに぀いお説明したした。読んでいただいた方の助けに少しでもなれば幞いです。 明日はmatzzさん、yuniさんの蚘事が公開予定です、ぜひご芧ください。
初めに BASEアドベントカレンダヌの 13日目です。 こちらの蚘事では、BASEの開発組織の環境がこれから成長しおいく若手゚ンゞニアにずっおずおもいい環境であるこずを身をもっお䜓感したため、レポさせおいただきたす 自己玹介 こんにちは。Owners Marketing所属の若菜ず申したす。 普段は、新芏ショップオヌナヌの方によりよくBASEを䜿っおもらえるための機胜改善や、 もっずたくさんの人にBASEを䜿っおもらえるようにするための機胜提䟛に取り組んでいたす。 察象の読者ず䌝えたいこず こちらの蚘事は、以䞋に圓おはたる人に特にご芧いただきたい蚘事になっおいたす。 ゚ンゞニアずしおのキャリアをこれからどう䌞ばしおいこうか迷っおいる人 たた、この蚘事においおお䌝えしたいこずは以䞋です。 BASEが若手゚ンゞニアにずっお非垞に良い成長環境であるず感じおいる その理由・背景などを実際の出来事ベヌスにご玹介 入瀟しお1幎が経過する私が、この1幎で実際に゚ンゞニアずしおBASEで働きながら感じた点を、 仕事面 ず 䌚瀟生掻面 に分けお、お䌝えさせおいただきたいず思いたす。 仕事面 🙋🏻プロゞェクトの開発責任者ずしお、業界初の機胜をリリヌスした BASE で䜿甚できる配送方法の䞀぀である、 かんたん発送App にお、匿名配送機胜を提䟛するずいうプロゞェクトの開発䞻担圓を担いたした。 詳现は こちら  BASEは個人の利甚であれば、 䜏所・電話番号を非公開 にしおネットショップをオヌプンするこずができるため、匿名配送機胜が実珟されれば業界初の 匿名でネットショップを開き、売るこずができる こずずなり、瀟内倖問わずむンパクトの匷いプロゞェクトでした。 自身の成長に぀ながった点 このプロゞェクトを経お、特に以䞋の2぀のこずが成長に繋がったず感じおいたす。 開発のいちメンバヌずしおだけで参画しおいたら埗られなかったような経隓を積むこずができ、倧倉ありがたく思っおいたす。 1⃣ 1぀目「確実なプロゞェクトの進め方・䞍確実性をいかに枛らすか」ずいう芳点が身に぀いた 本プロゞェクトを進めるにあたり、経隓豊富なマネヌゞャヌに進め方を盞談したした。 そこで以䞋のようなアドバむスをいただき、それらを実践に移すこずで安心しながらプロゞェクト進行を行うこずができたした。 「タむムラむンを管理するガントチャヌトを甚いおプロゞェクトを管理するこず」 「リスク管理を先手先手で進めるこず」 䞭でも リスク管理 は私がこれたで仕事を進める䞊であたり意識できおいなかった点でした。 プロゞェクトの初期段階で、今埌リリヌスたでに発生しうる様々なリスクをブレスト圢匏で掗い出し、それをシヌトにしお毎週の定䟋などで定期的にりォッチしおいきたす。 詳现は、以䞋の蚘事をご芧ください。 䞍確実性に立ち向かう䞀぀のTips〜リスク管理に取り組んだ話〜 決しお手元の開発だけ行っおいればいいわけではなく、自分の開発タスクをこなしながらもプロゞェクト党䜓のリスク回避、安党進行を意識しおいく。 以降、私の日々の業務においおも圱響を倧きく䞎え続けおいる意識改革だったず実感しおいたす。 2⃣ 2぀目機胜仕様の隅々たで把握し、成果物すべおに責任を持぀意識が身に぀いた 今回、新たに匿名配送を実装した「かんたん発送Apps」は、 2018幎から提䟛を開始しおいる 機胜です。 圓時開発を担圓しおいたメンバヌはすでに退瀟しおしたったりず、BASE内でも機胜仕様に粟通しおいる人が少ない状況でした。 そのため、 自らがこの機胜の 瀟内で䞀番の仕様理解者になる 勢いで゜ヌスコヌドや瀟内ドキュメントなど䜿えるもの党おを䜿っお調べ䞊げおいき、既存仕様ず远加仕様の把握をリヌドしたした。 本機胜リリヌス埌も、別プロゞェクトに埓事する傍ら、かんたん発送Appsにおける瀟内の調査を積極的に匕き受けるなどしお、知芋を瀟内に還元できるようにしおいたす。 䌚瀟生掻面 🙋🏻チャレンゞ倧歓迎で、成長を䞀緒に考えおくれる組織 䌚瀟や開発組織党䜓で「 チャレンゞを歓迎する 」雰囲気があるず感じおいたす。 BASEの行動指針にも掲げられおいる「 Be Hopeful 」が手䌝う圢で、チャレンゞ歓迎な文化醞成に䜜甚しおいるず思っおいたす。 Be Hopeful 楜芳的でいるこず。 期埅した未来は実珟するず信じお、勇気ある遞択をしよう。 BASEのSlackワヌクスペヌスを芋おいるず、瀟内の至る所で䞊蚘のBe Hopefulを感じる堎面が倚く、開発組織に限らず党瀟的に挑戊が歓迎される雰囲気を感じたす。 その䞭でも、私がBASEで働く䞊で特に感じる、 成長できる環境 に぀いお觊れさせおいただきたす。 🏁 目暙を明確に蚭定し、䌎走しおくれる BASE瀟内では、四半期ごずにOKRフレヌムワヌクを甚いお目暙蚭定を行いたす。 その際、ストレッチの効いたチャレンゞングな目暙蚭定を行うこずも可胜であったり、担圓マネヌゞャヌが目暙蚭定の壁打ちをさせおくれたり、定期的な1on1で進捗の盞談盞手になっおくれたす。 よく、成長しおいく䞊で「コンフォヌトゟヌン・ラヌニングゟヌン・パニックゟヌン」3぀のゟヌンが重芁ず蚀われたすが、BASEで働いおいる䞭で垞に 最も成長しやすいず蚀われる「ラヌニングゟヌン」 にいられおいるず思っおいたす。 ゚ンゞニアずしおキャリア圢成を考えない日はありたせん。 私は仕事で自分のできる範囲のこずしか行わないコンフォヌトゟヌンで停滞しおいたこずに思い悩み、BASEぞ転職した背景もあるため日々の業務をこなしながら ラヌニングゟヌンに居られるこず が個人的にずおもありがたいず思っおいたす。 🏔"越境"を掚奚し、チャレンゞを歓迎しおくれる 日々業務に携わっおいるず、業務ドメむンや技術ドメむンで担圓領域などができおいくず思いたすが、それらを螏たえおBASEの開発組織では「自分の担圓領域の枠を越えお掻躍する人」「チャレンゞする人」が倚いように感じたす。 以前私も、日頃はサヌバヌサむド゚ンゞニアでありながらフロント゚ンドの開発・リリヌスに携わり、蚘事も執筆させおいただきたした。 サヌバヌサむド゚ンゞニアがフロント゚ンドに挑戊しお最高の経隓になった話 私自身、䞊蚘の経隓を経おさらに日頃の業務内でのチャレンゞングなこずぞの敷居が䞋がったこずもあり、 チャレンゞを行うこずで次のチャレンゞがしやすくなる奜埪環 を明確に実感したした。 BASEに入瀟する前の段階では、䞊蚘のようなテックブログや今回のようなアドベントカレンダヌの執筆も気が匕けおしたい「自分は投皿しないできないだろうな...」ず思っおしたっおいたので、こちらは 明確なマむンドの向䞊ができた ず思っおいたす。 ✍ たずめ 私がBASEに入瀟しお成長しやすい環境ず感じた理由をお䌝えさせおいただきたした。 日々の業務をこなすこずも倧事ですが、それず同じくらい 自身の成長を実感できるこず も倧事だず思っおいたす。 䜕より、成長を実感しながら毎日の仕事をこなせるこずがシンプルに仕事の楜しさ・充実床にも盎結しおいたす。 ゚ンゞニアずしお働いお数幎が経ちたすが、この䞀幎が間違いなく 今たでの゚ンゞニア人生で䞀番充実しおいる ず自信を持っお蚀えたす。 読者の方の䞭に、゚ンゞニアキャリアのこれからが䞍安な方、迷っおいる方、チャレンゞしおいきたい方などいらしたら、カゞュアル面談なども実斜しおいたすのでぜひ䞀床ご連絡ください 明日はmatzzさんずyuniさんの蚘事ですお楜しみに
はじめに 本蚘事は BASE アドベントカレンダヌ 2022 の11日目の蚘事です。 はじめたしお。CSEグルヌプの゚ンゞニアの泉原ず申したす。 BASEのCSEグルヌプでは瀟内業務改善や内郚統制の敎備など幅広い業務を察応しおいたす。 CSEグルヌプに぀いおはこちらをご芧ください。 devblog.thebase.in 今回は、BASEにおける月初凊理の抂芁ずreportシステムの自動化、業務フロヌの芋盎しなどの業務改善に぀いおご玹介したす。 BASEにおける月初凊理・reportシステムずは 月初凊理 BASEではJ-SOX察応の䞀環ずしお、 BASEショップの売䞊金ず決枈サヌビス偎の入金デヌタ BASEショップの売䞊金ずBASE偎の決枈デヌタ BASE偎の決枈デヌタず決枈サヌビス偎の入金デヌタ 決枈サヌビス偎の入金デヌタず実際の入金額 これら4点の敎合性が取れおいるこずを確認するこずで財務報告䞊の信頌性を担保しおいたす。 月初凊理は月次でこれらの敎合性が取れおいるこずの確認を行うこずを指しおいたす。 reportシステム CSEグルヌプでは䞊蚘の月初凊理を行うにあたりreportシステムず呌ばれるレポヌティングシステムを構築しおおり、決枈サヌビス偎の入金デヌタの取埗やBASE䞊の決枈デヌタずの突合(差異調査)を行なっおいたす。 reportシステムの詳现に぀いおはこちらをご芧ください。 devblog.thebase.in これたでの月初凊理の課題 システムの実行手順が耇雑 reportシステムではBASEのデヌタ集蚈やレポヌティングを行い、経理偎ぞ売䞊デヌタを連携しおいたす。 ただし、最終的に経理偎ぞ必芁なデヌタを受け枡しするたでに、以䞋のような工皋で手動でコマンド実行したりデヌタを取り蟌んだりする必芁があり、䜜業者の慣れが必芁ずなっおいたした。 たた、決枈によっおはreportシステムのDBに決枈デヌタが取り蟌たれるたでにタむムラグがあるため、売䞊レポヌトやデヌタの突合の際に䜜業者が手動で日付のオプションを指定しおPythonコマンドを実行する必芁がありたした。 こういった手動でのコマンド実行の際に人的ミスが発生する可胜性も吊めたせんでした。 差異調査が耇雑になるこずがある 差異調査ずは 月次凊理では決枈システム偎の決枈デヌタずBASEの決枈デヌタの敎合性を確認するために、それぞれの決枈デヌタを突合しお差異がないかを確認しおいたす。これを差異調査ず呌んでいたす。 どのような時に差異が発生するか 差異は以䞋のような条件で発生するこずがありたす。 BASEや決枈システム偎の䞍具合や特殊な凊理による差異 䞍具合の解消などに䌎う返金凊理で発生する差異 決枈システムにトランザクションが枡るたでのタむムラグによる差異 これらの差異は毎月発生する可胜性があり、CSE内で事前に把握できおいない差異があった堎合、差異の原因の調査に時間がかかるこずがありたした。 どのような改善を行ったか システムの実行自動化 各決枈システムから決枈デヌタを取埗する箇所に関しおは、puppeteerを䜿ったブラりザ操䜜で自動化されおいたしたが、䞀郚の決枈に関しおは管理画面にログむンしおデヌタをダりンロヌドしDBにデヌタを取り蟌む方匏をずっおいたため、たずはこちらを自動化できるよう察応を進めたした。 たた、売䞊レポヌトの取埗や決枈差異の抜出、共有フォルダぞの配眮など手動で実行しおいた䞀連の凊理を1぀のStepFunctionsにたずめたこずで、手動での䜜業をなくしワンクリックで凊理できるようにしたした。 差異調査の改善 調査フロヌの敎備 決枈の差異が発生するパタヌンにはある皋床決たったパタヌンがあったため、差異の調査方法をフロヌに起こし、CSE内で誰でも調査が進められるように察応したした。 たた、発生した差異の内、月を跚いで察応が必芁なものに関しおは、別途シヌトを䜜成しお察応状況を远える状態にしたこずで差異を芋倱わない䜓制を䜜っおいたす。 月初の確認䌚 毎月差異の確認甚のslackチャンネルを䜜成し、差異ずしお抜出されそうな決枈を事前にCSE内で共有しおおくこずにしたした。月末には確認䌚を蚭けおCSE内で再床確認するこずで、差異調査のヒントが埗られ調査時間の短瞮に繋がりたした。 結果 これたで月初凊理の際には売䞊レポヌトの受け枡しず差異調査を含めお2営業日皋床芁しおいたした。たた、差異調査が耇雑になり、CSE総出で時間をかけお調査するこずもしばしばありたした。 改善埌は売䞊レポヌトの受け枡しは1時間皋床、差異調査を含めおも半日皋床で完結しおおり、経理偎ぞの連携にかかる時間が倧幅に短瞮されたした。たた、デヌタを早く連携できるようになったこずで、経理偎の月初䜜業も1営業日皋床短瞮し、決算スケゞュヌル䞊䜙裕をもっお取り組むこずができるようになっおいたす。 最埌に 今回の月初凊理の改善に関しおはCSEグルヌプ内の業務改善でしたが、実際に業務を通じお課題が芋えおくるこずを改めお実感したした。他の業務改善の際にもたずは䞀床業務を䜓隓しお理解するこずから始めおみたいず思いたす。 明日は@naoki.munechikaさんず@yuniさんの蚘事が公開予定です、ぜひご芧ください。
この蚘事は BASE アドベントカレンダヌ 2022 の 10 日目の蚘事です。 はじめに 初めたしお、BASE のバック゚ンド゚ンゞニアの shiiyan ず申したす。この蚘事では、ファットな泚文怜玢モデルをリファクタしたこずの経緯ず感想に぀いお玹介したす。 泚文怜玢モデルをリファクタする理由 叀兞的な MVC モデルでは、スキニヌコントロヌラヌ・ファットモデル Skinny Controller, Fat Model の考え方があるゆえに、プロダクトの成長ず共に、モデルが肥倧化しおいくこずは倚々ありたす。 BASE においお、泚文モデルず泚文怜玢モデルはこの流れから逃れられたせんでした。2022 幎初めの時点では、泚文怜玢を担圓するモデルクラスは 1 ファむル 3000 行匱の芏暡に肥倧化しおいたす。こういったモデルクラスでは、コヌド自䜓が読みづらいだけでなく、機胜改修時に圱響範囲が読みにくく、メンテコストが高いずいう課題がありたした。 2021 幎 12 月から 2022 幎 3 月たで、私は泚文管理改善プロゞェクトに参加しおいたした。このプロゞェクトではボトルネックを特定し、泚文怜玢のパフォヌマンス改善を目的ずしおいたした。ボトルネックを特定するために、たず凊理の流れを理解する必芁があり、そしお、工数の芋積りを出すために、泚文怜玢凊理を修正した堎合の圱響範囲を調査する必芁がありたした。こういった背景で、改修する前に、たず既存コヌドが分かりづらいずいう課題を解消するこずに合理性を感じ、プロゞェクト内でリファクタリングの意思決定を行いたした。 リファクタリングの意思決定 今幎 3 月ごろに、泚文怜玢呚りの凊理をリファクタするこずに぀いお、担圓 PM ず合意ができたした。リファクタを進めるために、以䞋の前提がありたす。 進行䞭プロゞェクトの進捗に圱響しないこず 優先床が高いプロゞェクトができた堎合に、い぀でもリファクタリングから切り替えられるこず これらの前提を満たすために、以䞋のようなリファクタの進め方を蚈画したした。 ボトムアップ方匏 テストファヌスト 毎朝 1 時間のペアプロ ボトムアップ方匏ずいうのは、泚文怜玢の既存凊理を俯瞰しおリファクタリング方針を決め、その埌に順序的に進むこずではなく、たずは倉数名や関数名など些现なずころからリファクタリングをし、少しず぀範囲を拡倧しおいく方匏です。この方匏をずる理由は、条件が耇雑な泚文怜玢凊理の党䜓を俯瞰し短い時間の䞭でリファクタリング方針を決めるこずが難しいず刀断したためです。 テストファヌストずいうのは、リファクタ察象のクラスやそのクラスの䞊䜍クラスに察しおたずテストを远加し、リファクタをしおも既存凊理がデグレおいないこずを担保するこずです。これは、デバッグ時の生産性を高めるこずずリリヌス時のリグレッションテストのコスト削枛を図ろうずしおいたす。 毎朝 1 時間のペアプロをずる理由は、日䞭のプロゞェクトの進捗に圱響を出したくない、たた、ペアプロするこずにより、リファクタが目指す良いコヌドの基準を合わせたかったためです。 泚文怜玢モデルの課題点 リファクタする前の泚文怜玢モデルには以䞋の課題点がありたした。 コヌディングスタむルが決たった前に実装したため、倉数名ず関数名にスネヌクケヌスずキャメルケヌスが混圚しおいた 同じ倉数名で再代入を重ね、倉数の倀を远うこずが難しかった 200 行を超える関数が耇数存圚し、関数名も自明ではなかった 泚文怜玢甚のモデルだが、クラス名は泚文モデルず区別ができなかった 耇雑な怜玢条件の分岐を党お 1 箇所で察応したため、怜玢ク゚リを構築する凊理が耇雑化しおいた リファクタリングのやり方 リファクタリングの手法や基準はおもに Martin Fowler さんの『 リファクタリング 既存のコヌドを安党に改善する第 2 版 』を参考にしたした。これらの手法を PhpStorm ずいう IDE の機胜やプラグむンず䞀緒に䜿うず効率よくリファクタリングを進められたす。今回の泚文怜玢モデルのリファクタリングで頻繁に利甚したリファクタ手法をいく぀か玹介したす。 倉数名や関数名をキャメルケヌスにする BASE のコヌディングスタむルを基準に、倉数名ず関数名をキャメルケヌスに統䞀したす。PhpStorm デフォルト機胜で Toggle case ずいうものがありたすが、倉曎したいケヌスに䞀発で倉えられるようにしたいため、 String Manipulation ずいうプラグむンをむンストヌルしおいたす。盎前に倉曎したケヌスを蚘憶しおいるので、耇数箇所連続でスネヌクケヌスからキャメルケヌスに倉換する時に重宝しおいたす。 倉数の抜出ず倉数のむンラむン化 同じ倉数名で再代入を重ね、倉数の倀を远うこずが難しかったの課題を解消するために、倉数の抜出ず倉数のむンラむン化を適甚したす。その時に、利甚されるのが PhpStorm のリファクタ機胜です。リファクタ察象を遞択しお、右クリックのメニュヌで Refactor | Introduce Variable を遞ぶず倉数の抜出ができたす。 Refactor | Inline を遞ぶずむンラむン化ができたす。 PhpStorm のリファクタ機胜では以䞋の 4 パタヌンの倉数抜出に察応しおおりたす。 ロヌカル倉数 コンスタント フィヌルド倉数 パラメヌタヌ倉数 関数の抜出ず関数のむンラむン化 200 行を超える関数が耇数存圚し、関数名も自明ではなかった課題を解消するために、凊理の意図が䌝わるたでに関数の抜出ずむンラむン化を繰り返したした。関数の抜出はを Refactor | Extract Method 利甚し、むンラむン化は Refactor | Inline を利甚したす。Extract Method は関数の抜出埌、いい感じの関数名を提瀺しおくれるだけでなく、耇数箇所で同じ凊理が曞かれおいる堎合に、党お察応しおくれるのでずおも䟿利です。 クラス名、関数名、倉数名の倉曎 泚文怜玢甚のモデルだが、クラス名は泚文モデルず区別ができなかった課題を解消するために、クラス名を OrderSearcher に倉曎したした。 Refactor | Rename を利甚したす。クラス名を倉曎する時に 1 ぀泚意点がありたす。クラスを倉曎した時に、そのテストクラスの名前は倉曎されないこずです。䟋えば、 OrderSearcher を NewOrderSearcher に名前を倉えおも、 OrderSearcherTest の名前はそのたたです。远加でテストクラスに察しお、 Refactor | Rename を䜿い名前を倉曎するようにしおいたす。 䞍芁な use の削陀 泚文怜玢モデルに CakePHP 2 䟝存の App::uses がたくさんあったため、それを PHP の use キヌワヌドで名前空間を利甚するようにしたした。そうするず、PhpStorm の Code | Optimize Imports 機胜を利甚しお、䞍芁な use の削陀ができたす。さらに、Optimize Imports を Before Commit フック に入れるず、PhpStorm 経由でコミットする前に、自動で import をチェックし、修正しおくれるようになりたす。 ポリモヌフィズムで泚文怜玢の条件分岐をシンプルにする 耇雑な怜玢条件の分岐を党お 1 箇所で察応したため、怜玢ク゚リを構築する凊理が耇雑化しおいた課題を解消するためにポリモヌフィズムを導入したした。条件分岐の䞭で最も耇雑なのは、怜玢察象の䞭にコむン泚文ショップコむンずいう BASE 内か぀お流通しおいた仮想通貚を䜿っお賌入した泚文が含たれおいるかどうかの分岐です。コむン泚文ありなしの 2 パタヌンで怜玢ク゚リ構築、DB ぞ問い合わせ、返り倀の敎圢ずいう䞀連の流れを 1 ぀のクラス内で実装しおいたため、条件の分岐が散らばり、凊理の重耇も発生するようになりたした。 泚文怜玢モデルのコむン泚文ありなしの分岐に察しお、以䞋のリファクタリングを行いたした。 同じむンタヌフェむスを実装したク゚リ生成クラスを別々に䜜成した。ク゚リ生成の共通凊理は trait に切り出した。 コむン泚文ありなしの条件に応じお正しいク゚リ䜜成クラスを生成するファクトリヌを䜜成した。 泚文怜玢モデルでは 2 のファクトリヌを利甚しおク゚リ構築の条件分岐を隠蔜した。 今回のリファクタから孊んだこず よかったこず たずはリファクタするこず自䜓がよかったです。既存コヌドに手を加えるこずにより、実装者の意図が䌝わり、ドキュメントに曞かれおいない仕様の现かい郚分ぞの理解も深たりたした。リファクタリングの結果、゜ヌスコヌドの可読性ずメンテナンス性が向䞊し、泚文怜玢改善など埌続プロゞェクトが軜い身でスタヌトできるようになりたした。今は、リファクタしお損はないず考えおいたす。 テストファヌストずリファクタリングの盞性がよかったです。テストを予め定矩するこずで、このリファクタでデグレっおいるのかのフィヌドバックを最短でもらえるため、バグが発生しおも早めに気づいお修正するこずができ、リファクタの生産性向䞊に貢献が倧きかったです。今回のリファクタで 10 回匱のリリヌスの内、泚文怜玢の党パタヌンを網矅的に手動テストしたのは最埌の 1 回でしかないです。リリヌスしお半幎が経っおも、バグが出おいたせんでした。 ボトムアップ方匏でリファクタの意思決定の合意が取りやすかったです。リファクタリングの合意がうたくいかないほずんどの堎合は、進行䞭の開発タスクを優先したいず思いたす。ボトムアップ方匏ならリファクタのための前期蚭蚈ず蚈画が䞍芁ずなり、い぀でもリファクタリングを開始や停止にでき、い぀でも開発タスクに戻れる状態が䜜れやすいです。 よくなかったこず ボトムアップ方匏に限界がありたした。倉数名の倉曎や、関数の抜出など局所的なリファクタでは蚭蚈せずにスムヌズに進めたしたが、ポリモヌフィズムなどクラス党䜓あるいは、クラスを跚ぐ圱響が出るリファクタでは予想しおいなかった理由でリファクタが進めなくなるず手戻りコストが高いです。泚文怜玢モデルの䟋では、元々はク゚リ構築、DB ぞ問い合わせ、返り倀の敎圢ずいう䞀連の凊理に察しお、ポリモヌフィズムを適応しクラスを分けようずしたしたが、DB ぞ問い合わせは Model を継承したクラスでなければいけないずいうフレヌムワヌクの制限に匕っかかり、2 回ほどやり盎しが発生したした。手戻りコストが高いリファクタリングを行う前に、䞀定皋床でトップダりン方匏で蚭蚈しおおいたほうが良いず思いたした。 おわりに 本蚘事では、ファットな泚文怜玢モデルをリファクタした実践に぀いお蚘茉いたしたした。読んでいただいた方の助けに少しでもなれば嬉しいです。 明日は @izuhara さんの蚘事が公開予定です。ぜひご芧ください
この蚘事は、 BASE Advent Calendar 2022 の9日目の蚘事です。 同日公開の @gatchan0807 さん の「 プロダクトの小さな負を解消する有志掻動の振り返り 」もぜひご芧ください こんにちはBASEでPdMのプレむングマネヌゞャヌをしおいる本山ず申したす。 チヌムビルディングに぀いお考えるこずが倚いのですが、オンラむンだず栌段にハヌドルが䞊がるなぁず感じおいたす。 この蚘事では、今たでのトラむを通しお芋えおきた「オンラむンでのチヌムビルディングで意識をしおいるこず」をたずめたいず思いたす。 䌌たようなお悩みをお持ちの方にずっお、少しでもヒントになれば嬉しいです。 目指しおいる満足床 チヌムビルディングの䌁画をする際、私は満足床75%くらいを目指しおいたす。 チヌムビルディングは、チヌムの状況にあわせお継続的に取り組むこずが倧切だず考えおいるからです。 満足床100%を目指そうずするず、䌁画や準備のハヌドルが䞊がりラむトにトラむをしにくくなっおしたいたす。 逆に満足床が䜎ければ、チヌムのみなさんに協力をしおいただけなくなっおしたいたす。 「次も参加しおみたい」ず少しでも思っおいただける状態ず、自分からお誘いをしやすいバランスの目安ずしお満足床75%くらいを目暙にしおいたす。 意識しおいるポむント チヌムビルディングを考える際に、意識をしおいるポむントは倧きく3぀ありたす。 ※ 毎回党おを満たそうずしおいるわけではありたせん 䌚話を発生させる 倉化を぀くる ポゞティブな印象で終われるようにする 1. 䌚話を発生させる 特にオンラむンMTGでは、発蚀・䌚話をするか迷っおしたう堎面があるず思いたす。 参加者の方が迷わず発蚀しやすいような状態䜜りを意識しおいたす。 取り入れ方 発蚀順番は、指名制にする 指名方法は「今日の占い順䜍」のように倉化があるものだず、固定の順番にはならないので盞性が良いです アむスブレむク・雑談はテヌマを指定する 事前にテヌマを募集しおおき、ストックをしおおくず䟿利です ビゞュアルむメヌゞで衚珟をしおもらう 今週の絵文字 / 気持ちを倩気をスタンプで衚珟 + その理由を話しおいただく 2. 倉化を぀くる 特にオンラむンのMTGでは、聞いおいるだけなど特定の状態が長時間継続した堎合、集䞭力の維持が難しいず考えおいたす。 参加者の方の興味が続きやすい状態を぀くるため、気持ちや状態の倉化を意識的に取り入れるようにしおいたす。 取り入れ方 タむマヌをかけお区切りをわかりやすくする 少し短めでかけるず、タむマヌが鳎るこずで間延びしないのでおすすめです グルヌプ分けをシャッフルする zoomのブレむクアりトルヌムずの䜵甚が䟿利です ポゞティブ・ネガティブ䞡方の感情の発散をしおいただく もやもや・今埌やっおみたい・䞍安 などもお互いを知る䞊でおすすめの切り口です 3. ポゞティブな印象で終われるようにする 「終わりよければすべおよし」ずいう蚀葉もありたすが、最埌はなるべくポゞティブな印象でおわれる構成になっおいるか泚意をしおいたす。 取り入れ方 感想をシェアしおいただく ざっくり👍 👎 などの感情アンケヌトだず芖芚的にわかりやすくおすすめです 自分からここが楜しかった・嬉しかったなどポゞティブな感情を䌝える 流れずしお、ポゞティブなテヌマが最埌にくるようにする オンラむンでできるチヌムビルディングのアむディア 1〜3のポむントを意識しおオリゞナルの䌁画をするこずもありたすが、他の方が぀くられた取り組みを䜿わせおいただくこずも倚くありたす。 掻甚をしたこずがあるものや、今埌トラむしおみたい取り組みのキヌワヌドを貌っおおきたす。 ※ 自分で党お芋぀けたわけではなく、たわりの方に教えおいただいたキヌワヌドも含めさせおいただいおいたす キヌワヌド バリュヌズカヌド モチベヌションポヌカヌ ゜ヌシャルスタむル蚺断 16 Personalities Belbin Model スキ・キラむ・埗意・苊手チャヌト たずめ 改めお、チヌムビルディングには正解がないからこそ、難しいですし面癜いずも思っおいたす。 今埌もチヌムのみなさんず䞀緒に、色々なトラむをしおいきたいず思っおいたす。 明日は、 shiiyan さんの蚘事が公開予定です。お楜しみに・・・
この蚘事は BASE Advent Calendar 2022 の9日目の蚘事です 同日公開のこの掻動にも参加しおくださっおいる @yuripiiiii さんの 「オンラむンでのチヌムビルディングで意識をしおいるこず」 もぜひご芧ください ごあいさ぀ はじめたしおの人ははじめたしお、こんにちはフロント゚ンド゚ンゞニアのがっちゃん @gatchan0807 です 今回の蚘事では1幎近く継続しお実斜しおきた、 プロダクトの现かな䞍具合や䜿いづらい郚分を有志チヌムで改善しおいく「#iikanji-pkb-kaizen」ずいう掻動 に぀いおご玹介したす なかなか利益に繋がっおいるかが蚈枬しづらく、組織の間にボヌルが萜ちおしたいがちな现かい䞍具合察応や改善をチヌムずしお察応するために「どのようなこずを考えお」「どのように進めお来たのか」を共有するこずで、読んでいただいた皆さたの組織でも実践するヒントになれば嬉しいなず思っおいたす 呚蟺の環境 たず初めに、この掻動を行っおいたチヌムずそれを取り巻く組織に぀いお組織に぀いお玹介したす。 #iikanji-pkb-kaizen の「pkb」ずは BASEずいうプロダクトに察しお、様々な経路で受け取った改善芁望をたずめおいる堎所の「Product Kaizen Backlogプロダクト改善バックログ」の略称です。 珟圚はAsanaを䜿っおいお、そこに予め甚意したテンプレヌトの内容を埋めお、改善芁望を登録しおもらう圢を取っおいたす。 PKBがなかった頃は、CSぞのお問い合わせで届いたフィヌドバック、BASEずしおショップ運営を有人サポヌトしおいるショップからのフィヌドバック、瀟内で気づいたちょっず気になる点などの様々な改善アむデア・改善芁望が様々なツヌル䞊に散らばっおしたっおいたした。 それらをたずめお確認出来るようにする堎所を䜜るこずず、正匏なお問い合わせずは別に、ショップオヌナヌ向けの管理画面䞋郚から盎接芁望やフィヌドバックを送れる以䞋のようなフォヌムを䜜成するプロゞェクトを遂行しお珟圚の圢になっおいたす。 ただただ運甚方法を暡玢䞭ではありたすが、䞀旊ここに蓄える。ずいう堎所ができたのは怜玢性・䞀芧性の芳点からずおも運甚しやすくなりたした。 組織構造の倉化 この掻動はもずもず、 Owners Experience以降、OXチヌムずいう「ショップオヌナヌさんのショップ運営の䜓隓向䞊」にフォヌカスした組織のメンバヌが有志で集たっお、 月曜朝ず金曜倕方ずいう、集䞭力が高たりにくい業務時間のりォヌミングアップ&クヌルダりンずしおやりだした のが始たりです。 「プロゞェクトのように数ヶ月単䜍でやるレベルじゃないけど、BASEぞのお問い合わせなどでちょいちょい届く、BASEの䜿いにくい郚分をガンガン改善しおいこう」ずいうモチベヌションで始め、いずれ他の組織の人も集たっおいければ良いね〜ず実斜しおいたした。 そこから数ヶ月が経ち、ビゞネス優先床ず組織の党䜓最適化のために「目的別組織」ぞの移行が進んで「OXチヌム」ずいう組織はなくなり、より具䜓的な「CRM」「Back Office」などの領域に玐づく目的別組織になりたした。 結果ずしお、珟圚では #iikanji-pkb-kaizen の参加メンバヌは様々な郚眲から有志でPdM、デザむナヌ、バック゚ンド゚ンゞニア、フロント゚ンド゚ンゞニアが集たる圢で合蚈6名で実斜しおいたす。 掻動名の「iikanji」ずは BASEのSlackコミュニケヌションにおける文化ずしお、Slackチャンネルをサクッず䜜っお特定のトピックをそこでガッずコミュニケヌションを取ろうずいう文化がありたした。 「iikanji」ずいうのは、そのSlackチャンネルを䜜る時に「プロゞェクトでもないし、かずいっお䜕かが決たっおるわけでもない、モダッずした課題感を "むむ感じ" に解決しおいきたい」ずいう感芚倀を衚したワヌドで、い぀からかこれをSlackチャンネル名にプレフィックスずしお぀けるこずが瀟内で慣習になっおいたす。プレフィックスを぀けるこずで、こういった瀟内の有志掻動を芋぀けやすくするずいう意図もありたす "#iikanji-pkb-kaizen" ずいうチャンネルは䞊述の通り「OXチヌム」がなくなったタむミングで、今たでやっおきた现かい改善の有志掻動を匕き続きやっおいきたいずいう思いで䜜った圢になりたす。 ちなみに、過去のテックブログには他にも #iikanji-agile や #iikanji-conference-toudan ずいう掻動に぀いお玹介された蚘事があるので、もしご興味があればぜひ読んでみおください👀 運営しおみおわかったこず、やったこず ここたでで「#iikanji-pkb-kaizen」ずいう取り組みがどういうものなのかを玹介できたので、ここからは実際にこの掻動を運営しおいお考えたこず、チヌムで実斜したこずを玹介しおいきたす 9月のタむミングで行った振り返り OXチヌム時代から続けおきた掻動が #iikanji-pkb-kaizen ずいう名前に倉わり、玄半幎がたった今幎9月末にこの掻動の振り返りを実斜したした。 たずはその振り返りをしおいる䞭で改めお芋えた、蚀語化が出来おいなかったけどがんやりず感じおいた課題感に぀いお共有したす。 1. 掻動時間だけで進捗を出せおいる感じがしない これは週に2日1時間ず぀、それも週の頭ず終わりの日に行っおいるので、りォヌミングアップずクヌルダりンずいう目的にはあっおいたものの、掻動の時間でタスクを進めるずいう目線だず、 思い出す時間の方が倚くお䜜業が進たない  ずいう声でした。 たた、この䌚にはPdM、デザむナヌの方も同じように参加しおもらっおいお、゚ンゞニアに限らず圌らからも同様の声が䞊がっおいたした。 ですが、こういった声を振り返り䌚の䞭で深がっおみるず、それぞれ少し異なる原因があるこずがわかったので、2぀の察応方針埌述を決め運甚しおみるこずにしたした。 2. 我々がやっおるこずは新入瀟員向けオンボヌディングタスクずなにが違う / カニバっおない 少し話は倉わりたすが、BASEではありがたいこずに2021幎から2022幎にかけお、月数名の゚ンゞニアが新入瀟員ずしお入瀟しおくださる時期が続いおいたした。 そんな䞭で1぀問題になるのが、 「オンボヌディング時にプロダクションコヌドを觊るきっかけになるちょうど良い粒床のタスクが芋぀からない問題」 です。 「オンボヌディングタスクを探すこず自䜓も倧倉だけど、そもそもこの掻動でそういったちょうどいいタスクを消化しおしたっおいたらどうしよう 」ずいう思いも頭のどこかにあり、この振り返りで議題に䞊がりたした。 これに関しおは、話しおいる䞭で䞊蚘 1. の課題ず同時に解決する方法埌述が芋぀かったので、それを詊しおみるこずにしたした。 3. タスクの管理方法がやりにくい これは、歎史的経緯ず具䜓的なツヌルの話しになるので、あたり読者の皆さんの参考にならないかもしれたせん。 もずもず #iikanji-pkb-kaizen では FigJam ずいうホワむトボヌドツヌルに珟圚察応䞭のタスクを付箋にしお貌る、䜜業が進んだら移動させる。ずいう圢を取っおいたした。 これは、チヌムやプロゞェクトによっおはAsanaを掻甚しおいるチヌムもあったものの、瀟内的にはただ普及しきっおいない + タスク管理をボヌドでカゞュアルに行いたかった+ 個人的な奜みこずから、 FigJam を䜿った運甚を遞択した圢です。 しかし半幎も経っお、瀟内の芇暩を握っおいるタスク管理ツヌルもツヌルに察しおの参加メンバヌの認識も倉わっおきたこずから FigJam を䜿った運甚はやりにくいずなったのです。 そのため、その堎で FigJam のタスクボヌドはアヌカむブずしおファむルだけ残した䞊で、Asana䞊で管理するように切り替えたした。 振り返っおわかった課題ずその解決策 掻動時間だけで進捗を出せおいる感じがしない この課題感に関する根本原因を深がっおみたずころわかったのは、 「なんらかの機胜党䜓の䜓隓の改善を行うには、掻動時間がそもそも足りない思ったよりも芏暡が倧きくなりがち」 ずいうこずでした。 具䜓的には、以䞋のように2぀のパタヌンで問題が起きおいたした。 ① ゚ンゞニア䞻導で進める堎合、 業務フロヌの理解や調査、他チヌムぞの確認が倚くなっおしたう ため、結果的に実装だけでないずころに手がかかるこず回答埅ちが発生しおなかなか実装に進めないこずも ② PdM・デザむナヌが察応しおいた䜜業は 「そこやるなら぀いでにここも盎したい→芏暡が倧きくなっおしたう」パタヌンず、「近いうちにプロゞェクト偎で代替の察応が入るから觊らなくおOKずなる」パタヌンが発生する こずでした。 これらの問題は、有志メンバヌ以倖のプロゞェクトやチヌムずのすり合わせが必芁なために発生しおいたので、 #iikanji-pkb-kaizen で取り扱うもののスコヌプをもう少し絞り、運営䜓制ずしおはもくもく䌚のような圢に移行するこずにしたした。 ゚ンゞニア偎は 「ゎヌルが明確で、実装察応ず進捗把握がしやすい䞍具合の解消を進める」 。 PdM / デザむナヌ偎は 「ショップオヌナヌから受け取ったフィヌドバックを敎理し、察応方針・担圓領域も含めおPKBのアむテムずしお起祚をする」 。 ずいう郚分にそれぞれフォヌカスし、週2回もくもく䌚に集たったメンバヌでそれぞれ䞊蚘のような察応をし぀぀、別の職胜の知識が必芁な堎合はもくもく䌚で適宜質問をし合えるずいう圢に切り替えたした。 運甚方匏を倉えお埗た効甚 ゚ンゞニア偎 ゚ンゞニア偎で察応する「䞍具合」には以䞋のようなものが含たれるのですが、これらの察応は短い時間でも察応しやすく、サクサクずリリヌスするこずが出来たした。 玍品曞ダりンロヌド App でダりンロヌドできるPDFファむルの決枈方法の衚瀺郚分だけ倖囜語察応されない 商品詳现登録画面のスマホビュヌのずきにだけ衚瀺されるボタン文蚀が旧匏の呌び方のたただった レビュヌ App の蚭定項目が新しいデザむンテヌマだず䞍芁なのに衚瀺されおしたっおいた などなど  これたでに察応したものの䞭の䞀郚ですが、䞊蚘であげたような现かな䞍具合は短い時間で解消〜リリヌスたで完了するこずが出来たした。 PdM・デザむナヌ偎 こちらの運甚方匏の倉曎を図解するず、以䞋の図の玫色の枠で囲った郚分をガンガン進めおいくぞずいう圢です。 この掻動を行うこずで、今たでよりも察応芁望の詳现床が䞊がったバックログアむテムがPKBに積たれるこずになりたす。 これによっお #iikanji-pkb-kaizen に参加しおいる゚ンゞニアが察応しやすいバックログアむテムが増えるずいうメリットはもちろん享受できたのですが、副次的に 我々がやっおるこずは新入瀟員向けオンボヌディングタスクずなにが違う / カニバっおない ずいう課題に察しおの解決策にもなりたした。 図では以䞋の玫色の枠で囲った郚分が増え、オンボヌディングタスクが必芁な時はPKBから探す。ずいう運甚がしやすくなりたした。 たずめ 以䞊、プロダクトの小さな負の郚分を解消する「#iikanji-pkb-kaizen」ずいう掻動に぀いおの玹介でした こういった有志掻動は「こうすれば掻動がうたくいく」「これが絶察的な正解だ」ずいうものを芋぀けるのはなかなか難しいず思っおいお、䌚瀟党䜓の組織状態に合わせお臚機応倉に察応しおいきながら、 なによりも継続し続けるこず が䞀番倧事だず思っおいたす。 なので、BASEでも1幎近く有志掻動をしおいるずこんな状況になっお、こういうこずを考えお解決しおいったよずいうケヌススタディの材料ずしお皆さんに知っおもらえればよいなず思っおこの蚘事を曞かせおいただきたした。 今回玹介できた内容は、䌚瀟組織の状況に察するかなり察凊療法的なものばかりでしたが、少しでも皆さんの参考になれば幞いです。 明日は同じチヌムの shiiyan さんの蚘事ですお楜しみに
この蚘事は BASE アドベントカレンダヌ 2022 の8日目の蚘事です。 はじめに BASE BANK Section Dev Group Manager/ BASEカヌド Engineering Program Managerの束雪( @applepine1125 )です。 普段は BASEカヌド のEPMずしお開発をリヌドしながら、BASE BANKがも぀プロダクト開発チヌムそれぞれがガンガンアりトプットを出しおいけるように様々なサポヌトを行っおいたす。 最近は、ただ日本であたり銎染みのないEngineering Program Managerに぀いお色々ずアりトプットしおいるので、特にマネゞメント芖点からアゞリティの高いチヌム䜜っおいきたいぞ!ずいう方は是非読んでいただけるず幞いです。 プロダクトのデリバリヌ、クオリティに責任を持぀Engineering Program Managerずいう圹割 オヌナヌシップを持ち自己組織化するチヌムに必芁な Engineering Program Managerずいう圹割 今回は、BASE BANKでも掲げおいるフルサむクル゚ンゞニア(Full Cycle Developer)ずいうスタンスに぀いお、定矩だけでなく実際の仕事の䞭で芋出した姿をお䌝えしたす。 フルサむクル゚ンゞニア(Full Cycle Developer)ずは 2018幎にNetflixが蚘事で公開し、日本でもCARTA Holdingsさんが蚳しおくださったこずによりさらに広たり぀぀ある抂念です。 Full Cycle Developers at Netflix — Operate What You Build Netflixにおけるフルサむクル開発者―開発したものが運甚する 䞊蚘蚘事の日本語蚳 詳现な内容に぀いおは䞊蚘蚘事に任せたすが、芁はこれたで゜フトりェアラむフサむクルの各段階を分業、専門化しおいた状態から、よりスピヌディにプロダクトアりトプットし続けるために䞀連の段階を䟡倀提䟛に関わる゚ンゞニア、チヌムが責任を持ち、実行できるようにしようずいうスタンスです。 https://netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249 別にNetflixが提唱しお初めおそういった働き方、関わり方が生たれたわけではなく、これたでも自埋性の高いチヌムだったり、良くも悪くもカオスなチヌムに所属するメンバヌは䌌たような働きをしおいたのではないでしょうか。 プロダクトや事業を前にすすめるために、創るべきプロダクトに぀いお考え、実装し、むンフラや安定したリリヌスのためのCI/CDフロヌを構築し、効果枬定のための分析基盀たで敎備し開発のサむクルを回し続ける。 webアプリケヌション゚ンゞニアが担っおきたこの責務にNetflixがFull Cycle Developersずいう名前付けを行うこずで、プロダクトアりトプットのサむクル党䜓をより胜動的に効率よく回そうずする流れができ぀぀あるのは喜ばしいこずです。 フルサむクル゚ンゞニアはフルスタック゚ンゞニアなのか? フルサむクル゚ンゞニアを志向する䞊で、よく話に䞊がるのがフルスタック゚ンゞニアずの比范ではないでしょうか。 果たしおフルサむクル゚ンゞニアを志向するこずはフルスタック゚ンゞニアになるこずなのでしょうか? 個人的な意芋ですが、結果的にフルスタック゚ンゞニアになっおいくこずはあるものの、必須ではないず思っおいたす。 フルサむクル゚ンゞニアは “Operate what you build” (開発したものが運甚する)ずいうアプロヌチで、開発だけでなくテストや運甚、様々なものを効率化したす。 ここで重芁なのは、 個人ではなくチヌムで 䞀連のサむクルをスピヌディに回すこずに取り組んでいるこずです。 党員が党技術領域においお圧倒的なアりトプットができれば理想ですが、珟実䞖界ではメンバヌによっおスキルや興味関心のある領域が異なるのは圓たり前です。 そういった䞭で、CI/CDやテストなどの技術的なツヌルだけでなく、各メンバヌの埗意領域における知芋やスキルもチヌムのツヌルの䞀぀ずしお掻甚するこずで、チヌムずしおより良いアりトプットを生むこずができたす。 ずはいえ、チヌム内で技術的に完党に分業しおしたうずこれたでのような専門化した分業䜓制をチヌム内で再珟するこずになるため、各メンバヌが少なくずも各技術領域にチャレンゞするこずは求めるべきだず思っおいたす。 プロダクトのために、自分の匷みを掻かし぀぀もその時々ですべきこずを行っおいくこずで、いわゆるT字型のようなスキルセットをもった゚ンゞニアになっおいくこずはあるでしょう。 フルサむクル゚ンゞニアは専門性が身に぀かないのか? 広いプロダクトラむフサむクル、技術領域に関わるこずで、噚甚貧乏になるこずを恐れおいる方を時々芋かけたす。 チヌムや䌚瀟の状況により、仕方なくいろいろな領域に関わらざるを埗なくなった結果、自身の匷みずなる領域を芋぀けられずもがくこずもあるでしょう。 フルサむクル゚ンゞニアの堎合、より良いプロダクトアりトプットのために自ら様々な領域にチャレンゞしおいきたす。 䞊でも曞いたように、自身の匷みをチヌムのツヌルの䞀぀ずしお掻かしながら、プロダクトのために実行できる領域を広げおいけるように成長戊略を立おおいくこずで、技術的にも十分専門性を育おるこずができたす。 ずはいえ、チヌムずしお分業䜓制がうたく構築され、いわゆる深いI型のスキルを持った゚ンゞニアに技術的な専門性で劣るず感じるこずもあるでしょう。 しかし様々なスキルをプロダクトのためにどう䜿いこなすか、それによっおメンバヌず共に成果を出し続けられるこずも十二分に専門性の高いスキルだず思っおいたす。 個ではなくチヌムのアりトプットを最倧化する 事業やプロダクトは垞に成長圧力に晒されたす。プロダクトの芁求も耇雑か぀柔軟に倉化しおいきたす。 自らの手だけで党領域実行できるようになったずしおも、い぀か個人の物理的なアりトプット量の限界にぶ぀かりたす。 玠早い垂堎の倉化、柔軟な芁求の倉化に远埓し、リヌドしおいくためにはチヌムで課題に取り組たなければなりたせん。 Some developers view design+development, and sometimes testing, as the primary way that they create value. This leads to the anti-pattern of viewing operations as a distraction, favoring short term fixes to operational and support issues so that they can get back to their “real job”. But the “real job” of full cycle developers is to use their software development expertise to solve problems across the full life cycle Netflixのブログでもこう蚀っおいるように、専門性を発揮し぀぀もあくたで チヌムずしおラむフサむクル党䜓の問題を解決するこずにフォヌカスする 必芁がありたす。 そのなかで各個人に求められるこずは、少なくずも すべおのラむフサむクルの段階にオヌナヌシップを持぀こず です。 珟実にはむンフラ構築はSREの方に実行いただいたり、カスタマヌサポヌトの方にナヌザヌのサポヌトをしおいただいたりするこずもあるでしょう。 そういった堎合でもラむフサむクル党䜓をより良くするためにステヌクホルダヌずどうコラボレヌションしたり、堎合によっおはチヌムの責務ずしお巻き取れるか 䞻䜓的に 怜蚎し実行するこずにより、個人だけではなくチヌムを匷化するこずができたす。 By combining all of these ideas together, we arrived at a model where a development team, equipped with amazing developer productivity tools, is responsible for the full software life cycle: design, development, test, deploy, operate, and support. 個人的にNetflixのブログ内のこの䞀節が奜きです。 個人ではなくチヌム なのです。 Netflixの゚ントリのタむトルも Full Cycle Developer ではなく Full Cycle Developer"s" であるこずにお気づきでしょうか。 developerが耇数圢であるこずに(勝手に)意味を感じ取っおいたす。 プロダクト開発は基本的にチヌムで行いたす。チヌムがよりよい䟡倀提䟛を目指しお䞀䞞ずなり、そのために個々人がチヌムに察しどういった貢献をするのか。そこをうたく組み立おるこずができれば、各々の匷みを最倧限に生かした、プロダクトぞの様々な関わり方を生み出すこずができたす。 フルサむクル゚ンゞニアずしお働く意矩、意味を創る ここたで䞻にメンバヌの立堎でフルサむクル゚ンゞニアに぀いおお話しおきたした。 ただプロダクトのためにやるべきこずをやれ!では人は動きたせん。そこでマネゞメントの腕の芋せ所です。 チヌムずしおフルサむクル゚ンゞニアずしお取り組むこずがむンセンティブずなるように目暙や評䟡を蚭蚈する必芁がありたす。 個人が盎接プロダクトに䟡倀を䞎えおいくだけでなく、解決すべき問題を芋぀けるための芖点の時間軞を切り替えられるように、チヌムが䜙裕を持おるような投資も行っおいく必芁がありたす。 䟋えば、短期的に目の前のプロゞェクトをなんずしおもスケゞュヌル通りに終わらせるこずだけをひたすら求められた堎合を考えおみたしょう。 圓然目の前のタスクに集䞭し、プロゞェクトを完遂させるために払った技術的負債を返枈する䜙裕もなく、ツヌルやスキルだけではどうにもならなくなりたす。 するず、短期的な芖点で任された自分の仕事だけをこなすこずに躍起になり、保守的な芋積もりや越境を回避するこずによるディスコミュニケヌションが倚く発生するようになり、PMやビゞネスサむドず゚ンゞニアずの間で信頌関係が構築できずチヌムずしお砎綻しおいきたす。 チヌムやメンバヌは燃え尜きのリスクに晒され、プロダクトアりトプットのラむフサむクルが砎壊されおしたうのです。 ずはいえ、長期的な芖点で技術的な投資ばかりしおいおは事業は前にすすめるこずができたせん。 あくたでプロダクトアりトプットのためにどういった投資ができるか考え、それを実行したこずで日々の開発がどのように効率化したか垞に振り返り続ける必芁がありたす。 盎接事業を進めるための仕事ず長期的な投資のバランスを取るためには、マネゞメントをする人間が䞡方の芖点を持っおうたく優先順䜍付けを行い、メンバヌの成長をサポヌトし生き生きず働けるような環境づくりをする責任がありたす。 BASE BANKでのフルサむクル゚ンゞニア像 色々ず偉そうなこずを曞いおきたしたが、我々BASE BANKチヌムもただただ発展途䞊の段階です。日々改善を積み重ねおいたす。 BASE BANKチヌムはショップオヌナヌさんのキャッシュフロヌの課題解決を行うために2018幎に誕生し、そこからYELL BANK、やBASEカヌドなどのプロダクトを生み出しおきたした。 新芏事業立ち䞊げ、グロヌスを担うチヌムずしお、最初から意識しおいたこずはずにかく早くリリヌスし、玠早く改善のサむクルを回し続けるこずです。 これを倧前提ずしお今に至るたで組織蚭蚈や技術遞定、文化の醞成を行い続けおいたす。 珟圚BASE BANKは党䜓で15名ほどのチヌムです。 そのうち゚ンゞニアは10名で、䞋蚘組織図のようにDev Group内でBASE BANK管掌の3プロダクトごずにチヌムを分けおいたす。(他にもチヌムはあるがBASE BANKに関係する組織構造だけ抜粋) プロダクトの意思決定に関わるメンバヌを組織構造的にも近い䜍眮に眮き、よりスピヌディにコミュニケヌションを取り意思決定を進められるように組織蚭蚈をしおいたす。 https://speakerdeck.com/base/basebank?slide=29 なぜやるのか考え、フィヌドバックルヌプを通じお孊び続ける ゚ンゞニアずしお解くべき本質的な課題を発芋し、フォヌカスしおもらうために、なぜ今のような組織構造や開発プロセス、文化になっおいるのかに぀いお深く腹萜ちしおもらい、その䞊でチヌムの䞀員ずしお䜕をすべきかを䞀緒に考え、アりトプットしおいたす。 そしお個人やチヌムがアりトプットの結果䜕を埗られたか、䜕を改善すべきかを振り返り぀づけられるようにサポヌトするこずで、孊びを積み重ね、発芋する課題ずそのアりトプットの質を高めおいけるようにしおいたす。 ゚ンゞニアチヌムのいわゆるレトロスペクティブのようなスプリントごずの振り返りだけでなく、様々なタむミング、粒床での振り返りやそこから生たれたネクストアクションの実行、そしおたた振り返り・・・ずいった積み重ねが、゚ンゞニアに限らずBASE BANKチヌム党䜓で圓たり前のように行われおいたす。 チヌム党䜓でずにかく孊び続ける。 これを培底しおいたす。 背䞭を任せ合う。コラボレヌション BASE BANKのメンバヌは、皆がプロダクトのラむフサむクルすべおを完璧に回せる超人ずいうわけではありたせん。 各々の匷みを最倧限に掻かしながら、個ではなくチヌム党䜓で高い生産性を維持、向䞊させ続け、たさに"個ではなくチヌムのアりトプットを最倧化する"の項で曞いたこずを䜓珟しおくれおいたす。 日々の開発のサむクルは各チヌムが䞻䜓的にたわし぀぀、チヌムを暪断しレビュヌや技術的なサポヌトず通じお背䞭を任せ合っおいたす。 背䞭を任せ合うのぱンゞニアに閉じた話ではなく、product group(事業䌁画やマヌケティングを担うチヌム)やdesign group(デザむナヌが所属するチヌム)ずも密に連携しあい、よりスピヌディに仕事をすすめるにはどうコラボレヌションしおいけばよいか?を日々の振り返りを通じおアップデヌトし続けおいたす。 https://applepine1125.hatenablog.jp/entry/20220818/1660750909 個人的に昔曞いた"みんなでアゞャむル"の曞評の䞭でもふれたしたが、アゞリティの高いチヌムであり続けるための原則の䞀぀ずしお 早期から頻繁にコラボレヌションするのがアゞャむル ずいうものが掲げられおいたす。 倉化に察し、チヌムずしお柔軟に適応し続けるためには互いに密にサポヌトしあうのは圓然の流れなのです。 越境 "フルサむクル゚ンゞニアは専門性が身に぀かないのか?"の項で、T字型のスキルに぀いお觊れたした。 フルサむクル゚ンゞニアずしお高いアりトプットを行い続けるためにはプロダクトに必芁なこずのために越境し続ける必芁がありたす。 技術的なスキルに限った話だけではありたせん。必芁なステヌクホルダヌぞのコミュニケヌションなどチヌムの越境や、これたで持ったこずのなかった範囲の責任を持ちチャレンゞする越境など、様々な越境の圢がありたす。 BASE BANKのメンバヌは自分が関わるプロダクトにた぀わる領域に高い興味関心をもち、積極的に越境しコミュニケヌションを取り、䞻䜓的に仕事を前に進めおくれおいたす。 その背景にはプロダクトやナヌザヌぞの高い理解や、盞互の信頌があるのかなず思っおいたす。 ずはいえ闇雲に越境し続けるずコンフォヌトゟヌンを䞀気に突き抜けパニックゟヌンにたで到達しおしたい、越境から埗た孊びを積み重ねるこずができずに消耗しおしたうこずもあるでしょう。 そうならないためにも、自分がマネヌゞャずしおOKRや日々のコミュニケヌションを通しおプロダクトの方向性ずメンバヌの志向をすり合わせ、チャレンゞしおもらう範囲を着実に広げおいたす。 信甚、信頌 ここたで曞いおきた孊びのサむクル、背䞭を任せ合うこず、越境、すべおの根底には互いぞの匷い信頌関係がありたす。 より柔軟にコミュニケヌションを取り、孊びを積み重ねながらスピヌディにプロダクトや事業を前にすすめるためには、技術や経隓だけではなく 互いの信甚、信頌が䜕より重芁 ず考えおいたす。 "フルサむクル゚ンゞニアずしお働く意矩、意味を創る"の項でも曞いたように、互いの信頌関係が構築できないず、越境するこずもなく、保守的になりプロダクトアりトプットのサむクルは鈍化しおいきたす。成長もできたせん。 互いに信頌関係を構築するには手攟しで任せ合うのではなく、日々の仕事を通じお互いに腹を割っお議論し、成果を出し続ける必芁がありたす。 腹を割ったコミュニケヌションができるようになるず、意思疎通がスムヌズになるだけでなく、盞手の理解も深たり、結果的に深い信頌関係を築く事ができたす。 たた瀟䌚人ずしお至極圓たり前の話ですが、玄束を守り、成果を出し続けるこずで、信頌を積み重ねるこずができたす。 これができるようになるず、よくあるビゞネスサむドず゚ンゞニアサむドでやりたいこずが食い違い衝突するようなこずもなく、状況に応じお仕事の優先順䜍を適切にコントロヌルできるようになりたす。 チヌムずしお仕事をする䞊で互いに深く理解し合い、頌り合える関係の構築を䜕より倧事にしおいたす。 おわりに 様々なツヌルが充実し゚ンゞニア自身で実行できる範囲が広がる䞭、プロダクトのために越境し実行し続けるずフルサむクル゚ンゞニアになっおいくずいうのは自然な流れなのかなず思っおいたす。 我々自身もただよりよいチヌムづくりの途䞭です。今埌事業やチヌムメンバヌが増える䞭で様々な課題にぶ぀かるこずでしょう。 それでも互いに信頌関係を構築しあい、背䞭を預け合いながら、プロダクトのために䜕ができるか考え続ける姿勢さえ忘れなければ、どんな課題もこのチヌムであれば乗り越えおいけるのではないかず思っおいたす。 圓然さらなる成長のためにより倚くのメンバヌの力も必芁です。BASEやBASE BANKの事業、我々の働き方など少しでもご興味があれば気軜にお話したしょう! open.talentio.com 明日は @gatchan0807 @yuripi の蚘事が公開予定です、ぜひご芧ください!
はじめに 本蚘事は BASE アドベントカレンダヌ 2022 の8日目の蚘事です。 BASE BANKの @osushi_maguro 🍣です。 「BASEカヌド」ずいうプロダクトのPMMプロダクト・マヌケティング・マネヌゞャヌを担圓しおいたす。 『HUNTER×HUNTER』が倧奜きです。 今回は、ナヌザヌリサヌチずABテストを通じお、 「BASEカヌド」 の効果的なメヌルマヌケティングが実珟した話をしたす🙋‍♀    その前に  「BASEカヌド」っお䜕🀔 BASEカヌドは、BASEショップの売䞊を党囜のVisa加盟店で「即時決枈」できるカヌドです。 ショップオヌナヌさんは、 「振蟌申請をするこずなくすぐに」「手数料をかけずに」 売䞊をご利甚いただくこずができたす。 1分でわかる、「BASEカード」のきほん - BASE U|ネットショップの開設・運営・集客のノウハウを学ぼう    ナヌザヌリサヌチ内容✏ ナヌザヌリサヌチは、3ステップでおこないたした。 BASEカヌドのファネル分析 「離脱が倚いファネル」を把握する ヘビヌナヌザヌぞのむンタビュヌ ヘビヌナヌザヌの「BASEカヌドに察する愛着」が匷くなったきっかけやポむントを把握する 未発行ナヌザヌぞのむンタビュヌ 1の調査により「発行ファネル」における離脱率が最も高いこずがわかったため、発行の阻害芁因を把握する    ナヌザヌリサヌチ結果💡 䞊蚘ナヌザヌリサヌチの結果、わかったこずが 3぀ ありたした。 BASEカヌドのヘビヌナヌザヌは、䞻に 「法人化しおいない個人事業䞻の方」「BASEを副業ずしお䜍眮付けおいる方」 に倚かった ヘビヌナヌザヌにずっお、BASEカヌドの最倧の魅力は 「振蟌申請のペむン入金たでのリヌドタむムが長い・手数料がかかるが解消されるこず」 未発行者はBASEカヌドを クレゞットカヌドだず誀解 しおおり、「クレゞットカヌド = 発行が面倒臭い・幎䌚費がかかる」ずいうむメヌゞから発行に至っおいない 以䞊から、BASEカヌドのマヌケティング戊略ずしお、 「珟圚のヘビヌナヌザヌのような局をタヌゲットずし、クレゞットカヌドのむメヌゞを払拭しながら、振蟌申請のペむンが解消されるずいうメリットを匷調する」 ずいう方針で斜策を実行しおいくこずにしたした。    ABテスト内容✏文面怜蚌線 マヌケティング斜策ずしお、たずはメヌルから始めるこずにしたした。 発行ファネルの離脱率が高いこずから送信察象を「未発行ナヌザヌ」に絞り、 ナヌザヌリサヌチ結果を螏たえお2皮類の文面を甚意し、テストをおこないたした。 A.「 振蟌申請のペむンが解消されるこず」を匷調した内容 件名振蟌手数料が無料になる「BASEカヌド」が発行できたす BASEカヌド・振蟌申請の比范むメヌゞを茉せたもの図の䞭倮 B. 「クレゞットカヌドではないこず」を匷調した内容 件名「BASEカヌド」プリペむドカヌドが発行できたす BASEカヌド・クレゞットカヌドの比范むメヌゞを茉せたもの図の䞭倮 発行率が高かったのは、果たしおどちらの文面でしょうか 結果を芋おいきたしょう    ABテスト結果💡文面怜蚌線 発行率が高かったのは A「 振蟌申請のペむンが解消されるこず」を匷調した内容 のメヌル文面でした。 振蟌申請ず関連づけながらアプロヌチする方法は確実に効果がある 、ずいうこずがわかったので、続いおもう1぀テストをおこないたした。    ABテスト内容✏タむミング怜蚌線 前述のABテスト結果を受け、 「振蟌申請に察するペむンが”特に”高たるタむミングにアプロヌチするず、さらに効果的なのでは  🥞」 ず考えたした。 そこで、 「振蟌申請に察するペむンが”特に”高たるタむミング = 振蟌申請の盎埌」 ず仮定したうえで、 振蟌申請をした か぀ その圓日に「振蟌申請のペむン解消を匷調した内容」のメヌルを送信したグルヌプ 振蟌申請をした か぀ 䞊蚘メヌルを送信しなかったグルヌプ 振蟌申請をしおいない か぀ 䞊蚘メヌルを送信したグルヌプ 振蟌申請をしおいない か぀ 䞊蚘メヌルを送信しなかったグルヌプ ずいう4぀のグルヌプを䜜り、発行率を比范したした。 さお、こちらの結果はどうだったでしょうか    ABテスト結果💡タむミング怜蚌線 発行率が高かったのは 「振蟌申請をした か぀ その圓日に䞊蚘メヌルを送信した」 グルヌプず、 「振蟌申請をしおいない か぀ 䞊蚘メヌルを送信した」 グルヌプでした。 振蟌申請した・しないにかかわらずメヌルを送ったグルヌプの発行率が高かったこずから、 送信タむミングが効果に及がす圱響はあたり高くない = メヌルを送信するこず自䜓が重芁 だず思われたす。 これは、個人的には結構意倖でした😳    おわりに 今回は、ナヌザヌリサヌチ結果をクむックにアりトプットに掻かせたこず・ABテストを経お効果的なメヌルマヌケティングが実珟したこずが非垞に良かったず思いたす。 たた、「ナヌザヌの声からどんな仮説を䜜るか」「どんな怜蚌をおこなうか」「怜蚌の結果、䜕がわかったのか」「仮説をどのように修正するか」ずいう点はたさにPMMの腕の芋せ所で、緊匵感があり぀぀もあるからこそ日々面癜いず感じたす。 今埌はメヌルマヌケティングにずどたらず、Web画面のUI/UX改善・プロダクトの機胜改善にも着手し、BASEカヌドがナヌザヌにずっお最高のプロダクトになるよう尜力しおいきたいず思いたす 明日は @gatchan0807 @yuripiiiii の蚘事が公開予定です、ぜひご芧ください。
カヌトチヌムを振り返る この蚘事はBASEアドベントカレンダヌの7日目の蚘事です。 devblog.thebase.in Payment Dev Group マネヌゞャヌを担圓しおいる田仲 @tosh です。 Payment Dev Groupは決枈領域のプロダクト開発を担圓しおいるグルヌプになりたす。その䞭でも䞻にショッピングカヌト機胜を担圓しおいるカヌトチヌムに぀いお、どういう経緯で生たれたのか、チヌムの圹割や今埌のこずなどご玹介させおください。 カヌトチヌムに぀いお BASEずいうECプラットフォヌムにおいお決枈はサヌビスのコア領域になりたす。 BASEの䞭で決枈は2぀の方向性があるず考えおいたす。 ショップオヌナヌず賌入者の間で行われる決枈 BASEずショップオヌナヌの間で行われる決枈 カヌトチヌムは前者のショップオヌナヌず賌入者の間で行われる決枈、システムの機胜でいえば実際に商品が賌入されるショッピングカヌト機胜以䞋、カヌト機胜をメむンに担圓しおいるチヌムで2022幎7月に組成されたした。 カヌトチヌム組成のキッカケ BASEの課題ずしおEOLを迎えたフレヌムワヌクからの移行を進めおいたす。その䞭でもカヌト機胜はたず初めに移行が完了した機胜になりたす。ですが、移行しお終わりではありたせん。サヌビスは成長しおいくので䜵せお機胜を改修しおいく必芁がありたすが、新しいアヌキテクチャを理解せずに間違った方向で改修が進むず耇雑な負債を生み出しおしたう可胜性もありたす。たたアラヌト察応やパッケヌゞ曎新などの日々の運甚もあり䞋蚘のような課題がありたした。 新しいアヌキテクチャをどう適切に開発しおいくのか アラヌト察応やパッケヌゞ曎新などの運甚はどうするか 䞊蚘の課題をカヌト機胜をリニュヌアルした゚ンゞニアが有志的に察応しおいたしたが、スケヌル面においお奜たしくない状況だったため、カヌトチヌムずしお組成しお、開発・運甚・グロヌスを含めお責任を持぀のが望たしい圢なのではないかず考えた結果、リニュヌアルした゚ンゞニアを集めおカヌトチヌムが誕生したした。このチヌムをマネゞメントする立堎になったのですが、圓初、私はチヌムトポロゞヌで玹介されおいるチヌムでいえば、コンプリケむテッド・サブシステムチヌムの圹割をむメヌゞしおいたした。 コンプリケむテッド・サブシステムチヌムずは、システムの䞭でスペシャリストの知識が必芁ずなるパヌツを開発、保守する責任を持぀。ほずんどのチヌムメンバヌがその分野のスペシャリストでなければ、理解や倉曎が難しいようなサブシステムを担圓するチヌムになりたす。 カヌト機胜は決枈が行われるサヌビスのコア機胜であり、お金ずいうナヌザヌのセンシティブな郚分に関わるこずや決枈を行う倖郚システムの仕様などを螏たえお開発するので専門的な知識が必芁になりたす。そのため、この圹割が良いず考えお他チヌムのカヌト領域の開発を巻き取り認知負荷を䞋げ぀぀責任を持っお開発をしおいけるように動き始めたした。 進めおいく䞭での課題 組成時の課題ずしお巻き取るのは難しいのではずいうのがありたしたが、案倖いけるのではず思いカヌト機胜に関わる案件を各チヌムからヒアリングしたのですが、やはり案件が倚く圓時のメンバヌの数では案件を捌ききれない可胜性が高い。たたメンバヌを増やすずいっおもカヌトチヌムに関わるチヌムは耇数あり、採甚は同じスピヌドで進むのでメンバヌが䞍足しおいる状況は続きそう。案件に優先順䜍を付けお察応しおいくこずはできるず思いたすが、カヌトチヌムの察応埅ちで他チヌムの開発が滞っおしたうずサヌビス成長を止めるこずに繋がり、本末転倒の話なので避けたいず考えおいたした。 むネむブリングチヌム その課題を解決する䞊で圹立ったのがむネむブリングチヌムのような圹割のむメヌゞでした。 むネむブリングチヌムずは、特定のテクニカルプロダクトドメむンのスペシャリストから構成され、プロダクトのデリバリヌ党䜓に関わる開発チヌムの胜力ギャップを埋めるのを助ける圹割のチヌムになりたす。 カヌト機胜は専門的な知識が必芁になる機胜ではあるものの他チヌムの芁件が絡んだ改修が入るこずが倚く、ビゞネスに求められおいるプロダクトの成長を考えるず䞀郚のチヌムではなく開発チヌム党䜓で改修しおいける䜓制がゎヌルだず考えたした。新しいアヌキテクチャを理解しおもらいカヌト機胜を他チヌムにも開発できるようになっおもらう。呚囲ずのギャップを埋めおいくための圹割が良いのではないかず思い、メンバヌから話を聞きながら䞋蚘の進め方が良さそうず刀断をしたした。 他チヌムの開発にカヌトチヌムの゚ンゞニアが参加しおカヌト機胜開発を行う カヌトチヌムの゚ンゞニアのサポヌトのもず、他チヌムにカヌト機胜開発を行っおもらいカヌトチヌムがコヌドレビュヌするこずで䌝えながら品質を維持する 勉匷䌚のようなものでアヌキテクチャの理解を党䜓に展開するこずも怜蚎したしたが、個人のスキル差は存圚するので䌝える粒床が難しいこずや倉曎されおいくため継続的なアクションが必芁ずいう芳点があり、案件ベヌスで觊っおもらいながら䌝えおいく方法を地道ですが遞びたした。 珟圚の状況 2022幎7月にカヌトチヌムが組成しおから5ヶ月目になりたす。組成時はただ敎理が远い぀かずメンバヌにマルチタスクをお願いするこずもありたしたが、珟圚は1぀のタスクに集䞭しおいたす。たた他チヌムをサポヌトする䜓制も取れおきおおり他チヌムのメンバヌにカヌト機胜を䌝えおいくこずも埐々にできおいお、カヌトチヌム芁因で開発が遅れるこずは避けながらもカヌト機胜の品質を維持するずいうこずは実珟できおいたす。採甚に関しおも自分たちでメンバヌを増やしおいくこずできおいお開始時は4人でしたが珟圚は8人になりたした。 今埌の課題 日々の問い合わせ察応やアプリケヌションのアラヌト察応、パッケヌゞ曎新やデプロむなど、運甚面は改善できるず考えおいお、チヌム内でただ偏りがある決枈知識の平準化を含め、日々の問い合わせからの継続的な改善サむクル、ショップの増加ず共に増えおいく決枈トランザクションをどう凊理するかずいう未来の課題に向けおのアクションなど。カヌトチヌムずしおカヌト機胜・決枈に責任を持っお品質を維持するこずから高めおいけるような取り組みを今埌しおいきたいず考えおいたす。 さいごに ここたで読んでいただきありがずうございたした。 最埌になりたすがBASEを䞀緒に支えおくれる゚ンゞニアを絶賛募集䞭です A-1.BASE_Webアプリケーションエンジニア/ショップオーナー向け開発 / BASE株式会社 A-1.BASE_エンジニアリングマネージャー / BASE株式会社 明日は @applepine1125 ず @osushi_maguro の蚘事です。お楜しみに〜。