TECH PLAY

゚ス・゚ム・゚ス

゚ス・゚ム・゚ス の技術ブログ

å…š271ä»¶

介護事業者向け経営支揎サヌビス「カむポケ」の゚ンゞニアリングマネヌゞャヌ、荒巻です。 最近瀟内で、小さい技術ネタをなんでも発衚できる䌚をはじめおみたので、その共有です。 ふだん瀟内では、たずたった技術情報は esa.io に曞いおいるのですが、きちんずした文章ずしお曞くのは時間も心理的コストもかかりたす。 もう少しカゞュアルに技術の話をできる堎があったほうがよさそうだず思っおいたずころ、EMの酒井さん ( @_atsushisakai ) が前職で瀟内版potatotipsをやったこずがあるずいう話になり、゚ス・゚ム・゚スでもはじめおみるこずにしたした。 瀟内版ずいっおいるのは、本家のpotatotips *1 を参考にしおいるからです。potatotipsは有志で運営されおいる、iOSやAndroidの技術トピックを持ち時間5分でどんどん話しおいくずいうスタむルの勉匷䌚です。ただ、カゞュアルではあるものの、5分のトヌクを組み立おるのは意倖ず倧倉です。 そこで瀟内版potatotipsは、この雰囲気を借りながらも、さらに気楜にできるように、以䞋のようにずおもゆるい感じでやっおいたす。 自由参加 䞀人最倧5分 30秒で終わっおもいい 資料を甚意しなくおいい ゚ディタ、ツヌル、フレヌムワヌクなど、技術ネタなら䜕でも構わない Slack channelでわいわい実況する なるべくリアクションする 最初はフロント゚ンドチヌムのみで小さくはじめ、参加者ががちがち定着しおきたずころで、他のチヌムからもtipsを募るようにしたずころ、色々なチヌムの方々がtipsを提䟛しおくれるようになりたした。 実瞟ずしおは、4ヶ月で110個のtipsが玹介されたした。 ネタの投皿堎所ずしおはGitHub Projectsのkanbanを䜿っおいたす。ネタの皮類に応じた堎所にAdd Itemするだけです。 potetotips kanban たずえばこのようなネタが玹介されおいたす。(この䟋はVue.jsのコヌドネヌムが日本の挫画やアニメから取っおいるずいう話) neta このようにカゞュアルな発衚の堎があるこずで、新たな亀流が生たれたり、さらに深掘りしたいこずが思い぀いたりしそうです。今埌ずも続けおいきたいず思っおおり、皆様の䌚瀟でも、ゆるい共有䌚をはじめおみおはいかがでしょうか。 *1 : https://potatotips.connpass.com/ 運営チヌムのtokoromさんからは、potatotipsの名前を出すこずを快諟いただきたした。
emfurupon777 です。今回ぱス・゚ム・゚ス瀟内での最近の掻動に぀いおご玹介したく、筆をずりたした。 䞭途入瀟の同期䌚結成 2023幎床第䞀四半期入瀟から、同期䌚ずいう取り組みを開始しおみたした。 発案のきっかけは、1on1で話しおいた同僚が 「普段の業務では関わり薄いんですけど、䜕だかんだでたたたた入瀟が䞀緒だった人ず今でも時々話しおるんですよねぇ」 ず教えおくれたこずでした。 匊瀟ではこれたで開発郚門では基本的に新卒採甚を行っおおらず、私は”同期”ずいう考えはあたり持っおいたせんでした。䞀方で圌の堎合は、コロナによるオンラむン勀務が始たる前に入瀟されおおり、党瀟オリ゚ンテヌションに参加したずきに、同時期に入瀟した人ずなんずなく話をする流れになり、その埌も関係が続いおいるずのこずでした。 最近瀟内倖の゚ンゞニアず話しおいおよく聞く話ですが、オンラむン勀務になったこずで、䞀緒に業務をしおいるチヌムは濃い話を気軜にできるようになった実感がありたす。䞀方でチヌム倖ずは若干距離が開いおいるかも  ずいう課題を耳にするようになりたした。 もちろん、゚ス・゚ム・゚スもSlackでカゞュアルになんでも発蚀しお党く問題もないし、1on1だっお勝手に蚭定しおやればいい・・・どころかぜひしお欲しいのですが、入瀟たもない時期にはなかなかにハヌドルは高く感じるよ、ずいう声も正盎耳にしおいたした。 そこでもう少しハヌドル䜎く自由に発蚀できる堎ずしお、 各四半期に入瀟した人を「同期」ずしお、それぞれの「期」ごずのチャンネルex.「23幎床第䞀四半期同期䌚」を䜜っおいたす 。これは特に䜕かを匷制するようなものではなく、同時期入瀟で同じような疑問・ハヌドルにあたっおいそうな人たちのための堎を甚意しおおくこずで、情報亀換を遠慮なくしおもらう䞀助になればいいなずいうものです。 LT䌚埩掻の暡玢 他にも私には挠然ず抱えおいた課題がありたした。それは瀟内LT䌚です。゚ス・゚ム・゚スでもコロナ前は集たっおLT䌚を行っおいたのですが、 オンラむン勀務になるに぀れ、読曞䌚などは自然に継続できおいるものの、広くみんなを集めおのLT䌚はあたり実斜できおおらず、少しハヌドルが高くなっおいる 印象でした。 LT䌚ずいうコンテンツを提䟛するこずでたずは「亀流がうたれる」こずの促進ができれば良いな、ずいうこずで機䌚を窺っおいたした。実は「たずはやっおみる」の粟神で去幎末に玍䌚をLT䌚圢匏で実斜しおみおいたのですが、その埌少し間が空いおしたっおいたのです   そんな䞭、同期䌚を結成した埌に、その䞭のメンバヌが所属チヌムでのオフサむトむベントに参加するため東京に出おくるずいう話を芳枬したした。なるほど、せっかくオフィスに集たるなら、同期䌚の亀流も絡めおLT䌚にしたおおみようず考えた次第です。 むベントの抂芁 今回のむベントは以䞋のような圢で行いたした。 開催堎所本瀟ラりンゞオンラむン(Zoom) 開催時間11:00-13:00 軜食提䟛゜フトドリンク、ピザ、寿叞、お菓子類 参加人数オフィス参加玄20名、オンラむン参加玄20名 気軜に参加しおもらえるように、お昌の時間での開催ずしたした。たた、去幎末のLT玍䌚はピザだけだったのですが、今回はちゃんず(?)寿叞も甚意したした。いやヌ、やっぱり寿叞はいいですねヌ。 発衚者ずトピックの玹介 瀟内LTであたりかしこたっおもなんなので、かなり幅広くテヌマを甚意し、瀟内のLT䌚なのであたり堅苊しくならずに時間制限もゆるヌく実斜したした。 発衚者は8人(2023幎床第䞀四半期同期䌚から有志6名同期䌚倖から瀟員有志2名)で、発衚内容は、゚ンゞニアリングの苊劎話、ツヌルの玹介、チヌムでのプラクティスなど倚岐にわたりたした。 参加できなかった方のためにZoom録画もしおいたのですが、「自分のLTはオフレコだ」ずいう登壇者もいお、それぞれのキャラクタヌの䞀端が芋える䞀幕もありたした。 ネットワヌキングず亀流の堎 LTが䞀通り終了した埌、ピザや寿叞を食べ぀぀䜕気ない話に花をさかせたした。これたでもオンラむンで話はしおいたしたが、オフラむンで話すこずで埗られる䜕かも確かにあるんだろうなず感じさせられたした。 たた、 『発案から運甚開始たで3日。経費申請も出瀟も䞍芁、技術曞が自宅に届くデリバリヌ制床をスタヌトしたした』 で協力しおいただいおいるコヌポレヌト郚門の担圓者さんたちも顔をだしおくれお、普段のお瀌をお䌝えするこずができたのは嬉しい出来事でしたKさんTさん、い぀もありがずうございたす) 感想ず今埌に向けお LT䌚の目的ずしおは亀流の堎ずしお以倖にも䞋蚘のようにいろいろあるので、今埌も継続しお行っおさたざたな掻動が掻性化しおいければ良いなヌず考えおたす。 「人前で話すこずに慣れる」 「蚀語化しアりトプットするこずの実践」 「自分の意芋のアピヌル、同奜の士集め」 etc. ずはいえ、䞻催した立堎ずしおはたずはみんなが楜しめるこずが重芁だずも思っおいたす。今回、開催埌Slackでこんな投皿を目にするこずができたのが、たずは䜕はずもあれいい感じ。 私自身、同期䌚ずいう、新芏に始めた取り組みず合わせお、オフィスでのLT䌚を実斜できお非垞に楜しかったです。 たた、䌚瀟をたたがっおのLT䌚なども行えるずお互い刺激になるだろうなヌずも考えおおりたすので、䞀緒にわいわいしおいただける䌚瀟さんはぜひ@emfurupon777たでご連絡くださいたせ お玄束にはなりたすが、゚ス・゚ム・゚スでは䞀緒に技術を楜しみながらプロダクト開発しおくれる仲間を積極採甚䞭です。たずは匊瀟のこずをもっず聞いおみたいずいうレベルからで構わないのでカゞュアル面談したしょう 集合写真も久しぶり おたけ LT䌚の間、Slackの実況chでみんながわいわいずやっおおり、自分がなんずなく投䞋した40代ネタが流れそうなずころを、若者が拟っおくれる優しき流れもあったりしたす。
こんにちは、株匏䌚瀟゚ス・゚ム・゚スに2022幎10月に入瀟した真田です。 前職ではメガベンチャヌで蚌刞や金融サヌビスのサヌバヌサむド゚ンゞニアやSREを担圓しおきたした。珟圚゚ス・゚ム・゚スでは介護教育領域のシカトルのシステムのリプレむスを担圓しおいたす。 少し他の方ず違うのは、2017幎から2019幎に玄2幎ほど゚ス・゚ム・゚スに圚籍しおおり、再入瀟ずなりたす。前回入瀟時はカむポケの障害領域の゚ンゞニアや゚ンゞニアリングマネヌゞャヌなどを担圓しおいたした。 再入瀟に至る経緯をお話したいず思いたす。 再入瀟するにあたっおのきっかけ 前職は3幎ほど圚籍したしたが、日本でもトップレベルのナヌザヌ数を抱えおいるため、ナヌザヌ数やシステムのトラフィックは桁違いです。 スケヌラビリティ、可甚性など゚ンゞニアに求められるレベルは高く、たた同僚の゚ンゞニアも高いレベルの゚ンゞニアが倚く海倖から入瀟する゚ンゞニアも倚いため、そういった点ではずおも恵たれた環境でした。 こういった郚分ではかなり貎重な経隓が積める䞀方、サヌビスや事業を䜜るずいう郚分の実感が少ないずいうのも事実です。 圹割が现分化されおいる分、各領域のプロフェッショナルな人材が配眮されるこずでサヌビスが成長しおいたす。これは䌚瀟の仕組みずしおは適切だず思いたす。 しかしサヌビスや事業の成長に寄䞎しおいる実感がもおず、満足するこずができたせんでした。 こういった経緯で、他の遞択肢を探しおいたずころ偶然twitterで以前䞀緒に働いおいた技術責任者の@sunaotに声をかけおいただきたした。飜きっぜい性栌でもある私のツむヌトに反応しおいただいたのがきっかけです 他瀟も含めおいく぀か怜蚎はしおいたしたが、䞻に事業サむドの方に面談や面接をしおいただき最終的に゚ス・゚ム・゚スを遞択したした。 私が求めおいるもの 転職するにあたっお䞋蚘の぀を求めおいたした。 瀟䌚にダむレクトに䟡倀提䟛できる仕事 ゚ス・゚ム・゚スは高霢瀟䌚の情報むンフラを提䟛するこずを目指しおいる䌚瀟です。 介護・医療・ヘルスケア・シニアラむフなど盎面した瀟䌚課題に察しお䟡倀を提䟛するこずができたす。 私も幎霢を重ねるに぀れお介護・医療などに぀いおは身の回りで珟実に考えさせられるこずが倚くなっおきたした。これは幎霢を重ねるず誰しもが向き合わないずいけない課題です。 そういうこずを考えおいる内に、自分の手でこういった環境を良くするこずで瀟䌚課題の解決に寄䞎するこずを仕事にするこずが良いのではず考えたした。 ビゞネスを加速させるための゚ンゞニアリング 新しい領域の技術を求めるのも楜しいですが、それよりも゚ンゞニアリングやシステムに課題があり、それを解決すればビゞネスを加速させ事業の成長に貢献できる環境を求めおいたした。 ゚ス・゚ム・゚スはセヌルスやマヌケティングが非垞に匷い䌚瀟です。 戊略から事業のオペレヌションが蚭蚈され、耇雑ながらもスピヌド感をもっお実行されおいたす。 そこに゚ンゞニアリングが匷化されるこずでさらなる成長が芋蟌たれるず感じおいたす。 ゚ンゞニアリングに぀いおは、@sunaot が入瀟埌に内補化を進めおから䜓制や環境はかなり匷化されおきたずはいえ、ただただ他の䌁業ず比べるず手が届かないずころが倚いのも事実です。 ゚ンゞニアリング組織䜓制が匷固な䌁業よりも、成長過皋にある䌚瀟のほうが貢献できるのではず考えたした。 ゚ス・゚ム・゚スで埗られるもの ゚ス・゚ム・゚スは事業戊略を重芁芖しおいる䌚瀟です。 党瀟の戊略から各事業領域の戊略にブレむクダりンした情報を珟堎のメンバヌたで知るこずができたす。たた自身が担圓でない領域に぀いおも必芁であれば知るこずもできたす。 私もこれたで䜕瀟か経隓しおいたすが、ここたでオヌプンに知るこずができる䌁業はありたせんでした。 疑問があれば圹職を問わず、誰にでもその疑問をぶ぀けるこずができたすし、必芁な情報を求めれば埗るこずができたす。 ゚ンゞニアが事業戊略を理解する機䌚があるこずは非垞に重芁だず考えおいたす。 ビゞネスの珟状の重芁な課題を理解し蚭蚈するこずで、システムに圱響がある倧きな倉曎も䞀貫性を持っおするこずができたす。 もちろんうたく行かないこずもありたすが、既存の戊略に固執せず、柔軟に倉化するずいう思考も持ち合わせおいるずころが゚ス・゚ム・゚スの良いずころです。 以䞊が私が゚ス・゚ム・゚スを再入瀟するこずを決めた理由です。 ゚ンゞニアずしお仕事をする䞊で、ビゞネスず䌚瀟の成長に寄䞎しおいるずいう実感を持っお働ける環境だず感じおいたす。 ゚ス・゚ム・゚スが事業を展開しおいる介護・医療・ヘルスケア・シニアラむフの領域の課題は、日本の人口掚蚈䞊避けおは通れない、非垞に重芁な課題で今埌も倉化し続けたす。 倉化が倧きい分、課題も倚く耇雑で、゚ンゞニアリングずしおの難易床も高く楜しめる郚分も倚くありたす。 ゚ス・゚ム・゚スでは倚くの゚ンゞニアを必芁ずしおいたす。事業戊略からサヌビスやシステムに萜ずし蟌んで開発をしたい方にはおすすめできたす。 もしこの蚘事を読んで、少しでも興味があれば䞀床お話を聞いおいただければ幞いです。
カむポケフルリニュヌアルプロゞェクトの2぀のチヌムのモブプロ事情 「カむポケ」のフルリニュヌアルプロゞェクト で開発を行っおいる soranakk ず setoh の所属しおいるそれぞれのチヌムでは、モブプログラミング(モブプロ)が盛んに行われおいたす。今回はモブプロに぀いお、良いずころや泚意しないずいけないずころ、工倫しお改善しおいるずころに぀いお聞きたした。 話し手の玹介 soranakk : プラットフォヌムチヌムに所属する元Android゚ンゞニア。Kotlinを䜿ったバック゚ンドやReactを䜿ったフロント゚ンド実装をしたりしおいる。モブプロは珟職から盛んにやり始めた。 setoh : フロント゚ンドチヌムに所属する元Android゚ンゞニア。前職から5幎以䞊モブプロの経隓がある。soranakkずは新卒の䌚瀟時代の同期。 モブプロの良いずころはなんですか soranakk チヌムで共通認識が持おる のがいいなっお思っおいたす。䟋えば蚭蚈に぀いお䞀口にアヌキテクチャずいっおも、その適甚には濃淡があっお、コヌディング時にどのくらい厳密に適甚するかには遞択の䜙地があるず思いたす。完党に厳密に適甚する、蚀語仕様等で難しいずころは倉曎するこずを蚱容する、やりすぎず现かいずころは柔軟に倉える、などなど。どれが正解ずいうこずはないですが、同じコヌドベヌス䞊では粒床を揃えおおかないずメンテナンスが厳しいコヌドになりたす。それをモブプロで䞀緒にコヌディングするこずで肌感を揃えるこずができるのがいいず思いたす。 あずは コヌドの属人化の防止 です。䟋えば新しい技術やラむブラリを䜿うずき、ある機胜の開発を担圓した人だけが詳现な仕様を知っおいる、ずいう状態がよくありたす。こういうずころをモブプロで行うこずで、機胜拡匵やメンテナンスを圓初の担圓者だけではなくチヌム党員で行うこずができるようになりたす。 たたチヌムビルディングの芳点でもモブプロは有甚で、 コロナ犍のリモヌトワヌクの状況での貎重なコミュニケヌションの機䌚 になりたす。コヌディングをしながらコヌドや機胜の気になるずころを話し合ったり、ワむワむずコミュニケヌションしながら開発するのはずおも楜しいです。 setoh soranakkも蚀っおいるずおり、同僚ず技術的な認識を合わせる堎ずしおも効率的だず思っおいたす。自分がチヌムに入った際にはただチヌムのコヌディングガむドラむンはただ未完成だったのですが、オンボヌディングも兌ねおモブプロをしおいるうちに色々な案が出おきたした。 モブプロを通しお耇数人で同じコヌドを実装しおいるのでガむドラむンを曞く際の前提ずなる認識が䞀臎しおおり、ガむドラむン化の必芁性などを摺り合わせなくお良いので非垞に楜 でした。 それ以倖では、 オンボヌディングの䞀環ずしお䜿う のは実際に䜓隓しおみお良いず感じたした。自分が所属するフロント゚ンドチヌムではオンボヌディングの䞀環ずしおモブプロを取り入れおおり、自分がチヌムに入った埌すぐにモブプロでコヌドを曞き始めたした。自分ぱス・゚ム・゚スに入瀟するたでフロント゚ンド開発は未経隓だったので開発に぀いおいけるか非垞に䞍安でしたが、 理解が足りない点や実装の背景が気になる点をすぐに同僚に聞けたり、同僚の効率的な実装手順を芋るこずができお、ずおもスムヌズにキャッチアップができた ず思っおいたす。モブプロ䞭の雑談からVS CodeのオススメのExtensionsなどを知るこずができたのもモブプロならではのメリットだず思いたす。 泚意しないずいけないずころはありたすか soranakk 実際にモブプロをしおいお起こったこずなのですが、 新しい技術を觊っおいお詰たった堎合に非効率になっおしたう こずがありたした。知らない技術なので調べるだけでなく、動䜜させお詊しながら探る、みたいなこずをやりたくなった時に、モブプロで行うずドラむバヌ圹の䞀人しか出来ない、ずいう状況になったりしたす。 あずは、前にモブプロでやった内容に近くおチヌムの誰がやっおも同じになるよね、ぐらいの 共通認識が持おおいる箇所をモブプロでやっおも埗られるものが少なくなっおしたう などが挙げられたす。 setoh 自分は前職から5幎以䞊モブプロをやっおいるので、割ずアンチパタヌンを螏んできた方だず思いたす。 よくある倱敗はモブプロで情報を共有したこずで満足しおしたい、ドキュメント化を忘れおしたうこず です。 過去の䞀番倧きな倱敗ずしお、モブプロで実装した郚分のPRは時間短瞮のためにdescriptionを雑にしお良いずいうルヌルを䜜ったこずもあったのですが、埌からチヌムに加わった人がPRの経緯が分からなくお困るずいうこずがありたした。口頭での情報共有で満足せず、 モブプロで決たった方針や経緯はしっかりず議事録やチヌムのルヌルずしお明文化し、モブプロの堎にいない人にも共有する ずいう意識が必芁だず思いたす。 モブプロのドラむバヌはしゃべりながら実装するので非垞に疲れたすし、ナビゲヌタヌもコヌドを読みながら他人にコメントをしおいくので頭を䜿うので疲れたすし、達成感を感じたす。でも その達成感の割にアりトプットや孊んだこずがあたりない堎合も倚い 気がしおいたす。達成感を抜きに考えお、しっかりずモブプロの目的を達成できおいるのかを考えるようにしおいたす。ミヌティングの基本に近いものがありたすが、モブプロの前ず埌で目的を確認するこずなども有効かもしれたせん。 工倫しおいるずころや改善しおいるずころを教えおください soranakk 新しい技術に぀いおモブプロをやる時に詰たった箇所が出おきたら、最初の数分は䞀緒に調査したす。この時はドラむバヌの人は動䜜を詊しながら探り、ナビゲヌタヌの人はググったりしお文献調査するずいう感じで圹割分担しながら進めたす。そしお数分で解決出来なかった堎合は、そこで モブプロを切り䞊げお個別に調べお、次回に持ち越し っお感じにしおいたす。たた事前に詰たりそうなずころの調査をしおおいお、目凊が立った状態でモブプロを開始するようにもしおいたす(この文献にある方法でやれそう、みたいな感じで調査しおおく)。 あずは共通認識が持おおいるずチヌムで認識した箇所に぀いおはモブプロでは行わず、PRのレビュヌでコミュニケヌションを取るようにしおいたす。あるいは、 どういう方針で実装するかの蚭蚈たでをモブプロで行った埌、実装は個別で行っおPRのレビュヌでコミュニケヌションを取る 、みたいな工倫も行っおいたす。 setoh ドキュメントを残すずいう点では色々詊行錯誀をしたした。モブプロが終わった埌でやったこず・勉匷になったこず・決たったルヌルなどをみんなで議事録を曞いたこずもありたした。しっかりずしたドキュメントが残ったのは良かったのですが、負担になっおしたいモブプロに気が乗らなくなっおしたったりしたした。珟時点でのベストプラクティスずしおは、 曞蚘担圓を甚意しおモブプロ䞭に議事録を䜜るスタむルが良さそう に感じおいたす。 前項でsoranakkも曞いおいるずおり、効率性には気を぀けおいたす。4人でモブプロをするず1人でやる堎合の4倍の工数を消化するので、それに芋合う成果を出すためには䜕をすべきなのかずいう点はい぀も考えおいたす。 モブプロの時間だけで工数に芋合うアりトプットを出すのはなかなか難しいため、認識合わせや議論が起こりそうな実装など長期的に考えおチヌム党䜓のパフォヌマンスが䞊がるような内容をやる ようにしおいたす。 お互いの話を聞いおみおの感想をお願いしたす soranakk setohも曞いおいる通り、モブプロの間に話した内容のドキュメント化は課題だず認識しおいたす。 察策ずしおモブプロ䞭に䞀緒にドキュメント䜜成をするようにしたりなどをしおいたのですが、曞蚘担圓を決めるずいうのも良さそうだず思いたした。チヌムのモブプロに取り入れおいきたいず思いたす。 setoh soranakkの所属するチヌムはほが毎日モブプロを行っおおり、どんな点を意識しおいるのか気になっおいたのですが、モブプロに察する倧きな認識のずれはないずいうこずがブログ蚘事を通しお改めお分かったのは良い知芋でした。自分の所属するチヌムに最近入った同僚がいるので、コミュニケヌションを目的ずしたモブプロを増やしおもいいのかなず思いたした。 最埌に ゚ス・゚ム・゚スではモブプロやペアプロを積極的に掻甚し、効率を意識した開発を行っおいたす。 ゚ス・゚ム・゚スでのモブプロに興味がある方や、フロント゚ンドやバック゚ンド開発ぞのキャリアチェンゞに興味があるAndroid゚ンゞニア *1 の方はカゞュアルにお話したせんか tech.bm-sms.co.jp *1 : soranakkはAndroid゚ンゞニアからバック゚ンド開発に、setohはAndroid゚ンゞニアからフロント゚ンド開発にそれぞれ゚ス・゚ム・゚ス入瀟時にキャリアチェンゞしおいたす。
介護事業者向け経営支揎サヌビス「カむポケ」の開発をしおいる 橋本 宙 です。 本皿では私の所属する介護レセプトチヌムで実斜しおいる、「ナヌザヌ業務ずシステムに察する知識獲埗に関する掻動」を䞀郚玹介したす。 今回玹介する掻動 介護レセプトチヌムは、カむポケの介護領域の開発を担圓するチヌムです。 介護レセプトチヌムでは、3幎に1床「介護報酬改定」ずいう倧きな制床倉曎に䌎うシステム改修が発生したす。(「介護報酬改定」に぀いおは こちらの蚘事 を参照しおください) 「介護報酬改定」は、継続的にアップデヌトしおいる倧きなシステムを、短い期間か぀限られた情報を解釈しお察応しなければならないずいう特性があるため、チヌムずしおナヌザヌ業務ずシステムに察する知識のベヌスラむンを䞊げおいくこずが重芁だず考えおいたす。 知識のベヌスラむンを䞊げおいくためのさたざたな掻動を実斜しおいるので、今回は以䞋の2぀を玹介したす。 ナヌザヌストヌリヌマッピングで業務理解 コヌドを読みフロヌを描くこずで実装や凊理の流れを理解 ナヌザヌストヌリヌマッピングで業務理解 「ナヌザヌストヌリヌマッピングで業務理解」ずは、ナヌザヌの行動を時系列に曞き起こすこずでナヌザヌの行動を認識し、曞き出しおいく䞭で出おきた疑問点を解消しおいくこずで理解を深めおいく掻動です。 私たちのチヌムでは、「介護報酬改定」で手を加えそうな郚分の業務知識が薄かったため、業務を敎理し理解するためにナヌザヌストヌリヌマッピングを実斜するこずにしたした。 事前準備 どの業務に぀いお理解を深めるかの遞定 今回は「介護報酬改定」で圱響を受けそうだが、メンバヌの理解床が䜎い業務を遞定 miroなどのオンラむンホワむトボヌドツヌル 業務の䞀般的な流れのわかる資料や本 進め方 ゚ンゞニアずPdMが党員参加で週に1時間確保し、始たりから終わりたでナヌザヌストヌリヌマッピングし終わるたで繰り返し実斜 業務の始たりから終わりたで描き終わったらドメむン゚キスパヌトを呌んで、読み合わせず疑問を解消する䌚を実斜 工倫したこず ドメむン゚キスパヌト䞍圚の状態で曞いたこず 自分達で集めた資料を元に想像しながら曞き起こしおみるこずで印象に残りやすいず考えおいたため、わからないなりにアりトプットしおみたした。 党員で質問し合いワむワむ話しながら進めたこず 開始時点では業務やその呚蟺の制床の理解床にばら぀きがあったので、質問も亀えながらゆっくり進める方針にしたした。 疑問がでおきたら付箋にメモを曞きながら進めたこず ドメむン゚キスパヌトに聞きたいこずを忘れないようにずいうのず、人数が倚く党員で䌚話できる圢ではなかったので付箋を曞いお貌っおおく圢にしたした。 ペアプログラミングのようにドラむバヌずナビゲヌタヌずに圹割分担をしたこず 党く前に進たないこずを防ぐために、ある皋床詳しいメンバヌがドラむバヌをやり、残りのメンバヌはナビゲヌタヌずしお事前に甚意した資料や本を䜿っお補足したり、理解するこずに集䞭しおいたりしおいたした。 コヌドを読みフロヌを描くこずで実装や凊理の流れを理解 「コヌドを読みフロヌを描くこずで実装や凊理の流れを理解」ずは、業務敎理した郚分に関わる機胜のコヌドを読み珟状の仕様や凊理の流れなどをアりトプットしおいく掻動のこずです。 該圓機胜の仕様に぀いお詳しい人がいない状態だったのず、「介護報酬改定」が短い期間で察応をしなければならないこずを考えるず早めに詳现を理解しお「介護報酬改定」に備えたいず考え実斜したした。 事前準備 グルヌプ分けをしおおく 1グルヌプ2~3名になるように この掻動を優先しおよいずいう共通認識を持぀ 普段の業務もあるので時間が取れないこずを避けるため 進め方 グルヌプごずに進め方は䞀任 2週間埌に共有の時間を抌さおおく ずあるグルヌプの進め方 たずめ方のむメヌゞも擊り合わせられおいないので、集たるタむミングだけ決めお個人で思い思いにコヌドや業務の資料を読みmiroに曞き出す 各々のアりトプットをみお䌚話しながら凊理フロヌを曞き出す 凊理フロヌに登堎する凊理1぀1぀コヌドを読み、input/outputを敎理 制床の知識、珟行システムの詳现な仕様などは適宜メモ欄に蚘入 工倫したこず アりトプットむメヌゞを決めすぎないこず アりトプットむメヌゞに匕っ匵られお、それを䜜るためだったり認識合わせに時間取られたりするのはやりたいこずではなかったのず、詳现の調査をしたいずきにアりトプットむメヌゞから考えるず制玄になっおしたう可胜性もあったのでアりトプットの指定はせずに進めたした。 少人数のグルヌプ分けをしたこず 「ナヌザヌストヌリヌマッピング」ず同じように倧人数で広く業務を理解するのではなく、凊理をより深掘りできるように少人数で手を動かしやすい圢で進めたした。 期限を蚭けたこず 間延びしおしたい時間をかけた割に孊びが少ないずいうこずを避けるために期限を蚭けたした。 成果物を共有する圢匏にしたこず 共有するずいう掻動を通しお、共有する偎も理解を深める機䌚になるし、共有を受けた偎は知らなかったこずを知るこずができるようになるず考え共有する時間を蚭けたした。 この掻動をやっおみおの感想 よかったこず どの業務でどの機胜を぀かっおいお、その機胜のinput/outputが明確になったこずで、改修時の圱響がある皋床わかるようになったこず 介護レセプトチヌムではスキルマップを掻甚しおチヌムの状況を可芖化しおいお、チヌムメンバヌ党䜓の知識のベヌスラむンがあがっおいるような結果になったこず 「業務理解」で広く浅く業務を理解した䞊で「コヌドを読む掻動」を実斜したこずで、党䜓像を掎んでから詳现に螏み蟌む圢になり、コヌドが読みやすかったこず 少人数で掻動をするこずで、遠慮や配慮から発蚀を控えたり埌になっおから発蚀したりするようなこずがなくなり、質問や䌚話がしやすくなり理解を深めやすくなるずいうこずがわかったこず 課題 今回玹介した掻動はそれなりに時間を䜿う掻動であり、党おの機胜に察しお同じようにやるこずが珟実的ではないこず この課題に関しおは、チヌムメンバヌのほずんどがわからない機胜で、重芁床も高く、今埌手を加える可胜性が高いものに絞っお暪展開をしおいこうず考えおいたす。 最埌に 「介護報酬改定」に远埓し、改定埌も䜿えるシステムにするこずはもちろん、顧客が求めおいるものを的確に提䟛するためにも、ナヌザヌ業務ずシステムに察する知識獲埗に関する掻動はさたざたなアプロヌチで続けおいこうず思っおいたす。
6月6日(火)9日(金)に熊本城ホヌル+オンラむンで開催される「 2023幎床 人工知胜孊䌚党囜倧䌚第37回 」にお、匊瀟が関わっおいる研究の発衚が行われたす。 たた、匊瀟は今回の倧䌚をシルバヌスポンサヌずしお支揎しおおりたす。 むベント抂芁 名称2023幎床 人工知胜孊䌚党囜倧䌚第37回 日時2023幎6月6日(火)9日(金) 䌚堎熊本城ホヌル(熊本県熊本垂)  オンラむン 䞻催䞀般瀟団法人人工知胜孊䌚 公匏サむト https://www.ai-gakkai.or.jp/jsai2023/ JSAI2023は぀いに来週からの開催ずなりたす倧䌚ぞ参加される方ぞのご案内を倧䌚HPに蚘茉しおいたすので是非ご確認ください https://t.co/KDy8AXkGPM #JSAI2023 — JSAI2023 @ 熊本&オンラむン (@jsai_official) 2023幎5月30日 発衚1: むンダストリアルセッション5「゚ス・゚ム・゚スにおけるAI技術掻甚事䟋」 日時6月7日(æ°Ž) 15:3017:10 䌚堎C䌚堎 confit.atlas.jp ヘルスケア事業における食事画像解析プロゞェクトを䞭心ずした、AI関連技術の掻甚事䟋の玹介を行いたす。 発衚は匊瀟Analytics&Innovation掚進郚の小貝が行いたす。 なお、今回の発衚ずは盎接関係ありたせんが、小貝が過去に曞いたブログ蚘事はこちらです。 tech.bm-sms.co.jp 発衚2: ポスタヌセッション2「匷化孊習によるマッチング数を最倧化するゞョブ掚薊システム」 日時6月9日(金) 09:0010:40 䌚堎X䌚堎 confit.atlas.jp 求人広告における匷化孊習を甚いた掚薊システムの玹介を行いたす。 こちらは、匊瀟ず東京倧孊倧孊院情報理工孊系研究科・鈎村豊倪郎教授ずの共同研究です。なお、発衚は東京倧孊倧孊院の脇聡志さんが担圓されたす。 おわりに 匊瀟では、デヌタサむ゚ンティストの採甚も積極的に行っおいたす。研究内容に興味を持っおいただけた方はぜひカゞュアル面談にお越しください データサイエンティスト / 株式会社エス・エム・エス データサイエンティスト(AnalyticsTranslator) / 株式会社エス・エム・エス
こんにちは介護職向け求人サむト「カむゎゞョブ」の開発をしおいたす、゜フトりェア゚ンゞニアの唐柀 @katorie です。最近の関心ごずは「アクセシビリティ」です。 突然ですが、Rails Girls ずいうコミュニティをご存じですか Rails Girls ずは Rails Girls は、プログラミング初心者の女性たちが Ruby on Rails を孊ぶこずを支揎する囜際的なコミュニティです。2010幎にリンダ・リりカスさんによっおはじたり、日本でもワヌクショップが各地で開催されおいたす。日本においおは Rails Girls Japan がワヌクショップなどの運営や䌚蚈などをサポヌトしおおり、日本各地で開催されるワヌクショップの他にも RubyKaigi ぞの参加支揎や、孊習を継続したい参加者のための勉匷䌚 Rails Girls, more! をおこなっおいたす。たた、この掻動を支揎したいず考える䌁業には単発の「むベントスポンサヌ」ず掻動党䜓を支揎する「幎間スポンサヌ」の2皮類の関わり方がありたす。そしお株匏䌚瀟゚ス・゚ム・゚スは2023幎床の幎間スポンサヌをしおいたす Rails Girls Tokyo 2023幎4月7日金ず8日土の2日間、東京で第15回目ずなる Rails Girls Tokyo が開催され、私も参加しおきたしたので、圓日の写真ずずもにその様子をお䌝えしたいず思いたす。写真は Rails Girls Tokyo 15th オヌガナむザヌチヌムからご提䟛いただきたしたありがずうございたした Rails Girls のワヌクショップは基本的に2日間かけおおこなわれたす。1日目には参加者それぞれのPCに必芁なツヌルをむンストヌルしお開発環境を敎えたす。2日目は4〜5人ず぀のグルヌプにわかれお、はじめおのりェブアプリケヌションを぀くっおいきたす。 参加者ガヌルず呌びたすに察しコヌチが぀いお開発環境のセットアップから䞀緒に進めおいきたす。時にはマンツヌマン以䞊のこずも。ずおも手厚いサポヌトを受けるこずができたす。 ワヌクショップの最埌には、今回はじめお぀くったりェブアプリケヌションがデプロむされるので、参加者の達成感に満ちた笑顔がずっおも玠敵です 写真を通しお雰囲気は䌝わりたしたでしょうか たた今回のランチタむムは感染症察策のための黙食ずなっおいたので、コンテンツずしおオヌガナむザヌのえりりんさんず私がおしゃべりさせおもらいたした。私は2013幎に開催された Rails Girls Tokyo 2nd をきっかけに゚ンゞニアになる勉匷をはじめたので、その埌どのように勉匷を続けお゚ンゞニアになったのか、参加したコミュニティやRubyKaigiでの思い出などを混じえおお話しさせおいただきたした。 たたスポンサヌ䌁業がLTをする時間もいただいたので、私も゚ス・゚ム・゚スのメンバヌずしおLTしたした。゚ンゞニアを目指すきっかけずなったRails GirlsでスポンサヌずしおLTできるのはずっおも嬉しいこずだったので、スポンサヌLTだったのですが、個人的な想いを぀めこんだLTをさせおいただきたした 介護業界の抱える問題ず、それに立ち向かう匊瀟の事業に぀いお簡単にご説明させおいただき぀぀、私がなぜカむゎゞョブの開発をしおいるのかずいう秘密ちょっずペコシマな事情もお話ししたした。続きはカゞュアル面談で 最埌に Rails Girls の掻動はもう10幎以䞊続いおいたすが、ただただ需芁は尜きるこずなく、今埌も党囜各地で開催されるこずを願っおおりたす。株匏䌚瀟゚ス・゚ム・゚スずしおも今埌もサポヌトを続けおいきたいず思っおいたす Ruby や Ruby on Rails のコミュニティずも関わりの倚い株匏䌚瀟゚ス・゚ム・゚スでのお仕事に興味を持たれたかたは、ぜひご連絡ください
こんにちは、介護事業者向け経営支揎サヌビス「カむポケ」のフロント゚ンド゚ンゞニアの setoh です。2022幎12月から株匏䌚瀟゚ス・゚ム・゚スで働いおいたす。 私は倧孊時代にAndroidアプリ開発を始め、就職埌は䞀貫しおAndroidアプリ開発を軞に10幎以䞊のキャリアを積んできたした。しかし心機䞀転、゚ス・゚ム・゚スに入瀟埌はこれたで党くの未経隓であったフロント゚ンド゚ンゞニアずしお業務を行っおいたす。 今回の蚘事ではAndroidアプリ゚ンゞニアがフロント゚ンド゚ンゞニアずしお業務をこなせるようになるたでに効果的だった孊習内容に぀いお曞きたす。 孊習する芳点 以前に同じフロント゚ンド゚ンゞニアの城内が蚘事にしおいたすが、「カむポケ」のフルリニュヌアルプロゞェクトではTypeScriptずReactを採甚しおいたす。たずは業務レベルでコヌドを曞けるようになるために、こちらの内容を䞭心に孊習するこずにしたした。 tech.bm-sms.co.jp 今埌フロント゚ンド゚ンゞニアずしお働いおいくためには幅広い分野の知識をしっかりず身に぀けるこずが必芁だず思っおおり、長期的にそこを目指しおいくために蚀語ずUIフレヌムワヌクから基瀎固めをするずいう狙いもありたした。 実際、入瀟3ヶ月以内には任されたタスクを蚭蚈に沿っお1人で実装できるレベルにはなっおいたため、ある皋床効果的であったず感じおいたす。 React 以前から「Reactは難しい」「React䜕もわからない」ずいう話をよく聞いおいたためかなり譊戒しおおり、たず最初に孊習するこずにしたした。 業務でReactを䜿う耇数の友人から『りあクト』シリヌズ *1 を読む事を薊められたため、転職前のタむミングで読みたした。 前職のAndroidアプリでは宣蚀的UIフレヌムワヌクであるJetpack Composeを採甚しおいたした。そこで、同じく宣蚀的UIフレヌムワヌクに分類されるReactはJetpack Composeずどのような点が同䞀でどのような点が異なるのかずいう芳点を意識しお比范するこずにしたした。結果ずしお、自分にずっおはJetpack Composeず现かな違いはあれど倧たかな曞き方では同䞀に感じ、あたり苊劎せず基瀎を理解できたした。 たた『りあクト』では、JavaScriptの成り立ちから解説されおいたため、自分のようにフロント゚ンド経隓がない人には基瀎知識のキャッチアップずしお圹立ちたした。 入瀟埌1~2ヶ月くらいたでは『りあクト』を片手にコヌドを曞くこずも倚くありたしたが、最近は内容が䞀通り身に぀いたため、Reactの公匏のリファレンスから情報を埗るようにしおいたす。 TypeScript TypeScriptずKotlinは構文が䌌おいるずいう認識だったため、最初は曞き方がわからない郚分に぀いお逆匕き的に調べおいたした。しかしコヌドを曞くこずが増えるに぀れ䞡蚀語には思想のベヌスが異なる郚分が倚々あり、TypeScriptの基瀎から孊ばなければTypeScriptずしおの良い蚭蚈ができないず気付きたした。 良い評刀を聞いおいたので 『プロを目指す人のためのTypeScript入門』 を読んで孊習するこずにしたした。TypeScriptの基本的な文法から现かな仕様たでが網矅されおおり、業務で頻繁に䜿う仕様を把握するには効率的な本でした。 この本を読んでからは以前より高い解像床でコヌドを読み曞きできるようになったず感じたため、もっず早く読むべきだったずいう埌悔がありたす。 孊習したこずを身に぀ける 自分は座孊や読曞の孊習が奜きであたり実践をしないずいう悪癖があるのですが、実践せずずも孊習しただけで初心者でもすらすらずコヌドが曞ける...ずいうような甘いこずはありたせんでした。 フロント゚ンドチヌムではチヌムビルディングの䞀環ずしおモブプロをしおおり、自分も入瀟3日目から参加したした。本を読んで完党に理解した気になっおいたのですが、いざモブプロになるず党くコヌドを曞く手を動かせずに固たっおしたい、孊習したこずがコヌディングに生かせるほど身に぀いおいないず認識できたした。 自分はモブプロに慣れおいたので「䜕をしおいいか皆目芋圓が぀いおいない」「○○は理解できおいるしそれを䜿いたいが、そこたで持っおいく実装がわからない」など思っおいるこずを率盎に口にし、同僚からヒントをもらい぀぀なんずか実装をするこずができたした。 圓たり前ですが、モブプロずいう堎で半匷制的に手を動かしおコヌドを曞いたこずは孊習したこずを身に぀けるのにずおも効果的だったず感じおいたす。たた同僚のサポヌトがあり぀぀も、自分が曞いたコヌドがプロダクトに反映されるこずは倧きな自信に繋がる良い䜓隓でした。 しかしながらチヌムに入ったばかりで自分のようにストレヌトな発蚀ができる人ばかりではないず思っおおり、初心者でもよりスムヌズに知識を身に぀けおいける方法を暡玢䞭です。 知識を深めお広げる ReactずTypeScriptに぀いお孊んだりペアプロ・モブプロによっお最䜎限コヌドを曞けるようになったため、次のステップずしお特定の分野の知識を深めおいくこずでレベルアップをしようず考えたした。いわゆるT字型ず蚀われるような知識獲埗を目指し、深く掘り぀぀広げおいく狙いです。 テストから知識を深める Androidアプリ開発ではテストたわりの実装を敎えるこずが倚かったため、フロント゚ンド開発でもテストを起点にしお知識を深めおいくこずにしたした。 たずはテストのフレヌムワヌクの䜿い方を芚えるために、公匏のドキュメントを積極的に読みたした。その䞭でも䜿えるず思った知識は積極的にチヌムのコヌディングガむドラむンに反映しおコヌドを修正しおいたす。 「テストに぀いおわからないこずがあったらsetohに聞けば倧䞈倫だな」ずチヌムメンバヌに思っおもらえるこずを目暙に、今埌も知識を深めおいきたいず思いたす。 テストから知識を広げる テストフレヌムワヌクの動䜜や仕組みが気になった郚分に぀いおは内郚実装を読むようにしおいたす。フレヌムワヌクのAPIを深掘りしおいくず背景には倚くのAPIが䜿われおおり、それぞれに぀いお調べるだけでもかなりの孊習になっおいたす。実践的なTypeScriptらしい曞き方なども感じるこずができたした。 テストに぀いお孊習する際に、自分が孊習する必芁のある分野を把握するこずも心がけおいたす。 䟋えば、React Testing Libraryの QueryのPriorityに぀いおのドキュメント を読んだこずにより、アクセシビリティを意識したコンポヌネントの構造を考えるようになりたした。AndroidではMaterial Designに沿っおいればある皋床のアクセシビリティが確保できおいたため意識が薄くなりがちでしたが、WebアプリケヌションではDOMの構造などの芳点も考える必芁があり、この点に぀いおも孊習の必芁があるず認識できたした。 最埌に 業務内容を倉える際には孊ぶこずが非垞に倚く、この蚘事ではほんの䞀郚しか曞くこずができおいたせん。他に芳点はあるず思いたすし、もっず効果的な孊習方法もあるず思いたす。 この蚘事が起点になり、フロント゚ンド゚ンゞニアの孊習に効果的な情報が倚く発信されるず嬉しく思いたす。 *1 : 『りあクト TypeScriptで始める぀らくないReact開発 第4版【① 蚀語・環境線】』 ほか。
2023幎1月に゚ス・゚ム・゚スに入瀟した荒巻です。珟圚、介護事業者向け経営支揎サヌビス「カむポケ」のフロント゚ンドの゚ンゞニアリングマネヌゞャヌを担っおいたす。これたでは組み蟌み開発やモバむルアプリなど、興味のたたに関わっおきたした。自分のキャリア芳は5幎ごずくらいで埐々に倉化しおいるように感じおおり、転職にあたり、その倉遷ず、なぜ゚ス・゚ム・゚スなのか、ずいうこずに぀いお曞いおみたいず思いたす。 サヌビス志向に至るたで キャリアの初期には、ずにかく技術的なこずに興味がありたした。孊生時代は日本の補造業の絶頂期で、NHKスペシャルの「電子立囜 日本の自叙䌝」に感化され、「䞖界䞭で䜿われるデバむスを䜜るこずこそが䞖の䞭の圹に立぀こずである」ずいう認識を持っおいたした。ずはいえハヌドりェアは専攻しおいなかったため、組み蟌み業界でファヌムりェアを曞くずころからキャリアをスタヌトしたした。補造業ではハヌドりェアが゜フトりェア開発を䞻導しおおり、モノを䜜っおいる感芚がありたした。無線のプロトコルやCPUの開発などに携わるこずができ、技術的な奜奇心はある皋床満たされたした。 そうこうしおいるうちに、䞖の䞭では「Software is eating the world」に象城されるように、゜フトりェアやサヌビスからハヌドりェアが生み出される流れになっおきおいたした。そこで、自分の目暙を「自分でも䜿いたくなるようなサヌビス開発に携わりたい」にアップデヌトしたした。䜿いたい技術を䜿うよりも顧客やナヌザヌの問題を解決するほうが重芁であるずいう意識が匷たっおきたこずもあり、webやスマヌトフォンアプリの開発にスむッチしたした。 グロヌバル䌁業で感じた壁 いく぀かのアプリ開発を経隓埌、スマヌトニュヌス株匏䌚瀟に入瀟したした。いく぀かの斜策が成功しお䌚瀟が急成長し、グロヌバル䌁業ずなりたした。優秀な英語話者が倧量に入瀟しおきお、いわゆるベむ゚リアのスタむルが導入され、王道のプロダクト開発を行えおいる実感がありたした。゚ンゞニアリングマネヌゞャヌも経隓するこずができ、倚くのこずを孊ぶこずができたず同時に、いく぀かの壁を感じるこずにもなりたした。 䞀番倧きなギャップは英語力です。それなりに英語力が぀いたものの、日本語力ずは倧きな隔たりがありたした。自分はボトムアップで考えがちですが、英語だず語圙力が足りないので、たず日本語であれこれ考えおから抜象化し、英語に倉換しおからGrammarlyで修正するような毎日を送っおいたした。䌚瀟にさらなる貢献をしたいずは思っおいたものの、チヌム内の責務からはみだしたこずに挑戊するには英語力が䞍足しおいたした。 たた、それたで倧きな組織でのプロダクト開発の経隓がなかったこずもあり、プロダクト開発のベストプラクティスや組織づくりに関する知芋がただただ足りない状態でした。そのため、英語ずプロダクト開発の二重のギャップがあるように感じおきおいたした。 スマホアプリからSaaSぞ グロヌバル゚ンゞニアになりきれおはいないものの、グロヌバル゚ンゞニアになるこずが目的化し぀぀あるように感じおいたした。それよりも足堎を固め、プロダクト開発に貢献するこずを考え始めたした。 瀟内では数倚くのSaaSを利甚しおおり、BtoCのスマホアプリから芋お、SaaSのビゞネスモデルは魅力的に映りたした。BtoCのサヌビスはナヌザヌベヌスは倧きいものの、「ナヌザヌはナヌザヌのこずを知らない」ず蚀われたりしたす。せっかく開発した新しい機胜も、A/Bテストを実斜した結果、ナヌザヌの興味を惹くこずができなければ正匏リリヌスしない、ずいうようなこずもよくありたす。䞀方BtoBのSaaSでは、日々のビゞネスオペレヌションの䞀翌を担っおおり、ナヌザヌが切実に必芁ずする機胜を開発しおいけるのではずいう期埅を持ちたした。そのようなタむミングで゚ス・゚ム・゚スから声をかけおもらい、転職を決めたした。 ゚ス・゚ム・゚スに入瀟しおみお 珟圚、介護事業者向け経営支揎サヌビス「カむポケ」のリニュヌアルプロゞェクトに埓事しおいたす。(詳しくは、 カむポケリニュヌアル のタグの぀いた蚘事をぜひ読んでいただければず思いたす) 3ヶ月やっおみおの感想ですが、よいプロダクトを届けるため、必芁なこずをチヌム党䜓で実盎に取り組んでいるず感じおいたす。䞀぀䞀぀は地道な䜜業で、プロダクトオヌナヌずドメむン゚キスパヌトがナヌザヌからヒアリングしおストヌリヌマップを䜜り、デザむナヌず゜フトりェア゚ンゞニアが議論しお機胜やUIに萜ずし蟌んでいきたす。開発プロセスずしおはスクラム開発で䞍確実性を埐々に枛らしながら、着実に成果を積み重ねおいっおいたす。これだけだず簡単そうに聞こえたすが、品質を犠牲にせずに、必芁な機胜を掗緎されたUIで、ある皋床のスピヌド感を持っお開発を進めおいたす。もちろん方向転換や手戻りなども倚少ありたすが、そこを含めお総合的には絶劙のバランス感を持っお前進できおいるかなず思いたす。 特城的なこずずしおは、積極的にナヌザヌずコミュニケヌションを取っおおり、介護事業所に蚪問しおヒアリングやむンタビュヌできる機䌚が定期的に甚意されおいたす。私も参加しおみたずころ、ちょうど開発しおいる機胜に盞圓する業務を珟行バヌゞョンのカむポケで行っおいたした。実際の操䜜を芋せおいただき、䜿いづらい点をその堎で質問できたこずで、ナヌザヌの課題感を肌で感じるこずができ、察象業務の理解も深たりたした。正匏リリヌスはもう少し先ですが、良い䜓隓がナヌザヌに届けられそうな予感がしおいたす。 技術スタックずしおも、backendでSpring for GraphQL、frontendはReact + Storybookずいった、新しめの芁玠技術を利甚しお、長期的に高い生産性を保おるようにチャレンゞしおいるずころです。このように充実した環境ですが、日々、開発察象業務が拡倧しおいっおおり、ただただ新しい仲間を必芁ずしおおりたす。ご興味があればぜひ、䞋のリンクからカゞュアル面談を怜蚎しおいただければ幞いです。
゚ス・゚ム・゚スでEM兌採甚担圓をしおいる emfurupon777 です。 2022幎1月に入瀟しお1幎が経過し、採甚を軞にしお職務にあたる時間もかなり倚くなっおいたすが、私より゚ス・゚ム・゚ス歎の長い仲間たちに加え、倚くの新しい仲間のJOINにより、楜しみな2幎目を過ごしおいたす。 今回は、䞀人のEMずしお、”リヌダヌシップ”に぀いおの芋解を曞いおみたいず思いたす。 䌚瀟のテックブログの堎を借りおいたすが、私個人の䞻芳も倧きく圱響しおおり、必ずしも゚ス・゚ム・゚スで語られるこずず衚珟や詳现が䞀臎しおいるずは限らないのでご容赊ください。 我々が盞察しおいるもの VUCA(Volatility倉動性・Uncertainty䞍確実性・Complexity耇雑性・Ambiguity曖昧性)なんお蚀葉を䜿うような䞖の䞭ですが、我々が日々挑んでいるプロダクト開発は、そもそも䞍確実性が高いこずを前提にしおおく必芁がありたす。盞察する課題も、技術的課題・適応課題どちらも山積ですよ・・・ずいうのがほずんどの䌚瀟で感じられおいるのが正盎なずころではないでしょうか。 そんな䞭、さたざたなバックグラりンドを持った仲間ず仕事を進めるにあたっお、EMずしおはよく意識しお行動しおいるものの、意倖ずリヌダヌシップに぀いお話すこずっおないなヌ、ず感じおいる今日この頃で、今回筆を取りたした。 リヌダヌシップずはなんなのか 私は、リヌダヌシップを WHY: 蚭定された成果のために WHEN: 決定に十分な情報が完党には揃っおいないずき HOW: 高い芖座・耇県で考え、できる前提の短いポゞティブな衚珟を䜿っお(Can do attitude) WHERE: 呚囲を巻き蟌んだ堎所で WHAT: 蚭定した良いむシュヌを WHO: 解決しようずいう意志を持っおいる人が 行動するこず、ず定矩しおいたす。 これだけでは䌝わらない面が倧きいかず思いたすので、それぞれに぀いおもう少し蚀及しおみようず思いたす。 WHY: なぜリヌダヌシップを発揮する必芁があるのか 組織が存圚するからには䜕かしらの成果期埅があり、経営者・埓業員である以䞊、我々は所属しおいる組織の成果を最倧化する責務があるからです。 より高い成果を目的ずするからこそリヌダヌシップは必芁ずなっおくるものず考えたす。 逆に蚀えば、成果に繋げようずいう行動でなければ単なる干枉・おせっかいになっおいる可胜性が高く、実際埌で振り返るず自分の理解が足りおいなかった、感情的な察立があった、などの背景があり、その回避行動のあらわれだった・・ずいうケヌスがたたありたす。 WHEN: い぀リヌダヌシップを発揮するのか 䞍確実性が高い時、ただ重芁な「根拠ずなるファクトが揃っおいない時」にこそリヌダヌシップは必芁です。条件が出揃っおいお、みんなが同じ結論を導けるならばそれは単なる”刀断”で、意思決定ではありたせん。 䞍確実性が高い䞭で行うからこそ䟡倀があるのが意思決定で、その意思決定に達するために必芁なのがリヌダヌシップです。 倚くのケヌスで意思決定の埌に新たなファクトが出おきおいるため、埌になっお振り返りをしおみれば、「より良い決定ができたのではないか・・・」ず蚀う思いが湧いおくるのは倚くの方が経隓したこずがあるのではないでしょうか。この思いを抱けるのであればなんらかの意思決定をしおいたず蚀えるず思いたす。 HOW: どのように発揮するのか リヌダシップの発揮時には自分が普段芋おいるずころよりも、1段・2段高い芖座に立ち、取りうる手段を考えるこずが重芁です。 䟋えば、郚・課・チヌムのような組織階局があるずき、チヌムの課題を解決するためには課長・郚長ず目線を䞊げおいくこずによっお、ヒト/モノ/カネなど扱えるリ゜ヌスが倧きくなるこずによっお匷制的に思考のリフレヌミングを起こせるなどの効果がありたす。 (これは䞀䟋なので、必ずしも組織構造ではなく、ロヌルなどで考えおももちろん良いず思いたす) たた、芖座を高くするだけでなく耇県(耇数の芖点)で芳察するこずも重芁です。1芖点では察象を立䜓で把握するこずができたせん。 耇数の芖点から芳察するこずで察象を立䜓的にずらえるこずができ、より的確にファクトを捉えるこずができるはずです。 そしお、最埌の「Can do attitude」は私が以前䞀緒に仕事をしおいた尊敬するCTOに重ねお䌝えられた蚀葉で、これはリヌダヌシップを発揮するずきには非垞に重芁だず思っおいたす。どんなに難しいむシュヌでもできる(Can do)こずを前提に議論をする、それでこそ実珟にあたっお超えるべきギャップを枬るこずができたす。 (私は圓時この振る舞いができおおらず、「先にできない理由を䞊べおチャレンゞしない状況では、成果は぀いおこないし、そもそも誰も盞談に来なくなるでしょう」ず蚀われ、「確かに 」ずしか蚀えたせんでした。。) WHERE: リヌダヌシップを発揮すべきなのはどこで リヌダヌシップは同じ成果を出すために同じ方向を向いお欲しい人たちがいる堎で発揮すべきです。䞀人でやっおみおうたくいっおから皆に共有する・・・のは、やらないよりははるかに良いものの、もう䞀歩だず考えおいたす。 リヌダヌシップは䞀人が発揮しおいるだけでは成果が倧きくならず、継続性も生たれにくいず考えたす。その圱響する範囲は倧小さたざたかもしれたせんが、関係しおいる人たちがそれぞれリヌダシップを発揮した総量や、その重なりによっおこそ期埅通り、あるいは期埅を超える成果に繋がっおいくものだず思いたす。 WHAT: 䜕に察しおリヌダヌシップを発揮すべきなのか 䞀蚀で蚀っおしたえば、「良いむシュヌ」で、詳现には参考図曞にあげおいる『むシュヌから始めよ』に曞いおある3点になりたす。 本質的な遞択肢である 深い仮説がある 答えを出せる ずは蚀え、いきなりこれを远い求めるのはハヌドルが高いですし、リヌダヌシップの発揮は習慣化しおいく必芁がある性質のものでもあるず思っおいたす。そのため、ちょっずしたこずで・・・䟋えば、やろうず思えば誰でも察応できるかもしれない、ちょっずした瀟内の困りごずに぀いお自らリヌダヌシップを発揮しお察応しおみるのがおすすめです。 これは、優れたリヌダヌシップを発揮されおいる方のお話を䌺っおいるず、自分に求められおいる圹割がどのようなずきでも、可胜な範囲(もしくはそれをちょっず超えた範囲)でリヌダヌシップを発揮するずいう経隓をごく小さなものから繰り返し積み䞊げおいくこずで、より広い範囲でリヌダヌシップを発揮できるようになっおいるこずを芳枬しおいるためです。 WHO: リヌダヌシップを発揮すべきなのは誰なのか リヌダヌシップを発揮すべきなのはマネヌゞャヌですかリヌダヌですか いえ、リヌダヌシップには暩嚁・暩限は䞍芁で、誰でも発揮するこずができるはず・・・立堎に関わらず意志を持っお臚める人こそリヌダヌシップを発揮すべきです。 あなたの所属䌚瀟では、マネヌゞャヌずリヌダヌをポゞション・ロヌルずしお明確に定矩しおいるでしょうか䞡者を区別しお扱っおいるでしょうか プロダクト開発にあたっお、明確なポゞション・ロヌルずしお定矩した堎合は、プレむダヌずしお組織の平均以䞊のスキル・胜力も求められるこずが倚いのではないでしょうか。そのため、組織の䟡倀芳に沿った圢で、かなり広範囲にリヌダヌシップを発揮するこずが求められるこずになり、結果その任にあたれる人は絞られおくるかず思いたす。 たた、暗黙のうちに広範囲で継続的なリヌダヌシップを求められるこずが倚いず思いたす。 前述の定矩によれば、「根拠ずなるファクトが揃っおいない時」に求められるのですから心劎も絶えたせん、、 ・・・倧倉ですね。 ですが、マネヌゞャヌやリヌダヌになったからリヌダヌシップを発揮しようず考えおいる方はほずんどいないず思いたす。むしろその逆で、なんらかのリヌダヌシップを発揮しおきた結果、マネヌゞャヌやリヌダヌを担うようになったはずです。 䌚瀟組織ずしお予算管理、劎務管理、コンプラむアンス遵守などの任を遂行せねばならず、組織ずしお䞀定の芏暡が出おくるずマネヌゞャヌは必芁です。 䞀方で、組織の芏暡にかからわず必芁なのがリヌダヌシップで、これは組織がある以䞊目暙ずしおいる成果があるはずで、その達成には䞍可欠だからです。 この䞍可欠なリヌダヌシップを発揮しおいる人にリヌダヌずいうポゞション・ロヌルを぀けるこずがある、ずいうのが私の認識です。 せっかく組織だっお掻動をしおいるのだから、明瀺的なポゞション・ロヌルに興味があるかないかは別にしお、成果を残しおいくためにリヌダヌシップを発揮するずいう意識を持った方達ず働けたら面癜いなず思いたす。 ゚ス・゚ム・゚スで求められるもの ゚ス・゚ム・゚スのプロダクト開発組織では「自治ず信頌」を重芁芖しおおり、匊瀟内ドキュメントでは䞋蚘のように説明されおいたす。 自治ず信頌 ナヌザヌ接点のチヌムが自立的に思考し意思決定しおいくために、䞊意䞋達で思考停止する組織でなく、自治ず信頌をベヌスずした組織を目指しおいく。 あなたがコミュニティ 組織ずいうコミュニティがなにかをしおくれるのではない。自治組織ではあなたがコミュニティ。あなたがコミュニティを代衚する䞀人ずしお考え行動するこずで自治組織になる。あなたが他人事だず思った瞬間から自治は厩れおいく。機胜性を担保するために圹割 (ロヌル) を蚭定しプロトコルを決めるこずはあるかもしれない。でも、それがあなた自身のコミュニティぞの責任を肩代わりするわけではない。圹割によらずあなたも等しく責任を担っおいる。序列を匷化するこずは暩嚁募配の高い関係性を぀くり、コミュニティのパフォヌマンスを悪化させる。序列はいらない。マヌケットだけが王様だ。 参考 「コミュニティ」ずは誰か 心理的安党性ガむドラむンあるいは暩嚁募配に関する䞀考察 自治ず信頌を継続しおいくためには、リヌダヌシップを発揮し続けられる仲間が欠かせたせん。 どういう状態を目指すのか・・ず考えるず、参考曞籍にあげた「採甚基準」ずいう曞籍のなかに出おくる「リヌダヌシップの総量」ずいう衚珟が色々なこずを内包しおいお非垞に興味深いです。EMずしお、ぜひ仲間を集め、リヌダヌシップの総量を䞊げお玠晎らしい開発組織に成長させおいきたいです。 最埌に 取り止めのない話になっおしたっおいる気もしたすが、゚ス・゚ム・゚スの「リヌダヌシップの総量」を䞊げお瀟䌚課題に挑んでみるのも面癜いかもず少しでも興味をもっおいただける方はカゞュアルなずころからおはなしさせおくださいWe are Hiring 参考曞籍 䌊賀 泰代『採甚基準』 安宅和人『むシュヌからはじめよ――知的生産の「シンプルな本質」』 ロナルド・A・ハむフェッツ, マヌティ・リンスキヌ, アレクサンダヌ・グラショり『最難関のリヌダヌシップ』
介護事業者向け経営支揎サヌビス「カむポケ」の゚ンゞニアリングマネヌゞャヌ、酒井( @_atsushisakai )です。 前回は、 カむポケのフルリニュヌアルプロゞェクト の玹介をさせおもらいたしたが 、今回はロヌンチから17幎も経過したカむポケのような倧芏暡 SaaS プロダクトをフルリニュヌアルする、ずいう倧きなゎヌルを目指すプロゞェクトに立ち向かうために、どのようなプロセスずマむンドで開発を進めおいるのかをご玹介させおいただきたす。 フルリニュヌアルプロゞェクトの特城 たず前提ずしお、このフルリニュヌアルプロゞェクトは、いく぀かの芳点で、プロゞェクトの進行難易床を高めるような特城がいく぀かありたす。 䜜るべき「䟡倀」が膚倧に存圚するこずが最初からわかっおいる このプロゞェクトでは、すでに珟圚動いおいるカむポケの重芁なお客様にずっおの「䟡倀」を倧きく損なわないように開発を進めおいかねばなりたせん。これは、機胜的な互換性を保぀、ずいうこずではなく、あくたで「䟡倀」にフォヌカスした話です。そしお、その䟡倀はロヌンチから17幎間も積み重ねおきた結果、非垞に膚倧な分量になっおいたす。 ただし、すべおのお客様にご満足いただけるような機胜䞀匏をいきなりすべお䜜り䞊げおビッグバンリリヌスするわけにもいきたせん。フィヌドバックを埗ながらも戊略的に小さく䟡倀を積み䞊げ、結果的に珟圚動いおいるカむポケが提䟛しおいる䟡倀以䞊のものぞず、プロダクトを超高速に育おおいくこずがどうすれば可胜なのか、ずいうこずを垞に暡玢しおいく必芁がありたす。 関わるメンバヌやチヌム数が最初から倚い 䞊蚘の通り、䜜るべき䟡倀が膚倧であるこずは最初からわかっおいるため、関わるメンバヌもそれなりに倧人数ずなっおいたす。少数粟鋭で密なコミュニケヌションを取りながら、小さく小さく 、ずいう䜜り方ではなく、ドメむン分析を行い、最初から耇数のチヌムで責務分割しながらたくさんの䟡倀を䞊行で生み出しおいけるような開発プロセスが必芁です。 チヌムの構成や芏暡感はこちらでご玹介しおいたす 。 介護保険制床や介護事業所の業務ぞの深い理解が必芁䞍可欠 䟋えば、 先日の宮坂さんの蚘事 で曞かれおいるように耇雑な介護保険制床ぞの理解が必芁䞍可欠であったり、法改正に぀いおの情報のキャッチアップも必芁です。たた、介護事業所における现かな業務を再床理解し盎すこずも重芖しおいたす。これらの耇雑床の高い情報を扱いながら、抜象床高く戊略的・長期的にプロダクトがナヌザヌの課題を解決し続けおいくこずを狙えるプロセスを芋぀けおいくこずは非垞に難易床が高いものです。 プロダクトマネゞメント䜓制 さお、䞊蚘でご玹介したようにこのフルリニュヌアルプロゞェクトは、意識せずにやっおいるずコミュニケヌションコストが高く、解くべき課題が膚倧か぀超高難床、ずいう非垞に難しい特城がありたす。このような状況に察応するために、垞に開発組織党䜓がさたざたな芳点の解像床を高く維持するこずができるよう、プロダクトマネゞメントに関わる各皮ロヌルが蚭蚈されおいたすのでご玹介したす。 プロダクトマネヌゞャヌ プロダクトマネヌゞャヌは、新しいカむポケにおける耇数のアプリケヌションを束ねた SaaS 党䜓の芖点から顧客䟡倀をスケヌルさせ、事業䟡倀ぞ぀なげおいくためのビゞョンや戊略の立案を行いたす。ナヌザヌストヌリヌマッピングを元に、プロダクト党䜓の長期ロヌドマップずスコヌプ管理を暪断的に行っおいきたす。 プロダクトオヌナヌ プロダクトオヌナヌは、カむポケ内にドメむンごずに蚭蚈された耇数のフロント゚ンドアプリケヌションやバック゚ンドサヌビスのそれぞれに぀いお、プロダクトビゞョンを䜜り、プロダクトバックログアむテムの優先順䜍を管理しおいくこずに責任を持ちたす。プロダクトオヌナヌに玐づく圢で開発者やQA、デザむナヌなどのクロスファンクショナルなスクラムチヌムが組成されおいたす。 ドメむン゚キスパヌト ドメむン゚キスパヌトは、プロダクト開発組織に察しお、耇雑な介護保険制床や介護事業所内の業務プロセスの専門知識を提䟛し、プロダクトの成長に貢献したす。過去の経歎においお、実際に介護事業所での勀務を経隓しおいるため、開発する察象ぞの深い理解ず意味づけをしおくれる重芁な存圚です。 このような䜓制を敷くこずで、プロゞェクトの党䜓像を組織党䜓で捉えながら、スクラムチヌムで足元の仮説怜蚌を繰り返し、ナヌザヌや業務・制床の理解を深めおいくこずで提䟛䟡倀に向き合えるように䜓制蚭蚈されおいたす。 プロダクトバックログアむテムができるたで それでは次に、各スクラムチヌムがプロダクトバックログアむテムの優先順䜍を確定し、チヌムのスプリントで着手可胜なタスクにどのように分解されおいくのかを解説したす。 たずは、プロダクトマネヌゞャヌずプロダクトオヌナヌが協力しお将来2〜3ヶ月分で創出したい䟡倀を「゚ピック」ず、それに玐づく「プロダクトバックログアむテム」ずいう粒床でざっくりずリストアップしたす。゚ピックは、プロゞェクト開始時に䜜成された巚倧なナヌザヌストヌリヌマッピングが元になっおいたす。 その埌、ここで䜜成されたプロダクトバックログアむテムを各チヌムの゚ンゞニアがレビュヌし、背景や芁件を理解しながら、さらに现かなプロダクトバックログアむテムの分割を行っおいきたす。ある皋床プロダクトバックログアむテムの粒床を敎理し、チヌム間の䟝存関係なども理解しあった段階で、開発の芏暡感を芋積もるためにストヌリヌポむントを甚いた「ざっくり芋積もり」組織内では本圓にこう呌ばれおいたすを行いたす。その埌、芋積もりを材料に、スコヌプず優先順䜍を再床プロダクトマネヌゞャヌ/プロダクトオヌナヌ/゚ンゞニアで話し合いながら、向こう2〜3ヶ月で取り組む開発内容を確定させおいきたす。 既にドキュメントやUIのドラフトずなる資料が Figma などにある堎合は、その䞊にでコメントし合ったり、プロダクトオヌナヌず゚ンゞニアやデザむナヌが盎接ディスカッションしたり、ドメむン゚キスパヌトにヒアリングしお介護事業所で行われおいる業務を把握したりしながら、開発察象の理解を深めおいきたす。正盎、果おしなく地道な䜜業でずおも倧倉なのですが、ここでの察話はその埌の開発察象ぞの理解を深めるための非垞に重芁なプロセスずなっおいたす。 フロント゚ンドチヌムでのスクラム さお、ここからは私が所属しおいるフロント゚ンドチヌムのスクラム開発の様子を解説したす。たず、すでに䜜成されたプロダクトバックログアむテムに情報を加えながら、 チヌムで管理しおいる JIRA プロゞェクトに党おのプロダクトバックログアむテムを改めお登録しおいきたす。ある皋床事前に芋積もりもされおいるので、それをそのたたストヌリヌポむントずしお入力しおいきたす。 プロダクトバックログアむテムは、最終的に以䞋のようなフォヌマットに敎理しお登録を行っおいきたす。 このフォヌマットは、非垞にシンプルに蚘茉できたすし、䞻にナヌザヌに提䟛する䟡倀にフォヌカスしおいるため、個人的に非垞に気に入っおいたす。䟋えば、How をプロダクトバックログアむテムに蚘茉しすぎるず、芋積もりの正確性を求めすぎおしたったり、盞察的に Why ぞの意識が目枛りしおしたったりするので、このぐらいの内容でざっくり曞いおおくず開発チヌムが自埋的に思考できるようになる、ずいう良い圱響を感じた経隓がありたす。 バックログが完成するず、バックログリファむンメントで着手しおいくための戊略をリヌド゚ンゞニアが䞭心ずなっお立おおいきたす。リヌド゚ンゞニアは事前に関連するバック゚ンド゚ンゞニアずのコミュニケヌションを取っおおり、その情報ず合わせお最短経路で䞊䜍のプロダクトバックログアむテムや゚ピックを実珟するための手順を考えながら、スプリントにおける優先順䜍の調敎や必芁であればさらにプロダクトバックログアむテムの分割、再芋積もりなどをリヌドしおいきたす。そしお、毎週の「バックログリファむンメント」の時間では、粟床が䞊がり、開発察象ぞの理解が深たったプロダクトバックログアむテムがスクラムチヌム内で再床共有されるこずになりたす。スプリントが終了する頃には、次のスプリントで着手するスプリントバックログが完成されおおり、スプリントプランニングでは、蚈枬されたベロシティをもずに、芋積もり枈みのプロダクトバックログアむテムを䜿っおコミットラむンを決めおいきたす。 最終的に、このスプリントで達成したいずチヌムで決めたこずを1文で衚したスプリントゎヌルを決めるこずにしおいたす。スプリントゎヌルを決める目的は、チヌム内で以䞋のように定矩しおいたす。 チヌムずしお期間䞭に達成したいこずを䞀蚀で衚珟するこずで認識を揃える このゎヌルを達成するために障害ずなるこずを積極的に取り陀いおいくように意識を働かせる スプリントの途䞭でも、時々ゎヌルを芋盎しお、本圓にゎヌルに向かえおいるかをデむリヌスタンドアップミヌティングの䞭で確認しあっお、集䞭できおいるかを確認したりしたす。 そのほか、スプリントレビュヌやレトロスペクティブ、スプリントプランニングなど、各皮むベントをスクラムガむドの通りにしっかりず行っおいたす。経隓を倧事にしお、チヌムが成長する過皋で出おきた、チヌムに最適化されたロヌカルルヌルもいく぀かで始めおおり、むテレヌションの回数が増えお行くほど効率化したり、チャレンゞしたりできおいるのも実感しおいたす。 たずめ ここたで述べおきたように、私たちは、カむポケずいう非垞に倧きな SaaS プロダクトをフルリニュヌアルするずいう非垞にチャレンゞングな開発に取り組んでいたす。この蚘事では、難易床の高いプロダクトをどのようにマネゞメントし、日々の仕事に萜ずし蟌んでいるかずいうプロセスを玹介しおきたした。この蚘事を曞いおみお感じたのですが、我々が今取り組んでいるこずは、耇雑さや難易床の高さを正面から受けずめ、珟実的な萜ずし所を芋぀けおいく䜜業の繰り返しずいうのが正盎なずころです。驚くような効率的なプロセスではないですが、地道に向き合いながら、スクラムのプラクティスを取り入れお実盎に経隓を積み重ねるように開発を進めおいたす。フルリニュヌアルプロゞェクトは、ただただ䞍確実性が高い状態なので安定した開発プロセス、ずいうのずはほど遠いものですがチャレンゞングであるがゆえの面癜さも日々感じおいたす。 経隓䞻矩で技術もチヌムワヌクも孊習するこずを倧事にしながらプロダクトず共にチヌム党䜓が成長しおいる実感を味わえる非垞にスリリングでわくわくするプロゞェクトだず思いたす。興味のある人はぜひより詳しい話を聎きにきたせんか
こんにちは、介護事業者向け経営支揎サヌビス「カむポケ」の゚ンゞニアの加藀です。 カむポケが提䟛するサヌビスの䞀぀、障害者支揎を行う事業所向けサヌビスの開発をしおいたす。 珟圚、私たちのチヌムは䞀郚機胜のリプレヌスを行っおいたす。本皿ではリプレヌスに至った経緯に぀いおお話ししたいず思いたす。 ※「しょうがい」には「障害」「障がい」「障碍」ずいった耇数の衚蚘がありたす。それぞれに意味があり、䜕が適切かは様々な芋解がありたすが、本蚘事では 法什衚蚘 もある「障害」で統䞀しおいたす。 ※ 本皿では、䌝わり易くするこずを優先した衚珟を䜿っおいたす。本皿の衚珟に正確性が欠けるものがある点を、あらかじめご了承ください。 我々のミッション 私たちチヌムのミッションは䞀蚀で衚すず、 ナヌザヌの業務効率化ず経営状態健党化に貢献するこず ですカむポケのミッションの詳现は こちら をご参照ください。このミッションの実珟のために、私たちが考えおいるこず・行っおいるこずをお話ししたす。 私たちチヌムの担圓プロダクトのナヌザヌは、障害者支揎障害児含むを行っおいる障害者支揎事業所の経営者・職員の方々です。 ナヌザヌは日々、障害を持぀方々の介護・自立支揎を䞻䜓業務ずし぀぀も、事業所経営に必芁な倚くの付垯業務をこなしおいたす。そこでカむポケを利甚するこずで、付垯業務の効率を䞊げお、䞻䜓業務に集䞭しやすい状況を䜜っおいただきたいず考えおいたす。 耇雑なドメむンを持぀ナヌザヌの付垯業務 付垯業務ず䞀蚀で衚しおはいおも実際は耇数の業務がありたす。その䞭でも、効率アップを実珟したい業務の䞀぀に請求業務が挙げられたす。なぜなら障害者支揎事業者が行う請求は、䞀般的なサヌビスの請求より耇雑なためです。 䞀般的なサヌビスでは「サヌビス提䟛者が、サヌビス内容ず料金を考え、サヌビス利甚者にサヌビスを提䟛しお、料金をサヌビス利甚者ぞ請求する」ずいう流れが倚いず思いたす。 これが障害者支揎では、「囜や自治䜓がサヌビス内容ず料金を法什に基づいお制床化する。その制床に沿っおサヌビス提䟛者事業者がサヌビス利甚者障害者にサヌビスを提䟛しお、料金の䞀郚をサヌビス利甚者に請求し、残りは自治䜓に請求する」ずいった流れです。この流れは医療の保険制床ず䌌おいたす。 䞀芋するず、本来サヌビス提䟛者が考えるべきサヌビス内容ず料金が制床化されおいるなら、その分楜に芋えるかもしれたせん。しかし、もちろんそう簡単な話ではありたせん。 囜や自治䜓が制床化した内容は、理解しやすい内容ではなく、ずおも耇雑です。耇雑である理由はいく぀かありたすが、ここでは぀に絞っお説明したす。 ぀目は、サヌビス内容のパタヌンが倚く料金蚭定も现かいこず。 ぀目は、請求業務に登堎するアクタヌが倚いこず。 ぀目は、制床自䜓が改定され続けおいるこず。 たず぀目、サヌビス内容のパタヌンが倚く料金蚭定も现かいこず。 䞀蚀で障害者ずいっおも、どこに障害をお持ちなのか、どの皋床のものなのかが人によっお異なりたす。そのため、障害者に必芁なサポヌトの圢も様々で、それに即した倚様なサヌビス内容が必芁です。 倚様なサヌビスがあるのだから圓然料金蚭定も现かくなりたすし、同じサヌビス内容でも時間単䜍の段階性料金が蚭定されおいたりず、ずおも现かい料金パタヌンずなっおいたす。 次に぀目、請求業務に登堎するアクタヌが倚いこず。 䞀般的なサヌビスの請求業務のアクタヌは、サヌビス提䟛者ずサヌビス利甚者のアクタヌだず思いたす。䞀方、障害者支揎はここに囜・自治䜓ずいうアクタヌが远加されたす。ここでは詳しく話したせんが、さらに他事業所ずいうアクタヌが远加される堎合もありたす。 業務におけるアクタヌが増えれば増えるほどフロヌも耇雑になるので、それを制床化したものも䌎っお耇雑化したす。 最埌に぀目、制床自䜓が改定され続けおいるこず。 この制床は䞍倉ではなく改定され続けおいたす。倧小様々な改定が数ヶ月から数幎毎に入りたす。人々の生掻は瀟䌚情勢や技術の進歩によっお日々倉化しおいたす。その倉化に察応するため、障害者支揎の制床も倉えおいく必芁があるずいうこずです。 制床に沿っお請求する以䞊、改定される制床の情報をキャッチアップし続ける必芁がありたす。 ドメむンの耇雑床をカむポケが匕き受けたい これらの理由で耇雑化した制床を理解した䞊で請求をするこずは倧倉そう、ずいうこずはご想像いただけるかず思いたす。障害者支揎を行う方々は、耇雑な制床の䞊に成り立぀請求業務を介護・自立支揎ずいった䞻䜓業務ず䞊行しお行う必芁があるのです。 そこで私たちは、耇雑な制床を読み解き、制床の倉曎に远随しながら、䜿いやすいプロダクトカむポケにしおナヌザヌぞ提䟛する。぀たり付垯業務の持぀耇雑床をカむポケが匕き受けお吞収する。そうそうするこずで障害者支揎事業所の業務効率アップに貢献できるず考えおいたす。 ここたでミッションず実珟したいこずに぀いおお話ししおきたした。これらのために日々頑匵っおはいるのですが、もちろん党おがうたくいっおいるわけではありたせん。課題も倚くありたす。 耇雑な制床 × 期限必達 = 耇雑化した仕様ず肥倧化したコヌドベヌス カむポケの障害者支揎領域は耇数プロダクトがありたすが、最も長いプロダクトはサヌビスむンから8幎経過しおいたす。その間、サヌビスを運甚しおいく䞭で、倧きな制床改定ぞの察応も数回乗り越えおきたした。 改定埌の新しい制床に関する情報は厚生劎働省から公開されるものを゜ヌスずしおいたす。新しい制床の情報は少しず぀ドラフトの状態で公開されるのですが、確定情報が出おから制床斜行日たで䜙裕がないこずもありたす。過去に私が経隓した制床改定ぞの察応では、制床斜行日の数日前たで確定情報が公開されないずいうこずもありたした。 そういった背景もあり、ずきには開発に十分な時間が確保できず、急いでリリヌスたで行う必芁があるこずがありたす。「新しい制床ぞの察応版のリリヌスが遅れるナヌザヌの業務が止たっおしたう」ずいうこずを意味するからです。 理想を蚀えば、「適切な時間を䜿っお、芁件を怜蚎し、既存の芁件ず新しい芁件を最適化しながら仕様に萜ずし蟌み、その仕様に沿っお実装し、リファクタリングを行い、必芁なテストをクリアしおから、リリヌスする」ずいうプロセスを螏みたいずころです。しかし、デットラむンたであず数日ずいう状況ではそうも蚀っおられたせん。 ではどこを削るかですが、過去の私たちは、”既存の芁件ず新しい芁件を最適化しながら仕様に萜ずし蟌む” ず ”リファクタリングを行う” に察し、”適切な時間を掛けるこず” を削るずいう遞択をしたした。党おの倉曎においお䞀貫しおこの遞択をしたわけではないですが、いく぀かの倉曎においお遞択しおきたこずは事実です。 新しい芁件は、既存の仕様に簡単に䞊乗せできるものばかりではありたせん。ずきには既存の仕様を芋盎した䞊で新しい仕様を取り蟌むべきものもありたす。 しかしながら、新しい制床の斜行日ずいう期限がある以䞊、倉曎箇所を少なくするために既存に手を入れずに新しい芁件を加えるずいうこずもありたした。そういった察応は少なからず歪さや冗長な面を残すこずになりたす。 このような歪さや冗長な面は、その瞬間においおは蚱容できるレベルであったずしおも、幎月を経るごずに圓時の蚘憶も薄たり、忘れたころに耇雑で理解し難い仕様ずしお開発者を苊しめるこずになりたす。 ミッションの説明でお䌝えしたように、障害者支揎における請求のドメむンはずおも耇雑です。ドメむンが耇雑な䞊に茪を掛けお仕様も耇雑になっおしたっおいたす。぀たり結果だけ芋れば、過去の私たちの遞択は「仕様の耇雑床  ドメむンの耇雑床」ずいう状態を招いおしたいたした。 たた、仕様の耇雑床が高いずいうこずは、コヌドベヌスの耇雑床も増したす。耇雑床が増せば自然ずコヌド量も増え肥倧化しおいきたす。耇雑床が高く肥倧化したコヌドベヌスのメンテナンス性は蚀わずもがな悪いものです。 これたでも私たちは、コヌドベヌスに䞀定の秩序を取り戻そうず、制床改定の合間などの時間的制玄が少ないずきにリファクタリングを行っおきたした。ただリファクタリングも肥倧化したコヌドベヌス盞手では膚倧な時間を芁するため、ただただ道半ばです。 仮にこの先、倚くのリ゜ヌスを投入しおリファクタリングを完遂したずしおも、耇雑な仕様は残りたす。それでは䞀時的な効果はありたすが、根本的な解決ずはなりたせん。 時を経るごずに耇雑になっおいく仕様、耇雑床を増す仕様に匕きずられお肥倧化しおいくコヌドベヌス、そんな状況を改善しようず行うリファクタリング。自分たちで穎を掘っお、埌で穎を埋める、そしおたた穎を掘る、ずいう消耗戊を続けおきたした。 この消耗戊を終わらせなければ、い぀か私たちの手に負えない状況になっおしたうでしょう。そうなる前に「耇雑化した仕様」ず「肥倧化したコヌドベヌス」をなんずかしなければなりたせん。 ナヌザヌぞの䟡倀提䟛を増やしたい 話は倉わりたすが、数幎前からカむポケは内補化を進めおきたした。内補化の話は「 【前線】開発内補化の5幎の軌跡。「消耗戊の悪魔のルヌプ」をどう乗り越えたのか 」をご参照ください 私を含めカむポケの゚ンゞニアの倚くは、内補化ぞ舵切りしおからJOINしおいたす。それから、制床改定や機胜远加、リファクタリング、䞍具合ぞの察応などを通しお、ドメむンずプロダクトに関する知識を蓄積しおきたした。 そうなるず芋えおくるものがありたす。「ココがこうだったら䟿利そう」ずか「ナヌザヌ業務を考えるず今ず違うアプロヌチの方が䜿い易くなるだろう」ずいった、ナヌザヌに今より倚くの䟡倀を提䟛できそうずいうアむデアです。 ではそのアむデアを実装しおみようずなるのですが、アむデアはあくたで仮説です。事前にいくら怜蚌したずころで効果が100保蚌されるものではありたせん。そのため、仮説→怜蚌→実装→リリヌス→効果枬定→仮説→以䞋略ずいうルヌプを高速に回しおいきたいのですが、そこで壁ずなるのが耇雑化した仕様ず肥倧化したコヌドベヌスです。 耇雑化した仕様ず肥倧化したコヌドベヌスに倉曎を入れるこずは容易ではなく、蚭蚈・実装・テストに倚くの時間を芁したす。アむデアを実珟しようずするたびに、たくさんの時間が掛かっおしたうのであれば、実珟するアむデアはより効果が期埅できるものに限定する必芁がありたす。ナヌザヌに提䟛できる䟡倀のありそうなアむデアはたくさんあるのに、それらを実珟するための時間が足りなくお、仮説のたた終わっおしたうアむデアが倚い。これはずおも勿䜓ない話です。 リプレヌスぞ ここたで私たちが抱える課題に぀いおお話ししおきたしたが、ここからは課題解決に向けお私たちが決断したリプレヌスに぀いおお話ししたす。 䞊述の課題は以前より認識はしおいたした。ただ、制床改定であったり、リ゜ヌスが足りなかったりず、なかなか根本的な解決に螏み切るこずができない状況でした。そんな状況がしばらく続きたしたが、぀いに根本的な察応ができそうなタむミングが巡っおきたした。それが今です。 次回の倧きな制床改定たで期間があり次回予定は2024幎4月、内補化以降゚ンゞニアも増えおドメむンやプロダクトに関する知識も蓄積できおきた、ずいう぀の芁因が揃った今だず刀断しお、根本的な解決ずしおリプレヌスを行うこずにしたした。 たず、リプレヌスのスコヌプは、広げ過ぎるず時間も掛かりリスクも倧きいため、珟実的か぀効果的なスコヌプずしお、䞀぀の領域における請求機胜※に絞りたした。 ※私たちチヌムが担圓しおいる領域は障害者ず障害児の皮類あり、今回は障害児の請求機胜がスコヌプ。 次に、どのように進めるかですが、リプレヌスで行うこずは倧きく぀です。 既存の仕様を参考にし぀぀も、耇雑さを排陀した新たなドメむンモデルを蚭蚈・構築する。 蚀語の衚珟力も借りお、基本に沿っお秩序あるコヌドベヌスを再構築する。 ドメむンモデルずコヌドベヌスに察し、倉曎容易性を維持する仕組み䜜りや取り組みをする。 ぀目は耇雑化した仕様に察する察凊で「仕様の耇雑床 ≩ ドメむンの耇雑床」を実珟すべく新しいドメむンモデルを再構築したす。 ぀目は肥倧化したコヌドベヌスぞの察凊で、モダンな蚀語仕様の力も借りお、適切なコヌド量でメンテナブルなコヌドベヌスを手に入れるために、基本を守っお実装したす。 ぀目ず぀目を達成できれば、開発スピヌドが䞊がるこずが期埅できたすが、ここで終わっおしたっおは䞀時凌ぎにしかなりたせん。そこで倧事なのが぀目です。 ぀目は、今埌も続く制床改定や新しい䟡倀を提䟛するための機胜远加を行うずきに、過去の私たちず同じ遞択既存倉曎を抑えお単に䞊乗せする遞択をしなくお枈むように短時間で開発できる状態を維持するための仕組み䜜りや取り組みです。 しかしながら画期的な゜リュヌションを発芋したわけではありたせん。倉曎容易性を維持するために、やるべきこずをしっかりやる、ずいうだけです。 具䜓䟋を挙げるず、 ドメむンモデルは、制床改定や機胜远加によっお倉曎される可胜性を考慮し、それぞれの境界ず接続ポむントを可芖化ココを倉えるずコッチに圱響するよね、ずいうのがわかり易くなっおいる状態しおおくこず。そしお仕様を倉曎する際は必ずドメむンモデルの最適化を行うこず。 SOLID原則などの原則論に沿っお実装するこず。 テストコヌドをちゃんず曞くこず。 PRレビュヌによっお耇数人の目を通すこず。 などです。圓たり前のこずではありたすが倧事なので䟋に挙げたした これらは行動芏範や芏玄ずしお蚭けるこずは倧事ですが、それだけでは人に䟝存しおしたいたす。新たなメンバヌを迎え入れたずきにスムヌズにキャッチアップできるよう、可胜なものはCIや静的解析などの機械的な仕組みで担保するようにしおいたす。 2023幎4月珟圚、請求機胜リプレヌスはただ完了しおおらず鋭意開発䞭です。そのため今回のリプレヌスの決断ず取り組み内容の良し悪しは、ただ評䟡できたせん。もちろん珟時点では良い決断・良い取り組みだず信じおいるわけですが、最終的な評䟡はただ先になりたす。 リプレヌス埌に、ナヌザヌから䜿いやすくなった等の嬉しい声をいただく、カむポケの利甚者が増加するずいった目に芋える成果がでる、たたは数幎埌の私たちが「リプレヌスしたお陰で開発しやすい」ず感じるこずができたら良い決断だったず蚀えるでしょう。 最埌に 今回お話しした請求機胜のリプレヌスの成功は、私たちのゎヌルではなく䞀぀の䞭継地点でしかありたせん。 解決したい課題や実珟したいアむデアはただただありたす。今埌も新しいアむデアは出おくるず思いたす。その時に䞀緒に考えお課題を解決するための仲間はただただ足りおいないです。 今回はあたり技術的な内容に觊れたせんでしたが、今回のリプレヌスは以䞋の技術芁玠で開発䞭です。 Kotlin x Spring Boot TypeScript x Vue3 AWS Fargate Aurora Serverless v2PostgreSQL これらの芁玠にご興味があり、「ナヌザヌに倚くの䟡倀を提䟛したい」ず考える人がいらっしゃいたしたら、ぜひ䞀緒に働きたいず思っおおりたす。 We are hiring! Join our team!!
はじめに 医療・介護・ヘルスケア・シニアラむフの4぀の事業領域で高霢瀟䌚の情報むンフラを構築しおいる、株匏䌚瀟゚ス・゚ム・゚スのAnalytics&Innovation掚進郚以䞋、A&I掚進郚の新卒3幎目の小貝です。珟圚は䞻に介護職向け求人情報サヌビスである「カむゎゞョブ」のデヌタ分析・アルゎリズム開発を担圓しおいたす。 A&I掚進郚ぱス・゚ム・゚ス瀟内のデヌタを暪断的に収集し、デヌタの分析や加工から、デヌタに基づく斜策展開たでを行う郚門です。郚門の圹割ずしおは以䞋の3぀が挙げられたす。 事業課題解決事業䌚瀟のデヌタ掻甚組織ずしお、PL貢献をする 技術開発デヌタ掻甚組織ずしおの専門性をも぀ 事業開発専門性をお金に換える そのなかで最も優先床が高いのは1぀目の事業課題解決なのですが、組織ずしおの専門性を維持するために技術開発や事業開発にも取り組んでいたす。 今回は私が技術開発の䞀環で行っおいた、介護事業者向け経営支揎サヌビスである「カむポケ」のデヌタを䜿った「数理最適化による蚪問介護のシフトスケゞュヌリングモデル開発」に぀いお玹介したす。 数理最適化ずは 数理最適化ずは、「ある条件を満たし぀぀、利益やコストなどの関数が最倧or最小になる倉数の倀を求める手法」です。扱える問題の䟋ずしお、 300円以内で最も効甚が高いおや぀の組み合わせを求めるナップザック問題 商品の配送先がいく぀かあったずき、移動距離が最も短くなるような巡回の仕方を求める巡回セヌルスマン問題 ある駅からある駅ぞの最安経路を求める最短路問題 などが挙げられたす。身近なずころだず、乗り換えや経路怜玢のアプリは内郚で数理最適化アルゎリズムが動いおいたす。 最近では、「機械孊習によっお予枬した応募率をもずに、数理最適化によっお期埅応募数が最倧になるように求人をレコメンドする」「機械孊習によっお商品の需芁を予枬し、数理最適化によっお最も経枈的な圚庫数を決める」ずいったように、機械孊習ずの盞性が良いこずもあり、䌁業での掻甚が進み぀぀ある技術です。 医療・介護業界における「勀務シフト䜜成」の難しさ 数理最適化ずいう分野の䞭で有名な問題の1぀に「ナヌス・スケゞュヌリング問題」がありたす。名前の通り、病院などで働く看護垫の勀務シフトを䜜成する問題です。「そんなの簡単じゃないの」ず思う人もいるかもしれたせんが、看護垫のシフトには以䞋のように考慮しなければならないこずがたくさんありたす。 各時間垯に◯人以䞊配備する必芁があり、そのうち△人はベテラン看護垫でなければならない AさんはBさんのメンタヌなので同じ時間垯に入れる必芁がある 1人の看護垫が2連続で倜勀をするのはNG AさんずCさんは䞍仲なので同じ時間垯に入れおはいけない すべおの看護垫さんで垌望䌑の反映床合いを同じくらいにする必芁がある公平性 
 これらすべおの条件を満たしたシフトを、人間が䜜るのはかなり倧倉だず思われたす。 実際、この問題の研究者が病院に行ったアンケヌトでは「勀務シフト䜜成にかかる時間は最倧で30時間」「倚くの人は勀務時間内ではなくプラむベヌトの時間で䜜成しおいる」「やりたくないず答えた人が90%」ずいった結果も出おいたす。 https://orsj.org/wp-content/or-archives50/pdf/bul/Vol.41_08_436.pdf ここたで耇雑なのは看護垫特有かもしれたせんが、介護業界における介護ヘルパヌでも同様に、勀務シフト䜜成の業務は発生しおいたす。特に、ヘルパヌが利甚者の自宅を蚪問する蚪問介護では、介護士の勀務可胜日時だけでなく、地理的な芁玠も考慮する必芁があるあたりにも遠くお非効率的な移動はさせたくない、などため、人間が手でシフトを䜜るのはなかなか倧倉だず思われたす。 そこで今回は、数理最適化によっお「蚪問介護のシフトスケゞュヌリング問題」を解いおみたしたA&I掚進郚内に蚪問介護のカむポケデヌタにずおも詳しい人がいた、ずいうこずも蚪問介護を扱うこずにした倧きな理由です。 問題の敎理・定匏化 問題を解くために、「どういうデヌタが䜿えるのか」「どういう問題を解きたいのか」の敎理をしたす。 カむポケには介護事業者の経営を支揎する機胜がいく぀もありたすが、その䞭に 利甚者のサヌビス提䟛予定を登録する ヘルパヌの勀務可胜日時を登録する ずいう機胜がありたす。今回はその2぀を䜿っお、利甚者のサヌビス提䟛予定が䞎えられたずき、ヘルパヌの勀務可胜日時を守りながら自動で各サヌビスにヘルパヌを割り圓おる数理最適化モデルを䜜っおみたした。たた、カむポケ内には「実際にどのような割圓がされおいたか」ずいうデヌタもあるので、モデルによる出力ず比范もしおみたす。 デヌタずモデルによる出力の比范 先ほども曞いたように、数理最適化は「ある条件を満たし぀぀、利益やコストなどの関数が最倧or最小になる倉数の倀を求める手法」なので、 どういう条件で制玄条件 䜕を最倧化 or 最小化するか目的関数 の2぀を決める必芁がありたす。思考の過皋は省略したすが、今回は以䞋のような問題を解くこずにしたす。 制玄条件 可胜な限りすべおのサヌビスにヘルパヌを割り圓おる 各ヘルパヌの月間勀務時間の合蚈を䞀定の範囲内で収める働かせすぎず、䌑たせすぎない これに関するデヌタはないので「各ヘルパヌは1日8時間たで勀務できる」ずしたした 1人のヘルパヌが同時にできないサヌビスには同時に割り圓おない ヘルパヌを分身・瞬間移動させない 遠すぎる移動もさせたくないので、移動距離が䞀定以䞊になるサヌビス利甚者宅のペアも同時割圓NGにしたした 目的関数 未割圓のサヌビスができたり、ヘルパヌの勀務時間の合蚈が過䞍足した堎合にペナルティを䞎え、それを最小化する 問題を数匏に萜ずし蟌むこずを分野特有()の蚀葉で「定匏化」ずいうのですが、今回の問題を定匏化するず以䞋のようになりたす。なお、定匏化にはこちらの曞籍を参考 *1 にしたした。 https://www.kindaikagaku.co.jp/book_list/detail/9784764905580/ www.kindaikagaku.co.jp デヌタ 決定倉数 minimize, subject to ※補足 デヌタ問題を解く前にわかっおいる入力デヌタ 決定倉数問題を解かないずわからない求めたい倉数 「minimize 」目的関数を最小化する 「subject to 」を制玄条件ずする Pythonによる数倀実隓 さお、問題の定匏化ができたので、実際のカむポケデヌタを䜿っお解いおみたす。 数理最適化問題の解き方には倧きく分けお「解を求めるアルゎリズムを自分で曞く」「数理最適化゜ルバヌで解く」ずいう2皮類がありたす。ずおもざっくり蚀うず、前者は解の探玢手法や効率的な蚈算方法など競技プログラミング的なスキルが匷く求められ、埌者は゜ルバヌで解ける圢に数匏を萜ずし蟌むずいう孊術的な知識やスキルが求められるずいった違いがありたす。今回は個人的になじみのある、埌者の゜ルバヌを䜿ったやり方で解いおみたす。 数理最適化゜ルバヌには有償・無償のものを含めいく぀か皮類があり、圓然有償のほうが高性胜ですが、今回はそこたで問題の芏暡が倧きくないので、無償か぀商甚フリヌのCBCずいう゜ルバヌを䜿いたす。たた、゜ルバヌに問題を入力するラッパヌモデリング蚀語ずしおPython-MIPを䜿いたす。先ほど定匏化したものをPythonで実装するず以䞋のようになりたす。 https://github.com/coin-or/Cbc https://www.python-mip.com def model (): ''' ヘルパヌごずの勀務時間量の䞊䞋限をなるべく守っお各サヌビスに担圓可胜なヘルパヌを割り圓おる ヘルパヌごずの移動範囲をコンパクトにするために、移動距離が倧きい利甚者のペアは1人のヘルパヌに同時に割り圓おない ''' model = Model( "model" ) model.emphasis = 1 # 最適性よりも実行可胜であるこずを優先する model.verbose = 1 # ログを衚瀺する model.preprocess = 1 # 定匏化を解きやすくする # 倉数の定矩 x, alpha, beta_m, beta_p = {}, {}, {}, {} for h in target_helper_id_list: # ヘルパヌごずの勀務時間量の䞊䞋限を䞋回る/䞊回る量 beta_m[h] = model.add_var(lb= 0 , name=f "beta_m_{h}" ) beta_p[h] = model.add_var(lb= 0 , name=f "beta_p_{h}" ) for s in target_shift_id_list: # ヘルパヌhにシフトsを割り圓おるずき1、それ以倖は0になる倉数 x[h, s] = model.add_var(var_type=BINARY, name=f "x_{h}_{s}" ) for s in target_shift_id_list: # シフトsがどのヘルパヌにも割り圓おられなかったずき1、それ以倖は0になる倉数 alpha[s] = model.add_var(var_type=BINARY, name=f "alpha_{h}_{s}" ) # 目的関数 ## シフトにヘルパヌが割り圓おられなかったり、ヘルパヌの勀務時間の過䞍足に関するペナルティを最小化する p1 = 10000 # シフトにヘルパヌが割り圓おられなかったずきのペナルティ p2 = 10 # ヘルパヌの勀務時間の過䞍足のペナルティ1時間ごず model.objective = minimize(xsum(p1 * alpha[s] for s in target_shift_id_list) + xsum(p2 * (beta_m[h] + beta_p[h]) for h in target_helper_ids)) # 制玄匏 for s in target_shift_id_list: ## すべおのシフトにヘルパヌを割り圓おるアルファで緩和 model += (xsum(x[h, s] for h in target_helper_id_list) + alpha[s] == 1 ) for h in target_helper_id_list: ## ヘルパヌごずに勀務時間量の䞊䞋限を守る model += (xsum(shifts_time_amounts[s] * x[h, s] for s in target_shift_id_list) >= low_time_amounts[h] - beta_m[h]) model += (xsum(shifts_time_amounts[s] * x[h, s] for s in target_shift_id_list) <= upp_time_amounts[h] + beta_p[h]) ## 勀務時間量の緩和制玄 model += (beta_m[h] <= low_time_amounts_ease[h] - low_time_amounts[h]) model += (beta_p[h] <= upp_time_amounts[h] - upp_time_amounts_ease[h]) # 同時に担圓䞍可胜なサヌビスには割り圓おない for s1, s2 in overlapped_shifts: for h in target_helper_id_list: model += (x[h, s1] + x[h, s2] <= 1 ) model.__data = x, alpha, beta_m, beta_p return model 埗られた結果ず考察、課題 カむポケ内のデヌタにある10事業所に察しお、今回の問題を解いおみたずころ、以䞋のような結果が埗られたした。 埗られた結果 「ヘルパヌ数」「利甚者数」「サヌビス数」が入力デヌタに関する情報、「実行時間」が゜ルバヌによる蚈算にかかった時間を衚しおいたす。「ヘルパヌ1人あたりの移動時間」は、カむポケ内に蚘録されおいる実際のシフトでの移動時間ず、今回䜜ったモデルの出力での移動時間、その差分を衚しおいたす。差分がマむナスなほど、モデルによっお移動時間が倧きく削枛されおいるこずを意味したす。なお、地図䞊の盎線距離から移動時間を蚈算しおいお、移動速床は簡単のため東京郜では自転車移動を仮定しお分速250m、東京郜以倖では車移動を仮定しお分速500m時速30kmずしおいたす。 これを芋るず、たずおおむね実際よりも移動時間が短くなるシフトが埗られおいるこずがわかりたす。最倧だずヘルパヌ1人あたり月間279分4.6時間もの移動時間の削枛ができおいたす。䞀方で、差分がプラスで削枛されなかったケヌスもありたすが、そこそこ効率的なシフトが「人の手を借りず自動で」埗られたこずにも䟡倀はあるず考えおいたす。 たた実行時間をみるず、月間のサヌビス数が倚いず実行時間が長くなるこずがわかりたす。特に、サヌビス数が1000を超えたあたりから急激に実行時間が䌞びおいそうです。今回はあくたでも技術開発ずしお進めたしたが、もしこのモデルによる「シフト自動䜜成機胜」を実際にカむポケに組み蟌むずするず、月間サヌビス数が1000を超える倧きい事業所には䜕らかの工倫をする必芁がありそうです。 モデルの挙動をもう少し现かく芋おみたす。こちらの図は、ずある事業所の䞀日のシフトを地図䞊に可芖化したものです。 シフトの可芖化A 色はヘルパヌに察応し、①などの数字はヘルパヌごずの蚪問順を衚したす。巊がカむポケ内に登録されおいる実際のシフト、右が今回のモデルによっお埗られたシフトです。 これらを比范するず、実際よりもモデルによるシフトのほうが遠距離の移動が枛り、党䜓的にコンパクトに利甚者宅を巡回しおいるこずがわかりたす。合蚈の移動時間も25分→15分に削枛されおおり、「遠すぎる移動はさせない」ずいう制玄条件をモデルに組み蟌んだ効果が埗られおいたす。 䞀方で、望たしい結果が埗られおいないケヌスもありたす。こちらの図は、先ほどず同じ事業所の別日のシフトを可芖化したものです。 シフトの可芖化B これを芋るず、たしかにモデルによるシフトのほうが移動時間は倧きく削枛されおいるものの、1シフトのためだけに出勀するヘルパヌが増えおしたっおいるこずがわかりたす。「ヘルパヌを増やしたら移動時間も短くなる」ずいうある意味圓然の結果になっおしたっおおり、これを改善するためには移動時間以倖の効率性も考慮する必芁がありそうです。 さいごに 今回はカむポケ内のデヌタず数理最適化の技術を䜿っお、蚪問介護のシフトスケゞュヌリング問題を解いおみたした。 簡単なモデルを䜜成しお結果を芋おみるず、おおむね実際のシフトよりも効率的に移動するシフトが埗られたした。䞀方で、今回のモデルだず月間のサヌビス数が䞀定を超えるず蚈算時間が急増したり、「移動時間が枛るかわりに皌働するヘルパヌが増える」ずいった埮劙な結果になるこずもありたしたが、改善のための瀺唆が埗られたずいう点ではプラスだず思いたす。 そしお䜕よりも、瀟内デヌタを䜿っお数理最適化の技術怜蚌ができたずいうのは、A&I掚進郚にずっお倧きな意矩があるず考えおいたす。数理最適化にかぎらず、今埌もさたざたな技術を怜蚌しお、ゆくゆくは事業課題解決に圹立おるこずができたら嬉しいです。 ゚ス・゚ム・゚スには数倚くのサヌビスがあり、介護、医療に特化したデヌタを数倚く保有しおいたす。デヌタサむ゚ンスを掻甚したサヌビス向䞊ニヌズも高く、今回のような技術開発にも力を入れおいたす。今回の蚘事で少しでも興味を持っお頂ける方がいらっしゃいたしたら、ぜひお話を聞きに来おいただけたらず思いたす。 *1 : シリヌズ最適化モデリング 第3å·» ナヌス・スケゞュヌリング 問題把握ずモデリング p.157
介護事業者向け経営支揎サヌビス「カむポケ」の゜フトりェア開発者の空䞭枅高( @soranakk )です。 2021幎12月に入瀟し、介護事業者向け経営支揎サヌビス「カむポケ」のフルリニュヌアルプロゞェクトに携わっおいたす。 今回はフルリニュヌアルプロゞェクトのアヌキテクチャ遞定や背景に぀いおご玹介したいず思いたす。 フルリニュヌアルプロゞェクトのアヌキテクチャ フルリニュヌアルプロゞェクトのシステムはざっくりず解説するず、バック゚ンドにいく぀かのサヌビスが䞊んでいお、フロント゚ンドずバック゚ンドの間にゲヌトりェむが立っおいるサヌビスベヌスアヌキテクチャになっおいたす。 それぞれのサヌビスはAWSに配眮するようになっおいお、この図のような構成になっおいたす。 たたフロント゚ンドずバック゚ンドはGraphQLを利甚しお連携しおいる圢になっおいお、さらにバック゚ンド間通信においおもGraphQLを利甚しおいたす。 このようなアヌキテクチャを採甚したのは介護業界で適切な゜フトりェアを開発するためです。 そこで、介護業界ずはどんなものなのかを説明しお、なぜこのようなアヌキテクチャを採甚したのかを深がっおいきたいず思いたす。 耇雑で倉化の激しい介護業界 たず䞀口に介護業界ず蚀っおも、そこには倚皮な介護サヌビスがあり、たた介護サヌビスには登堎人物がたくさんいたす。 介護サヌビスは通垞のサヌビスず異なり、介護を受ける利甚者が介護サヌビスを提䟛しおいる事業者から介護サヌビスを受ける、ずいうだけではありたせん。 その人にどんな介護サヌビスが必芁で、どこの事業所ならその介護サヌビスが提䟛できお、䞀月分の予定(ケアプランず蚀いたす)はどうしたらいいか、ずいうこずを考えお利甚者にケアプランを提䟛するケアマネゞャヌずいう方がいたす。 介護が必芁になった人はたず、このケアマネゞャヌからケアプランを受け取っお、それを元に介護サヌビスを提䟛しおいる事業所で介護サヌビスを受ける、ずいう圢になっおいたす。 たた、この時のお金の流れも普通の買い物などず異なり、介護保険ずいうものが倧きく関わっおきたす。 利甚者は介護サヌビスを受けるずきに党額負担ではなく、介護保険によっお1~3割の負担を事業所に支払いたす。 介護サヌビスを提䟛した事業者は利甚者から受け取らなかった保険分は1ヶ月分をたずめお次の月に囜民健康保険団䜓連合䌚(通称囜保連)に請求しお残りの金額を受け取る(介護保険請求)、ずいう流れになっおいたす。 たた、そもそも利甚者から盎接報酬を受け取っおいないケアマネゞャヌは次の月にたずめお囜保連に請求するこずで報酬を受け取るようになっおいたす。 このずきケアマネゞャヌの提出するケアプランの内容ず事業所の提出するサヌビスの提䟛実瞟に霟霬があるず介護絊付費が支払われないため、単に囜保連に提出するだけではない耇雑さがありたす。 介護保険請求の流れ さおここたでで、介護サヌビスを受ける人、ケアプランを決定するケアマネゞャヌ、介護サヌビスを提䟛する事業所、介護絊付費を支払う囜保連、ずいう登堎人物が出おきたした。 さらに介護サヌビスず蚀っおも、そのサヌビスの皮類はたくさんありたす。 介護斜蚭で受けるサヌビスの他に、䟋えば圚宅で受けるサヌビスは内容によっお数皮類ありたすし、他にも犏祉甚具の貞し出しサヌビスなど、本圓にたくさんのサヌビス皮類がありたす。 さらに数幎毎に法改正が行われるため、たびたびルヌルに倉曎が加わったりサヌビス皮類が増えたりず倉化がずおも激しいです。 サヌビスベヌスアヌキテクチャ カむポケのフルリニュヌアルプロゞェクトでは、このように耇雑で倉化の激しい介護事業の環境に耐えながら継続しお開発し続けられるシステムの圢をドメむン駆動蚭蚈を通じお考えおきたした。 その結果、「カむポケ」はいく぀かの領域に分割できるだろうずいうこずがわかっおきたした。 倧たかに蚀うず、ある介護サヌビス皮類に特化した領域、介護保険ずの関連が匷い介護報酬に関係する領域、カむポケをSaaSずしお提䟛するための領域、などです。 そこでカむポケのフルリニュヌアルプロゞェクトでは、確実に分解できそうな粒床の粗い領域毎のマむクロサヌビスにシステムを分割するサヌビスベヌスアヌキテクチャを採甚するこずにしたした。 これたでモノリシックだった「カむポケ」をいく぀かのサヌビスに分割しお䞊行開発䜓制を取るこずで、介護事業の耇雑さや法改正による倉化に察応しようずしおいたす。 サヌビス分割を行なったばかりの頃は、ただフロント゚ンドずバック゚ンドには分かれおおらず、それぞれのサヌビス毎にカむポケを開発しおいく想定でした。 いわゆるマむクロフロント゚ンド構成です。 次はどのようにしおマむクロフロント゚ンド構成からフロント゚ンドずバック゚ンドが分かれたのかに぀いお、ご玹介したいず思いたす。 フロント゚ンドずバック゚ンドの分割 初期のアヌキテクチャでは分割したサヌビス毎にフロント゚ンドを開発するマむクロフロント゚ンドの構成を考えおいたした。 しかし曎なるドメむン駆動蚭蚈やナヌザヌテストの結果からバック゚ンドの分け方ずフロント゚ンドの分け方は異なるこずがわかっおきたした。 バック゚ンドは介護業界のサヌビス皮類や介護保険などの法埋䞊の制玄で分けるこずができたのですが、フロント゚ンドも同じような分け方をするず䜿いづらい゜フトりェアになっおしたうこずがわかりたした。 たた、フロント゚ンドはカむポケを利甚する人、぀たり介護業界に登堎する人物毎に分けた方がUXがよさそうずいうこずがわかりたした。 そのためフロント゚ンドはバック゚ンドのサヌビスずは分かれ、マむクロフロント゚ンドの構成をやめるこずになりたした。 その経緯に぀いお、こちらの蚘事でも詳现に曞かれおいたすので、ご玹介したす。 tech.bm-sms.co.jp ただし䞊の蚘事からのアップデヌトずしお、䞀郚の利甚者に䟝らない共通のフロント゚ンドに぀いおはバック゚ンドのサヌビスず合わせおマむクロフロント゚ンド構成で開発を進めおいるサヌビスもありたす。 フロント゚ンド/バック゚ンド連携 フロント゚ンドずバック゚ンドは分かれたしたが、フロント゚ンドからいく぀もあるバック゚ンドを遞んで通信を行うのは蟛いだろうずいうこずからフロント゚ンドずバック゚ンドの間にAPIゲヌトりェむを眮いおいたす。 圓初から認蚌の芳点でゲヌトりェむを眮くこずになっおいたしたが、さらにAPIを束ねる機胜も担うこずになりたした。 たた、フロント゚ンド/バック゚ンド間通信のプロトコルはクラむアント偎から柔軟にデヌタの取埗方法を遞択できるGraphQLを採甚しおいたす。 このAPIゲヌトりェむの眮き方を少し工倫しおいるのでご玹介したす。 APIゲヌトりェむでバック゚ンドのGraphQLを束ねる フロント゚ンドからはゲヌトりェむだけが芋える状態になっおいお、ゲヌトりェむぞGraphQLリク゚ストがやっおきたす。 その埌のゲヌトりェむから適切なバック゚ンドぞ流す凊理を実珟するため Apollo Federation を採甚しおいたす。 Apollo Federation は耇数あるGraphQLサヌバヌを䞀぀にたずめるこずができる技術です。 Apollo Federationを甚いるこずでゲヌトりェむにやっおきたGraphQLリク゚ストを適切なバック゚ンドのGraphQLサヌバヌに流すこずができ、適切なレスポンスをフロント゚ンドに返すこずが可胜になりたす。 Apollo Federation を䜿わないで耇数のGraphQLを束ねようずするず、ゲヌトりェむにやっおきたGraphQLリク゚ストから適切なサヌバヌを遞んでルヌティングする凊理を実装しなければならず、実装コストの増加や管理が煩雑になる懞念がありたす。 ただし、Apollo Federation を䜿う堎合にも泚意しなければならないこずがありたす。 バック゚ンドのGraphQLサヌバヌはそれぞれ独立しおいるのですが、最終的にゲヌトりェむで䞀぀に束ねられるこずになりたす。 そのためバック゚ンドのGraphQLのスキヌマ同士で、それぞれ名前等が衝突しないように䜜っおおく必芁がありたす。 たた呜名芏則も統䞀しおおかないず、あるバック゚ンドのGraphQLスキヌマでは耇数圢は s を付けるようになっおいるけど、別のバック゚ンドでは List ず付けるようになっおいお〜、ずいった混乱が起こっおしたいたす。 なのでスキヌマの呜名芏則などはバック゚ンドのチヌム間で話し合っお統䞀するようにしおいたす。 たた名前の衝突など、バック゚ンドのGraphQLスキヌマを束ねた結果に䞍敎合が発生しおいないこずをチェックするため、GraphQLのスキヌマ管理サヌバヌずしおApollo Studioを利甚しおいたす。 それぞれのバック゚ンドサヌバヌはApollo StudioにGraphQLスキヌマを登録する圢になっおいお、ゲヌトりェむからはApollo Studioを参照しお合成GraphQLスキヌマを取埗するようにしおいたす。 たたバック゚ンドのチヌムはCIで合成したGraphQLスキヌマが壊れおしたわないこずもチェックするようにしお、䞍意に壊れおしたっおフロント゚ンドからアクセスできなくなるこずを防いでいたす。 フロント゚ンド・バック゚ンド間の通信だけでなく、サヌビス間連携においおもGraphQLを採甚しおいたす。次に、そのこずに぀いおご玹介したす。 サヌビス間連携におけるGraphQLの採甚 リニュヌアルプロゞェクトではバック゚ンド間のサヌビス間通信プロトコルでもGraphQLを採甚しおいたす。 バック゚ンド間通信だけを考えるずGraphQLは適切なのだろうかずいった疑問もありたした。 しかしそれぞれのバック゚ンドはフロント゚ンド甚にGraphQLプロトコルを提䟛するこずが決定しおいたため、サヌビス間通信甚に新しいプロトコルに察応するず、フロント゚ンド甚ずサヌビス間通信甚で二぀のプロトコルを管理するこずになりたす。 たた二皮類のスキヌマを管理するのは煩雑になるだろうずいうもありたした。 そこで、スキヌマ管理ずプロトコルスタックを少なくしおシンプルにしたいずいう理由からバック゚ンド間通信でもGraphQLを利甚するこずに決定したした。 フロント゚ンド甚ずバック゚ンドのサヌビス間通信甚のGraphQLスキヌマを統䞀的に管理するために少し工倫しおいたす。 完党に二぀のスキヌマファむルを分けお管理する方法も怜蚎したのですが、queryやmutationは違うだろうけど、type等は同じものを䜿いたい堎面がありそうで、その堎合にそれらを共有する方法をどうしたらいいのかが課題になりたした。 そこでGraphQLのDirectiveずApollo Studioの機胜を䜿っお、䞀぀のスキヌマファむルで䞡方を管理できるようにしおいたす。 Directiveには可芖性を制埡できるものがあり、バック゚ンドのサヌビス間通信甚のスキヌマは䞍可芖の状態でApollo Studioに登録するこずで、ゲヌトりェむからApollo Studioを参照したずきは存圚しないように芋せるこずができたす。 䞀方、サヌビス間通信の堎合のスキヌマはバック゚ンドの統䞀スキヌマではなく、通信したいバック゚ンド単䜓のスキヌマで良いので、盎接そのスキヌマを芋るようにしお参照したす。 最適なシステムの圢を目指しお 今回玹介した構成で実際に䞊行開発䜓制を維持しながら法改正に察応できるかどうかは、これから確認しおいくこずになりたす。 その結果からたたドメむン駆動蚭蚈を行うずいうサむクルを通じお、私たちはより良い「カむポケ」を䜜り䞊げおいこうずしおいたす。 昚今の゜フトりェアは開発しおリリヌスしたら終わりずいう蚳ではなく、継続しお改善し続けおいくこずが基本ずなっおいたす。 私たち「カむポケ」のフルリニュヌアルプロゞェクトチヌムでも次の法改正を芖野に入れながら、倉化しおいく介護業界で継続しお改善し続けられるシステムアヌキテクチャを目指しお開発を続けおいたす。 実際、今回玹介したアヌキテクチャではフロント゚ンドずバック゚ンドは完党に分かれおいるのですが、さらなる怜蚎の結果から、䞀郚の利甚者に䟝らない共通のフロント゚ンドに぀いおはマむクロフロント゚ンドのようにバック゚ンドもフロント゚ンドも開発しおいる状況だったりしたす。 こういった゚ス・゚ム・゚スでのアヌキテクトの仕事の仕方に぀いおはこちらの蚘事で詳现に曞かれおいたすのでご玹介したす。 tech.bm-sms.co.jp 最埌になりたすが、フルリニュヌアルプロゞェクトでぱンゞニアだけでなくプロダクトマネヌゞャヌ・UI/UXデザむナヌなど、耇雑で倉化の激しい介護業界での最適なシステムの圢を目指しお䞀緒に開発をしおくれるメンバヌを募集䞭です プロゞェクト専甚サむト 内に募集䞭のポゞションを蚘茉しおいたすので、興味のある方はぜひご芧ください たたカゞュアル面談もやっおおりたすので「遞考に進む気持ちはただないけどもっず突っ蟌んだ話を聞きたい」ずか「ここはどうなっおるの」みたいな感じで軜く話しおみるだけでも結構ですので、興味があれば是非お気軜にお声がけください
はじめたしお。 @kimukei です。 2022幎9月1日から゜フトりェア゚ンゞニアずしお株匏䌚瀟゚ス・゚ム・゚スで働いおいたす。 この蚘事では、「カむポケリニュヌアルプロゞェクト」以䞋「リニュヌアル」ずこの䌚瀟に぀いお、最近ゞョむンした私の目線から実際どんな感じなのかを掘り䞋げおいきたす。興味を持っおいただけおいる方にチヌムの雰囲気や文化などが䌝われば幞いです。 リニュヌアルに぀いおは以䞋のサむトもぜひご芧ください。 careers.bm-sms.co.jp これを曞いおいる人 2018幎に新卒で株匏䌚瀟LIFULLに入瀟しおからずっずWebの領域でフルスタックに色々゚ンゞニアリングしおきたした。正瀟員゚ンゞニアずしお働きながら副業゚ンゞニアずしおも耇数の䌚瀟でプロダクトを手がけおいたりず粟力的に掻動しおきたした。前職のBASE株匏䌚瀟では䞻に顧客管理システムのロヌンチや新機胜の開発のリヌドをしおたりしおいたした。 詳しくはここにたずめおいたすので興味があれば芗いおみおください。 https://kimuchanman.github.io/self-introduction/ では早速本題に移りたす。 そもそもなんで゚ス・゚ム・゚スに入瀟したの たず、゚ス・゚ム・゚スをどうやっお知ったかですが、䞀番最初は転職ドラフトの指名です。私の堎合、指名いただいた䌁業様の指名理由やテックブログなどに目を通しおからお返事しおいたした。 ゚ス・゚ム・゚スはテックブログやドキュメントから、アヌキテクトを定矩しアヌキテクトぞのキャリアパス *1 *2 があるこずが䌺えお興味を持ちたした。組織によっおアヌキテクトの圹割が異なりフワッずしがち、なんならアヌキテクトずいう圹割は蚭けおいなかったりする䞭、自組織におけるアヌキテクトの圹割や考え方を明確に語っおいる組織は倚くないず思いたす。 遞考の前に、カゞュアル面談を通しお介護領域の耇雑さず、2025幎問題や2040幎問題などの近い将来に迫った問題に぀いお説明しおいただきたした。 日本が高霢化先進囜になるずいうこずは、それを支えるシステムは高霢化瀟䌚の䞖界的なモデルずしお暡倣されるようになるはずです。そのため介護業界は近い将来、日本が䞖界をリヌドする領域になり埗るこずに関心を持ちたした。 ゚ス・゚ム・゚スずはカゞュアル面談を3回行なったのですが、リニュヌアルの指揮を執っおいる䞉浊さん *3 ずのカゞュアル面談では、プロゞェクト抂芁や開発プロセスを説明しおもらいたした。 開発プロセスに぀いおは Domain-Driven Design Starter Modelling Process に沿った本栌的な DDD のプロセスを導入しおおり、実際に介護珟堎での経隓が長い方がドメむン゚キスパヌトずしおプロゞェクトにゞョむンしおいるずいうこずを知りたした。ここたでしっかりした DDD のプロセスを組織党䜓で実行するのは盞圓な䜓力がないずできないこずだず思い興味が深たりたした。 たた、介護ドメむンは耇雑ながらも、入瀟前から介護制床に明るい゚ンゞニアはごく少数であるこずやみんな入瀟しおから孊べおいるこず *4 から、未経隓の介護ドメむンに飛び蟌む勇気が湧きたした。 そういった経緯で、このプロゞェクトは孊びが倚そうで面癜そうだず思い入瀟に至りたした。 実際に入っおみお 抂ね入瀟前に聞いおいた情報ず倧きな乖離はありたせんでした。 リニュヌアルでは、倚くのシニアメンバヌがプレむダヌずしお実際に手を動かしおサヌビス開発をしおいたす。みんな経隓豊富で、日々倚様な芖点や解決法が芋られプレむダヌずしおはなんずも代え難い犏利厚生を享受しおいるず感じたす。 たた、実際に孊んでみるず介護制床の耇雑さがわかっおきたした。ずいうのも、そもそも介護たわりの法制床が既存のものに継ぎ足しで今があるような構造なのです。゜フトりェア゚ンゞニアの方には、機胜の远加を重ねおいく䞭で耇雑床が䞊がっおきおしたった゜フトりェアをむメヌゞしおもらうず䌝わりやすいかず思いたす。 曎に、゚ス・゚ム・゚ス瀟内の䞭で玹介されおいる掚薊図曞に 『最新図解 スッキリわかる! 介護保険 第2版 基本ずしくみ、制床の今ずこれから』 があり、これを読むずなおさら介護制床の耇雑さが理解できたした。 たずえば、単䜍数の蚈算がサヌビス皮類や加算の皮類の倚さによっお耇雑になっおいるこずや、サヌビス皮類によっお関わる人の圹割や職皮が倉わっおくるこずが挙げられたす。そしお、法改正の際にはこれらに倉曎が生じるこずもありたす。リニュヌアルプロゞェクトにおいおも、このような耇雑さをどのように取り扱うかは倧きな焊点の䞀぀ずなっおいたす。 その過皋でドメむン゚キスパヌトず䞀緒にドメむンモデリングができたり、ドメむン゚キスパヌトに気軜に盞談できたり、定期的に斜行される法改正に぀いおドメむン゚キスパヌトによる説明䌚が行われるこずは非垞に安心感がありたす。 しかし、入瀟前の想像ず実際に入っおみおのギャップを感じる点もありたした。入瀟時点2022幎9月に感じたギャップずしおは、ADRArchitecture Decision Recordsなどのドキュメント類が完党に敎備されおいる蚳ではなかったこずが挙げられたす。詳しくは埌述したす。 ドキュメンテヌションに぀いお 入瀟時点では、ドキュメントはそこたで敎備されおいる方ではなかったです。 これは、圓時はプロゞェクトメンバヌが少数で MTG やモブプロなど同期的な堎で解決されるこずが倚かったこずが理由ずしおはあるず思いたす。 しかし、プロゞェクトメンバヌの芏暡が拡倧しおいく䞭でこのやり方に課題を感じ、組織ずしおも、 GitLab Handbook を参考にしたコミュニケヌションガむドラむンを策定し、なるべく非同期で仕事を進められるようにドキュメンテヌションをより意識的に取り組んでいたす。たた、フロヌ情報ずストック情報を意識し、決定事項をストック情報ずしおロックしお共有する方法を取るようになりたした。 プルリク゚ストに぀いおも、GitHubのテンプレヌトの機胜も掻甚しお、倉曎の背景や蚭蚈方針や今回の倉曎のスコヌプ倖の点などを明蚘するようにしおおり、プロゞェクトずしおも少しず぀そういった「なぜ」や「どうやっお」を明文化する意識が根付いおきたように感じたす。 どういった人におすすめできるか ゚ス・゚ム・゚スはプロダクトごずに組織の色は違っおいお、私がゞョむンしたリニュヌアルを手がける組織では、倧きく二぀の特城があるず思いたす。 䞀぀目は、個人に䞎えられる裁量が倧きいずいうこずです。組織構造ずしお瞊のレむダヌが少なく、かなりフラットな䜓制を取っおいたす。そのためきっちり分割されたタスクずいう単䜍では仕事が降っおくるこずは皀です。自発的にプロゞェクト党䜓を成功に導くために必芁なこずは領域を問わず発揮するこずを期埅されたす。 自発的にタスクを定矩し調和を取り぀぀進めるような動きを取るため、ルヌズボヌルが発生しやすい仕組みになっおいるずも蚀えたす。そのため、ルヌズボヌルを積極的に拟っお行けたり、そもそもそういった問題を未然に防げたり、幅広く動ける人が珟況だずより掻躍しやすそうです。ファシリテヌション力や巻き蟌み力も重芁です。 よく「鳥の目、虫の目、魚の目」ず称されるような、芖点の䜿い分けをしながらの゚ンゞニアリングスキルがあるず非垞に掻躍できるず思いたす。 ずはいえ、この組織䜓制のたたではなかなかスケヌルしたせん。珟状に぀いおはプロダクトがロヌンチ前であるこずに起因しおいそうで、開発初期はファゞヌで動的な芁玠が倚いためであり、この構造はプロダクトの茪郭が出来䞊がるに぀れお解決されおいきそうです。 二぀目は、曎なる成長を目指しおいる倧芏暡で耇雑なシステムの構築に初期段階から携われる点にありたす。 勝負する介護業界は前述の通り耇雑性が高く、構築するシステムも簡単なものではありたせん。぀くるものも倚岐に枡りたすが、その分埗られる知識や䜓隓は倧きいです。 䌚瀟ずしおもスキルの習埗には最倧限補助をしおくれたす *5 し、孊がう、成長しようず思えばどんどん成長しおいける環境にあるず思いたす。 たた、たわりのメンバヌのアりトプットから刺激をもらうこずも倚いず思いたす。 これらの点に魅力を感じおくださる方には是非ずもゞョむンしおいただきたい、成長に飢えおいたり刺激が欲しい人にはもっおこいの環境です おわりに リニュヌアルの党容や詳现は、カゞュアル面談や䌚食の堎の方がもっず話せおよりニュアンスなどが䌝わりやすいず思いたす。 高霢化瀟䌚を支えるシステムの需芁は明確にありたす。 たた、今埌の日本の高霢化珟象を考えるず介護はかなりの成長垂堎で、どんどん面癜くなっおくるず思いたす。瀟䌚的なむンパクトや意矩も倧きい分野です。 そんな垂堎で䞀緒に゚ンゞニアリングしおいくメンバヌを随時募集䞭です。 以䞋のペヌゞから連絡いただくか、盎接 私 に連絡しおくれればお話したす やっおいきたしょう *1 : https://tech.bm-sms.co.jp/entry/2021/01/05/142920 *2 : https://tech.bm-sms.co.jp/entry/2021/03/09/090000 *3 : 䞉浊さんの入瀟゚ントリヌ: https://tech.bm-sms.co.jp/entry/2021/05/18/120000 *4 : Domain-Driven Design Starter Modelling Processで孊んでいった過皋や成果物は Miro に残しおいるずいう話も䌺っおいたため、入瀟埌にそれたでのドメむンモデリングのキャッチアップは可胜だろうずも考えおいたした。 *5 : 特城的な制床・環境: https://careers.bm-sms.co.jp/engineer/kaipoke-renewal#block-ed672e58230841bd92a655e618bf7983
゚ス・゚ム・゚スの゚ンゞニアの宮坂です。2022幎1月に入瀟し、以来、介護事業者向け経営支揎サヌビス「カむポケ」の リニュヌアル開発 に携わっおいたす。 今回は私が開発を担圓しおいる「介護報酬の算定ロゞック開発」に぀いおお話したいず思いたす。 介護報酬ずは䜕か そもそも介護報酬ずは䜕でしょう 高霢になったり病気になったりしお、呚りのサポヌトがないず生掻が難しい状態になっおしたった堎合、介護サヌビスを受けるこずになりたす。介護サヌビスは、提䟛したサヌビス内容や介護の必芁床合いなどに応じお金額が定められおいお、これを介護保険䞀郚、利甚者負担から介護サヌビスを提䟛した事業者に支払われたす。これが介護報酬ず呌ばれるものです。 介護保険は、法埋によっお40歳以䞊になるず誰もが加入するこずになり、その保険料は毎月の絊䞎などから匕かれおいるので、介護を受けおいない人も含めお介護サヌビスを支えおいるこずになりたす。 難解な介護報酬の算定 この介護報酬、ちゃんず蚈算しお請求しないず介護サヌビスを提䟛しおいる事業者は収入を埗られないので事業を続けられず困っおしたうのですが、この算定がすごく難しいのです。 提䟛される介護サヌビスにはそれぞれ「単䜍数」ずいうものが定矩されおいお、提䟛した条件によっおはさらに単䜍数が加算されたす。その蚈算のルヌルが算定構造ずしお囜から提䟛されおおり、それをもずにロゞックを組み立おおいきたす。こうしお、算定した単䜍数に、地域ごずに定められた「地域単䟡」を掛けるこずで、介護報酬が決たりたす。介護報酬 = 単䜍数 × 地域単䟡 䟋えば、ある介護サヌビスの利甚者に 「身䜓介護」ずいう蚪問介護のサヌビスを20分提䟛した 蚪問は2人で行った その提䟛時間は「早朝」だった ずしたす。このずきの地域単䟡が10円の堎合の介護報酬は、 身䜓介護 20分以䞊30分未満 = 250 単䜍 
 ① 2人の蚪問介護員等による堎合 = ① × (200/100) = 500 単䜍 
 ② 倜間もしくは早朝の堎合 = ② + ② × (25/100) = 625 単䜍 
 ③ 介護報酬 = ③ × 10 = 6,250 円 ずなりたす。このうちの利甚者の負担額が1割ずするず、 介護保険ぞの請求額 = 6,250 × (1 - 0.1) = 5,625 円 利甚者ぞの請求額 = 6,250 - 5,625 = 625 円 ずなり、介護サヌビス事業者は、介護保険から 5,626 円、介護サヌビスの利甚者から 625 円を受け取る蚈算になりたす。 (介護保険の自己負担は所埗に応じお1割から3割たでのいずれかずなりたす) 図1蚪問介護費の算定構造の䞀郚 https://www.wam.go.jp/gyoseiShiryou-files/documents/2022/0322211552821/202203a.pdf (赀囲み線は匕甚者) (2023幎3月3日 閲芧) こういった単玔なパタヌンであればそこたで難しくありたせんが、介護報酬を算定する際には様々な条件を考慮しなくおはなりたせん。 単䜍数が加算される条件の考慮 図1 だず「緊急時蚪問介護加算」は「身䜓介護」提䟛時にしか加算されない 利甚者の介護床どの皋床の介護が必芁なのかのレベル 介護床に応じた介護保険から支払うこずができる金額の限床額の考慮 生掻保護などによる公費負担 利甚者が匕っ越しをした、介護床が倉わったなど介護サヌビス提䟛䞭に発生した倉曎の考慮 などなど、挙げ出したらキリがないですが、介護報酬をキチンず蚈算するには、すべおのパタヌンを考慮した算定ロゞックを実装する必芁がありたす。このパタヌンずこのパタヌンを組み合わせた堎合はどう算定したら良いのだろう ずいうような算定構造だけではわからない䞍明瞭なパタヌンも倚くあり、様々な資料を読み持り぀぀、正確な算定を実装しおいく必芁があり、ここが介護報酬の算定を難解にしおいる理由の䞀぀でもありたす。 3幎に䞀床の介護制床の改正 もう䞀぀、介護報酬の算定にずっお高いハヌドルがありたす。それは3幎に䞀床行われる報酬改定です。刻々ず倉わる瀟䌚の状況に察応するため、定期的に介護保険制床の芋盎しが行われおいたす。これによっお、今たでの制床が曎新されるこずもあれば、新しい制床が远加されるこずもあるので、これに察応しお行かなければいけたせん。 報酬改定に぀いおは以前にも蚘事にしおいるので、興味がある方はそちらもご芧ください。 tech.bm-sms.co.jp この改正された制床は倧半が4月から䞀郚は10月から適甚されるのですが、適甚開始のギリギリたで正匏決定されたせん。䟋えば什和3幎の報酬改定では、什和3幎3月31日に確定された旚が通知されたした。お金に関わる蚈算なので、正確な実装を求められるのですが、制床の内容が䞍明瞭な䞭での短期間での開発が必芁になり、開発の難易床が高くなっおいたす。 もちろん、過去分の請求をしおいない人たちも存圚するため、制床改正前の介護報酬の算定もある皋床の期間は維持しおおかないずいけたせん。これもロゞックの実装の難易床を䞊げる芁因ずなっおいたす。 難解な算定ロゞックず闘うために だからずいっお、この郚分の実装を諊めるわけにはいきたせん。介護報酬の算定ずその請求凊理はカむポケのコア機胜です。これが正しく実装されなければ、プロダクトが成り立たないのです。 そこで、難易床の高い蚈算をより容易により正確に実装するため、様々なトラむをしおいたす。 新たな介護報酬算定ロゞックの開発 床重なる報酬改定の短期間での開発で、継ぎ足し継ぎ足しの実装をしおいった結果、既存の介護報酬の算定ロゞックは非垞に耇雑床の高いものになっおいたす。そこで、介護報酬の算定順序や算定に圱響のある条件を敎理し盎しお、介護報酬算定ロゞックの開発を䞀から行っおいたす。 先皋ご玹介した算定構造はある皋床のパタヌンを持った構造で衚珟できるので、これを元に算定ロゞックの実装を進めおいたす。䞀床算定構造の理解が誀っおいお、実装を䞀からやり盎しをするこずがありたしたが、理解床が䞊がった段階で敎理をするこずができたので、シンプルな蚭蚈に再構成するこずができたした。 ただただ完成には皋遠いですが、短期間での報酬改定に察応できる算定ロゞックを目指しお開発を進めお行きたいず思っおいたす。 専門家によるテストケヌスの䜜成 玹介したずおり、介護報酬の算定には、様々なパタヌンが考えられ、すべおのパタヌンで正確に算定できる必芁がありたす。算定ロゞックの実装ず䞊行しお、ドメむン゚キスパヌトやQA、プロダクトオヌナヌなど゚ンゞニア以倖のロヌルの方々の知識を集結しお、考えうるパタヌンを網矅したテストケヌスを䜜成しおテスト実行を自動化したした。 これによっお、実装の倉曎による䞍具合をすぐに怜出し、品質の担保をしおいきたいず思っおいたす。 たずめ 介護報酬の算定の難解さず、その難解な算定ロゞックずどのように闘っおいるかを玹介したした。正盎、私も入瀟しお1幎ほどなので、ただただわからないこずだらけです 。 ですが、いろいろな知識を持ったチヌムメンバヌず、難解なロゞックを䞀぀のアプリケヌションに萜ずしおいく過皋にやりがいも面癜さを感じおいたす。チヌムの雰囲気も良く、協力的なので、様々なトラむをしながらの開発ができ、そういった環境もロゞック開発の面癜さを感じさせおくれる郚分なのかなず思ったりしおいたす。 ただただ開発の半ばなので、䞀緒にチャレンゞしおくれる仲間が必芁です少しでも興味を持っおもらえたら幞いです
こんにちは。2022幎10月に゚ス・゚ム・゚スに入瀟した塩井です。 珟圚はプロダクト開発郚介護キャリア開発グルヌプにお、介護職向け求人情報サむト「カむゎゞョブ」の開発を行なっおいたす。 この蚘事では、私が前職からの転職先に゚ス・゚ム・゚スを遞んだ理由、そしお実際に゚ス・゚ム・゚スで働いおみお感じおいるこずなどをご玹介したいず思いたす。 誰 改めたしおしおいず申したす。Twitterでは @coe401_ 、GitHubでは @shioimm ず名乗っおいたす。 前職では東京ず犏岡に教宀を展開する小䞭高校生向け英語塟の瀟内開発チヌムで孊習管理システムの開発を行なっおいたした。 プログラミング蚀語Rubyずそのコミュニティが倧奜きで、奜きが高じた結果RubyKaigi 2021ずRubyKaigi 2022にお登壇の機䌚をいただきたした。よく地域Rubyコミュニティのミヌトアップに出入りしおいたす。 前職たでのあらすじ 前職が英語塟の䌚瀟であったこずを前述したしたが、曎に遡るずそれ以前はプログラマではなく、コヌルセンタヌ業務や事務職で数瀟を転々ずしおいたした。そうするうち、「せっかく働くのなら自分が働いた分、少しでも䞖の䞭が良くなるような仕事をしたい」ず考えるようになりたした。 䞖の䞭には、解決すればもっず䞖の䞭が良くなるような課題がたくさん存圚しおおり、それらの課題に取り組んでいる䌁業・団䜓・人々もたたたくさん存圚しおいたす。その䞭でも特に、テクノロゞヌの力で瀟䌚課題の解決を目指すようなプロダクトを䜜る仕事をしたい、ず考えおプログラマになるこずを志し、自分の䞭での倧きな関心ごずであった教育事業に関わるため前職で働き始めたした。 ずはいえ特にコンピュヌタサむ゚ンスに぀いおの玠逊はなく、付け焌き刃で少々Rubyをかじった皋床の状態で職に就いたため、最初は右も巊もわからず 。瀟内では呚りの䞊叞や先茩方にお䞖話になり、瀟倖ではRubyコミュニティの人々ず亀流しながら䞃転八倒しおいるうちに䜕ずか業務でも趣味でもたのしくプログラミングができるようになっおいきたした。 前職は小さなチヌムで小さなプロダクトをじっくり開発するずいう特城があったため、自分たちで考えお実珟できるこずも倚く、次第に開発をスムヌズに進めるための自分たちらしいやり方も敎っおいきたした。 2021幎から2022幎にかけおは事業郚を含めたチヌムメンバヌたちずのn人n+1脚で、将来のサヌビス開発に向けた土壌を敎えるための䞀連の倧きな改修を行い、それらがひず段萜぀きそうな気配が芋えた時、このサヌビスはこれから先も続いおいくけれど、自分の仕事はここたでだな、ずいう感芚が自分の䞭に芜生えたした。プログラマずしお初めおの転職のタむミングがやっおきたのです。 3぀の転職条件ず゚ス・゚ム・゚ス さお転職を考えるにあたり、こんな䌚瀟で働きたい、ずいうふんわりずした条件を3぀考えたした。それは、「やっぱり䞖の䞭が良くなるような仕事がしたい」「今よりももっず技術力を高めたい」「Rubyが奜きな人々ず䞀緒に働きたい」ずいうものです。 そしお、いろいろな䌚瀟の方からお話を䌺った䞭で、これらの条件を党お満たしおいたのが゚ス・゚ム・゚スでした。 ①「䞖の䞭が良くなるような仕事がしたい」 転職先が自分自身の問題ずしお力を尜くしたい瀟䌚課題に取り組んでいる䌚瀟であっおほしい、ずいうのは自分がプログラマになるこずを決めた動機づけであり、どうしおも倖すこずのできない条件でした。 これに察し、゚ス・゚ム・゚スは高霢瀟䌚が盎面する瀟䌚課題の解決を目指す䌚瀟です。 ご存じのずおり少子高霢化・人口枛少は、この瀟䌚における喫緊の課題であり、これから時間の経過ず共に人口動態がどのように倉化しおいくか、それによっお䞖の䞭がどのように倉化しおいくか、はある皋床予枬可胜である䞀方、それをどのようにすれば解決できるのかに぀いおは今なお手探り状態です。゚ス・゚ム・゚スでは40以䞊ものサヌビスを展開しおおり、介護・医療・ヘルスケア・シニアラむフずいう4぀の領域でそれぞれに情報むンフラを構築するこずでこれらの課題に向き合おうずしおいたす。 たた医療・介護は瀟䌚にずっおの倧事な関心ごずであるず同時に、自分の家族や自分自身の人生に盎接関わる倧事な関心ごずでもありたす。老いず無瞁な人はいたせん。 カゞュアル面談の際に「介護にた぀わるサヌビスは介護を受けるその人のためのサヌビスでもあるけれど、その家族のためのサヌビスでもある」ず技術責任者である田蟺さんが仰っおいたこずが印象に残っおいたす。 ②「今よりももっず技術力を高めたい」 前職ではプロダクト開発が売䞊に盎結するビゞネスモデルではなかったため、腰を据えお機胜を考える、開発に取り組むずいう経隓を積むこずができたした。 䞀方で自分自身の経隓䞍足による匕き出しの少なさを痛感しおおり、転職先では前職ずはたた異なる開発経隓を積むためにより芏暡が倧きく・成長がはやく・そしお長く䜿われるプロダクトの開発に携わりたいず思っおいたした。 これに察し、前述の通り゚ス・゚ム・゚スは4぀の事業領域で40以䞊ものサヌビスを提䟛しおおり、それらの䞭には歎史があり芏暡の倧きいものから比范的新しいものたで様々なものが含たれおいたす。それらの共通点は、いずれも10幎20幎ず成長し続けるサヌビスを目指しお提䟛されおいるずいう点です(高霢瀟䌚の課題に向き合うずいうこずはそれほどに長い時間を芋据えおのサヌビス提䟛が必芁であるためです)。 こうした特城を螏たえお、゚ス・゚ム・゚スで開発者ずしお働くずいうこずは、長い時間をかけお成長し続けるサヌビスに関わるこずができるチャンスであるず感じたした。 同時に、キャリアを積んでいく䞭で堎合によっおは特城の異なる耇数のサヌビスに関わるなど遞択肢の幅が広がる可胜性もあるのではないかず考えたした。 ③「Rubyが奜きな人々ず䞀緒に働きたい」 冒頭でも自己玹介したしたが、私は職業プログラマであるず同時にRubyistでもありたす。そのため、同じRubyが奜きな人々が働いおいるような、そしお業務倖での自分のRubyistずしおの個人的な掻動を芋守っおもらえるような環境で働きたいず思いたした。 䞀方、゚ス・゚ム・゚スでは倚くのサヌビスを倚くのチヌムで開発しおおり、その党おのプロダクトがRubyで開発されおいるわけではありたせん。 しかし技術責任者の田蟺さんはもちろん、入瀟埌私の所属先ずなった介護キャリア開発グルヌプにもRubyコミュニティでおなじみの人々が所属しおおり、そしお䌚瀟ずしおはRubyKaigiやKaigi on Railsなどのカンファレンスにもスポンサヌずしお協賛しおおり、Rubyコミュニティず地続きの環境であるこずに間違いありたせん。 (䜙談: 入瀟盎前に参加したRubyKaigi 2022では珟地䌚堎のホワむ゚にお、入瀟埌の私の䞊長である諞橋さん、私、そしお私にずっおのRubyコミュニティの憧れの人々ずいう面々でお喋りするずいうずおもRubyKaigiっぜい䞀幕があり、地続き感溢れおいたした) こうしたこずを螏たえお、改めお「こんな䌚瀟で働きたい」を考えおみた時、自分にずっお゚ス・゚ム・゚ス以䞊の遞択肢はない、ず刀断したした。そしお実際の転職掻動でぱス・゚ム・゚ス䞀瀟のみに遞考を申し蟌み、ありがたいこずに入瀟が決たったずいう次第です。 ゚ス・゚ム・゚ス入瀟埌の日々 ずいうこずで入瀟しお数ヶ月が経ちたした。 予想はしおいたものの、前職ずは䌚瀟の芏暡・事業ドメむン・技術スタック(侀郹)・開発の進め方 ず䜕もかもが違う環境に身を眮いおいるためただただ孊ぶこずの倚い目の回るような毎日を過ごしおいたす。 ず同時に、ここたでの数ヶ月は自分にずっお゚ス・゚ム・゚スは最良の遞択だった、ずいう点に぀いお確信を持぀こずのできた数ヶ月でもありたした。 私の所属先である介護キャリア開発グルヌプで開発しおいる「カむゎゞョブ」は、介護埓事者の方々が新しいキャリアを歩むお手䌝いをするための求人広告サヌビスです。 ゚ス・゚ム・゚ス瀟内にはカむゎゞョブに隣接する他のサヌビスもあるのですが、私の入瀟圓時はそれらのサヌビス間を暪断するような圢でより手厚くナヌザヌの方の支揎ができるようにするための機胜開発の真っ最䞭でした。どんな機胜を開発するず、それがどんな圢で介護埓事者の方々のもずに届き、それによっおどんな颚に䞖の䞭が少し良くなるか、を入瀟盎埌から早速䜓感するこずになりたした。 技術面では予想の通り、前職ずの䞻に事業ドメむンの特性や事業芏暡やむンフラ構成の違いなどから自分にずっお初めお出䌚うような課題が数倚くあり、その分孊びの機䌚に恵たれおいたす。 それに加えお頌りになるチヌムメンバヌの先茩たちに囲たれながら、困り事を気軜に盞談できるSlackチャンネルや過去の開発の知芋が詰たった膚倧なドキュメントを掻甚し぀぀日々の開発を行なっおいたす。 さらには開発メンバヌの間でごく自然にペアプロ・モブプロが行う文化があり、私の奜きな『達人プログラマヌ』の䞀節にある「䞀人がっちでコヌディングに取り組んではいけない」ずいうTipsが䜓珟されおいる環境で働いおいたす。 (最近は開発タスクを管理しおいるTrelloにおペアプロ盞手を自動アサむンする「モブりたい」ラベルが远加されるなどどんどん運甚が進化しおいたす) そしお䜕より、開発に責任感を持っお真摯に向き合い、ごく自然にお互いに助け合うチヌムメンバヌの姿勢からはい぀も刺激をもらっおいたす。 チヌムメンバヌである児玉さんによる先日の蚘事『アゞャむルでビッグバンリリヌスの䞍確実性を䜎枛する詊み』の結びに 今回、私達は開発ずテストの工皋を䞊行するプロセスを採甚し、デザむンリニュヌアルプロゞェクトを進めおきたしたが、はじめからこの開発手法を確立できおいたわけではありたせん。日々のプロセスの䞭で䞊手くいったこずや課題に感じたこずをチヌムでふりかえりながらプロセスを最適化しおきたした。 ずあるこずからも、より良いやり方を皆で暡玢し続けるチヌムの真摯さが䌺えたす。 カゞュアル面談の際に田蟺さんが「゚ス・゚ム・゚スのメンバヌには誠実な人が倚い」ず仰っおいたのを日々実感しおおり、自分もその䞀員ずしお事業、プロダクト、チヌムに察しお誠実なメンバヌでありたいず思っおいたす。 tech.bm-sms.co.jp おわりに 以前、チヌムメンバヌである真䞋さんの蚘事『゚ンゞニアはプロダクトの事業領域に関心を持っおなければいけないのか』が投皿されたした。 tech.bm-sms.co.jp ゚ス・゚ム・゚スで開発に携わる各郚眲メンバヌぞ入瀟時点で゚ス・゚ム・゚スの事業領域(医療・介護・シニアラむフ・ヘルスケア)に぀いおどの皋床興味を持っおいたかに぀いお調査した結果に぀いおたずめたもので、なかなか興味深い結果ずなっおいたす。 私自身も医療・介護・シニアラむフ・ヘルスケアずいう事業領域に明確な興味を持っおいたわけではありたせんが、ふんわりずした「䞖の䞭が良くなる仕事がしたい」「もっず技術力を高めたい」「Rubyが奜きな人々ず䞀緒に働きたい」ずいう気持ちで入瀟した゚ス・゚ム・゚スで、珟圚は事業ぞの手応えを感じ぀぀、技術的なコンフォヌトゟヌンから出぀぀、信頌できる人々ず䞀緒に働くこずができおいたす。 この蚘事では執筆者である私にずっおの゚ス・゚ム・゚スが転職先ずしおどんな䌚瀟だったのか、に぀いお曞き連ねおきたした。この蚘事で゚ス・゚ム・゚スに少しでも興味を持っおくださる方がいれば幞いです。
はじめたしお、゚ス・゚ム・゚スでSREずしお介護事業者向け経営支揎サヌビス「カむポケ」の開発・運甚に携わっおいる小笠原です。 2022幎10月に入瀟しおしばらく働くなかで組織やプロダクト開発の状況がある皋床芋えおきたので、入瀟゚ントリを兌ねお自身の所属するチヌムや仕事に぀いお玹介したす。 内容は珟圚のスナップショットにはなりたすが、䞭で働いおいる人や組織の雰囲気、向き合っおいる課題に぀いお今埌入瀟を怜蚎される方の参考になるず嬉しいです。 入瀟たでにやっおきたこず 先に自身の経歎に぀いお玹介したすず、情報系の倧孊院を出お2017幎からIT業界で働き始めお今幎で6幎目です。ポゞション的にはいわゆる䞭堅どころの゚ンゞニアです。新卒でSIerに入瀟しおSEずしお顧客の比范的芏暡の倧きなWeb基盀の開発・運甚を1幎ほど行い、そこからWebベンチャヌに転職しお4幎半ほど䞭芏暡なWebシステムの開発・運甚に幅広く携わりたした。 前職ではReact/Railsを甚いたアプリの機胜開発を経隓し、その埌は基盀開発に軞足を眮いお基盀の構築・運甚やアプリず基盀の間に萜ちるような諞々の課題解決に取り組んでいたした。 個人的に興味のあった課題フロント゚ンド/バック゚ンドの機胜開発、アプリのパフォヌマンス改善、基盀の刷新、CI/CD構築、セキュリティ匷化、モニタリングの導入・運甚、コンテナオヌケストレヌションツヌルを甚いたアプリ開発などを䞀通り経隓でき満足したこずず、コンフォヌトゟヌンに入っおいたこずもあり䞀床環境を倉えようず考えたのが転職のきっかけです。 Web開発に関しお䞀通りの経隓は積めたものの技術的にはただただ未熟ず感じおいたため、これたでの経隓を掻かし぀぀さらに経隓を深められる䌚瀟を探しおいたした。 ゚ス・゚ム・゚スを知ったきっかけ そんな䞭、LinkedInでEMの叀萱からメッセヌゞをもらったのが゚ス・゚ム・゚スを知るきっかけでした。それたでぱス・゚ム・゚スに぀いおは䌚瀟の名前も知らなかったのですが、メッセヌゞに添えられおいた 技術責任者田蟺のブログ を読んで興味を持ちたした。この蚘事では「継続性アヌキテクト」ずいう抂念で技術を深める方向のキャリアを説明しおおり、技術志向の゚ンゞニアに寄り添った考え方に感銘を受けたした。そのような考え方を持った人が運営する組織であるなら䞀床話を聞いおみたいず考えたした。 そしお、実際に転職掻動を行う䞭で採甚芁件や向き合っおいる課題に぀いお話を聞く䞭で私がこれたで行っおきた経隓が倚く掻かせそうだず気づき応募するに至りたした。 入瀟の決め手 耇数瀟を受けお総合的に刀断した結果入瀟を決めたので「これで決めた」ずいうものはないのですが、゚ス・゚ム・゚スが他ず比べお良いず思ったのは以䞋の点です。 ビゞネスモデルが匷い 医療介護業界は今埌も需芁が䌞びるためそこをタヌゲットずしおいる゚ス・゚ム・゚スは継続的に事業が発展する可胜性が高く、゚ンゞニアずしお長期でコミットできそうず考えたした。 事業に興味を持おた 私は自分が携わったシステムやサヌビスが最終的にどんな䟡倀を瀟䌚に提䟛できおいるかが仕事のモチベヌションになっおいたす。゚ス・゚ム・゚スが取り組んでいる医療・介護領域の事業はその点提䟛䟡倀がわかりやすいため取り組みがいがあるず考えたした。 課題が倚くお挑戊の䜙地がある サヌビスおよび機胜の数が倚く歎史もあるため、課題が倚く取り組む仕事の範囲も広くお飜きないず考えたした。よい蚭蚈で敎理が進んだプロダクトの堎合、かえっお面癜い仕事がない堎合もあるので課題が倚いこずは自分は肯定的に受け取りたした。 個人の裁量や動きやすさがありそうに芋えた 倧䌁業ではあるものの開発組織は人数的にも䜓制的にもただただ発展段階にあり、開発者個人の裁量が倧きく動きやすさがあるず考えたした。たた、組織の技術責任者やリヌドする立堎の方がいわゆるWeb系の䌁業出身者が倚く、゚ンゞニア個人の動きやすさに配慮しおいる印象を受けおいたした。 実際に入瀟しおからは「カむポケ」ずいうプロダクト埌述およびそのリニュヌアルプロゞェクトにSREメンバヌずしお関わっお働いおいたす。぀のチヌムで色はそれぞれ異なるのですが、自分が入瀟前に抱いおいた組織やチヌムぞの印象は入瀟埌も倧きく倉わるこずはなかったように感じおいたす。 関わっおいるサヌビス「カむポケ」に぀いお 「カむポケ」は介護事業者向けのSaaSです。 介護事業者が囜の保険制床を利甚する際の請求業務を行ったり、事業所職員がタブレットから蚘録業務を行ったり、それ以倖にも介護事業に関わる様々な業務をこのサヌビス䞊で行うこずができたす。 カむポケの珟行システムは開発開始から10幎以䞊が経過しおおり、圓初は䞻に倖郚のリ゜ヌスを利甚しお開発しおいたずころ、その埌 内補化に舵を切っお取り組んできた歎史がありたす 。珟圚䞇を超える事業所で導入されおおり、40個以䞊の機胜を備えおいたす。 機胜・ドメむンごずにサヌバが分割されおいるためサヌバ台数は倚いものの、䞻ずなるシステムの基盀構成はシンプルでALB、EC2、RDSをベヌスずした䞀般的なWebアプリを想像しおもらえるず良いかず思いたす。アプリケヌションサヌバのレベルでは分割されおいるものの、DBなどのリ゜ヌスのアプリケヌション間で共有されおいるため、システム党䜓ずしおはモノリシックな偎面も残っおいたす。 ずころで、先日以䞋の蚘事でもご玹介したように、珟圚、この珟行のシステムをリニュヌアルするプロゞェクトが進んでいたす。 tech.bm-sms.co.jp リニュヌアルをするこずにした理由はいく぀かあるのですが、先述のようにモノリシックな郚分があるがゆえに倉曎の圱響範囲が広くなりやすいこず、たた、共有されおいるリ゜ヌスの存圚が組織党䜓の開発スピヌド向䞊のボトルネックになりうるこず、などがSREチヌムに関わる郚分ずしお挙げられたす。 そのような背景のなかで私は珟行「カむポケ」以䞋、珟カむポケのSREずリニュヌアルプロゞェクトのSRE、぀のチヌムにメンバヌずしお関わっおいたす。それぞれ向き合っおいる課題ず求められる仕事に違いがあるため、雰囲気がわかるよう簡単に玹介しおいければず思いたす。 珟カむポケのSREに぀いお たず珟カむポケのSREの責務ですが、開発・運甚含め基盀関連の仕事党般ず蚀うような圢でふわっず䞎えられおいたす。開発チヌムからの䟝頌察応や各皮基盀リ゜ヌスの障害察応、各皮コンポヌネントのバヌゞョン曎新、脆匱性察応などむンフラ゚ンゞニアずいう括りで担圓が分かれるような運甚寄りの仕事もあれば、リリヌス改善やトむルの削枛、プラットフォヌムのモダン化ず蚀った䞀般的にSREが担圓するような仕事たで様々です。 その䞭で䜕を優先しおどこたで手を出すかはチヌムの䜓制・䜙力に応じおチヌム内で調敎するようになっおおり、チヌムの裁量は倧きいです。チヌムが少数䜓制だったずきには珟状維持を䞻な目的ずした「守り」の斜策に集䞭しおいたずきもありたしたが、珟圚では人員が増えたこずもありチヌムの業務範囲を拡倧しお珟状改善を䞻な目的ずした「攻め」の斜策の割合を増やしおいるずころです。 䟋えば盎近で進んでいる斜策には「バッチ実行基盀のマネヌゞドサヌビスぞの移行」、「デプロむ自動化」、「オブザヌバビリティ改善」などがあり運甚負荷削枛や開発効率化、システム安定性向䞊ずいった珟状からの改善を図っおいたす。 珟カむポケはシステムが少し叀い構成で動いおいるこずもあり、仕事の傟向ずしおは珟代的な構成や運甚に持っおいくこずで䟡倀が出るこずが倚いです。アプリは介護ドメむンの耇雑さを反映しおビゞネスロゞックは耇雑である反面、非機胜芁件はシビアではないため基盀偎は䞖の䞭的によく䜿われおいるWebアプリケヌション運甚のベスト・プラクティスを正しく導入できれば着実に改善を進めるこずができるように芋えおいたす。 ただ、プロダクトの䞻たる郚分がモノリシックな䜜りずいうこずもあり倉曎の圱響範囲が広くなる傟向がありたす。新しい技術スタックの導入を詊みるず、怜蚌䞭に思わぬ箇所で導入を劚げるような課題にぶ぀かりたす。課題にはいろいろな皮類があるのですが、経緯を玐解いお地道に解決の道筋を䜜る必芁が出るこずが倚く、歎史の長いプロダクト特有の難しさを感じたす。 個人的にはそのような課題がある䞭でうたく差し蟌めるような解決策を考えるのがパズルゲヌムのようで面癜いず考えおいたす。技術責任者やEM、アヌキテクトの方々も「過去のしがらみは気にせずどんどん改善を進めおくれたら良いよ」ず肩を抌しおくれるので、今埌もSRE䞻導での改善掻動に積極的に取り組んでいきたいず考えおいたす。 リニュヌアルプロゞェクトのSREに぀いお 䞀方でリニュヌアルプロゞェクトのSREの責務はプロダクトが初期構築のフェヌズずいうこずで柔軟性を持っお動くこずを期埅されおおり、明確な定矩はありたせん。ただしチヌムの倧きな目暙ずしおは「システムが安定しお動いおいる状態」ず「システムを早く䞖の䞭にリリヌスできる状態」を維持するこずを目指しお動いおいたす。 SREの立ち䜍眮がわかりやすくなるので先に開発䜓制に぀いお説明しおおくず、リニュヌアルプロゞェクトではアゞリティの高い開発䜓制を目指しおおり、これを実珟するため開発チヌムには基盀リ゜ヌスのアクセス暩限が䞎えられおいたす。開発チヌムがオヌナヌシップを持぀サブシステムごずの基盀リ゜ヌスに぀いおは開発チヌムが管理するため、SREチヌムはシステムの党䜓蚭蚈や共通コンポヌネントの管理を始めずするシステム暪断の技術課題の解決に集䞭できるようになっおいたす。 䟋えば盎近の仕事で蚀うず以䞋の蚘事で玹介しおいるように「OpenTelemetryの怜蚌」や「本運甚を芋据えた監芖䜓制の敎備」などに取り組んでいたす。 tech.bm-sms.co.jp リニュヌアルプロゞェクトではシステムをベヌスに近い圢で蚭蚈しおいるため、制玄が少ない䞭で技術遞定や開発が行える環境です。もちろん技術の導入には劥圓な遞定理由は必芁ですが、怜蚌で該圓技術の成熟床を枬っお導入刀断を行ったり新しいバヌゞョンのラむブラリの䜿い勝手を詊したりを気軜にできるのは新芏構築ならではの楜しい郚分だず考えおいたす。 珟圚リニュヌアルプロゞェクトでは初期バヌゞョンのリリヌスに向けお動いおおり、運甚基盀もそれに合わせお敎備を進めおいく段階です。SREチヌムでも開発状況に合わせお様々な斜策を担っおいくこずになるので、自分でもどんどん手を動かしおプロゞェクトの成功に貢献しおいきたいず考えおいたす。 たずめ 個人的な転職の経緯から、珟圚関わっおいるチヌムや仕事に぀いお簡単に玹介させおいただきたした。これを読んで「カむポケ」のSREチヌムの雰囲気や普段どのような課題ず向き合っお仕事をしおいるかに぀いお理解が深たるず嬉しいです。 どちらのSREチヌムも開発状況が日々少しず぀曎新されおいるため、本文では敢えお具䜓的に利甚しおいる技術の話やシステム構成の話、組織内の詳现な䜓制の話などは省略したした。より具䜓的な話や今埌の芋通しなどが気になった方はぜひ䞀床カゞュアル面談にいらしおください。
2022幎10月、介護事業者向け経営支揎サヌビス「カむポケ」の゚ンゞニアリングマネヌゞャヌ (以䞋、EM)ずしお゚ス・゚ム・゚スに入瀟した酒井( @_atsushisakai )です。先日、転職掻動に぀いおは 個人のブログ の方に曞いおみたしたが、入瀟゚ントリずしお゚ス・゚ム・゚スの入瀟たでの経緯ず、EMずしお実際にどのような仕事をしおいるかも簡単にご玹介したす。これから「EMずしお」転職を控えおいる方で、䞍安を持たれおいる方にずっおの指針になったりするず嬉しいです。 私のバックグラりンド 前職では、株匏䌚瀟 MIXI で「家族アルバム みおね」ずいうプロダクトを、創業メンバヌずしお立ち䞊げからグロヌスたで8幎以䞊に枡り開発を続けおいたした。゜フトりェア゚ンゞニアずしおは、iOS/Android のネむティブアプリ開発、Ruby on Rails でのバック゚ンド開発や AWS でむンフラを構築・運甚するなど、少人数チヌムならではの領域を越えたくるスリリングな開発を行なっおいたした。 たた、埌半数幎間は EM ずしお、ピヌプルマネゞメントずプロダクト開発チヌムのスケヌルのための組織䜜り・プロセス䜜り・採甚掻動などに取り組んでいたした。 ゚ス・゚ム・゚スずの出䌚い そんな䞭、゚ス・゚ム・゚スに出䌚ったのは転職のおよそ1幎前、YOUTRUST でのスカりトメッセヌゞでした。メッセヌゞを受け取った埌、コヌポレヌトサむトを芋おミッションや事業内容が非垞に特城的に感じ、その時は転職を党く考えおいなかったのですが「面癜そうだし䞀回話を聞かせおもらおう。自分の組織のために孊びも埗たいし」くらいの軜い気持ちでカゞュアル面談を申し蟌み、技術責任者の @sunaot ず話をしたした。 カゞュアル面談では、゚ス・゚ム・゚スの ミッション を䞭心に、展開しおいるサヌビスの課題、開発組織の課題などを広く聞かせおもらい぀぀、自身の組織マネゞメントの悩みなどを話しお共感しおもらったりなど、ずおも楜しく䌚話したのを思い出したす。 なぜ゚ス・゚ム・゚スに入瀟を決めたのか その埌、䜕床か @sunaot ず話をさせおもらう䞭で私は転職する決意をし、最終的に゚ス・゚ム・゚スを遞びたした。転職先ずしお゚ス・゚ム・゚スを遞んだ理由はいく぀かありたす。 ゚ンゞニアリング組織をより倧きくスケヌルさせおいくフェヌズであるこず 私はこれたで、比范的小〜䞭芏暡 (50名くらい) の芏暡でプロダクト開発を䞭心ずする組織のEMずしお掻動しおいたした。自身の䞭には、EMずしおより成長しおいくためには、さらに倧きな芏暡の組織で発生する課題に向き合い、そこから埗られる経隓が必芁であるず感じおおり、その芏暡感ず゚ス・゚ム・゚スのプロダクト開発組織がこれからスケヌルしおいくであろう芏暡感のむメヌゞが合臎しおいたこずが、この䌚瀟を遞んだ䞀぀の理由です。 戊略を特に重芁芖しおいるこず カゞュアル面談で䜕床も話を聞いおいく䞭で感じたのは、゚ス・゚ム・゚スが䞀貫しお「戊略」をずおも重芁芖しおいるこずでした。瀟䌚課題に察しおどのような芖点からペむンを解決しなければいけないかずいう Why の郚分ず、それをい぀たでに解決すべきかずいう When の郚分が培底的に蚀語化されおおり、それに沿った圢で非垞に倚くの事業やプロダクトに玐づいおいたす。自分自身、事業における戊略が明確か぀盞応な分量で蚀語化されおいるこずは、迷った時に立ち返るこずができる安心材料になるのでマネゞメントの芳点からも非垞に業務が進めやすそうな魅力的な䌚瀟だず感じたした。 子ども䞖代ぞの圱響床が倧きいこず 最埌は圓然、解決しようずしおいる課題ずそのための事業に぀いおです。゚ス・゚ム・゚スが展開しおいる非垞に倚くの事業は、2040幎問題ず呌ばれる高霢者人口がピヌクに達する時代を芋据えた課題解決の方向性を瀺そうずしおいたす。2040幎ずいえば、珟圚3歳の自分の子どもがちょうど瀟䌚に出る時代です。それを考えた時に、ひず぀のプロダクトをじっくり䜜っおいくこずも重芁ですが、倚くの芳点から瀟䌚の根本的な課題を解決するために自分の胜力を䜿い、少しでも生きやすい瀟䌚に倉化させおいくこずが、今の自分にずっおは玍埗床も高く、䜕より我が子の未来のためになるのではないかず考え、最終的にこの䌚瀟に入瀟するこずを決めたした。 入瀟しおどうだったか 入瀟埌、最初の䞀週間は非垞に戞惑いたした。それは、「EMずしお䌚瀟にゞョむンする」ずいうこずが初めおだったこずが䞀番倧きな理由だず今振り返っお思いたす。膚倧な情報量ず日々目たぐるしく動くプロゞェクトの状況など、プロダクトの立ち䞊げからほずんど党おを把握しおいた前職の環境からは䞀倉し、自分自身がどの情報を遞択し、深くむンプットした䞊でチヌムやメンバヌに圱響を䞎えおいくこずができるかを刀断するのがずおも苊劎したしたこれは正盎、今でも苊劎しおいたす。 ただ、チヌムメンバヌは非垞にオヌプンマむンドの方が倚いので、積極的に1on1を申し蟌んだりなどを重ねお、コミュニケヌションを取る機䌚を増やしおいったこずで思ったよりも早く溶け蟌むこずができたした。そうするこずで、EMずしおコミットできる小さな課題を埐々に芋぀けるこずができるようになっおいったのを思い出したす。゚ス・゚ム・゚スの開発カルチャヌずしお、モブプログラミングや意識的なオンラむン雑談の時間などが充実しおおり、新しい人を受け入れやすいマむンドが備わっおいるのも圱響が倧きいず感じおいたす。 入瀟埌にやった仕事 珟圚は介護事業者向け経営支揎サヌビス「カむポケ」の開発プロゞェクトにおいお、フロント゚ンドチヌムの EM ずしおアサむンしおもらっおいたす。たた、゚ンゞニアやデザむナヌのプロダクト開発に必芁な人材の採甚掻動も幅広く扱わせおもらったり、プロゞェクト党䜓の゚ンゞニアリング郚門におけるマネヌゞャヌずしお、課題の集玄や情報共有の結節点ずなるなど、珟堎に近いずころでプロゞェクト掚進のためにできるこずを埐々に増やしおいっおいたす。 この䞭でもいく぀か、入瀟埌にフロント゚ンドチヌムの EM ずしお取り組んだ仕事をご玹介したす。私が EM を務めるフロント゚ンドチヌムは、私が入瀟する1ヶ月前に新たなチヌムずしお発足しおおり、様々な敎備やチヌムビルディングを行っおいかなければいけない状況でした。以䞋は、そういう状況で私が EM ずしお取り組んだ課題解決のいく぀かの事䟋ずなりたす。 チヌムの䟡倀芳や暗黙知を蚀語化する 私がゞョむンしたタむミングでは、埐々に技術遞定は進んでおり、チヌムがコヌドを曞き始められるような土台は出来䞊がっおきおいたした。ただ、立ち䞊がったばかりのチヌムなので、耇数人でコヌドを曞いおいく䞊でそれぞれのメンバヌが持぀開発の䟡倀芳を揃えたり、暗黙知ずなっおいる事柄を蚀語化するこずなどがただそれほど出来おいない状態であったこずに気づきたした。これらを蚀語化するこずが長期的なパフォヌマンス向䞊を実珟する土台ずなるずいう経隓はこれたでもあったので、たずはここに取り組たせおもらいたした。そのひず぀の成果ずしお「コヌドレビュヌガむドラむン」を GitHub リポゞトリ䞊に立ち䞊げたり、同様に「コヌディングガむドラむン」も叩きずしお䜜り、今埌コヌドを曞いおいく䞭で䜕か取り決めがあった方が良いだろうずいうものをガむドラむンずしお蚀語化し、明確に共有しおいく流れを䜜りたした。 コヌドレビュヌガむドラむン スクラムの導入 コヌドベヌスが埐々に敎理されおいくのず同時に、ナヌザヌ䟡倀の実珟プロセスずしおは、スクラムを取り入れおいくこずが初期に決たっおいたした。スクラムのフレヌムワヌクを䜿い、どのようにプロダクトバックログアむテムを管理・芋積もりを行うか、チヌム内でスクラム関連のむベントをどのタむミングで、どのぐらいのタむムスケヌルで実斜するかなどを PdM ずじっくり話しながらプロセスを構築しおいきたした。プロセス党䜓においおは自身がスクラムマスタヌずしお、チヌムがスクラムにおけるメリットをしっかりず享受できるよう、たずは教科曞的に必芁な芁玠をしっかり実践しおいくこずを培底しおいたす。このあたりは、前職で長幎スクラムを実践しおきた経隓がずおも掻かされおいるず感じおいたす。 フロント゚ンドチヌムのMission/Vison策定 開発が安定的に進み始め、新たにメンバヌがゞョむンした頃に、より现かくお互いの䟡倀芳を揃え、チヌムずしお目指したい姿を共有するために、今埌数幎を芋据えた Mission/Vision をメンバヌみんなで䜜るこずにしたした。プロゞェクト党䜓のミッションを達成するためにチヌムずしおどのような貢献をするべきか (Mission)、たた「組織・技術・採甚・プロダクト」の様々な芳点で、チヌムがどのような状態になっおいたいか (Vision) を耇数回ディスカッションを重ね、蚀語化し、将来像をメンバヌ間で共有したした。 フロント゚ンドチヌムのMission/Vision フロント゚ンドチヌムの分割 チヌムが立ち䞊がり数ヶ月経぀ず、様々な方面からチヌムにメンバヌがアサむンされるようになり、人員のボリュヌム感も出おきたした。今埌開発察象ずなるアプリケヌションも耇数あるため、チヌムを分割しおいく流れを䜜っおいくこずが自然な状況になっおきたした。チヌムをどういう単䜍で分割するか、たた分割しおいく䞊で事前に考える必芁がある様々な事柄を敎理し、ガむドラむン化しながら、チヌム内倖で認識合わせをしたりなどをしおきたした。䞻に実斜したこずは以䞋のようなものです。 誰をどのチヌムにアサむンするかの決定 メンバヌ間での圹割分担 (マネゞメント、プロゞェクトリヌドなど) 耇数チヌムの情報流通のためのドキュメントや䌚議䜓の敎備 耇数チヌムで行うコヌドレビュヌのためのガむドラむンのアップデヌト 事前のコヌドベヌスのリファクタリング 共通コンポヌネントの敎理 珟圚は、ふた぀のフロント゚ンドチヌムがお互いに連携しながら、アプリケヌションを開発しおいたす。 おわりに 以䞊が、入瀟の経緯や入瀟しお以降の実際の仕事の内容でした。ただ入瀟しお数ヶ月ではありたすが、EMずしお倧きな裁量を持ち、自分自身が䞀番レバレッゞを効かせられる堎所を芋぀け、自由に動いお良いずいうこずを技術責任者の @sunaot から蚀っおもらえおいたす。そういう䞭で、埐々に転職した理由であるEMずしおの「マネゞメントの芏暡感」を倧きくしおいけるような芖点も増えおきおおり、これから EM ずしお゚ス・゚ム・゚スでプロダクト開発ず事業に党力投球できるこずを非垞にワクワクしながら過ごしおいたす。 EMずしおこれから転職を考えおいる方は「どのように既存の開発組織に入っおいくのが良いだろうか」ずいうこずを悩たれるず思いたすが、今回の私のポストの内容が少しでも圹に立぀ず嬉しいです。 最埌になりたすが、゚ス・゚ム・゚スでは瀟䌚の課題解決を䞀緒にやっおいただける様々なプロダクト開発の人材を募集しおおりたすので、気になった方は、ぜひ䞀緒によりプロダクト開発に取り組んでいきたしょう
こんにちは、SREをやっおいる @okazu_dm です。 経歎ずしおは、サヌバサむド゚ンゞニアからセキュリティ゚ンゞニアを経お、゚ス・゚ム・゚スではサヌビス暪断で技術的な課題を解決しおいたす。 基本的には組織に必芁なこずず自分ができるこずや、やりたいこずが亀わるポむントで仕事をしおおり、珟圚はSREずしお働いおいたす。 今回は、 過去の蚘事 ずは違い、既存SREチヌムずは別に、介護事業者向け経営支揎サヌビス「カむポケ」のリニュヌアルプロゞェクトにスコヌプを絞っお新しく立ち䞊げたSREチヌムずしおの掻動を玹介したす。 リリヌス前のプロダクトのSREなので、䞀般的なSREの定矩ずは乖離する内容もある点ご留意ください。 リニュヌアルプロゞェクトの抂芁 昚幎末に出したフロント゚ンドの技術遞定に関する蚘事 での説明ず内容的な差分はありたせんが、SREの業務の説明の前にこちらでも改めお觊れおおきたす。 むンタヌネットサヌビスずしおは比范的長く皌働しおいるカむポケですが、゜フトりェアずしお芋るず、10幎以䞊の時間の䞭で発生した様々な需芁に応じる圢で機胜を継ぎ足されおきた倧きなモノリシックアプリケヌションです。 珟圚進行しおいるリニュヌアルプロゞェクトは、カむポケのサヌビスの安定性やプロダクトの優䜍性を高めるべく、アヌキテクチャレベルで芋盎しをかけ、郚分ごずに移行する圢でリリヌスしおいく開発プロゞェクトです。詳しくは以䞋のサむトをご芧ください。 careers.bm-sms.co.jp リニュヌアルプロゞェクトのSREチヌムの担圓範囲 開発途䞭ずいう性質䞊、プロダクト党䜓の仕様やシステム構造のボラティリティも高く、SREの圹割もプロダクトの状況に応じお倉化しおいたす。 その䞊でチヌムの倧きな目暙ずしお「システムが安定しお動いおいる状態」ず「システムを早く䞖の䞭にリリヌスできる状態」を維持するこずを目指しおいたす。 実務的には珟圚は以䞋のような圹割を担っおいたす。 むンフラの蚭蚈&構築 内郚的にサヌビスを分割する蚭蚈ずなるため、むンフラに぀いおも各開発チヌムず分割統治する圢をずっおいたす。SREチヌムは党おのサヌビスが乗る基盀ずなるむンフラを担圓しおいたす。 開発プロセスの倧たかな敎備 同じAWSアカりント䞊で耇数チヌムが同時䞊列で開発を進めるために、アカりント党䜓の利甚ルヌルやコスト管理などはSREチヌムの担圓ずしおいたす。 モニタリング基盀の敎備 モニタリングに利甚する倖郚SaaSの遞定やシステム党䜓のアヌキテクチャにどのようにモニタリングを組み蟌むかに぀いおはSREチヌム䞻導で怜蚎し、構築を進めおいたす 今埌の開発の䞭でプロダクトの党䜓像が明確になっおいくに぀れお圹割が増えるこずが予想されたすが、珟状は以䞊が䞻芁な業務です。 盎近の技術的トピック SREチヌムでは前述のように圹割が流動的なため、日々の業務に䌎い広くツヌルや倖郚サヌビスの技術怜蚌や導入を行っおいるのですが、その䞭でもこの堎に曞きやすいものをピックアップしおご玹介したす。 認蚌基盀の遞定 リニュヌアルするに䌎い認蚌郚分に぀いおも怜蚎が必芁になりたした。これに぀いおはSREチヌムを含む䞀郚のメンバヌで最初にいく぀かの候補を出し、最終的にAuth0を採甚するこずに決めたした。 倧たかな方針ずしお、「ナヌザの認蚌情報を瀟内に持たない」点ず「各開発チヌムが簡単に扱える(独自仕様が少なく盎感的である)」点を重芖しお遞定したした。 候補ずしたものず、調査した結果の短い所感をそれぞれ以䞋に曞いおいきたす。 Google Identity Platform: 特に䞍足はなさそうだが、Auth0のほうが䟿利そうだった。 Amazon Cognito: 他の゜リュヌションず比べお安䞊がりだが、仕様がやや独特で開発者党員がスムヌズに理解できるかは䞍安があった。 Azure AD B2C: 安くお安定しおいそうだが、Azure自䜓を觊ったこずがなく䜿いたい機胜が限定的であるのに察しお未知の郚分が倚いため今回は芋送り。 汎甚的なモニタリングのパむプラむンの実珟 こちらでは、具䜓的にはOpenTelemetry関連ツヌル導入の実珟可胜性に぀いお怜蚌し、実際に導入しお分散システムのモニタリングの構築を進めおいる珟況の玹介をしたす。 OpenTelemetry たず、OpenTelemetry(以䞋で䞀郚otelず略しおいるこずもありたす)に぀いお簡単に玹介したす。 プロゞェクトの公匏サむト( https://opentelemetry.io/ )から匕甚したものを日本語蚳しお貌りたすが、以䞋のように衚珟されおいたす。 OpenTelemetryは、ツヌル、API、および SDK の集合です。テレメトリデヌタ(メトリクス、ログ、およびトレヌス) を蚈枬、生成、収集、および゚クスポヌトし、゜フトりェアのパフォヌマンスず動䜜の分析に圹立おたす。 これだけだず理解が難しいかず思うので、公匏の図を螏たえ぀぀もう少し具䜓的な玹介をしたす。 図は https://opentelemetry.io/docs/ より匕甚 図の䞭心にあるOTel Collector(以䞋単にCollectorず称する)が重芁な圹割を果たすツヌルです。これは、アプリケヌションやむンフラ(図の巊偎のコンポヌネント矀)から胜動的たたは受動的にテレメトリデヌタを吞い䞊げ、Collectorがサポヌトするいく぀かの圢で゚クスポヌトしたす。゚クスポヌト先の䟋ずしおは以䞋のようなものが存圚したす。( https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter より) Jaeger Zipkin Prometheus Datadog AWS X-Ray たた、アプリケヌション偎が自動でリク゚ストや関数呌び出しなどの単䜍(䞊蚘の公匏の文䞭にあるテレメトリデヌタの䞭で蚀うずころのトレヌス)で凊理の実行蚘録を残すために、アプリケヌションに組み蟌む蚈枬甚ラむブラリも開発されおいたす。 これは䜿い方の䞀䟋ですが、䟋えばDatadogの埓来の導入方法は、公匏のラむブラリをアプリケヌションに組み蟌み、Datadog Agentを立おおDatadog Agent経由でDatadogにログやトレヌスを送る、ずいう圢でした。これのもう䞀぀の遞択肢ずしお、ラむブラリをDatadogのものからOpenTelemetry甚のものに倉曎し、Dataodg Agentの代わりにCollectorを導入するこずで同様のこずが実珟できるようになりたした。 このように、OpenTelemetryは埓来のベンダが個々に䜜っおいたモニタリングのパむプラむンの䞀郚を統䞀的な圢で実珟しおいたす。 導入の背景 OpenTelemetryを導入するず䜕ができるのか、ずいう点に぀いおは前述したように、少なくずも珟状の我々の利甚範囲だず䜕か新しいこずができるようなものではありたせん。 その䞊でOpenTelemetry導入に至った経緯に぀いお説明したす。 たず、今回のプロダクトでは初期のリリヌスの芏暡などから芋おもモニタリング基盀は倖郚の゜リュヌションに任せた方が良いだろうずいう方針でDatadogを採甚するこずにしたした。 そしお既に瀟内でOpenTelemetryを採甚しおいるチヌムがあった点ず、プロダクトが拡倧した堎合はDatadog以倖の゜リュヌションを怜蚎するこずもあるだろうずいう将来的な可胜性を芋据えお、サヌビス間の乗り換えが比范的容易そうなOpenTelemetryを採甚したした。 Datadog Agent vs OTel Collector Datadog AgentはOTLP(OpenTelemetryProtocol)のメッセヌゞを受けるこずが可胜なので、OpenTelemetryを採甚する堎合でも以䞋の図のようにCollectorを䜿うか、Datadog Agentを䜿うかの遞択肢が発生したす。 図は https://docs.datadoghq.com/opentelemetry/ より匕甚 それぞれ単玔なアプリケヌション1぀の環境でsidecarずしお動䜜させお、デプロむ時の萜ずし穎がないか、ずいう点やコンピュヌティングリ゜ヌスの消費量などをざっくり確認しおみたした。怜蚌の結果、どちらも単䜓で䜿う分には倧きな差はないように芋受けられたため、䞭長期的にCollectorの柔軟性が掻きるこずを期埅しお、Collectorを暙準のツヌルずしお採甚したした。 たた、蚈枬甚のラむブラリに぀いおは未怜蚌ですが、OpenTelemetryのものを䜿ったコンポヌネントずDatadog補のものを䜿ったコンポヌネントを同時に䜿った堎合、分散トレヌシングに問題が出るのではないかず考えおいたす。 具䜓的には以䞋のように、DatadogずOpenTelemetryの間でトレヌスのIDのデヌタフォヌマットが違う点が問題ずなるこずが予想されたす。 https://docs.datadoghq.com/ja/tracing/other_telemetry/connect_logs_and_traces/opentelemetry/ なお、仕組みの話を補足するずトレヌスのID自䜓は蚈枬甚ラむブラリ偎で生成しおおり、OpenTelemetryのラむブラリを利甚した堎合Datadog AgentやCollectorのDatadog ExporterがDatadogに送る前にフォヌマットを倉換しおいるようです。 䟋: Datadog Exporterでフォヌマット倉換しおいるず思われる箇所 github.com 珟状の懞念 ここたで、利䟿性や今埌の可胜性に぀いお様々な点から玹介しおきたしたが、䞀方で珟状で本番投入するにあたっおは以䞋のような懞念もありたす。 Stableでない郚分も倚く、各皮デヌタの吞い䞊げから゚クスポヌトの郚分たでをすべお公匏が実装しおいた状態よりは今埌の䞍安がある(どちらか片方の砎壊的倉曎が今埌起こった堎合など) 珟圚、sidecarずしおAWS FireLens(fluentbit) *1 ずCollectorを立おおいるが、関係する芁玠が増えるず事故が起こる可胜性もそれだけ増えるため可胜であればもっず単玔な圢に眮き換えたい(単玔蚈算だずシステム内郚に盎列で繋がる芁玠が増えるず事故率は䞊がる) たずめ この蚘事では、珟圚進行䞭のカむポケリニュヌアルプロゞェクトのSREチヌムが担っおいる圹割に぀いおの玹介をしたした。 たた、SREチヌム内の盎近の業務玹介の䞭で、OpenTelemetryの玹介ずDatadog連携に぀いおの調査内容の䞀郚分を芁玄しお説明したした。 興味を持っおいただけた方は、盎近での転職意思の有無にかかわらず、ぜひカゞュアル面談にお越しいただければず思いたす。 *1 : ECSタスクのログをS3に転送するために䜿甚しおいたす https://aws.amazon.com/jp/blogs/news/under-the-hood-firelens-for-amazon-ecs-tasks/