HRBrain Blog 2023-12-25T12:19:04+09:00 hrbrain Hatena::Blog hatenablog://blog/98012380832318772 【HRBrain Advent Calendar 2023】走り切りったーーー!!! hatenablog://entry/6801883189066408420 2023-12-25T12:19:04+09:00 2023-12-25T12:19:04+09:00 こんにちは!現在HRBrainで24卒インターンをしています中嶋です! メリークリスマスですね!!!🎅🎅🎅 そんなこんなで、あっという間に、アドベントカレンダーの最終日ですね! HRBrain Advent Calendar 2023 何とか走り切りました!!!💦👏💦👏💦👏 🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄 qiita.com カレンダー3記事全ての記事がそろいました!(12/1〜12/25まで) 記事の中には、エンジニアの技術に特化した記事や、デザイナーやPdMの記事、そしてHRBrainに関する記事など、さまざまなテーマについての記事がたくさん投… <p>こんにちは!現在HRBrainで24卒インターンをしています中嶋です!</p> <p>メリークリスマスですね!!!🎅🎅🎅</p> <p>そんなこんなで、あっという間に、アドベントカレンダーの最終日ですね!</p> <p>HRBrain Advent Calendar 2023 何とか走り切りました!!!💦👏💦👏💦👏</p> <h4 id="HRBrain-Advent-Calendar-2023はこちら">🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄</h4> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2023%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2023 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2023/hrbrain">qiita.com</a></cite></p> <p>カレンダー3記事全ての記事がそろいました!(12/1〜12/25まで)</p> <p>記事の中には、エンジニアの技術に特化した記事や、デザイナーやPdMの記事、そしてHRBrainに関する記事など、さまざまなテーマについての記事がたくさん投稿されています!!🙆</p> <p>是非、一読お願いします!</p> <p>HRBrain Advent Calendar 2023で投稿された記事をご紹介します!</p> <h3 id="121-更新">12/1 更新</h3> <ul> <li><a href="https://qiita.com/yug1224/items/4230dcf9fc557d721f1f">&#x30D6;&#x30ED;&#x30B0;&#x6821;&#x6B63;&#x306E;&#x4F5C;&#x6CD5;&#xFF1A;textlint&#x3067;&#x5F37;&#x5316;&#x3059;&#x308B;&#x30C6;&#x30AF;&#x30CB;&#x30AB;&#x30EB;&#x30E9;&#x30A4;&#x30C6;&#x30A3;&#x30F3;&#x30B0; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/mk_mitarashi/items/e0f331cdc7ef3b8ad763">&#x975E;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;PdM&#x304C;&#x7ACB;&#x3061;&#x4E0A;&#x304C;&#x308A;&#x3067;&#x3076;&#x3064;&#x304B;&#x3063;&#x305F;3&#x3064;&#x306E;&#x58C1;&#x3068;&#x305D;&#x306E;&#x8D85;&#x3048;&#x65B9; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/_ken_/items/06aa4fcd390dba39452a">&#x30D6;&#x30E9;&#x30A6;&#x30B6;&#x4E0A;&#x3067;&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x306E;&#x5185;&#x5BB9;&#x3092;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x30B3;&#x30DE;&#x30F3;&#x30C9; git instaweb &#x3092;&#x4F7F;&#x3063;&#x3066;&#x307F;&#x308B; #Git - Qiita</a></li> </ul> <h3 id="122-更新">12/2 更新</h3> <ul> <li><a href="https://qiita.com/Nub/items/a136b2d610739ac2f9d6">&#x5909;&#x6570;&#x5BA3;&#x8A00;&#x3068;&#x30B9;&#x30B3;&#x30FC;&#x30D7;&#x306E;&#x53D6;&#x308A;&#x6271;&#x3044;&#x306B;&#x6C17;&#x3092;&#x3064;&#x3051;&#x3088;&#x3046; #Go - Qiita</a></li> <li><a href="https://note.com/fine_stilt677/n/n1f02993507c7">2023&#x5E74;&#x6C7A;&#x5B9A;&#x7248;&#xFF01;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x306B;&#x805E;&#x3044;&#x3066;&#x307F;&#x305F;&#x3001;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x306B;&#x77E5;&#x3063;&#x3066;&#x3044;&#x3066;&#x3082;&#x3089;&#x3044;&#x305F;&#x3044;&#x3053;&#x3068;3&#x9078;&#xFF5C;&#x3042;&#x3093;&#x3069;&#x3046;</a></li> <li><a href="https://qiita.com/Iriko666666/items/a924bb64f2dadec9a173">Jira Cloud for Sheets&#x3068;&#x30B9;&#x30D7;&#x30EC;&#x30C3;&#x30C9;&#x30B7;&#x30FC;&#x30C8;&#x306E;Query&#x95A2;&#x6570;&#x3092;&#x4F7F;&#x7528;&#x3057;&#x3066;Jira ISSUES&#x3092;&#x96C6;&#x8A08;&#x3059;&#x308B;&#x2460; #AdventCalendar2023 - Qiita</a></li> </ul> <h3 id="123-更新">12/3 更新</h3> <ul> <li><a href="https://qiita.com/satomi310/items/685951139983f913adeb">useState&#x306F;&#x306A;&#x305C;&#x5024;&#x3092;&#x4FDD;&#x6301;&#x3067;&#x304D;&#x308B;&#x306E;&#x304B;&#x3082;&#x3046;1&#x56DE;&#x8003;&#x3048;&#x308B; #React - Qiita</a></li> <li><a href="https://qiita.com/ren7087/items/fe92366bcd5fa86d9127">GitHub&#x306E;&#x30D7;&#x30ED;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x3092;&#x30B3;&#x30FC;&#x30C9;&#x66F8;&#x304B;&#x305A;&#x306B;&#x8A2D;&#x5B9A;&#x3057;&#x305F;&#x3044; #GitHub - Qiita</a></li> <li><a href="https://qiita.com/pasca-l/items/40bb1d4e9afa3033db2e">&#x30B3;&#x30DF;&#x30C3;&#x30C8;&#x30E1;&#x30C3;&#x30BB;&#x30FC;&#x30B8;&#x306E;&#x30B9;&#x30BF;&#x30A4;&#x30EB;&#x3092;&#x7D71;&#x4E00;&#x3059;&#x308B; #GitHub - Qiita</a></li> </ul> <h3 id="124-更新">12/4 更新</h3> <ul> <li><a href="https://qiita.com/nakampany/items/91d77f1b87278ed40e81">&#x306A;&#x305C;&#x50D5;&#x306F;&#x516C;&#x5F0F;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x8AAD;&#x3080;&#x306E;&#x304C;&#x82E6;&#x624B;&#x306A;&#x306E;&#x304B; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/aya_mon/items/33621dc3bf90de17d9ab">&#x4ED5;&#x69D8;&#x306B;&#x7591;&#x554F;&#x3092;&#x6301;&#x3063;&#x305F;&#x6642;&#x306B;&#x3059;&#x308B;&#x3068;&#x826F;&#x3044;&#x3053;&#x3068; #QA&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2; - Qiita</a></li> <li><a href="https://qiita.com/hrb-nagasaki/items/e6e533990f9447ecafcd">&#x4F55;&#x5EA6;&#x8EE2;&#x751F;&#x3057;&#x3066;&#x3082;&#x60C5;&#x30B7;&#x30B9;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3046;&#xFF01; #AdventCalendar2023 - Qiita</a></li> </ul> <h3 id="125-更新">12/5 更新</h3> <ul> <li><a href="https://qiita.com/kota33/items/20a884cbd969cf1ce087">&#x6B21;&#x4E16;&#x4EE3;&#x306E;&#x30A8;&#x30C7;&#x30A3;&#x30BF;&#x30FC; Cursor(&#x30AB;&#x30FC;&#x30BD;&#x30EB;) &#x3092;&#x4F7F;&#x3044;&#x3053;&#x306A;&#x3059; #VSCode - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/66f43317a1665a8980c4">SSH&#x63A5;&#x7D9A;&#x3057;&#x305F;Ubuntu&#x306E;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x3067;&#x4F55;&#x3082;&#x8868;&#x793A;&#x3055;&#x308C;&#x306A;&#x3044;&#x3001;&#x30BF;&#x30D6;&#x88DC;&#x5B8C;&#x3082;&#x52B9;&#x304B;&#x306A;&#x3044;&#x3002; #Linux - Qiita</a></li> <li><a href="https://note.com/yka2n/n/na3dcd6391783">M&amp;A&#x3067;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x30B8;&#x30E7;&#x30A4;&#x30F3;&#x3057;&#x305F;&#x30B9;&#x30BF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x306E;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x8CAC;&#x4EFB;&#x8005;&#x304C;&#x3001;&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x3092;&#x5C55;&#x958B;&#x3059;&#x308B;&#x30D9;&#x30F3;&#x30C1;&#x30E3;&#x30FC;&#x306B;&#x5165;&#x3063;&#x3066;&#x898B;&#x3048;&#x3066;&#x3044;&#x308B;&#x666F;&#x8272;&#x3092;&#x307E;&#x3068;&#x3081;&#x308B;&#xFF5C;Yoshiyuki Kato</a></li> </ul> <h3 id="126-更新">12/6 更新</h3> <ul> <li><a href="https://qiita.com/okr_/items/13750eb6eabfd7c4ae51">React&#x306B;&#x304A;&#x3051;&#x308B;Props Drilling&#x554F;&#x984C;&#x3092;&#x610F;&#x8B58;&#x3057;&#x305F;&#x30B3;&#x30F3;&#x30DD;&#x30FC;&#x30CD;&#x30F3;&#x30C8;&#x8A2D;&#x8A08; #React - Qiita</a></li> <li><a href="https://qiita.com/Iriko666666/items/aa87b77e5950c57ab126">Jira Cloud for Sheets&#x3068;&#x30B9;&#x30D7;&#x30EC;&#x30C3;&#x30C9;&#x30B7;&#x30FC;&#x30C8;&#x306E;Query&#x95A2;&#x6570;&#x3092;&#x4F7F;&#x7528;&#x3057;&#x3066;Jira ISSUES&#x3092;&#x96C6;&#x8A08;&#x3059;&#x308B;&#x2461; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://note.com/fnwiya/n/n3dacba99c54a">&#x7E70;&#x308A;&#x8FD4;&#x3057;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x3092;&#x6271;&#x3046;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#xFF5C;fnwiya</a></li> </ul> <h3 id="127-更新">12/7 更新</h3> <ul> <li><a href="https://qiita.com/yvngodowny/items/50f415413a4f55a0d7b0">Web Speech API &#x3092;&#x4F7F;&#x3063;&#x305F;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x30D0;&#x30C3;&#x30AF;&#x30A8;&#x30F3;&#x30C9;&#x90E8;&#x5206;&#x4F5C;&#x3063;&#x3066;&#x307F;&#x305F; #Python - Qiita</a></li> <li><a href="https://qiita.com/riku0202/items/802ee98ee847135a6c94">&#x30D6;&#x30E9;&#x30A6;&#x30B6;&#x9593;&#x3067;3D&#x30B7;&#x30FC;&#x30F3;&#x3092;&#x540C;&#x671F;: localStorage&#x3068;Three.js&#x306E;&#x9769;&#x65B0;&#x7684;&#x6D3B;&#x7528; #JavaScript - Qiita</a></li> <li><a href="https://qiita.com/hrb_yoshi/items/b9301fac80255d39de87">n&#x5E74;&#x5F8C;&#x306E;QA&#x5DE5;&#x6570;&#x7206;&#x767A;&#x3092;&#x6291;&#x6B62;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B; #&#x30C6;&#x30B9;&#x30C8;&#x81EA;&#x52D5;&#x5316; - Qiita</a></li> </ul> <h3 id="128-更新">12/8 更新</h3> <ul> <li><a href="https://qiita.com/tomotaka_s/items/e9196ac2722d6d316cb7">GraphQL&#x3001;Go&#x3001;React&#x3001;TypeScript&#x3092;&#x4F7F;&#x3063;&#x305F;Todo&#x30A2;&#x30D7;&#x30EA;&#x306E;&#x958B;&#x767A;&#xFF08;&#x30D5;&#x30ED;&#x30F3;&#x30C8;&#x30A8;&#x30F3;&#x30C9;&#x7DE8;&#xFF09; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/inanohashi/items/e20d468c88dd6e0af80b">&#x3010;Slack&#x306E;&#x65B0;&#x30EF;&#x30FC;&#x30AF;&#x30D5;&#x30ED;&#x30FC;&#x30D3;&#x30EB;&#x30C0;&#x30FC;&#xFF08;Workflow Builder&#xFF09;&#x3011;&#x30B7;&#x30E7;&#x30FC;&#x30C8;&#x30AB;&#x30C3;&#x30C8;&#x306F;&#x3069;&#x3053;&#x3078; #Slack - Qiita</a></li> <li><a href="https://note.com/tsuji_design/n/nfc54261e267e">&#x3010;&#x80A9;&#x3053;&#x308A;&#x89E3;&#x6D88;&#x3011;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x306B;&#x3088;&#x308B;&#x30AD;&#x30FC;&#x30DC;&#x30FC;&#x30C9;&#x9078;&#x3073;&#x306E;&#x65C5;&#xFF5C;&#x3064;&#x30FC;&#x3058;&#x30FC;</a></li> </ul> <h3 id="129-更新">12/9 更新</h3> <ul> <li><a href="https://qiita.com/yakiniku0220/items/ecb89f7bb72fa07a76b0">&#x7279;&#x7D1A;&#x546A;&#x7269;&#x3068;&#x5316;&#x3057;&#x305F;AWS IoT Enterprise Button&#x3092;&#x52E4;&#x6020;&#x30DC;&#x30BF;&#x30F3;&#x3068;&#x3057;&#x3066;&#x6D3B;&#x7528;&#x3059;&#x308B; #AWS - Qiita</a></li> <li><a href="https://qiita.com/ingtk/items/e8de84c158f8d98994ce">ANY_VALUE(HAVING MAX)&#x3092;&#x4F7F;&#x3063;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x51E6;&#x7406;&#x306E;&#x6700;&#x9069;&#x5316; #BigQuery - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/e1b8f07c39337189ba34">[GAS &times; Slack] &#x30B5;&#x30AF;&#x30C3;&#x3068;&#x901A;&#x77E5;&#x306E;&#x5B9F;&#x88C5;&#x1F525; #Slack - Qiita</a></li> </ul> <h3 id="1210-更新">12/10 更新</h3> <ul> <li><a href="https://qiita.com/minamikkk/items/29a4365ee6d8bd18f5ae">&#x30CE;&#x30F3;&#x30ED;&#x30B8;&#x30AB;&#x30EB;&#xFF01;&#xFF1F;&#x30D5;&#x30A1;&#x30AF;&#x30C8;&#x304B;&#x3089;&#x7D10;&#x89E3;&#x304F;&#x3001;HRtech&#x9818;&#x57DF;&#x53F3;&#x8133;&#x6D3E;PdM&#x306B;&#x3088;&#x308B;&#x3001;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x958B;&#x767A;&#x306E;&#x300E;&#x69CB;&#x9020;&#x5316;&#x300F;&#x306E;&#x8003;&#x3048;&#x65B9;&#x1F9E0; #UX - Qiita</a></li> <li><a href="https://times.hrbrain.co.jp/entry/2023/12/10/124344">Findy Team+ Award&#x53D7;&#x8CDE;&#x306E;&#x88CF;&#x5074;&#xFF1A;GitHub&#x901A;&#x77E5;&#x306E;&#x6700;&#x9069;&#x6D3B;&#x7528;&#x6CD5; - HRBrain Blog</a></li> <li><a href="https://qiita.com/mi2__user/items/25a94f3e32c2497c6344">[GAS &times; BigQuery] &#x30B5;&#x30AF;&#x30C3;&#x3068;&#x5165;&#x9580;&#x30FB;&#x30AF;&#x30A8;&#x30EA;&#x306E;&#x5B9F;&#x884C;&#x1F525; #GoogleAppsScript - Qiita</a></li> </ul> <h3 id="1211-更新">12/11 更新</h3> <ul> <li><a href="https://qiita.com/mi2__user/items/f2f415ccbb0a625c8647">&#x30D5;&#x30ED;&#x30F3;&#x30C8;&#x30A8;&#x30F3;&#x30C9;&#x306E;&quot;&#x30D0;&#x30EA;&#x30C7;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&quot;&#x306F;&#x6700;&#x4F4E;&#x9650;&#x306E;&#x65B9;&#x304C;&#x3044;&#x3044;&#x3089;&#x3057;&#x3044;&#x3002; #TypeScript - Qiita</a></li> <li><a href="https://qiita.com/guppy1200/items/a2a74fdebcf42042e717">&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x5FD8;&#x308C;&#x304C;&#x3061; &rarr; GitHub Copilot in the CLI &#x3092;&#x4F7F;&#x3063;&#x3066;&#x307F;&#x3088;&#x3046; #GitHub - Qiita</a></li> <li><a href="https://qiita.com/nakampany/items/1a34ca825667671cf704">&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x30A4;&#x30F3;&#x30BF;&#x30FC;&#x30F3;&#x3068;&#x7814;&#x7A76;&#x3092;&#x4E21;&#x7ACB;&#x3059;&#x308B;&#x30C6;&#x30AF;3&#x9078; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1212-更新">12/12 更新</h3> <ul> <li><a href="https://qiita.com/ssossan/items/961bd0d471ae33a696cf">&#x6D3B;&#x8E8D;&#x3059;&#x308B;&#x65B0;&#x5352;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x306E;&#x7279;&#x5FB4; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/heyheyhey0621/items/1235397afff0dc21bbeb">&#x300C;plotly.js&#x300D;&#x3067;&#x6642;&#x7CFB;&#x5217;&#x6298;&#x308C;&#x7DDA;&#x30B0;&#x30E9;&#x30D5;&#x3092;&#x4F5C;&#x6210;&#x3057;&#x3066;&#x307F;&#x308B; #JavaScript - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/2b18ab5f54ad3519aae2">&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x304C;&#x898B;&#x3064;&#x304B;&#x308A;&#x3055;&#x3048;&#x3059;&#x308C;&#x3070;&#x3001;.ttf&#x3067;&#x3082;&#x3001;.otf&#x3067;&#x3082;&#x306A;&#x3093;&#x3067;&#x3082;&#x826F;&#x304B;&#x3063;&#x305F;&#x3002; #Docker - Qiita</a></li> </ul> <h3 id="1213-更新">12/13 更新</h3> <ul> <li><a href="https://qiita.com/inanohashi/items/c734223e5c1ef13ecc60">&#x3010;Slack&#x306E;Workflow Builder&#x3011;&#x30EC;&#x30AC;&#x30B7;&#x30FC;&#x30EF;&#x30FC;&#x30AF;&#x30D5;&#x30ED;&#x30FC;&#x304B;&#x3089;&#x306E;&#x5207;&#x308A;&#x66FF;&#x3048;&#x3067;&#x6C17;&#x3092;&#x3064;&#x3051;&#x308B;&#x3053;&#x3068; #Slack - Qiita</a></li> <li><a href="https://qiita.com/_ken_/items/de7aa23e3993ecc72a50">OpenAPI&#x306E;Tags&#x3092;&#x4F7F;&#x3063;&#x3066;&#x7279;&#x5B9A;&#x306E;&#x30A8;&#x30F3;&#x30C9;&#x30DD;&#x30A4;&#x30F3;&#x30C8;&#x306B;&#x5BFE;&#x3057;&#x3066;&#x306E;&#x307F;&#x30DF;&#x30C9;&#x30EB;&#x30A6;&#x30A7;&#x30A2;&#x3092;&#x9069;&#x7528;&#x3059;&#x308B; #API - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/4e9b026d4e391c92b759">brew update&#x3067;couldn&#39;t find remote ref refs/heads/master&#x3063;&#x3066;&#x30A8;&#x30E9;&#x30FC;&#x3002;Homebrew&#x3082;&#x4E07;&#x80FD;&#x3058;&#x3083;&#x306A;&#x3044;&#x3093;&#x3060;&#x306D;&#x3002; #homebrew - Qiita</a></li> </ul> <h3 id="1214-更新">12/14 更新</h3> <ul> <li><a href="https://note.com/mutta/n/n0a0e23105752?sub_rt=share_h">wellday&#x3068;&#x3044;&#x3046;HRSaaS&#x30C1;&#x30E3;&#x30EC;&#x30F3;&#x30B8;&#x306E;AtoZ&#xFF5C;Yoshimasa Muta</a></li> <li><a href="https://qiita.com/nakampany/items/2aefb5612a21bc4d09fb">&#x521D;&#x5FC3;&#x8005;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x300C;&#x307E;&#x30FC;&#x3058;&#x306E;&#x30DC;&#x30BF;&#x30F3;&#x306F;&#x7DCA;&#x5F35;&#x3059;&#x308B;&#x300D; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/aa3229d719a5d35f97c9">Cloud Run&#x306E;&#x6A29;&#x9650;&#x8A2D;&#x5B9A;&#x306E;&#x305F;&#x3081;&#x306B;&#x521D;&#x3081;&#x3066;Terraform&#x3092;&#x4F7F;&#x3063;&#x305F;&#x3002;&#x3080;&#x305A;&#x3002; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1215-更新">12/15 更新</h3> <ul> <li><a href="https://note.com/inomi_hrbrain/n/n0a520f2a0e79">&#x601D;&#x3044;&#x8FBC;&#x307F;&#x3092; &quot;&#x7591;&#x3046;&quot; &#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#xFF5C;&#x3044;&#x306E;&#x307F;</a></li> <li><a href="https://qiita.com/Mozu1206/items/cfb0e4b374b9013562ee">Notion &#x307D;&#x3044;&#x898B;&#x305F;&#x76EE;&#x306E;&#x30DA;&#x30FC;&#x30B8;&#x3092;&#x304A;&#x624B;&#x8EFD;&#x306B;&#x516C;&#x958B;&#x3059;&#x308B;&#x306B;&#x306F;&#x3069;&#x3046;&#x3057;&#x305F;&#x3089;&#x3044;&#x3044;&#xFF1F; #React - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/da5aa858b7b1470139b8">&#x30C1;&#x30FC;&#x30E0;&#x3067;GitHub&#x3092;&#x4F7F;&#x3046;&#x3063;&#x3066;&#x3053;&#x3046;&#x3044;&#x3046;&#x3053;&#x3068;&#x306A;&#x306E;&#x304B;&#x306A;&#x3041;&#x3002; #Git - Qiita</a></li> </ul> <h3 id="1216-更新">12/16 更新</h3> <ul> <li><a href="https://times.hrbrain.co.jp/entry/tap2023">Google Cloud Tech Acceleration Program(TAP)&#x53C2;&#x52A0;&#x30EC;&#x30DD;&#x30FC;&#x30C8; - HRBrain Blog</a></li> <li><a href="https://note.com/k0saka/n/n6f1706b91a19">&#x5E83;&#x544A;&#x696D;&#x754C;&#x304B;&#x3089;IT&#x696D;&#x754C;&#x306B;&#x8EE2;&#x8EAB;&#x3057;&#x3066;&#x9A5A;&#x3044;&#x305F;&#x3053;&#x3068;&#xFF5C;KO</a></li> <li><a href="https://qiita.com/mi2__user/items/0ee5c789f74576fc10ac">VSCode&times;Go&#x3067;GOROOT or GOPATH&#x304C;&#x898B;&#x3064;&#x304B;&#x3089;&#x306A;&#x3044;&#x5927;&#x91CF;&#x30A8;&#x30E9;&#x30FC;&#x306E;&#x89E3;&#x6D88;&#x3002; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1217-更新">12/17 更新</h3> <ul> <li><a href="https://qiita.com/shippokun/items/3eec28825a5072b595aa">&#x6025;&#x306B;&#x30AF;&#x30EA;&#x30FC;&#x30F3;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3057;&#x305F;&#x304F;&#x306A;&#x308B;&#x3068;&#x304D;&#x3042;&#x308A;&#x307E;&#x3059;&#x3088;&#x306D;&#xFF1F;&#x3048;&#x3001;&#x306A;&#x3044;&#xFF1F; #homebrew - Qiita</a></li> <li><a href="https://qiita.com/raorao1011/items/c2694e695931f0df2ba5">&#x4E00;&#x77AC;&#x3067;HTML&#x306E;&#x69CB;&#x9020;&#x3092;&#x628A;&#x63E1;&#x51FA;&#x6765;&#x308B;Chrome&#x306E;&#x62E1;&#x5F35;&#x6A5F;&#x80FD;&#x3092;&#x7D39;&#x4ECB; #HTML - Qiita</a></li> <li><a href="https://qiita.com/nakampany/items/309174d299a69738179b">&#x3010;Go&#x3011;&#x30DD;&#x30A4;&#x30F3;&#x30BF;&#x3063;&#x3066;&#x3044;&#x3064;&#x4F7F;&#x3046;&#x3093;&#xFF1F; #Go - Qiita</a></li> </ul> <h3 id="1218-更新">12/18 更新</h3> <ul> <li><a href="https://qiita.com/y_yue/items/cf318a1a12be7e1ecc55">&#x300C;We Make New Works&#xFF01;&#x300D; &#x30D1;&#x30FC;&#x30D1;&#x30B9;&#x30FB;&#x30DF;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x691C;&#x8A0E;&#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x306E;&#x304A;&#x8A71; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/hrbabe/items/fb00ce8614cef58433ee">&#x30BF;&#x30B9;&#x30AF;&#x7BA1;&#x7406;&#x3092;&#x898B;&#x306A;&#x304A;&#x305D;&#x3046;&#xFF01;GTD&#x306E;&#x3059;&#x3059;&#x3081; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/omori_/items/24c5af6523188cfaedcd">Slack&#x30EF;&#x30FC;&#x30AF;&#x30D5;&#x30ED;&#x30FC; + Zapier + Notion&#x3067;&#x884C;&#x3046;&#x81EA;&#x52D5;&#x30C1;&#x30B1;&#x30C3;&#x30C8;&#x8D77;&#x7968; #Slack - Qiita</a></li> </ul> <h3 id="1219-更新">12/19 更新</h3> <ul> <li><a href="https://qiita.com/taijuf212/items/38a3c2c383df08583834">&#x3069;&#x3053;&#x3067;&#x3082;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;(iTerm2) #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/HZama/items/b0e11c78003fe28f0ee4">&#x5358;&#x4F53;&#x30C6;&#x30B9;&#x30C8;&#x3082;lint&#x3092;&#x901A;&#x305D;&#x3046; #Go - Qiita</a></li> <li><a href="https://qiita.com/Nub/items/8a1aba3a317c31b34a61">SaaS&#x3067;&#x7AF6;&#x6280;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;&#x306F;&#x5F79;&#x306B;&#x7ACB;&#x3064;&#x306E;&#x304B;&#xFF1F; #AtCoder - Qiita</a></li> </ul> <h3 id="1220-更新">12/20 更新</h3> <ul> <li><a href="https://qiita.com/ukw66/items/d149cc9dbf596c2b0944">&#x5236;&#x7D04;&#x7406;&#x8AD6; (TOC) &#x3067;&#x65E9;&#x3044;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x30FB;&#x4FA1;&#x5024;&#x5275;&#x751F;&#x3092;&#x76EE;&#x6307;&#x3059;&#xFF01;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x77ED;&#x7E2E;&#x7DE8; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/hh_hrb/items/a75bfa9ad9930ea39ef3">QA&#x306E;&#x6210;&#x679C;&#x7269;&#x3082;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x304C;&#x5927;&#x5207;&#x3002;&#x305D;&#x308C;&#x3082;&#x65E9;&#x3044;&#x6BB5;&#x968E;&#x3067;&#x3002; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/nakampany/items/910e17dcbf1f4ef19e44">&#x306A;&#x305C;&#x82E5;&#x624B;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x306F;&#x7A4D;&#x6975;&#x7684;&#x306B;&#x30A2;&#x30A6;&#x30C8;&#x30D7;&#x30C3;&#x30C8;&#x3092;&#x3059;&#x308B;&#x3079;&#x304D;&#x306A;&#x306E;&#x304B; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1221-更新">12/21 更新</h3> <ul> <li><a href="https://qiita.com/Moou0820/items/642b96f56cf171d09256">&#x4FA1;&#x5024;&#x89B3;&#x30B7;&#x30A7;&#x30A2;&#x30EF;&#x30FC;&#x30AF;&#x306E;&#x3059;&#x3059;&#x3081; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/fujiwaram/items/2eb73014a62e9b5af72a">Go&#x8A00;&#x8A9E;&#x3067;GCS&#x306E;&#x5DE8;&#x5927;&#x306A;&#x8907;&#x6570;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x7701;&#x30E1;&#x30E2;&#x30EA;&#x3067;zip&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B;&#x5727;&#x7E2E;&#x3057;&#x3066;&#x307E;&#x3068;&#x3081;&#x308B; #Go - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/ccf776dbfbcfd9a0b132">Docker&#x304C;8080:8080&#x3068;&#x304B;&#x3001;&#x30DD;&#x30FC;&#x30C8;3000&#x756A;&#x3067;&#x63A5;&#x7D9A;&#x3092;&#x5F85;&#x3064;&#x3068;&#x304B;&#x306E;&#x3082;&#x3063;&#x3068;&#x524D;&#x306E;&#x3068;&#x3053;&#x308D;&#x3067;&#x5206;&#x304B;&#x3063;&#x3066;&#x306A;&#x304B;&#x3063;&#x305F;&#x3058;&#x3083;&#x3093;&#x3002; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1222-更新">12/22 更新</h3> <ul> <li><a href="https://note.com/miyuki_chi/n/n8da4b1bf5fbd">UI&#x753B;&#x50CF;&#x306E;&#x30B3;&#x30F3;&#x30DD;&#x30CD;&#x5316;&#x3092;&#x3057;&#x3066;&#x751F;&#x7523;&#x6027;&#x3092;&#x7206;&#x4E0A;&#x3052;&#x3057;&#x305F;&#x4EF6;&#x306B;&#x3064;&#x3044;&#x3066;&#xFF5C;&#x307F;&#x3086;&#x304D;&#x3061;</a></li> <li><a href="https://note.com/makedonuts/n/nc8f47420e29b">&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x3068;&#x306E;&#x5354;&#x696D;&#x3068;&#x30C7;&#x30B6;&#x30A4;&#x30F3;&#x30C4;&#x30FC;&#x30EB;&#x306E;&#x5909;&#x9077;&#xFF5C;makedonuts</a></li> <li><a href="https://qiita.com/hrb_hasegawa/items/7319bdc8e4f9fd08582e">&#x6CD5;&#x52D9;&#x3068;&#x4ED6;&#x30C1;&#x30FC;&#x30E0;&#x3068;&#x306E;&#x5354;&#x50CD;&#x306F;&#x3068;&#x3066;&#x3082;&#x5927;&#x4E8B;&#x306A;&#x306E;&#x3067;&#x3059;&#x3002; #AdventCalendar2023 - Qiita</a></li> </ul> <h3 id="1223-更新">12/23 更新</h3> <ul> <li><a href="https://qiita.com/amac-53/items/86b1466e93524844c2a8">VS Code &#x306E;&#x30EF;&#x30FC;&#x30AF;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x3092;&#x3061;&#x3083;&#x3093;&#x3068;&#x4F7F;&#x3044;&#x305F;&#x3044; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/tomtomtommy18/items/60333a1a9c115f7afea2">RHF+yup&#x3067;API&#x306E;&#x30EC;&#x30B9;&#x30DD;&#x30F3;&#x30B9;&#x3092;&#x5143;&#x306B;&#x30D0;&#x30EA;&#x30C7;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x8A2D;&#x5B9A;&#x3059;&#x308B; #React - Qiita</a></li> <li><a href="https://qiita.com/nakampany/items/94c58340f81234970250">&#x3010;Go&#x3011;JSON&#x304B;&#x3089;&#x69CB;&#x9020;&#x4F53;&#x304C;&#x751F;&#x6210;&#x3067;&#x304D;&#x308B;JSON-to-Go&#x3092;&#x7D39;&#x4ECB; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> </ul> <h3 id="1224-更新">12/24 更新</h3> <ul> <li><a href="https://qiita.com/ervitis/items/88d0956d2923a29949b8">&#x9762;&#x8AC7;&#x3067;&#x5909;&#x9854;&#x30D0;&#x30EC;&#x306A;&#x3044;&#x3088;&#x3046;&#x306B;Google Vision API&#x3068;GoCV&#x4F7F;&#x3063;&#x3066;&#x307F;&#x305F; #Go - Qiita</a></li> <li><a href="https://times.hrbrain.co.jp/entry/cloudrun-branch-deploy">Cloud Run&#x3067;&#x30D7;&#x30EB;&#x30EA;&#x30AF;&#x30A8;&#x30B9;&#x30C8;&#x30D7;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x74B0;&#x5883;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B; - HRBrain Blog</a></li> <li><a href="https://qiita.com/JunpeiNakagawa/items/4767888c66895b49204d">Contentful&#x304B;&#x3089;&#x53D6;&#x5F97;&#x3059;&#x308B;&#x753B;&#x50CF;&#x306E;&#x6B21;&#x4E16;&#x4EE3;&#x753B;&#x50CF;&#x30D5;&#x30A9;&#x30FC;&#x30DE;&#x30C3;&#x30C8;&#x5316; #Vue.js - Qiita</a></li> </ul> <h3 id="1225-更新">12/25 更新</h3> <ul> <li><p><a href="https://qiita.com/ryosuke77777/items/dddce25c4976c234dfdf">HR Tech&#x306E;PdM&#x304C;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C9;&#x30EA;&#x30D6;&#x30F3;&#x306A;BizDev&#x30B3;&#x30DF;&#x30E5;&#x30CB;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x5B9F;&#x73FE;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B;&#x53D6;&#x308A;&#x7D44;&#x3093;&#x3060;&#x3053;&#x3068; #AdventCalendar2023 - Qiita</a></p></li> <li><p><a href="https://qiita.com/nakampany/items/090889cabe2412154f30">&#x30A2;&#x30C9;&#x30D9;&#x30F3;&#x30C8;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC;&#x3067;&#x6295;&#x7A3F;&#x3059;&#x308B;&#x306E;&#x306F;&#x30BF;&#x30A4;&#x30D1;&#x304C;&#x60AA;&#x3044;&#x306E;&#x304B;&#xFF1F; #&#x30DD;&#x30A8;&#x30E0; - Qiita</a></p></li> <li><a href="https://qiita.com/yug1224/items/04fcda46544ddd05919d">husky + lint-staged&#x306E;&#x652F;&#x914D;&#x304B;&#x3089;&#x89E3;&#x653E;&#x3055;&#x308C;&#x308B;Lefthook&#x3068;&#x3044;&#x3046;&#x9078;&#x629E;&#x80A2; #Git - Qiita</a></li> </ul> <h2 id="過去のアドベントカレンダーです">過去のアドベントカレンダーです!</h2> <ul> <li><p><a href="https://qiita.com/advent-calendar/2022/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2022 - Qiita</a></p></li> <li><p><a href="https://qiita.com/advent-calendar/2021/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2021 - Qiita</a></p></li> <li><p><a href="https://qiita.com/advent-calendar/2020/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2020 - Qiita</a></p></li> </ul> <h1 id="最後に">最後に</h1> <p>HRBrain Advent Calendar 2023を走り切ったわけですが、インターン、先輩エンジニア、EM、TL、PdM、デザイナー、情シス、法務など多くの方が記事執筆をしてくださいました!</p> <p>改めて、アドベントカレンダーを社内で盛り上げるため、執筆していただきありがとうございます!</p> <p>とても感謝しています!!!🙇</p> <p>皆さんの協力があってこそ、HRBrain Advent Calendar 2023を走り切れたと思います!</p> <p>嬉しいことに、HRBrainが発信に積極的というお言葉をいただく機会が増えています!</p> <p>また、運営としてもメンバーが記事を書きやすい環境づくりや、記事がより読まれるためになど努力しないといけないなと改めて思いました。</p> <p>その点も踏まえ、これからも積極的な発信を続けていきたいと思っております!💪</p> <p>これからもどうぞ HRBrain Tech Blogをよろしくお願いいたします!</p> <h1 id="PR">PR</h1> <p>HRBrainでは一緒に働く仲間を募集しています〜!🙆</p> <p>Advent Calendarを見ていただき、興味を持っていただいた方はぜひ弊社の採用ページをご確認ください!!!</p> <p>歴史に残るトライをしよう!😄</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> nakampany Cloud Runでプルリクエストプレビュー環境を作成する hatenablog://entry/6801883189064025201 2023-12-24T00:00:00+09:00 2023-12-24T00:03:37+09:00 HRBrain Advent Calendar 2023 の24日目の記事です。 qiita.com はじめに こんにちはー プラットフォームチームの東島です。 これまでHRBrainのアプリケーション実行環境はGoogle Kubernetes Engine(GKE)を用いて構築してきました。しかし、2023年9月に運用負荷削減、プロダクトエンジニアがオーナーシップを持ってインフラ管理できることを目的にGKEからGoogle Cloud Runへ実行環境を移行しました。この変更に伴い、GKEで構築していた「ブランチデプロイ」と呼ばれるプルリクエストプレビュー(以後ブランチデプロイ)環境もCl… <p>HRBrain Advent Calendar 2023 の24日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2023%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2023 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2023/hrbrain">qiita.com</a></cite></p> <h2 id="はじめに">はじめに</h2> <p>こんにちはー<br/> プラットフォームチームの東島です。</p> <p>これまでHRBrainのアプリケーション実行環境はGoogle Kubernetes Engine(GKE)を用いて構築してきました。しかし、2023年9月に運用負荷削減、プロダクトエンジニアがオーナーシップを持ってインフラ管理できることを目的にGKEからGoogle Cloud Runへ実行環境を移行しました。この変更に伴い、GKEで構築していた「ブランチデプロイ」と呼ばれるプルリクエストプレビュー(以後ブランチデプロイ)環境もCloud Runへ移行しました。 <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2Fkubernetes-branch-deploy" title="Kubernetesの「ブランチデプロイ」で誰もがハッピーなDev環境を作る - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/kubernetes-branch-deploy">times.hrbrain.co.jp</a></cite></p> <p>この記事では、どのようにCloud Runでブランチデプロイ環境の構築を実現したのかを紹介します!</p> <h2 id="HRBrainの構成について">HRBrainの構成について</h2> <p>まず、HRBrainの構成について簡単に説明します!</p> <h3 id="HRBrainの構成">HRBrainの構成</h3> <p>HRBrainはモノレポを採用しており、1つのリポジトリに全てのサービスのコードが存在しています。HRBrainではCloud RunをYAMLで管理しているので、そのYAMLも同じリポジトリに存在しています。</p> <p>全てのサービスはCloud Run上で動いており、ロードバランサーからトラフィックを受け付けるCloud Runサービス以外はサービスごとのプロジェクトに配置しています。</p> <h3 id="HRBrainのデプロイの流れ">HRBrainのデプロイの流れ</h3> <p>ビルドからデプロイまでの流れを説明します。</p> <p>イメージビルドは、main ブランチへのマージがトリガーとなります。Cloud Build トリガーでディレクトリ単位での更新差分を検出し、開発(dev)、ステージング(stg)および本番(prd)環境向けのイメージが作成されます。開発とステージング環境では、イメージの作成が完了次第、自動的にデプロイが実行されます。一方、本番環境においては、GitHub Actionsのworkflow_dispatchを用いてリリースワークフローを手動で実行します。</p> <p>ブランチデプロイ環境はmainにマージする前の検証用にプルリクエストから環境を作成します。</p> <p><figure class="figure-image figure-image-fotolife" title="デプロイの流れ"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tojima-fumiya/20231219/20231219174221.png" width="671" height="531" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>デプロイの流れ</figcaption></figure></p> <h2 id="Cloud-Runでブランチデプロイ構築">Cloud Runでブランチデプロイ構築</h2> <p><figure class="figure-image figure-image-fotolife" title="ブランチデプロイアーキテクチャ全体図"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tojima-fumiya/20231220/20231220042409.png" width="1200" height="749" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>ブランチデプロイアーキテクチャ全体図</figcaption></figure></p> <p>本題である、ブランチデプロイの構築をどのように実現したのかを説明します!</p> <p>ブランチデプロイ環境は既存のdev環境上でCloud Runに<a href="https://cloud.google.com/run/docs/rollouts-rollbacks-traffic-migration?hl=ja#tags">リビジョンにタグを付与する</a>ことで構築します。 このCloud Runの機能を利用することでトラフィックのないリビジョンに対してもリクエストを送ることができます。</p> <pre class="code lang-sh" data-lang="sh" data-unlink><span class="synComment"># AAAというサービスの通常のURL</span> https://AAA-abcdefghij-an.a.run.app <span class="synComment"># pr-12345というタグを付与したリビジョンのURL</span> https://pr-12345---AAA-abcdefghij-an.a.run.app </pre> <p>参考: <a href="https://cloud.google.com/run/docs/tutorials/configure-deployment-previews?hl=ja">&#x30C7;&#x30D7;&#x30ED;&#x30A4; &#x30D7;&#x30EC;&#x30D3;&#x30E5;&#x30FC;&#x306E;&#x69CB;&#x6210; &nbsp;|&nbsp; Cloud Run &#x306E;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8; &nbsp;|&nbsp; Google Cloud</a></p> <h3 id="ブランチデプロイ環境作成の流れ">ブランチデプロイ環境作成の流れ</h3> <p>ブランチデプロイ環境はビルド、デプロイの実行を含め5分前後で作成できます。</p> <p>ブランチデプロイ環境の作成手順は以下になります。</p> <ol> <li>プルリクエストで<code>/deploy-run</code>とコメント <ol type="a"> <li>コメントをトリガーにGitHub Actionsが実行</li> </ol> </li> <li>イメージビルド <ol type="a"> <li>プルリクエストとベースブランチの間に差分のあるサービスを検出</li> <li><a href="https://skaffold.dev/">Skaffold</a>を実行し、Cloud Buildで差分のあるサービスを並列にビルド</li> </ol> </li> <li>デプロイ <ol type="a"> <li> 環境変数を定義する</li> <li>全てのフロントアプリにタグを付与してデプロイ</li> <li>APIゲートウェイにタグを付与してデプロイ</li> <li>差分のあるバックエンドサービスにタグを付与してデプロイ</li> </ol> </li> </ol> <p>mainにマージするときは<code>gcloud run service replace</code>コマンドを使用しているのですが、ブランチデプロイ環境を作成するときにはタグを付与してデプロイするために<code>gcloud run deploy</code>を使用しています。</p> <p>参考までにブランチデプロイ環境でデプロイするときは、下記のコマンドを使用しています。 環境変数とシークレットはプルリクエスト中YAMLのenvセクションから取得しています。こうすることでプルリクエスト中で環境変数の値を更新できます。</p> <pre class="code lang-sh" data-lang="sh" data-unlink><span class="synComment"># ブランチデプロイ環境作成に使用しているコマンド</span> gcloud run deploy AAA-app <span class="synSpecial">--project=&lt;プロジェクトID&gt;</span> <span class="synSpecial">--region=asia-northeast1</span> <span class="synSpecial">--tag=pr-12345</span> <span class="synSpecial">--image=asia-northeast1-docker.pkg.dev/projectID/repoName/AAA-app:pr-12345</span> <span class="synSpecial">--env-vars-file=app-env.yaml</span> <span class="synSpecial">--update-secrets=&lt;シークレット&gt;</span> <span class="synSpecial">--async</span> <span class="synSpecial">--no-traffic</span> </pre> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tojima-fumiya/20231219/20231219183424.png" width="1200" height="729" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="環境変数">環境変数</h3> <p>Cloud Runサービスが各サービスを参照するためのURLを環境変数で管理しています。デプロイ時には、変更があったサービスの環境変数に対し、その値の先頭に<code>pr-&lt;PR番号&gt;---</code>を追加することで、これらの環境変数を更新しています。この方法により、変更のあるサービスはブランチデプロイ環境に、変更のないサービスはdev環境にルーティングされます。このルーティングのメリットは変更がないサービスを参照するときに常に最新の状態を参照できることです。</p> <h3 id="リバースプロキシ">リバースプロキシ</h3> <p>HRBrainの開発環境のURLは<code>&lt;テナントID&gt;.&lt;サービスID&gt;.example.com</code>のような形式にしています。<br/> 一方、ブランチデプロイ環境のURLはCloud RunのURLと同じ形式を採用し<code>pr-&lt;PR番号&gt;---</code>を付与することでアクセスできるようにしてます。つまり、<code>pr-&lt;PR番号&gt;---&lt;テナントID&gt;.&lt;サービスID&gt;.example.com</code>という形式になります。</p> <p>この時、<code>https://&lt;テナントID&gt;.&lt;サービスID&gt;.example.com</code>は<code>https://&lt;サービスID&gt;-abcdefghij-an.a.run.app</code>に、<code>https://pr-&lt;PR番号&gt;---&lt;テナントID&gt;.&lt;サービスID&gt;.example.com</code>は<code>https://pr-&lt;PR番号&gt;---&lt;サービスID&gt;-abcdefghij-an.a.run.app</code>にルーティングする必要があります。</p> <p>それを実現するために、開発環境にはロードバランサーとCloud Runの間にLuaで書いたリバースプロキシのCloud Runを作成しています。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tojima-fumiya/20231219/20231219201430.png" width="780" height="92" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span> <a href="https://speakerdeck.com/yudppp/challenging-an-unknown-programming-language-with-chatgpt">&#x672A;&#x77E5;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;&#x8A00;&#x8A9E;&#x306B;ChatGPT&#x3068;&#x5171;&#x306B;&#x6311;&#x3080; - Speaker Deck</a></p> <h2 id="つまづいたポイント">つまづいたポイント</h2> <h3 id="gcloud-run-service-replaceコマンド">gcloud run service replaceコマンド</h3> <p>HRBrainではCloud RunをYAMLで管理しています。そのため、プルリクエストをmainブランチにマージした時に<code>gcloud run service replace</code>が実行されデプロイされます。しかし、このコマンドには問題があります。それは、リビジョンのタグが消えてしまうことです。replaceコマンドなので、YAMLに定義した内容でデプロイされるのはそれはそうという感じです。</p> <p>この問題を解決するために、dev環境のデプロイではでリビジョンのtrafficをサービスから取得、調整した後にmainブランチのYAMLとマージしてリビジョンのtrafficを含めたYAMLを<code>gcloud run service replace</code>コマンドでデプロイしています。</p> <pre class="code lang-sh" data-lang="sh" data-unlink><span class="synComment"># trafficを取得するコマンド</span> gcloud run services describe <span class="synPreProc">$SERVICE_NAME</span> <span class="synSpecial">--format=</span><span class="synStatement">&quot;</span><span class="synConstant">yaml(spec.traffic)</span><span class="synStatement">&quot;</span> <span class="synSpecial">--project=</span><span class="synPreProc">$PROJECT_ID</span> </pre> <h2 id="GKEのブランチデプロイとの違い">GKEのブランチデプロイとの違い</h2> <h3 id="DBはdev環境と共通のものを使用する">DBはdev環境と共通のものを使用する</h3> <p>GKE時代のブランチデプロイでは、DBもブランチデプロイ環境のサービスごとにGKE内で作成していました。Cloud Runで同じことをするためにCloud SQL インスタンスを作成するにはコスト的に現実的ではないので、断念しdev環境と全ブランチデプロイ環境で共通のDBを参照するようにしています。</p> <p>プルリクエストからDBのスキーママイグレーションをするためのワークフローも作成しており、プルリクエストからスキーマ変更を伴う開発をできるようにしています。</p> <h3 id="dev環境のテナントを使用できる">dev環境のテナントを使用できる</h3> <p>dev環境のDBを利用することで、データをそのまま使用できるため特定の動作確認のために追加でデータを挿入する手間が省けるようになりました。 これにより、資料作成をするCSや動作確認をするQAの負担が少し減りました。</p> <h3 id="コスト">コスト</h3> <p>マイクロサービスの増加により、ブランチデプロイ環境のコストがとても高くなっていました。これをCloud Run化することで、100万/月ほどのコスト削減をすることができました。</p> <h2 id="おわりに">おわりに</h2> <p>リビジョンタグというCloud Runの機能を利用することで、プレビュー環境を作成することができました。</p> <p>最後にプラットフォームチームのラパンさんとVicさん、ブランチデプロイ環境の初期設計を手伝っていただいたHさんとYさん、各サービスのCloud Run移行を手伝っていただいたHRBrainのメンバーに感謝します。</p> <p>HRBrainでは、一緒に働く仲間を募集しています。プラットフォームチームに興味がある方は、ぜひ私たちと一緒に働きませんか?ご応募をお待ちしております! <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> hrb-tojima-fumiya Google Cloud Tech Acceleration Program(TAP)参加レポート hatenablog://entry/6801883189065718520 2023-12-16T05:00:00+09:00 2023-12-16T05:00:01+09:00 HRBrainでは今年もアドベントカレンダーをやっており、この記事はその16日目になります。 qiita.com はじめに こんにちは。HRBrainでテックリードをしている鈴木(善)と申します。 弊社はGoogle Cloud上でサービスを提供しています。今回ご縁があり2023年12月6日〜12月7日の2日間でGoogle Cloud社(以下、Google Cloud)主催のTech Acceleration Program(以下、TAP)に参加させていただきました。 本記事では次の2点について紹介したいと思います。 私たちが行った2日間の流れ 参加する上でおさえておくと良さそうなポイント … <p>HRBrainでは今年もアドベントカレンダーをやっており、この記事はその16日目になります。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2023%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2023 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2023/hrbrain">qiita.com</a></cite></p> <h2 id="はじめに">はじめに</h2> <p>こんにちは。HRBrainでテックリードをしている鈴木(善)と申します。</p> <p>弊社はGoogle Cloud上でサービスを提供しています。今回ご縁があり2023年12月6日〜12月7日の2日間でGoogle Cloud社(以下、Google Cloud)主催のTech Acceleration Program(以下、TAP)に参加させていただきました。</p> <p>本記事では次の2点について紹介したいと思います。</p> <ul> <li>私たちが行った2日間の流れ</li> <li>参加する上でおさえておくと良さそうなポイント</li> </ul> <p>本記事がTAPに興味を持たれた方の参考になれば幸いです。</p> <p><strong>【注意】</strong>プログラムの具体的な内容は参加企業の状況でカスタマイズされます。そのため本記事と必ず同じ流れになるとは限りません。 興味のある方は、本記事最後に貼ったTAPお問い合わせフォームからご確認ください。</p> <h2 id="Tech-Acceleration-ProgramTAPとは">Tech Acceleration Program(TAP)とは</h2> <p>TAPとは、数日間で行われる内製化を支援するためのアジャイル型ワークショップです。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fcloud.google.com%2Fsolutions%2Fin-house-development-support%3Fhl%3Dja" title="内製化支援  |  Google Cloud" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://cloud.google.com/solutions/in-house-development-support?hl=ja">cloud.google.com</a></cite></p> <p>テーマに適したGoogle Cloudのエンジニアやスペシャリストの方と一緒に、アーキテクチャの検討やプロトタイピングを行います。 テーマは参加企業によって異なり、新規プロダクトのアーキテクチャ検討やDXの改善、DBマイグレーションなど様々だそうです。</p> <p>私たちの場合はすでに内製で開発していることもあり、開発体験の向上やプロダクトの改善といったテーマを2日間で行いました。プログラム自体は2日間でしたが実際は準備もあったので、そのあたりも含めて紹介していきます。</p> <h2 id="当日までの準備">当日までの準備</h2> <p>TAP当日までは以下のような流れで進みました。</p> <ol> <li>テーマや参加者の選定</li> <li>事前ミーティング(1回目)</li> <li>テーマ説明資料の準備</li> <li>事前ミーティング(2回目)</li> <li>Google Cloudのサービスのキャッチアップ</li> </ol> <p>それぞれ紹介します。</p> <h3 id="テーマや参加者の選定">テーマや参加者の選定</h3> <p>TAPの話をいただいたときにその流れの概要を伺っていたので、まずTAPで議論したいテーマを決めていきました。</p> <p>限られた時間で成果をしっかり出すために、「解くべき課題が比較的はっきり見えていて」かつ「Google Cloudの力を借りることで改善の可能性が高い」テーマを2つ選びました。(詳細は後述)</p> <ul> <li>【テーマ1】開発環境の改善</li> <li>【テーマ2】利用ユーザーの増加に伴い負荷の高まってきた機能の負荷分散</li> </ul> <p>私たちの場合は、「新規の構想」ではなく「課題の解消」寄りのテーマを選びましたが、前者を選んでいた場合はまた違ったプログラム構成になるのかもしれません。</p> <p>テーマが複数になったため、<strong>どちらをどれぐらいのウェイトで話したいかを予め決めていきました</strong>。結果的にこれは良かったと思います。当日の議論のペースが順調なのかそうでないのか、参加者の目線があった状態で話せました。今回はテーマ1に重点を起きたかったので7:3ぐらいの割合としました。</p> <p>参加は次の4名としました。</p> <ul> <li>VPoE</li> <li>CTO</li> <li>Google Cloudを実際運用するプラットフォームチームのメンバー</li> <li>テーマに強く絡むプロダクトのテックリード(私)</li> </ul> <h3 id="事前ミーティング1回目">事前ミーティング(1回目)</h3> <p>開催2ヶ月前に1時間ほどオンラインミーティングを実施しました。</p> <p>内容は以下のとおりです。</p> <ul> <li>顔合わせ。</li> <li>TAPの説明(Google Cloud)。</li> <li>こちらが考えているテーマの方向性の共有(HRBrain)。</li> <li>実施時期とそこまでの準備内容の決定。</li> </ul> <h3 id="テーマ説明資料の準備">テーマ説明資料の準備</h3> <p>選定した2つのテーマに対して、事前ミーティングで説明するための資料を用意しました。</p> <p>このあたりはドキュメントがすでにあるならスキップできるかと思います。</p> <h3 id="事前ミーティング2回目">事前ミーティング(2回目)</h3> <p>開催1週間前に1時間ほどオンラインミーティングを実施しました。</p> <p>内容は以下のとおりです。</p> <ul> <li>アーキテクチャの概要の共有(HRBrain)。</li> <li>各テーマの説明(HRBrain)。 <ul> <li>現状とそこから生まれている課題の概要説明。</li> <li>目星をつけているサービスがある場合はその共有。</li> </ul> </li> <li>当日各テーマをどういうペース感で話していくかの認識合わせ。</li> </ul> <p>私たちの場合は、ここのディスカッションで「時間が余れば話したいテーマ(詳細後述テーマ3)」が生まれたりもしました。</p> <h3 id="Google-Cloudのサービスのキャッチアップ">Google Cloudのサービスのキャッチアップ</h3> <p>時間が許せばですが、<strong>もともと目星を付けていたGoogle Cloudのサービスや、事前ミーティングで紹介されたサービスがあれば、それのキャッチアップをしておくのがおすすめです。</strong>具体的な議論から始められて当日の貴重な時間を有効に使えます。</p> <p>私たちの場合は<a href="https://cloud.google.com/workstations?hl=ja">Cloud Workstations</a>を用いることで開発環境の改善ができないかと考えていたので、手元で動かしつつ数日間キャッチアップして当日に望みました。</p> <h2 id="会場">会場</h2> <p>私たちの場合は六本木にあるGoogleのオフィスで行われました。場合によっては渋谷のオフィスで行われることもあるそうです。</p> <p>六本木側にはTAP専用のフロアがあります。TAP関連のグッズもありとてもワクワクする素敵な空間でした。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210214934.png" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="1日目">1日目</h2> <p>1日目は、顔合わせなどのオリエンテーションから始まり、テーマ1についてディスカッションやプロトタイピングを行いました。</p> <p>当日は、弊社の運用を支援していただいている<a href="https://g-gen.co.jp/">G-gen</a>社の方も3名参加され、Google Cloud、G-gen、HRBrainの3社のメンバーで進めていきました。</p> <h3 id="オリエンテーション">オリエンテーション</h3> <p>まず、参加者が1人ずつ自己紹介してのアイスブレイクです。</p> <div class="images-row mceNonEditable"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210215204.png" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210215211.png" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></div> <p>そして、建設的なディスカッションをするために大切にすることや、議事メモや画面共有の仕方を共有していよいよディスカッションに入っていきます!</p> <h3 id="ディスカッション">ディスカッション</h3> <p>ディスカッションではどのテーマに対しても概ね以下の流れで進んでいきました。</p> <ol> <li>テーマに関する仕様(概要)やアーキテクチャの共有。</li> <li>実現したい要件や(すでに見えている場合は)解きたい具体的な課題の共有。</li> <li>実現や解決に向けたアーキテクチャ検討やプロトタイピング。</li> </ol> <p><figure class="figure-image figure-image-fotolife" title="(この写真は2日目のものですがディスカッションの雰囲気が伝われば)"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210215823.png" width="1200" height="901" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>(この写真は2日目のものですがディスカッションの雰囲気が伝われば)</figcaption></figure></p> <p>「テーマ1:開発環境の改善」の内容に少しだけ触れると、弊社では2年ほど前に<a href="https://tilt.dev/">Tilt</a>というツールをベースとしたローカル開発環境を構築し、開発の際に必要なサービスがコマンド1つで立ち上がる開発環境を運用してきました。</p> <p>(Tiltベースの開発環境については<a href="https://times.hrbrain.co.jp/entry/2021/12/01/tilt">ブログ</a>や<a href="https://speakerdeck.com/bellwood4486/maikurosahisunorokarukai-fa-huan-jing-wotiltwoshi-tute2nian-yun-yong-sitede-tazhi-jian">スライド</a>にまとめているので、興味ある方は見てみてください!)</p> <p>しかし、事業拡大に伴いマイクロサービス間の連携が増えたことで、開発時に立ち上げるサービスも増え、開発者のPCリソースを圧迫するという課題がありました。このリソース圧迫問題を緩和するアプローチの一つとして、開発環境をCloud Workstationsへ載せ替える実現可能性をテーマとしました。</p> <p>ディスカッションでは、実際に載せ替えて動かし、そこで発生する技術的な問題に対してGoogle Cloudのカスタマーエンジニアやスペシャリストの方にアドバイスをいただきながら、技術的な見通しの立つところまでもっていくことができました。</p> <p>ランチを挟みつつ後半は、実際にCloud Workstationsを使っていくとなった場合のコストやセキュリティ面、またCI/CDとの接続など運用上の懸念点を詰めていき、1日目が終了しました。</p> <h2 id="2日目">2日目</h2> <p>2日目も流れは1日目と同じです。その日の流れやテーマをまず確認してからディスカッションを始めていきます。</p> <h3 id="ディスカッション-1">ディスカッション</h3> <p>もともとの予定では1つ目のテーマを1.5日程度かけて行うつもりでした。しかし実際に進めてみると1日目でほぼ終えることができたため、2日目はテーマ2を最初から取り組んでいきました。</p> <p><strong>具体性の高いテーマを含めるケースでは予定よりも早く終わる場合もあるので、予備のテーマも用意しておくのがよさそうです。</strong></p> <p>「テーマ2:利用ユーザーの増加に伴い負荷の高まってきた機能の負荷分散」の議論では、まず負荷の高まっている該当機能とその現行アーキテクチャを共有し、Google Cloudのサービスを活用しながら分散させる構成を検討していきました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210220040.jpg" width="1200" height="901" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>良かったのは、理想的なアーキテクチャだけでなく、そこに至るための中間ステップとなるアーキテクチャも含めて考えられたことです。<strong>段階的に進化可能な実行性の高いアプトプットを短い時間で得ることができました</strong>。このあたりはGoogle Cloudのスペシャリストを交えて集中して議論するメリットだと思います。</p> <p>最後にやや時間が余ったため、事前ミーティング中に生まれた3つ目のテーマである「”数年先に実現したいとある価値提供”に向け、Google Cloudをどのように活用できそうか、また、そのためには今どのようなアーキテクチャであればよいか」についてディスカッションしました。(ややぼかした書き方になっております。ご了承ください🙏)</p> <p>ただ、そもそもまだ要件の定まっていないことも多かったため、こちらのやりたいことを丁寧にヒアリングしていただいたものの、仮説に仮説を重ねる議論になりやすく短時間で扱うテーマとしては難しかったです。<strong>新規構想に関するテーマの場合は少なくともビジネス要件までは決めておく必要がありそうだと感じました。</strong></p> <h3 id="ラップアップ">ラップアップ</h3> <p>最後に参加者全員で振り返りをし、2日間のプログラムを終えました。</p> <p>振り返りで出たポイントとしては、以下などがありました。</p> <ul> <li>日々の業務と切り離してまとまった時間をしっかり取ることでテーマに集中できた。</li> <li>時間をしっかりとって技術的なディスカッションができるのは素直に楽しい。</li> <li>Google Cloudの(TAPで取り上げるサービスの)事前検証がされていたので、2日間という時間を有意義に使うことができた。</li> <li>実際に管理・運用していくときの観点も聞くことができてよかった。</li> </ul> <p>私たちの場合は2日間を通じ、最終的に大小合わせて3つのテーマに取り組む結果となりました。</p> <p>当日までの準備や数日間集中してディスカッションする大変さはあるものの、Google Cloudのスペシャリストを交えて課題解決に取り組めるのは非常に有意義な時間でした!</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231213/20231213092643.jpg" width="1200" height="675" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="ランチやお土産">ランチやお土産</h2> <p>ランチはTAP参加メンバー全員で、テーマとはまた違う話でワイワイ盛り上がる美味しく楽しい時間でした! <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210220306.png" width="1200" height="901" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>そしてさらにお土産もいただきご満悦な弊社VPoE。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki-yoshiharu/20231210/20231210220514.png" width="900" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="まとめ">まとめ</h2> <p>本記事では、弊社が参加させていただいたTech Acceleration Program(TAP)の様子を事例として紹介しました。</p> <p>テーマ1のCloud Workstationsを活用した新しい開発環境については、パイロット運用に向けて進んでいます。</p> <p>本記事を読んでTAPが気になった方は、ぜひ次のリンクから問い合わせてみてください! <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Finthecloud.withgoogle.com%2Fgc-tap-jp-22%2Fcontact.html" title="お問い合わせ  |  Tech Acceleration Program" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://inthecloud.withgoogle.com/gc-tap-jp-22/contact.html">inthecloud.withgoogle.com</a></cite></p> <p>HRBrainは、今回のような機会も活用しつつ技術的な課題に向き合い、さらに並行して新しいサービスもどんどん開発する面白いフェーズにいます。少しでも気になった方はぜひ一度カジュアル面談でお話ししましょう! <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain 採用情報" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> hrb-suzuki-yoshiharu Findy Team+ Award受賞の裏側:GitHub通知の最適活用法 hatenablog://entry/6801883189064082103 2023-12-10T12:43:44+09:00 2023-12-10T12:43:44+09:00 HRBrainの鈴木です。 ご報告があります。 先日、Findy Team+ Award 2023において、所属するチームが過去1年間の成果によりリードタイムスコアが高いとして表彰されました。 findy.co.jp 授賞式の写真 この賞は2,500以上のチームから選ばれたもので、我々のチームはその中で3番目以内に位置しました(3社が同時に受賞しているため)。 表彰されたプロダクトはサブプロジェクトとして進行しているプロジェクトで閾値的に運が良く受賞した部分もあると思っていますが、リードタイムを早めるために行っているアプローチをいくつかご紹介させていただきます。 行なっていること 1. Git… <p>HRBrainの鈴木です。</p> <p>ご報告があります。 先日、<a href="https://findy.co.jp/1749/">Findy Team+ Award 2023</a>において、所属するチームが過去1年間の成果によりリードタイムスコアが高いとして表彰されました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ffindy.co.jp%2F1749%2F" title="エンジニア組織の開発生産性が優れた企業「Findy Team+ Award 2023」〜250の企業と2,500を超えるチームから38社を選出〜 | ニュース | ファインディ株式会社(Findy Inc)" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://findy.co.jp/1749/">findy.co.jp</a></cite></p> <p><figure class="figure-image figure-image-fotolife" title="授賞式の写真"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20231204/20231204200714.jpg" width="1200" height="674" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>授賞式の写真</figcaption></figure></p> <p>この賞は2,500以上のチームから選ばれたもので、我々のチームはその中で3番目以内に位置しました(3社が同時に受賞しているため)。</p> <p>表彰されたプロダクトはサブプロジェクトとして進行しているプロジェクトで閾値的に運が良く受賞した部分もあると思っていますが、リードタイムを早めるために行っているアプローチをいくつかご紹介させていただきます。</p> <h2 id="行なっていること">行なっていること</h2> <h3 id="1-GitHubの通知設定">1. GitHubの通知設定</h3> <p>GitHubの通知設定を徹底しました。これにより、PullRequest、コメント、承認などのイベントが即座に通知され、効果的なコミュニケーションが可能になりました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fslack.github.com%2F" title="GitHub + Slack" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://slack.github.com/">slack.github.com</a></cite></p> <p>正しく設定できると下記のようにPullRequest、コメント、承認などのイベントを即座に受け取ることができます。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20231210/20231210114917.png" width="1200" height="1017" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="2-再度レビュー依頼のボタン">2. 再度レビュー依頼のボタン</h3> <p>PullRequestに対するReviewerのコメントには再度レビュー依頼のボタンを活用しています。これにより、修正が行われた場合、レビュワーに通知が適切に送信され、スムーズなプロセスが確立されました。</p> <p>PullRequestに対してReviewerがコメントを行うとくるくるアイコンの状態になります。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20231210/20231210121553.png" width="652" height="134" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>コメントに対して修正を行いPushした場合に何もしなければ、Reviewerに対して変更の通知が行われません。 コード修正後はくるくるアイコンを押すことによって再度Reviewerに通知を送ることが可能です。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20231204/20231204205755.png" width="654" height="150" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>こちらを徹底することで早く変更をReviewerに知らせることができます。</p> <h3 id="3-Code-ownersの設定">3. Code ownersの設定</h3> <p>上記二つの対応を行うことで通知がたくさんされるようになりました。 HRBrainでは全プロダクト共通でアプリケーションのコードは一つのレポジトリ(monorepo)で行なっているため不要な通知がたくさん来てしまうことになります。 それを避けるためにもコードオーナーを適切に設定することが重要です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fdocs.github.com%2Fja%2Frepositories%2Fmanaging-your-repositorys-settings-and-features%2Fcustomizing-your-repository%2Fabout-code-owners" title="コードオーナーについて - GitHub Docs" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners">docs.github.com</a></cite></p> <h2 id="まとめ">まとめ</h2> <p>結局通知を適切なタイミングで適切な人に送られることを意識したフローを整えることが重要で、それが結果としてリードタイムスコアの表彰に繋がったと思っています。 またタイトルはChatGPTに考えていただきました。</p> hrb-suzuki 【HRBrain Advent Calendar 2023】絶賛開催中!part1 hatenablog://entry/6801883189064602346 2023-12-08T09:55:25+09:00 2023-12-23T02:30:55+09:00 こんにちは!現在HRBrainで24卒インターンをしています中嶋です! 現在、アドベントカレンダーの執筆でアセアセ💦な状態です! もうすぐアドベントカレンダーが開催されて1週間が経ちますね! HRBrain Advent Calendar 2023 が絶賛開催中です! 🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄 qiita.com すでに20以上の記事が投稿されています!(12/1〜12/8まで) エンジニアだけでなく、デザイナーやPdMの記事、そしてHRBrainに関する記事など、さまざまなテーマについての記事がたくさん投稿されています!!🙆 是非一度ご覧く… <p>こんにちは!現在HRBrainで24卒インターンをしています中嶋です!</p> <p>現在、アドベントカレンダーの執筆でアセアセ💦な状態です!</p> <p>もうすぐアドベントカレンダーが開催されて1週間が経ちますね!</p> <p>HRBrain Advent Calendar 2023 が絶賛開催中です!</p> <h2 id="HRBrain-Advent-Calendar-2023はこちら">🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄</h2> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2023%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2023 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2023/hrbrain">qiita.com</a></cite></p> <p>すでに20以上の記事が投稿されています!(12/1〜12/8まで)</p> <p>エンジニアだけでなく、デザイナーやPdMの記事、そしてHRBrainに関する記事など、さまざまなテーマについての記事がたくさん投稿されています!!🙆</p> <p>是非一度ご覧ください!</p> <p>ここまでで更新された記事はこちらです〜</p> <h3 id="121-更新">12/1 更新</h3> <ul> <li><a href="https://qiita.com/yug1224/items/4230dcf9fc557d721f1f">&#x30D6;&#x30ED;&#x30B0;&#x6821;&#x6B63;&#x306E;&#x4F5C;&#x6CD5;&#xFF1A;textlint&#x3067;&#x5F37;&#x5316;&#x3059;&#x308B;&#x30C6;&#x30AF;&#x30CB;&#x30AB;&#x30EB;&#x30E9;&#x30A4;&#x30C6;&#x30A3;&#x30F3;&#x30B0; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/mk_mitarashi/items/e0f331cdc7ef3b8ad763">&#x975E;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;PdM&#x304C;&#x7ACB;&#x3061;&#x4E0A;&#x304C;&#x308A;&#x3067;&#x3076;&#x3064;&#x304B;&#x3063;&#x305F;3&#x3064;&#x306E;&#x58C1;&#x3068;&#x305D;&#x306E;&#x8D85;&#x3048;&#x65B9; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://qiita.com/_ken_/items/06aa4fcd390dba39452a">&#x30D6;&#x30E9;&#x30A6;&#x30B6;&#x4E0A;&#x3067;&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x306E;&#x5185;&#x5BB9;&#x3092;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x30B3;&#x30DE;&#x30F3;&#x30C9; git instaweb &#x3092;&#x4F7F;&#x3063;&#x3066;&#x307F;&#x308B; #Git - Qiita</a></li> </ul> <h3 id="122-更新">12/2 更新</h3> <ul> <li><a href="https://qiita.com/Nub/items/a136b2d610739ac2f9d6">&#x5909;&#x6570;&#x5BA3;&#x8A00;&#x3068;&#x30B9;&#x30B3;&#x30FC;&#x30D7;&#x306E;&#x53D6;&#x308A;&#x6271;&#x3044;&#x306B;&#x6C17;&#x3092;&#x3064;&#x3051;&#x3088;&#x3046; #Go - Qiita</a></li> <li><a href="https://note.com/fine_stilt677/n/n1f02993507c7">2023&#x5E74;&#x6C7A;&#x5B9A;&#x7248;&#xFF01;&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2;&#x306B;&#x805E;&#x3044;&#x3066;&#x307F;&#x305F;&#x3001;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x306B;&#x77E5;&#x3063;&#x3066;&#x3044;&#x3066;&#x3082;&#x3089;&#x3044;&#x305F;&#x3044;&#x3053;&#x3068;3&#x9078;&#xFF5C;&#x3042;&#x3093;&#x3069;&#x3046;</a></li> <li><a href="https://qiita.com/Iriko666666/items/a924bb64f2dadec9a173">Jira Cloud for Sheets&#x3068;&#x30B9;&#x30D7;&#x30EC;&#x30C3;&#x30C9;&#x30B7;&#x30FC;&#x30C8;&#x306E;Query&#x95A2;&#x6570;&#x3092;&#x4F7F;&#x7528;&#x3057;&#x3066;Jira ISSUES&#x3092;&#x96C6;&#x8A08;&#x3059;&#x308B;&#x2460; #AdventCalendar2023 - Qiita</a></li> </ul> <h3 id="123-更新">12/3 更新</h3> <ul> <li><a href="https://qiita.com/satomi310/items/685951139983f913adeb">useState&#x306F;&#x306A;&#x305C;&#x5024;&#x3092;&#x4FDD;&#x6301;&#x3067;&#x304D;&#x308B;&#x306E;&#x304B;&#x3082;&#x3046;1&#x56DE;&#x8003;&#x3048;&#x308B; #React - Qiita</a></li> <li><a href="https://qiita.com/ren7087/items/fe92366bcd5fa86d9127">GitHub&#x306E;&#x30D7;&#x30ED;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x3092;&#x30B3;&#x30FC;&#x30C9;&#x66F8;&#x304B;&#x305A;&#x306B;&#x8A2D;&#x5B9A;&#x3057;&#x305F;&#x3044; #GitHub - Qiita</a></li> <li><a href="https://qiita.com/pasca-l/items/40bb1d4e9afa3033db2e">&#x30B3;&#x30DF;&#x30C3;&#x30C8;&#x30E1;&#x30C3;&#x30BB;&#x30FC;&#x30B8;&#x306E;&#x30B9;&#x30BF;&#x30A4;&#x30EB;&#x3092;&#x7D71;&#x4E00;&#x3059;&#x308B; #GitHub - Qiita</a></li> </ul> <h3 id="124-更新">12/4 更新</h3> <ul> <li><a href="https://qiita.com/nakampany/items/91d77f1b87278ed40e81">&#x306A;&#x305C;&#x50D5;&#x306F;&#x516C;&#x5F0F;&#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;&#x3092;&#x8AAD;&#x3080;&#x306E;&#x304C;&#x82E6;&#x624B;&#x306A;&#x306E;&#x304B; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/aya_mon/items/33621dc3bf90de17d9ab">&#x4ED5;&#x69D8;&#x306B;&#x7591;&#x554F;&#x3092;&#x6301;&#x3063;&#x305F;&#x6642;&#x306B;&#x3059;&#x308B;&#x3068;&#x826F;&#x3044;&#x3053;&#x3068; #QA&#x30A8;&#x30F3;&#x30B8;&#x30CB;&#x30A2; - Qiita</a></li> <li><a href="https://qiita.com/hrb-nagasaki/items/e6e533990f9447ecafcd">&#x4F55;&#x5EA6;&#x8EE2;&#x751F;&#x3057;&#x3066;&#x3082;&#x60C5;&#x30B7;&#x30B9;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3046;&#xFF01; #AdventCalendar2023 - Qiita</a></li> </ul> <h3 id="125-更新">12/5 更新</h3> <ul> <li><a href="https://qiita.com/kota33/items/20a884cbd969cf1ce087">&#x6B21;&#x4E16;&#x4EE3;&#x306E;&#x30A8;&#x30C7;&#x30A3;&#x30BF;&#x30FC; Cursor(&#x30AB;&#x30FC;&#x30BD;&#x30EB;) &#x3092;&#x4F7F;&#x3044;&#x3053;&#x306A;&#x3059; #VSCode - Qiita</a></li> <li><a href="https://qiita.com/mi2__user/items/66f43317a1665a8980c4">SSH&#x63A5;&#x7D9A;&#x3057;&#x305F;Ubuntu&#x306E;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x3067;&#x4F55;&#x3082;&#x8868;&#x793A;&#x3055;&#x308C;&#x306A;&#x3044;&#x3001;&#x30BF;&#x30D6;&#x88DC;&#x5B8C;&#x3082;&#x52B9;&#x304B;&#x306A;&#x3044;&#x3002; #Linux - Qiita</a></li> <li><a href="https://note.com/yka2n/n/na3dcd6391783">M&amp;A&#x3067;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x30B8;&#x30E7;&#x30A4;&#x30F3;&#x3057;&#x305F;&#x30B9;&#x30BF;&#x30FC;&#x30C8;&#x30A2;&#x30C3;&#x30D7;&#x306E;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x8CAC;&#x4EFB;&#x8005;&#x304C;&#x3001;&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x3092;&#x5C55;&#x958B;&#x3059;&#x308B;&#x30D9;&#x30F3;&#x30C1;&#x30E3;&#x30FC;&#x306B;&#x5165;&#x3063;&#x3066;&#x898B;&#x3048;&#x3066;&#x3044;&#x308B;&#x666F;&#x8272;&#x3092;&#x307E;&#x3068;&#x3081;&#x308B;&#xFF5C;Yoshiyuki Kato</a></li> </ul> <h3 id="126-更新">12/6 更新</h3> <ul> <li><a href="https://qiita.com/okr_/items/13750eb6eabfd7c4ae51">React&#x306B;&#x304A;&#x3051;&#x308B;Props Drilling&#x554F;&#x984C;&#x3092;&#x610F;&#x8B58;&#x3057;&#x305F;&#x30B3;&#x30F3;&#x30DD;&#x30FC;&#x30CD;&#x30F3;&#x30C8;&#x8A2D;&#x8A08; #React - Qiita</a></li> <li><a href="https://qiita.com/Iriko666666/items/aa87b77e5950c57ab126">Jira Cloud for Sheets&#x3068;&#x30B9;&#x30D7;&#x30EC;&#x30C3;&#x30C9;&#x30B7;&#x30FC;&#x30C8;&#x306E;Query&#x95A2;&#x6570;&#x3092;&#x4F7F;&#x7528;&#x3057;&#x3066;Jira ISSUES&#x3092;&#x96C6;&#x8A08;&#x3059;&#x308B;&#x2461; #AdventCalendar2023 - Qiita</a></li> <li><a href="https://note.com/fnwiya/n/n3dacba99c54a">&#x7E70;&#x308A;&#x8FD4;&#x3057;&#x30A4;&#x30D9;&#x30F3;&#x30C8;&#x3092;&#x6271;&#x3046;&#x30C7;&#x30FC;&#x30BF;&#x69CB;&#x9020;&#xFF5C;fnwiya</a></li> </ul> <h3 id="127-更新">12/7 更新</h3> <ul> <li><a href="https://qiita.com/yvngodowny/items/50f415413a4f55a0d7b0">Web Speech API &#x3092;&#x4F7F;&#x3063;&#x305F;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x306E;&#x30D0;&#x30C3;&#x30AF;&#x30A8;&#x30F3;&#x30C9;&#x90E8;&#x5206;&#x4F5C;&#x3063;&#x3066;&#x307F;&#x305F; #Python - Qiita</a></li> <li><a href="https://qiita.com/riku0202/items/802ee98ee847135a6c94">&#x30D6;&#x30E9;&#x30A6;&#x30B6;&#x9593;&#x3067;3D&#x30B7;&#x30FC;&#x30F3;&#x3092;&#x540C;&#x671F;: localStorage&#x3068;Three.js&#x306E;&#x9769;&#x65B0;&#x7684;&#x6D3B;&#x7528; #JavaScript - Qiita</a></li> <li><a href="https://qiita.com/hrb_yoshi/items/b9301fac80255d39de87">n&#x5E74;&#x5F8C;&#x306E;QA&#x5DE5;&#x6570;&#x7206;&#x767A;&#x3092;&#x6291;&#x6B62;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B; #&#x30C6;&#x30B9;&#x30C8;&#x81EA;&#x52D5;&#x5316; - Qiita</a></li> </ul> <h3 id="128-更新">12/8 更新</h3> <ul> <li><a href="https://qiita.com/tomotaka_s/items/e9196ac2722d6d316cb7">GraphQL&#x3001;Go&#x3001;React&#x3001;TypeScript&#x3092;&#x4F7F;&#x3063;&#x305F;Todo&#x30A2;&#x30D7;&#x30EA;&#x306E;&#x958B;&#x767A;&#xFF08;&#x30D5;&#x30ED;&#x30F3;&#x30C8;&#x30A8;&#x30F3;&#x30C9;&#x7DE8;&#xFF09; #&#x521D;&#x5FC3;&#x8005; - Qiita</a></li> <li><a href="https://qiita.com/inanohashi/items/e20d468c88dd6e0af80b">&#x3010;Slack&#x306E;&#x65B0;&#x30EF;&#x30FC;&#x30AF;&#x30D5;&#x30ED;&#x30FC;&#x30D3;&#x30EB;&#x30C0;&#x30FC;&#xFF08;Workflow Builder&#xFF09;&#x3011;&#x30B7;&#x30E7;&#x30FC;&#x30C8;&#x30AB;&#x30C3;&#x30C8;&#x306F;&#x3069;&#x3053;&#x3078; #Slack - Qiita</a></li> <li><a href="https://note.com/tsuji_design/n/nfc54261e267e">&#x3010;&#x80A9;&#x3053;&#x308A;&#x89E3;&#x6D88;&#x3011;&#x30D7;&#x30ED;&#x30C0;&#x30AF;&#x30C8;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x30FC;&#x306B;&#x3088;&#x308B;&#x30AD;&#x30FC;&#x30DC;&#x30FC;&#x30C9;&#x9078;&#x3073;&#x306E;&#x65C5;&#xFF5C;&#x3064;&#x30FC;&#x3058;&#x30FC;</a></li> </ul> <h3 id="過去のアドベントカレンダーです">過去のアドベントカレンダーです!</h3> <ul> <li><a href="https://qiita.com/advent-calendar/2022/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2022 - Qiita</a></li> <li><a href="https://qiita.com/advent-calendar/2021/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2021 - Qiita</a></li> <li><a href="https://qiita.com/advent-calendar/2020/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2020 - Qiita</a></li> </ul> <h2 id="PR">PR</h2> <p>HRBrainでは一緒に働く仲間を募集しています〜!🙆</p> <p>Advent Calendarを見ていただき、興味を持っていただいた方はぜひ弊社の採用ページをご確認ください!!!</p> <p>歴史に残るトライをしよう!😄</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> nakampany 【HRBrain Advent Calendar 2023】今年も開催します!!👏👏👏 hatenablog://entry/6801883189062153362 2023-11-27T19:08:42+09:00 2023-12-23T02:32:09+09:00 こんにちは!現在HRBrainで24卒インターンをしています中嶋です! 最近はとても寒くなり、MacBookがキンキンに冷えているので人差し指だけでタイピングをしていますw ということで、今年もまたそんな季節がやってきました〜! 12月といえば、みんな大好きアドベントカレンダーーーー!!!!!! HRBrainは毎年アドベントカレンダーで盛り上がっているので、今年も盛り上がらないわけないですよ〜 🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄 qiita.com 今年はエンジニア・デザイナー・PdMなどの開発メンバー50名を超えるメンバーが多様なテーマで記事を投稿… <p>こんにちは!現在HRBrainで24卒インターンをしています中嶋です!</p> <p>最近はとても寒くなり、MacBookがキンキンに冷えているので人差し指だけでタイピングをしていますw</p> <p>ということで、今年もまたそんな季節がやってきました〜!</p> <p>12月といえば、みんな大好きアドベントカレンダーーーー!!!!!!</p> <p>HRBrainは毎年アドベントカレンダーで盛り上がっているので、今年も盛り上がらないわけないですよ〜</p> <h2 id="HRBrain-Advent-Calendar-2023はこちら">🎄🎄🎄HRBrain Advent Calendar 2023はこちら🎄🎄🎄</h2> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2023%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2023 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2023/hrbrain">qiita.com</a></cite></p> <p>今年はエンジニア・デザイナー・PdMなどの開発メンバー50名を超えるメンバーが多様なテーマで記事を投稿していきます!👏👏👏</p> <p>記事では、、、</p> <ul> <li>HRBrainには、どんなエンジニアがいるのだろう?</li> <li>HRBrainのエンジニアは、どんな技術を使ってサービスを作っているのだろう?</li> <li>HRBrainで働くデザイナー・PdMはどんな人なんだろう?</li> </ul> <p>がたくさん知れると思うので、ぜひとも購読をお願いします🙇‍♂️🙇‍♂️🙇‍♂️</p> <p>また、50名ほどの参加者ですが、カレンダー3枚は必ず埋める予定なので、お楽しみに!!✌️✌️✌️</p> <div class="images-row mceNonEditable"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/n/nakampany/20231127/20231127183602.png" width="1200" height="833" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/n/nakampany/20231127/20231127190224.png" width="1200" height="889" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/n/nakampany/20231127/20231127190240.png" width="1200" height="902" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></div> <h2 id="過去のアドベントカレンダーです">過去のアドベントカレンダーです!</h2> <ul> <li><a href="https://qiita.com/advent-calendar/2022/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2022 - Qiita</a></li> <li><a href="https://qiita.com/advent-calendar/2021/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2021 - Qiita</a></li> <li><a href="https://qiita.com/advent-calendar/2020/hrbrain">HRBrain&#x306E;&#x30AB;&#x30EC;&#x30F3;&#x30C0;&#x30FC; | Advent Calendar 2020 - Qiita</a></li> </ul> <h2 id="PR">PR</h2> <p>HRBrainでは一緒に働く仲間を募集しています〜!🙆</p> <p>Advent Calendarを見ていただき、興味を持っていただいた方はぜひ弊社の採用ページをご確認ください!!!</p> <p>HRBrain文化を一緒に作っていきましょう!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> nakampany 【HRBrainインターンLT: 未来を創る24卒のビジョン】を開催しました! hatenablog://entry/820878482973874475 2023-10-26T00:00:00+09:00 2023-12-13T11:29:44+09:00 【HRBrainインターンLT: 未来を創る24卒のビジョン】を開催しました <p>はじめまして!現在HRBrainで24卒インターンをしています中嶋です!</p> <p>最近、NetflixでHUNTER×HUNTERが見れらるようになり、毎日2話ずつ見進めて行くのが、唯一の楽しみです(笑) 個人的には、ハンター試験でゴンがヒソカからプレートを奪うシーンがすごく好きです!</p> <p>ということで、今回は24卒インターン生で社内向けのLT(ライトニングトーク)会を開催しましたので、その紹介をしたいと思います!</p> <ul class="table-of-contents"> <li><a href="#はじめに">はじめに</a><ul> <li><a href="#この記事で伝えたいこと">この記事で伝えたいこと</a></li> </ul> </li> <li><a href="#なぜLT会を開催したか">なぜLT会を開催したか</a><ul> <li><a href="#先輩社員に顔と名前を覚えてもらう">先輩社員に顔と名前を覚えてもらう</a></li> <li><a href="#自分が将来やりたいことをアピールし期待してもらう">自分が将来やりたいことをアピールし、期待してもらう</a></li> <li><a href="#今後のLTにつながるようにする">今後のLTにつながるようにする</a></li> </ul> </li> <li><a href="#企画実施した感想">企画・実施した感想</a><ul> <li><a href="#LT前のアクション">LT前のアクション</a></li> <li><a href="#LT後のアクション">LT後のアクション</a></li> </ul> </li> <li><a href="#LTの内容について">LTの内容について</a></li> <li><a href="#参加者の声">参加者の声</a></li> <li><a href="#まとめ">まとめ</a></li> </ul> <h2 id="はじめに">はじめに</h2> <p>今回のLT会は、24卒の内定者インターン生を中心に企画・運営をしました!</p> <p>イベントの企画・運営をするのは、インターン生にとって初めての試みであったにも関わらず、主体的に動けたかなと思うので、その経緯と私が担当した役割について記録しておきたいと思います!</p> <p>その前に、自分の自己紹介から失礼します!</p> <p>2023年5月にフルリモートでインターンとしてジョインし、もう少しで半年です!フロントエンド(React)とバックエンド(Go)、双方のコーディングを実施するだけでなく、時にはプロジェクトの要件定義から関わるなど、インターンながら社員とほぼ変わりない業務を経験させていただいています!</p> <p>この記事は、HRBrainに興味を持っている方、HRBrainのインターンシップ、HRBrainでの新卒内定後の状況について不安を抱えている方がどのようなものかを知りたい方々を対象にしています。さまざまな方に読んでいただければと思います!</p> <h3 id="この記事で伝えたいこと">この記事で伝えたいこと</h3> <p>この記事を通じて「LT会を開催しました!」と書いていますが、この記事で伝えたいことは、</p> <p><strong>HRBrainには、インターン生でもやりたいことを実現できる環境がある!</strong></p> <p>ということです!</p> <h2 id="なぜLT会を開催したか">なぜLT会を開催したか</h2> <p>インターン生が、LT会を企画・運営した理由(目的)は主に3つあります。</p> <ol> <li><strong>先輩社員に顔と名前を覚えてもらう</strong></li> <li><strong>自分が将来やりたいことをアピールし、期待してもらう</strong></li> <li><strong>今後のLTにつながるようにする</strong></li> </ol> <p>以下で、詳しく説明しまーす!!!</p> <h3 id="先輩社員に顔と名前を覚えてもらう">先輩社員に顔と名前を覚えてもらう</h3> <p>私を含め、24卒のインターン生はまだ入社したばかりで、先輩社員に顔や名前を覚えてもらえていない方がほとんどでした。 同じチームやプロジェクトに所属していないと、なかなか覚えてもらうのが難しいですよね。 オフラインでのインターンやtimesなどで日々目に止まるような多くの発信をしていれば、自然と覚えてもらうことができるとおもいますが、、、</p> <p>そこで、上記の過程をスッ飛ばして顔と名前を覚えてもらおうと思い、LT会を利用しました!</p> <p>5分程度のプレゼンで印象に残せれば、それだけで大きなアドバンテージになりますよね。初めて会う方でも、この前LT聞いてくれました?から会話がスタートする時があり、会話が弾むかもです。</p> <p>5分程度で顔と名前を覚えてもらえる可能性があるならやらない方が勿体無いという考えで企画をしました。</p> <h3 id="自分が将来やりたいことをアピールし期待してもらう">自分が将来やりたいことをアピールし、期待してもらう</h3> <p>これがおそらく一番の目的かなと思っています。</p> <p>若手エンジニアとして、成長したいと思っていますが、具体的にどのようなことをして成長すればよいのでしょうか? あなたなら何をしますか?</p> <p>技術力を伸ばすために、毎日5時間勉強するとか?普段よりもアウトプットの量を増やすとか?</p> <p>もちろん大切なことです!</p> <p>私は、自分がまだできないかなと思っている仕事を引き受けて、その成功体験を積むことだと思っています。(失敗だったとしても、それはそれで成長!)</p> <p>要するに、大きい責任のある仕事を任されて、成功することが成長につながると思っています!</p> <p>じゃあ、大きい責任のある仕事を任されるには、どうすれば良いか?</p> <p>「伝える」ことです!!</p> <p>自分が将来やりたいことをアピールして、自分自身に期待してもらうことです!</p> <p>大きい責任のある仕事を任されるために、自分自身に期待してもらう場が欲しく、それを実現するために企画したのも理由の一つです。</p> <h3 id="今後のLTにつながるようにする">今後のLTにつながるようにする</h3> <p>このLT会を通じて、私たち24卒のインターン生が積極的にコミュニケーションを取り、自らを発信するスキルを向上させるのも重要だと思っています。</p> <p>なので、初めての方もいるのでLTへのハードルを下げる意味でも、このLTを企画しました。</p> <p>また、HRBrainで若手が発信する文化を築きたいと言う個人的な思いもありました!(アドベントカレンダーも頑張りますよ!!)</p> <h2 id="企画実施した感想">企画・実施した感想</h2> <p>今回初めてLT会を企画・運営し、多くのことを学びがありました。</p> <p>このLTはお初LTだったので、インターン生としての立場から先輩やエンジニアリングマネージャー(EM)にお忙しい中時間を割いてもらい相談しながら、企画・運営しました。</p> <p>LTを企画する上で、LTすること自体初めてで何から始めたらいいのか?</p> <p>インターン生全員参加してくれるのか?</p> <p>インターン生なので業務と学業との両立はできるのか?</p> <p>遠方の方がいるので、オンライン開催がいいのか?</p> <p>めちゃめちゃ悩みました。。。</p> <p>大まかに、考え行った運営としての動きは、以下です。</p> <h3 id="LT前のアクション">LT前のアクション</h3> <p>LT前のアクションは、こんな感じです!</p> <ul> <li>対象は社内向けか?外部向けか?</li> <li>ターゲットとなる層はどうか?23卒、24卒、就活生、Go言語を使っているエンジニアなど</li> <li>LTはオンラインで開催するか、オフラインで開催するか?</li> <li>コストと費用対効果を見積もる</li> <li>コンテンツをどのように決めるか</li> <li>LTの目的を明確にし、目標を設定する</li> <li>LT全体のタイトルを決定する</li> <li>登壇者と参加者を募集する。ただ「LT会をやります!」とアナウンスするだけでは人は集まらない</li> <li>参加者募集のアナウンスをSlackで行う</li> <li>そこで『どうしたらみんな参加してくれるか?』を考える</li> <li>LTのプレゼンテーション用テンプレートを用意する</li> <li>資料作成の進捗確認と、もくもく会を開催する</li> <li>タイムスケジュールを組み立てる。1人あたりの時間とバッファなどを考慮</li> <li>社内イベントだったため、全社員に向けて2週間前、1週間前、2日前にSlackでアナウンスする</li> <li>LT会の司会と進行を行う</li> <li>LT後の感想を、ボード陣やお世話になっている先輩社員一人一人に求める</li> </ul> <p>振り返ってみると、やるべきことは想像以上に多かった(笑)</p> <p>特に、一番大変だったのは、ターゲット決めと『参加に迷っている方がどうすれば参加してくれるか?』を考えるところですかねーーー(LT運営経験がある方は共感してほしい(笑))</p> <h3 id="LT後のアクション">LT後のアクション</h3> <p>LT後のアクションは、こんな感じです!</p> <ul> <li>イベントの記事を投稿する</li> <li>LTを録画してアーカイブをGoogleドライブ等に公開する</li> <li>アンケートを実施してフィードバックを得る</li> <li>イベントを振り返り、次回に向けての改善点を考える</li> </ul> <h2 id="LTの内容について">LTの内容について</h2> <p>LTのタイトルは、【HRBrainインターンLT: 未来を創る24卒のビジョン】で決めたため、未来の話を中心に登壇者にはコンテンツをお願いしました。</p> <p>自分のLTは、半期やったことが5割、これからやりたいこと4割、半期の成果アピール1割のイメージで描きました。</p> <p><figure class="figure-image figure-image-fotolife" title="登壇写真"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/n/nakampany/20231115/20231115191055.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>登壇写真</figcaption></figure></p> <p>あまり詳しく書けずすみません!(笑)</p> <p>自分の感想ですが、それぞれのインターン生の未来に向けたビジョンを知ることで、お互いに刺激を受け、今後に向けてポジティブな影響をもらうことができてよかったなと思いました!</p> <h2 id="参加者の声">参加者の声</h2> <p>次回のLT会開催に向けて、私たちは先輩エンジニアの皆さんにアンケートを実施し、LT会に対する感想をいただきました。</p> <p>非常に良いフィードバックがいくつかいただいたので、ここで一部を紹介したいと思います!</p> <blockquote><p>24新のみなさんの熱量を感じるプレゼンでした。</p> <p>実はこれまで、トップダウン的にLT会を実施したことはあっても、ボトムアップ的にLT会が実施されたことはありませんでした。 組織としてはやってほしいと思っていても、「誰に声をかけて良いか分からない、仲間が集まらない、実施して変な目で見られるのが不安」など様々な理由により実施されてきませんでした。</p> <p>そんな中、今回のLT会は初めてのボトムアップの会となりました。 慣れが無いことと、仲間がいたからこそチャレンジできたことだと思います。</p> <p>このようなイベントを企画したメンバーがまず素晴らしいことと、いろいろあったが最終的には前向きに自分ごと化してプレゼンをした全員が素晴らしかったです。</p> <p>まだまだHRBrainは進化の途中です。これからもっともっと変わっていかないといけません。 新しいチャレンジや変化に対して、斜に構えて文句や不満だけを言い、自分は行動しないということは最も避けなければいけません。</p> <p>数年後振り返ったときに、「24卒が変化の中心にいたよね」と言われるくらい、良い意味で今の風土に慣れずに変化の起点となり、起こった変化に前のめりに乗っかっていってほしいです。</p></blockquote> <p>すごくいい感想をもらえて、とても嬉しい!!!</p> <p>LTを企画・運営してよかったなと!</p> <p>「24卒が変化の中心にいたよね」と言われるようにこれからもアクションを続けたいと、、、</p> <p>(ちなみに、ここだけの話ですが、正直LTを企画して参加者募集した時、参加者が集まらなさすぎてやめようかなとうっすら思いました(笑))</p> <p><figure class="figure-image figure-image-fotolife" title="全体写真"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/n/nakampany/20231115/20231115190921.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>全体写真</figcaption></figure></p> <h2 id="まとめ">まとめ</h2> <p>冒頭に伝えたいことを言いましたが、</p> <p>HRBrainには、<strong>インターン生関係なくやりたいことはなんでもできる環境があります!</strong></p> <p>そんな、なんでもできる環境があるのに、発言せずに行動を起こさないって、</p> <p>サッカーで言うとドリブルの得意な三苫選手がセンターバックをするぐらいもったいないです!!!(例えあってるのかな(笑))</p> <p>環境は揃いに揃っているので、あとは発言して行動するだけですね!</p> <p>今回、インターン生がLT会を企画・運営してみました。これからも発言してアクションを起こせるエンジニアとしてさらに成長していきたいと思っています〜</p> <p>この記事で、HRBrainに興味を持っていただけると幸いですーーーーー!</p> <p>アドベントカレンダーも頑張りますーーーーーーー!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain 採用情報" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> nakampany 【イベントレポート】HRBrain Fly High #4 -Frontend LT- hatenablog://entry/820878482954785782 2023-08-21T10:00:00+09:00 2023-08-21T10:00:00+09:00 はじめに イベント概要 LT内容 発表資料 React Queryは非同期の状態管理ライブラリだ 〜安井 大晟さん〜 Breaking Up with SVG-in-JS 〜若槙 蓮さん〜 フロントエンドでもテストを書きたいのでJestに入門してみた 〜井上裕也さん〜 Qiitaいいね数をGASで計測している話 〜山口 祐司さん〜 SvelteKitでマルチテナントブログサイト作ってみた 〜西村 和海さん〜 交流会 さいごに はじめに HRBrainエンジニア入中です。 この記事では2023年7月24日に行った【HRBrain Fly High #4 -Frontend LT-】のイベントをレ… <ul class="table-of-contents"> <li><a href="#はじめに">はじめに</a><ul> <li><a href="#イベント概要">イベント概要</a></li> <li><a href="#LT内容">LT内容</a></li> </ul> </li> <li><a href="#発表資料">発表資料</a><ul> <li><a href="#React-Queryは非同期の状態管理ライブラリだ-安井-大晟さん">React Queryは非同期の状態管理ライブラリだ 〜安井 大晟さん〜</a></li> <li><a href="#Breaking-Up-with-SVG-in-JS-若槙-蓮さん">Breaking Up with SVG-in-JS 〜若槙 蓮さん〜</a></li> <li><a href="#フロントエンドでもテストを書きたいのでJestに入門してみた-井上裕也さん">フロントエンドでもテストを書きたいのでJestに入門してみた 〜井上裕也さん〜</a></li> <li><a href="#Qiitaいいね数をGASで計測している話-山口-祐司さん">Qiitaいいね数をGASで計測している話 〜山口 祐司さん〜</a></li> <li><a href="#SvelteKitでマルチテナントブログサイト作ってみた-西村-和海さん">SvelteKitでマルチテナントブログサイト作ってみた 〜西村 和海さん〜</a></li> </ul> </li> <li><a href="#交流会">交流会</a></li> <li><a href="#さいごに">さいごに</a></li> </ul> <h1 id="はじめに">はじめに</h1> <p>HRBrainエンジニア入中です。<br> この記事では2023年7月24日に行った【HRBrain Fly High #4 -Frontend LT-】のイベントをレポートします!</p> <p>※<a href="https://times.hrbrain.co.jp/entry/2023/06/12/HRBrainFlyHigh">HRBrain Fly High</a>とは</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230803/20230803163830.jpg" width="1200" height="807" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="イベント概要">イベント概要</h2> <p><strong> - 開催日時</strong> <br> 2023年7月24日 19:30-22:00</p> <p><strong> - イベントページ</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhrbrain.connpass.com%2Fevent%2F288619%2F" title="HRBrain Fly High #4 -Frontend LT- (2023/07/24 19:30〜)" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://hrbrain.connpass.com/event/288619/">hrbrain.connpass.com</a></cite></p> <p><strong> - イベント内容</strong></p> <p>今回は「Frontend」をテーマに開催しHRBrainのエンジニア3名と、社外エンジニア2名の方に登壇していただきました。 イベントの後半では参加者同士で交流し情報交換ができる交流会を行いました。</p> <h2 id="LT内容">LT内容</h2> <table> <thead> <tr> <th> 発表内容 </th> <th> 登壇者 </th> </tr> </thead> <tbody> <tr> <td><a href="https://speakerdeck.com/ytaisei/react-queryhafei-tong-qi-nozhuang-tai-guan-li-raiburarida">React Queryは非同期の状態管理ライブラリだ</a></td> <td> 安井 大晟さん </td> </tr> <tr> <td><a href="https://speakerdeck.com/wakamaki/breaking-up-with-svg-in-js">Breaking Up with SVG-in-JS</a></td> <td> 若槙 蓮さん </td> </tr> <tr> <td><a href="https://speakerdeck.com/inoway46/hurontoendodemotesutowoshu-kitainodejestniru-men-sitemita">フロントエンドでもテストを書きたいのでJestに入門してみた</a></td> <td>井上 裕也さん</td> </tr> <tr> <td><a href="https://speakerdeck.com/yug1224/2023-07-24-hrbrainflyhigh">Qiitaいいね数をGASで計測している話</a></td> <td>山口 祐司さん</td> </tr> <tr> <td><a href="https://speakerdeck.com/kazuumin/sveltekitdemarutitenantoburogusaitozuo-tutemita">SvelteKitでマルチテナントブログサイト作ってみた</a></td> <td>西村 和海さん</td> </tr> </tbody> </table> <p>※ 記載はLTの発表順になっています。</p> <h1 id="発表資料">発表資料</h1> <p>登壇してくれた方の登壇資料は以下になります!</p> <h2 id="React-Queryは非同期の状態管理ライブラリだ-安井-大晟さん">React Queryは非同期の状態管理ライブラリだ 〜安井 大晟さん〜</h2> <p>Reactのstate管理について発表をしてくれました。「React Queryに対して改めて整理するいい機会になった」と交流会での意見交換等、とても盛り上がっていました。</p> <p><iframe id="talk_frame_1050214" class="speakerdeck-iframe" src="//speakerdeck.com/player/9b01669f1b534d5ba87ec14f98924379" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/ytaisei/react-queryhafei-tong-qi-nozhuang-tai-guan-li-raiburarida">speakerdeck.com</a></cite></p> <h2 id="Breaking-Up-with-SVG-in-JS-若槙-蓮さん">Breaking Up with SVG-in-JS 〜若槙 蓮さん〜</h2> <p>JSXとしてSVGをimportしないでほしいというJsonMillerさんの<a href="https://twitter.com/_developit/status/1382838803866521601?s=20">Post</a>を元に考慮すべき点や、ベストプラクティスの提示等を行ってくれました。SNSの発言から、こういった学びを得られることはとても素敵ですね!</p> <p><iframe id="talk_frame_1057129" class="speakerdeck-iframe" src="//speakerdeck.com/player/fbe593f0ccb74fd095b7f457d56e0589" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/wakamaki/breaking-up-with-svg-in-js">speakerdeck.com</a></cite></p> <h2 id="フロントエンドでもテストを書きたいのでJestに入門してみた-井上裕也さん">フロントエンドでもテストを書きたいのでJestに入門してみた 〜井上裕也さん〜</h2> <p>コードの変更がかかりやすいフロントエンドのテスト観点や、実際にJestを使用したテスト実装方法、感想についてLTしていただきました。 コード導入した際のノウハウはとても勉強になりました。そして、「テスト書くの楽しい!!」と言われていたのがとても印象的なLTでした!!</p> <p><iframe id="talk_frame_1059405" class="speakerdeck-iframe" src="//speakerdeck.com/player/2fc636d49e73454089d01f782b9c1c51" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/inoway46/hurontoendodemotesutowoshu-kitainodejestniru-men-sitemita">speakerdeck.com</a></cite></p> <h2 id="Qiitaいいね数をGASで計測している話-山口-祐司さん">Qiitaいいね数をGASで計測している話 〜山口 祐司さん〜</h2> <p><a href="https://qiita.com/official-campaigns/engineer-festa/2023">Qiita Engineer Festa 2023 - Qiita</a>が開催中だったため 「山口さんの話は旬で裏側の話もあったりと面白かったです笑」という感想がきていました! オフラインのLTだからこそできる、旬な話題は盛り上がりますね!</p> <p><iframe id="talk_frame_1057269" class="speakerdeck-iframe" src="//speakerdeck.com/player/ebb1204f37ab47d3b5bf22f760d7a3db" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/yug1224/2023-07-24-hrbrainflyhigh">speakerdeck.com</a></cite></p> <h2 id="SvelteKitでマルチテナントブログサイト作ってみた-西村-和海さん">SvelteKitでマルチテナントブログサイト作ってみた 〜西村 和海さん〜</h2> <p>西村さんは、ご自身でSvelteKitでマルチテナントブログサイトを作成した際に使用した技術の選定理由等を発表してくれました。 とても分かりやすく、勉強になる発表をしていただきました!</p> <p><iframe id="talk_frame_1060057" class="speakerdeck-iframe" src="//speakerdeck.com/player/98e9ec3f1e144c8f894ba048b6ea1820" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/kazuumin/sveltekitdemarutitenantoburogusaitozuo-tutemita">speakerdeck.com</a></cite></p> <p>フロントエンドLT会と言っても、業務で実践したこと、新しく何かを作ったことなどジャンルの違う発表でとても面白い発表内容なので、登壇資料を読んでみてください!</p> <h1 id="交流会">交流会</h1> <p>交流会では、登壇内容に対しての質問や、知見・考え方の共有を行ってとても盛り上がっていました!!!</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230803/20230803164544.jpg" width="1200" height="563" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h1 id="さいごに">さいごに</h1> <p>参加者アンケートでは「また観覧者としてもこの場に足を運ばせてもらいたいです。」というお言葉をもらうこともでき、とてもいい雰囲気でLT会を開催することができました。ご参加いただいた皆様、本当にありがとうございました。<br> HRBrainでは<a href="https://twitter.com/HRBrain_hr_dev">HRBrain Developers</a>のX(Twitter)アカウントでイベント告知等を行っています。 ぜひ、フォローをお願いします。そして、イベント参加もお待ちしております!</p> <p>HRBrainに興味を持っていただけたら<a href="https://www.hrbrain.co.jp/recruit">採用ページ</a>からカジュアル面談の申し込みをお願いします。</p> iriko666666 HRBrainのイベントスペースでIT勉強会を開催しませんか? hatenablog://entry/820878482955209464 2023-08-04T09:30:00+09:00 2023-09-13T23:49:49+09:00 HRBrainではIT技術やWeb開発に関する勉強会開催を応援します!ぜひ一緒に盛り上げていきましょう! <p>こんにちは。Developmentチームの山口(<a href="https://twitter.com/yug1224">@yug1224</a>)です。</p> <p>新型コロナウイルス感染症の位置付けが5類感染症に移行されてから、大小さまざまなイベントが各所で開催されることが増えてきています。HRBrainでも主催共催含めて毎月数件イベントを開催してきました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.notion.so%2FHRBrain-Developer-Meetup-ec00293aaa1d4d9f9160263fbe3dc338" title="🌐HRBrain Developer Meetup🌐" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.notion.so/HRBrain-Developer-Meetup-ec00293aaa1d4d9f9160263fbe3dc338">www.notion.so</a></cite></p> <p>しかし、コロナ前後でオフィス環境も変わり、イベント会場の確保が難しくなったことで、コロナ以前のIT勉強会文化が少し途絶えてしまっているのではないでしょうか。</p> <p>私自身、IT勉強会に参加をしてコミュニティの方々と交流することで、新しい技術や知見を得ることができたり、自分のキャリアにプラスになることが大いにあったので、少し寂しく感じています。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fnote.com%2Fr_kawamata%2Fn%2Fnb3157e12819c" title="タイミー広場を技術コミュニティにオープン化します|かわまた/DevRel" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://note.com/r_kawamata/n/nb3157e12819c">note.com</a></cite></p> <p>そんな中、タイミーDevRelの河又さんの記事を拝見し、私達もこの動きに追随してみようと思いました!</p> <p>オンラインイベントだけでなく、オフラインイベント文化もまた復活させるために、HRBrainのイベントスペースでIT勉強会を開催してみませんか?</p> <p>ぜひ一緒に盛り上げていきましょう!!🙌</p> <h2 id="イベントスペースについて">イベントスペースについて</h2> <p><figure class="figure-image figure-image-fotolife" title="ネオンサインとイベントスペース"><div class="images-row mceNonEditable"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yug1224/20230803/20230803225717.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yug1224/20230803/20230803225713.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></div><figcaption>ネオンサインとイベントスペース</figcaption></figure></p> <h3 id="スペック">スペック</h3> <ul> <li>住所:<a href="https://goo.gl/maps/p8ka8JdTerH9nGMB6">〒141-0021 東京都品川区上大崎2-25-2 新目黒東急ビル 5F</a></li> <li>アクセス:JR山手線「目黒駅」西口から徒歩5分</li> <li>収容規模:最大50名程度(レイアウトの都合上30-40名程度がちょうど良い広さです)</li> <li>設備:プロジェクター1台、マイク2本(有線・無線)、ゲストWi-Fiあります</li> <li>利用可能日:平日18:00-22:00を想定(休日は原則利用NG)</li> <li>会場利用料:無料</li> <li>飲食:可能(飲食物の持ち込み・ケータリング手配OK、冷蔵庫も数台あります)</li> </ul> <h3 id="利用条件">利用条件</h3> <ul> <li>IT技術やWeb開発の勉強・コミュニティの交流などを目的としたイベントであること</li> <li>参加人数の想定として10名以上の参加が見込まれていること(数名での集まりはNG)</li> <li>connpassページなどに弊社情報(ロゴや会社情報)の掲載が可能なこと</li> <li>コンテンツのどこかで会場スポンサーLT(5分程度)の実施が可能なこと</li> <li>会場の設営・撤収を含めて、利用時間内での完了が可能なこと</li> </ul> <h3 id="利用希望の際の連絡先">利用希望の際の連絡先</h3> <ul> <li>Eメール:development-admin@hrbrain.co.jp</li> <li>担当:HRBrain Development 山口</li> </ul> <p>利用日程の調整や、会場利用に関する相談については、上記連絡先までご連絡ください。</p> yug1224 【登壇インタビュー #3】橋本 健史 さん 〜Qiitaトレンド入りの裏側 私のブログライティングの方法〜 hatenablog://entry/820878482950756277 2023-08-02T10:00:00+09:00 2023-08-02T10:30:06+09:00 はじめに 2023年6月15日、株式会社HRBrainはHRBrain Fly High#3を開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口がHRBrain Blogで詳しく記載しています) 今回は 「-U25若手エンジニアの成長戦略-」 をテーマにしたイベントで登壇してくれた橋本 健史さんを深掘りしていきます! 📣 No.3 橋本 健史 さん/株式会社HRBrain プロフィール 株式会社HRBrainのバックエンドエンジニア。 2022年7月から内定者インターンとしてHRBrainで働き始め、2023年4月に新卒社員として入社。 現在は労務管理プロダクトの機能開発… <h2 id="はじめに">はじめに</h2> <p>2023年6月15日、株式会社HRBrainは<strong>HRBrain Fly High#3</strong>を開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口が<a href="https://times.hrbrain.co.jp/entry/2023/06/12/HRBrainFlyHigh">HRBrain Blog</a>で詳しく記載しています)</p> <p>今回は <strong>「-U25若手エンジニアの成長戦略-」</strong> をテーマにしたイベントで登壇してくれた<strong>橋本 健史</strong>さんを深掘りしていきます!</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230718/20230718091953.jpg" width="1200" height="1076" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="-No3-橋本-健史-さん株式会社HRBrain"><strong>📣 No.3 橋本 健史 さん/株式会社HRBrain</strong></h3> <p><strong>プロフィール</strong></p> <p>株式会社HRBrainのバックエンドエンジニア。 2022年7月から内定者インターンとしてHRBrainで働き始め、2023年4月に新卒社員として入社。 現在は労務管理プロダクトの機能開発を担当。 趣味は競技プログラミング。 Qiitaトレンド記事1位、1000いいね以上獲得実績あり。</p> <h3 id="LT概要">LT概要</h3> <p><strong> LTテーマ: Qiitaトレンド入りの裏側 私のブログライティングの方法 </strong></p> <p>橋本さんはQiitaへの記事投稿を積極的に行っています。 記事を投稿するモチベーションについてや、ネタ探し、記事を書くコツをLTで発表してくれました。</p> <h3 id="橋本さんのテックブログを書き始めて良かったと思うことを教えてください">橋本さんのテックブログを書き始めて良かったと思うことを教えてください。</h3> <p>新しいことに挑戦する時やエラーが起こったときにワクワクするようになりました。 例えばブログを書き始める前は、開発中にエラーが発生したら「またかー。やめてくれー。」と思うこともありました。 今はエラーが起こったときに、「このエラーは何で起こったんだ?調べて記事にしてみよう。」と思えるようになりました。 エラーの原因を調査することで新しいことを知る機会になり、より知識を深められることができるし、 調査した内容が書き留められて備忘録にもなるので記事を書くことはとても自分の為になると考えています。 そして、その記事がこれから勉強をする人が参考にしてくれるかもと思うと記事を書くモチベーションがあがります。</p> <h3 id="自分を残したい記事本を書きたいと思い始めたのはきっかけは何だったのでしょうか">自分を残したい、記事・本を書きたいと思い始めたのはきっかけは何だったのでしょうか</h3> <p>小学校低学年の時に学校の宿題で、親から自分の名前の由来を聞いたことがきっかけです。 「<strong>健</strong>やかに歴<strong>史</strong>に残るヒトになってほしい」という意味で名付けたと教えてもらいました。 その時から歴史に名を残すということにモチベーションをもつようになりました。 自分が存在したという軌跡をアウトプットして残していきたいです。</p> <h3 id="記事を残すだけでなく登壇も積極的に行っているのも理由があるのですか">記事を残すだけでなく、登壇も積極的に行っているのも理由があるのですか?</h3> <p>人前にでて自分の意見を言えるし、その意見を持って交流会で色んな人と話ができることで 自分の知識や意見をよる深めることができるからです。 登壇後の交流会だと自分が発表した内容が会話の種になって話をすることができます。 自分と違う知識や経験をしている方と意見が交わせて、とてもよい機会だと思っています。 また、自分と同年代の他社の方々と話すと自分が知らない技術を知ることで、 自分はまだまだだなと思わされ、さらに学ぶことへのモチベーションになっています。</p> <p>実は人前に出るのは苦手なのですが、登壇を終えたら毎回楽しかったと思います。</p> <h3 id="ちなみにHRBrainに入社を決めたのはなぜなのですか">ちなみにHRBrainに入社を決めたのはなぜなのですか?</h3> <p>HRBrainの事業が、タレントマネジメントや人事評価など、適切な評価ができるサービスをしていることに共感したからです。 私は、真面目な人が損をしないような社会にしていきたい。そのための何かを作りたいと考えていました。 誰かが一生懸命やっていることが人に適切に伝わらないことはとても嫌だし、 社会にとっても頑張っている人が分からないことはとてもデメリットだと思います。 自分が開発したプロダクトを通して、頑張っている人が適切に評価されるような社会にしていきたいです。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230718/20230718111038.jpg" width="1200" height="676" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="今はどういった開発業務をしているのでしょうか">今はどういった開発・業務をしているのでしょうか?</h3> <p>労務プロダクトで新規APIを作ったり、改修をしたりしています。 仕様決めや設計部分もチーム全体で話し合って行っているので、コードを書く以外のこともやっています。 エンジニアだけでなく、カスタマーサクセスの方やPdMの方も交えてドメインに関して話し合い、より良いプロダクトを作るためにチームメンバーと切磋琢磨しています。</p> <h3 id="HRBrainで働き始めて成長できた変わったなと思ったことはありますか">HRBrainで働き始めて成長できた、変わったなと思ったことはありますか?</h3> <p>プロダクトコードは自分だけがメンテナンスする訳では無いし、機能もどんどん追加されていくので保守性・拡張性を意識してコードを書くようになりました。</p> <p>個人で開発をしていた時はコードを保守していくということがあまり考えられていなかったです。 例えば、変数名に何を代入しているのか分かりにくい名前をつけたり、省略をしていました。 また、設計概念についてあまり理解せずに開発していたので、DDDのことも知りませんでした。 HRBrainで長期学生インターンをしながら勉強をし、プロダクトコードを読んで、機能追加しやすい設計等について学ぶことができました。</p> <h3 id="橋本さんがHRBrainで働いていて良かったなと思うことは何ですか">橋本さんがHRBrainで働いていて良かったなと思うことは何ですか?</h3> <p>HRBrainでは営業やカスタマーサクセスの方がお客様の声を開発チームに共有してくれる機会が多くあります。 その中で、お客様が便利になった、業務にかける時間が削減されたと喜んでいる姿を見るととてもモチベーションが上がります。私が開発に携わっているサービスでお客様に価値提供ができていると思えて、本当に良かったと感じることができます。</p> <h3 id="将来どのようなエンジニアになりたいと考えていますか">将来どのようなエンジニアになりたいと考えていますか?</h3> <p>信頼されるエンジニアになりたいです! 人とのコミュニケーションが円滑にでき、そしてどんな機能開発要望が来ても対応できるような技術的にも信頼を持ってもらえる様になりたいです。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230718/20230718110854.jpg" width="1118" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>橋本さんありがとうございました。</strong></p> <h3 id="登壇資料">登壇資料</h3> <p><iframe id="talk_frame_1046156" class="speakerdeck-iframe" src="//speakerdeck.com/player/11b331a295de424e8ad2f4b4c1964143" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/kenhashimoto/my-blog-writing-methods">speakerdeck.com</a></cite></p> <h2 id="さいごに">さいごに</h2> <p>HRBrainでは月に数回、外部向けのLTイベントを行っています。</p> <h1 id="HRBrainFlyHighのハッシュタグをつけてTwitterで告知をしているのでぜひチェックをお願いします">HRBrainFlyHighのハッシュタグをつけて、Twitterで告知をしているのでぜひ、チェックをお願いします。</h1> <p>そして、HRBrainに興味を持っていただけたらイベント参加あるいは、<a href="https://www.hrbrain.co.jp/recruit">採用ページ</a>からカジュアル面談の申し込みをお願いします。</p> iriko666666 【後編】HRBrainの長期インターンシップでの挑戦と実績〜チャレンジできる環境はここにある〜 hatenablog://entry/820878482951525393 2023-07-26T16:51:09+09:00 2023-07-27T08:41:02+09:00 こんにちは、2022年12月より長期インターン生として入社しているフロントエンドエンジニアの安井です。今回はHRBrainの長期インターンシップで私が経験した内容と、そこで得た成長について紹介したいと思います。インターンシップの概要について紹介した前編の記事は以下のリンクから御覧ください。 times.hrbrain.co.jp 今回は私が取り組んだ実績とそこで得られた成長について「開発」と「アウトプット」の2つの側面に着目して紹介します。 開発編 プロダクトの概要と技術スタックについて フロントエンド バックエンド 配属後のファーストタスク ドメイン知識の理解に苦戦した 他の人が書いたコード… <p>こんにちは、2022年12月より長期インターン生として入社しているフロントエンドエンジニアの安井です。今回はHRBrainの長期インターンシップで私が経験した内容と、そこで得た成長について紹介したいと思います。インターンシップの概要について紹介した前編の記事は以下のリンクから御覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2F2023%2F07%2F26%2F165054" title="【前編】HRBrainの長期インターンシップでできること〜ここでしか得られない成長機会がある〜 - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/2023/07/26/165054">times.hrbrain.co.jp</a></cite></p> <p>今回は私が取り組んだ実績とそこで得られた成長について「開発」と「アウトプット」の2つの側面に着目して紹介します。</p> <ul class="table-of-contents"> <li><a href="#開発編">開発編</a><ul> <li><a href="#プロダクトの概要と技術スタックについて">プロダクトの概要と技術スタックについて</a><ul> <li><a href="#フロントエンド">フロントエンド</a></li> <li><a href="#バックエンド">バックエンド</a></li> </ul> </li> <li><a href="#配属後のファーストタスク">配属後のファーストタスク</a><ul> <li><a href="#ドメイン知識の理解に苦戦した">ドメイン知識の理解に苦戦した</a></li> <li><a href="#他の人が書いたコードの理解が難しい">他の人が書いたコードの理解が難しい</a></li> <li><a href="#サービス同士の関係理解に苦戦">サービス同士の関係理解に苦戦</a></li> <li><a href="#感想">感想</a></li> </ul> </li> <li><a href="#ライブラリ移行">ライブラリ移行</a><ul> <li><a href="#OpenAPI-GeneratorからOrvalへ">OpenAPI GeneratorからOrvalへ</a></li> <li><a href="#品質劣化が起きないように徹底的にチェックをした">品質劣化が起きないように徹底的にチェックをした</a></li> <li><a href="#感想-1">感想</a></li> </ul> </li> <li><a href="#認証フローの改善">認証フローの改善</a><ul> <li><a href="#ビジネスサイドと仕様を整理する難しさ">ビジネスサイドと仕様を整理する難しさ</a></li> <li><a href="#バックエンド領域への挑戦">バックエンド領域への挑戦</a></li> <li><a href="#感想-2">感想</a></li> </ul> </li> </ul> </li> <li><a href="#アウトプット編">アウトプット編</a><ul> <li><a href="#毎月の技術ブログ投稿と若手の巻き込み">毎月の技術ブログ投稿と若手の巻き込み</a><ul> <li><a href="#始まりはAdvent-Calendar-2022">始まりはAdvent Calendar 2022</a></li> <li><a href="#トレンド1位とブログ文化の浸透">トレンド1位とブログ文化の浸透</a></li> <li><a href="#全社エンジニアに声をかけQiita-Engineer-Festaに参加">全社エンジニアに声をかけ、Qiita Engineer Festaに参加</a></li> </ul> </li> <li><a href="#社内勉強会の主催">社内勉強会の主催</a><ul> <li><a href="#毎週1時間SQLの問題を解く">毎週1時間SQLの問題を解く</a></li> <li><a href="#主催してみての感想">主催してみての感想</a></li> </ul> </li> <li><a href="#LTイベントでの登壇">LTイベントでの登壇</a><ul> <li><a href="#春のJavaScript祭りでのLT登壇">春のJavaScript祭りでのLT登壇</a></li> <li><a href="#若手の成長戦略についてLT">若手の成長戦略についてLT</a></li> </ul> </li> </ul> </li> <li><a href="#まとめ">まとめ</a></li> </ul> <h2 id="開発編">開発編</h2> <p>ここでは、私が長期インターンシップ中に取り組んだタスクの中から特に印象的だったものを紹介します。実際、8ヶ月間のインターンシップで<strong>65個のPRをmerge</strong>しており、全てのタスクで多くの学びがありました。</p> <h3 id="プロダクトの概要と技術スタックについて">プロダクトの概要と技術スタックについて</h3> <p>私はEX Intelligence開発チームに配属され、プロダクトチームの一員として開発に取り組みました。EX Intelligenceは従業員体験(Employee Experience)を「期待値」と「実感値」で測定し、組織や従業員の状態を定量的に分析できるプロダクトです。</p> <p>プロダクトで採用している技術スタックは以下のとおりです。</p> <h4 id="フロントエンド">フロントエンド</h4> <ul> <li>TypeScript</li> <li>React</li> </ul> <p>フロントエンドの特徴として、TanStack QueryやReact18のモダンな技術を採用しながら高いユーザ体験を提供している事が挙げられます。</p> <h4 id="バックエンド">バックエンド</h4> <ul> <li>Go</li> <li>PostgreSQL</li> </ul> <p>バックエンドの特徴として、HRBrainではマイクロサービスのアーキテクチャを採用しており、サービス間はgRPC通信を行っています。</p> <h3 id="配属後のファーストタスク">配属後のファーストタスク</h3> <p>私がチームに配属されて早速任されたタスクが<strong>既存UIの大幅な改修作業</strong>でした。具体的には、絞り込みのコンポーネントを新しいデザインにする必要があり、新規コンポーネントを作成してロジックをそのまま移行するというものです。</p> <h4 id="ドメイン知識の理解に苦戦した">ドメイン知識の理解に苦戦した</h4> <p>HRという複雑なドメイン領域であることからも、その理解をするのにとても苦労をしました。プロダクトの価値や目的を理解せずにコードを書いていては、自分の機能改修がどのような改善を生むのかがわかりません。そのため、<strong>まずはドメインの理解に力を入れて、その上でコードの理解をするようにしました。</strong></p> <h4 id="他の人が書いたコードの理解が難しい">他の人が書いたコードの理解が難しい</h4> <p>私自身HRBrainが初めてのインターン機会だったため、他人が書いたコードを改修するという経験が過去にありませんでした。自分が書いていないからこそ、一つのコードの改修で意図しない影響範囲へのバグを生む可能性があります。チーム開発する上での難しさを感じた一方で、<strong>自分のコードを他人が見ても理解できるようにと可読性に対する意識がより一層強まりました。</strong></p> <h4 id="サービス同士の関係理解に苦戦">サービス同士の関係理解に苦戦</h4> <p>HRBrainは複数のサービスを持っており、相互に連携するマイクロサービスの形式になっています。つまり、私の所属するEXチームで開発する上でも他サービスへの理解は必須であり、サービス同士の関係性について把握しておく必要があります。プロダクトのドメイン理解と並行して各サービス間の役割と関連性を理解する必要があるのはマイクロサービスを採用している弊社ならではの悩みかなと思いました。</p> <h4 id="感想">感想</h4> <p>元々Reactの開発に力を入れていたこともあり、UI改善におけるコードの実装に関しては大きな苦労はありませんでした。しかし新しいチームに配属され、そのプロダクトを理解することやコードを理解する難しさを非常に痛感しました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230726/20230726114355.jpg" width="1200" height="715" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="ライブラリ移行">ライブラリ移行</h3> <p>入社して数ヶ月が経ち、開発にも慣れてきたところでプロダクトの採用しているライブラリに物足りなさを感じることがありました。そんなことを先輩エンジニアと話していると、「じゃあ、実際に移行しちゃおう」という事になり、<strong>ライブラリ調査から移行まで全て任してもらうことになりました。</strong></p> <h4 id="OpenAPI-GeneratorからOrvalへ">OpenAPI GeneratorからOrvalへ</h4> <p>私の担当しているプロダクトではスキーマ駆動で開発をしており、そのコード自動生成に<a href="https://openapi-generator.tech/">OpenAPI Generator</a>というライブラリを使用していました。しかし、このライブラリは「無駄な出力ファイルが多い」「実行速度が遅い」などの欠点があったため、その移行先として<a href="https://orval.dev/">Orval</a>というライブラリを提案しました。実際に移行した話を<a href="https://javascript-fes.doorkeeper.jp/events/154047">2023年春のJavaScript祭り</a>で登壇した際に話しているのでぜひ御覧ください!</p> <p><iframe id="talk_frame_1019593" class="speakerdeck-iframe" src="//speakerdeck.com/player/5f22b97303ae44e8955a43b5dbb3fc5e" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/ytaisei/openapikodosheng-cheng-raiburariwo-orval-niyi-xing-sitali-you">speakerdeck.com</a></cite></p> <h4 id="品質劣化が起きないように徹底的にチェックをした">品質劣化が起きないように徹底的にチェックをした</h4> <p>ライブラリを移行する上でいちばん重要なのは品質劣化が起きないことだと思います。どれだけ開発体験が上がっても既存のプロダクトにバグが発生しては大変です。そこで私は今回のライブラリ移行に関する影響範囲を全てリストアップして、チェックするようにしました。</p> <p>すると影響範囲は52ファイルにあることがわかり、その全ての仕様を改めて整理して品質劣化がないことを確認してリリースしました。ライブラリ移行の際はそのメリットばかりに気を取られがちですが、<strong>既存の価値を損なわない意識を徹底する重要さを身をもって体感しました。</strong></p> <h4 id="感想-1">感想</h4> <p>今回のライブラリ移行は先輩エンジニアとの些細な会話からスタートしました。「Orvalってライブラリがプロダクトに導入できそうですよね〜」という何気ない技術の共有から実装に発展したことからも、普段のキャッチアップやそれを共有する習慣は大切だなと感じました。またライブラリ移行のメリットや改善点を開発者だけで完結させずに、しっかりとチームメンバーやPdMといった方にも伝えることが円滑にライブラリ移行をする上で重要だと実感しました。</p> <h3 id="認証フローの改善">認証フローの改善</h3> <p>最後に私が担当したタスクで最も工数の大きかったものを紹介します。概要としては今まで煩雑な操作を必要としていた初回ログインのフローを改善し、より簡潔にHRBrainのサービスを使用できるようにするものです。このタスクにおいて私は<strong>仕様の整理・APIの実装・UIの実装</strong>を全て一人で任してもらいました。</p> <h4 id="ビジネスサイドと仕様を整理する難しさ">ビジネスサイドと仕様を整理する難しさ</h4> <p>このタスクで最も難しかったことはビジネスサイドとのコミュニケーションです。ユーザに最も近い存在はCS(カスタマーサクセス)であり、そのニーズを開発側より正確に把握しています。そのため、今回のようなユーザにダイレクトに影響のある改善はCSとの連携が必須になります。</p> <p>私が特に意識したことは、<strong>細かい認識をすり合わせるコミュニケーション</strong>です。</p> <p>そのために、<strong>「課題の整理」「対応方針」「メリット・デメリット」</strong>を整理して伝えるように意識しました。特に前提が双方で齟齬がないかは注意して会話する必要があり、少しでも違和感を感じたらすぐに質問することが重要だと思います。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230721/20230721124148.png" width="1200" height="577" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>開発力は技術力とコミュニケーション力の掛け算で成長すると考えています。</strong>どれだけコードで実装する力があっても仕様のコミュニケーションで手戻りがあればリリーススピードは高く保てません。普段のビジネスサイドとのコミュニケーションから丁寧に前提を揃え、意味のある議論ができるようにと心がけています。</p> <h4 id="バックエンド領域への挑戦">バックエンド領域への挑戦</h4> <p>普段はフロントエンドを主軸に開発していることもあり、今回が初めての大規模バックエンド開発となりました。コード理解に苦労したことはもちろんのこと、知らない知識が多くあったため業務外でのキャッチアップにも力を入れました。元々、バックエンドタスクに挑戦したい旨を伝えていたこともあり、非常に貴重な経験をすることができました。</p> <p>実際にこのタスクを取り組んだ前後では、APIの設計をする際でもバックエンド・フロントエンド双方の視点で考えることができるようになったため、フロントエンド領域でキャリアを積んでいく上でもバックエンドの理解は必要だと痛感しました。</p> <h4 id="感想-2">感想</h4> <p>このタスクでは大規模な機能改善を仕様設計から実装まで一人で任してもらいました。実装力の足りなさや、コミュニケーション齟齬によるリリース予定の遅延など様々な反省点はあった一方で、全て任せてもらえるからこそ責任感が生まれ積極的に実装ができたと思います。過去に取り組んだどんなタスクよりも大きな成長を実感することができました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230726/20230726114517.jpg" width="1160" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="アウトプット編">アウトプット編</h2> <p>次に私がHRBrainに入社してから行ったアウトプットについて紹介します。入社してすぐの頃(2022年12月)はブログ文化もそこまで浸透しておらず、イベントの開催も多くはありませんでした。そんな中で少しずつアウトプットの文化が定着していき、会社が盛り上がっていく過程で自分が貢献できたと思うアクションは以下のとおりです。</p> <h3 id="毎月の技術ブログ投稿と若手の巻き込み">毎月の技術ブログ投稿と若手の巻き込み</h3> <h4 id="始まりはAdvent-Calendar-2022">始まりはAdvent Calendar 2022</h4> <p>私が初めて記事を書いたきっかけは、<a href="https://qiita.com/advent-calendar/2022/ranking/feedbacks#:~:text=HRBrain">Advent Calendar 2022</a>でした。Advent Calendarは社内エンジニア全員が記事を執筆し、毎日投稿されていくような大規模イベントです。HRBrainは1700いいねを獲得し、全体順位3位と大きな盛り上がりがありました。私も実際に記事をくことで今までふんわり理解していたことが整理されて理解が深まる体験をしました。</p> <p>Advent Calendarが終わると社内のブログ文化は下火になり、あまり記事を公開する人が少なくなりました。しかし、せっかく盛り上がったブログ文化がこのまま終わってしまうのはもったいないと思い、私は毎月黙々と記事の投稿を続けました。</p> <h4 id="トレンド1位とブログ文化の浸透">トレンド1位とブログ文化の浸透</h4> <p>毎月ブログを投稿する中でトレンド入りするような記事も増えてきました。当然自分の記事が評価されていくことも嬉しかったですが、何よりも自分に続いて記事を書いてくれる仲間が増えたことが一番継続してよかったと思えたことでした。Advent Calendarから一度は下火になっていたブログ文化が再熱して、改めてHRBrainのアウトプット文化が定着し始めた感覚を得ました。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">まだトレンド1位キープしてる...<br>恐ろしい若手たちだ...🎉 <a href="https://t.co/yXXMRCqfPM">pic.twitter.com/yXXMRCqfPM</a></p>&mdash; ぷーじ (@yug1224) <a href="https://twitter.com/yug1224/status/1656645358855012354?ref_src=twsrc%5Etfw">2023年5月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <h4 id="全社エンジニアに声をかけQiita-Engineer-Festaに参加">全社エンジニアに声をかけ、Qiita Engineer Festaに参加</h4> <p>ブログ文化が定着し始めた中でもっと会社を盛り上げたいと思い、全社エンジニアに声をかけて<a href="https://qiita.com/official-campaigns/engineer-festa/2023">Qiita Engineer Festa</a>に参加することを決めました。Qiita Engineer FestaにOrganization対抗でいいね数を競い合う企画があったので、HRBrainで1位を取りに行くべく声をかけ、レビューや投稿日時の指定、広報拡散など含めて先輩の力も借りながら一人で運営しました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230721/20230721133236.png" width="1200" height="501" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>その結果、<strong>100以上の団体が参加した中全体順位6位で完走する事ができました!</strong></p> <p>当然優勝できなかったことは悔しかったですが、多くの先輩方が協力してくれたことや同期が楽しかったと言ってくれたことは何より嬉しかったです。自分自身、この規模で会社を巻き込んだプロジェクトを運営することはなかったので、インターン生でありながらも非常に大きな経験になったと思います。</p> <h3 id="社内勉強会の主催">社内勉強会の主催</h3> <p>社外に向けてはブログ文化を盛り上げアウトプットしていましたが、社内でも勉強会を主催して若手エンジニアのモチベーションを上げる取り組みをしました。<strong>社内勉強会の目的は23卒と24卒エンジニアの相互交流と相互学習によるコミュニケーションの活性化とモチベーション向上です。</strong>より詳細な内容は以下のブログにて書いていますのでぜひご覧ください!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Ftaisei-13046%2Fitems%2Fa748a1dfa3103cbe90f2" title="勉強会を主催する目的とコツ 🏔️ - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/taisei-13046/items/a748a1dfa3103cbe90f2">qiita.com</a></cite></p> <h4 id="毎週1時間SQLの問題を解く">毎週1時間SQLの問題を解く</h4> <p>勉強会では<a href="https://topsic-contest.jp/home">SQL CONTEST</a>というサイトを使ってSQLの問題を解きつつ、解法を議論する形で進めていました。SQLを題材に選択した理由は、<strong>全エンジニアが必要とする知識で関心が持てるから</strong>です。先程述べたように、社内勉強会の目的は若手のモチベーション向上です。そのため、全員が当事者意識を持って取り組める題材を選択する必要がありました。</p> <h4 id="主催してみての感想">主催してみての感想</h4> <p>勉強会を主催したことの一番のメリットは、<strong>同期のコミュニケーション機会が増え、積極性が増した</strong>ことです。例えば他のインターン生が更に勉強会を主催したり、積極的に先輩と1on1を依頼したりとアクションが活発になったことを体感しました。また、自分自身も他のインターン生や先輩からSQLについて学べる機会があったのは貴重でしたし、若手の視座を上げる意味でも大きな成果があったと感じています。</p> <h3 id="LTイベントでの登壇">LTイベントでの登壇</h3> <p>HRBrainでは毎月HRBrain Fly Highという技術イベントを主催しています。私自身このイベントに2回登壇しており、非常に楽しい機会でした。このような若手が積極的にアウトプットできる環境が整っていることもインターンシップで参加するメリットだと思います。今回は私が今年登壇した社外LTイベントとHRBrain Fly Highでの内容を紹介します。</p> <h4 id="春のJavaScript祭りでのLT登壇">春のJavaScript祭りでのLT登壇</h4> <p><u><strong>実務で実績を積み、記事を書いて、LT登壇するサイクルを確立</strong> </u></p> <p>私は2023年春のJavaScript祭りでLT登壇させていただきました。このときのテーマは「OpenAPIコード生成ライブラリに『Orval』を採用した理由」で、実際にHRBrainで取り組んだ実務の内容になります。</p> <p>このようにLTで登壇する機会が増えたことから一つの学習サイクルが確立されました。まずは、実務で実績を積み成果を生みます。そして、この過程で得た知見や経験を記事に起こして思考を整理します。最後にLTで登壇してより多くの人に向けて発信するというサイクルです。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fzenn.dev%2Fhrbrain%2Farticles%2F3ca5d37dd0b80e" title="OpenAPIからコードを自動生成!『Orval』のメリットと選定理由" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://zenn.dev/hrbrain/articles/3ca5d37dd0b80e">zenn.dev</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fjavascript-fes.doorkeeper.jp%2Fevents%2F154047" title="春のJavaScript祭り Online 2023" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://javascript-fes.doorkeeper.jp/events/154047">javascript-fes.doorkeeper.jp</a></cite></p> <h4 id="若手の成長戦略についてLT">若手の成長戦略についてLT</h4> <p>このようなアウトプットを繰り返していたこともあり、 若手の成長戦略についてのLTを依頼されました。ここでは「アウトプットが与える影響〜価値を最大化するための学習サイクル〜」というテーマでLTをさせていただきました。</p> <p><iframe id="talk_frame_1034601" class="speakerdeck-iframe" src="//speakerdeck.com/player/38e2c7d138db4e28b572bfdc74249d3b" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/ytaisei/autopututogayu-eruying-xiang-jia-zhi-wozui-da-hua-surutamenoxue-xi-saikuru">speakerdeck.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhrbrain.connpass.com%2Fevent%2F285384%2F" title="HRBrain Fly High #3 -U25若手エンジニアの成長戦略- (2023/06/15 19:00〜)" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://hrbrain.connpass.com/event/285384/">hrbrain.connpass.com</a></cite></p> <p>ここでのLTは自分がHRBrainで学んだ経験や身についた学習サイクルの集大成のような内容であり、アウトプットをいかに周りを巻き込みつつ行っていくかを主張しています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230724/20230724111138.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="まとめ">まとめ</h2> <p>以上私がHRBrainの長期インターンシップとして入社して8ヶ月間の成果と成長について紹介しました。8ヶ月という短い期間でありながら、様々な経験ができエンジニアとしての土台が築けたと思っています。また、自分自身が継続してきたアウトプットが周りの社員に影響を与え、Qiita Engineer Festaという機会で大きな成果を残せたことにも達成感を感じています。</p> <p>成長は一定環境に依存していると思います。自分のやりたいことを応援してくれる環境には本当に感謝をしており、様々なアウトプット機会に恵まれていたことも自分が成長できた要因だと思います。一方で全てが自分が期待するどおりの環境ばかりではありません。私が入社した初めの頃はブログ文化はそこまで活発ではありませんでした。もし期待する環境で無いならば変えていけばいいだけだと思います。スタートアップでインターンをするということはそれだけの可能性があり面白さだと強く実感しました。</p> <p>25卒向けにも長期インターンの募集しています!興味のある方は↓のリンクから応募してみてください!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.wantedly.com%2Fprojects%2F1089305" title="25卒学生対象!導入社数1000社以上のSaaSプロダクトを開発 - 株式会社HRBrainのWebエンジニアの採用 - Wantedly" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.wantedly.com/projects/1089305">www.wantedly.com</a></cite></p> taisei-13406 【前編】HRBrainの長期インターンシップでできること〜ここでしか得られない成長機会がある〜 hatenablog://entry/820878482951265998 2023-07-26T16:50:54+09:00 2023-07-26T20:21:11+09:00 こんにちは、2022年12月より長期インターン生として入社しているフロントエンドエンジニアの安井です。今回はHRBrainの長期インターンシップではどのような成長機会が存在するのか、私の実体験を踏まえて紹介したいと思います。 はじめに プロダクトチームの一員として開発する インターン生も設計から開発、リリースまで全て責任を持って行う メンター制度によるサポートと学び 1. 丁寧なレビューが受けられる 2. 気軽に質問ができる 3. 目指す目標になる 毎週の1on1による目標達成に向けた後押し 具体的にした相談事項 1on1によって生まれたネクストアクション 積極的なアウトプット機会 ブログ文化… <p>こんにちは、2022年12月より長期インターン生として入社しているフロントエンドエンジニアの安井です。今回はHRBrainの長期インターンシップではどのような成長機会が存在するのか、私の実体験を踏まえて紹介したいと思います。</p> <ul class="table-of-contents"> <li><a href="#はじめに">はじめに</a></li> <li><a href="#プロダクトチームの一員として開発する">プロダクトチームの一員として開発する</a><ul> <li><a href="#インターン生も設計から開発リリースまで全て責任を持って行う">インターン生も設計から開発、リリースまで全て責任を持って行う</a></li> </ul> </li> <li><a href="#メンター制度によるサポートと学び">メンター制度によるサポートと学び</a><ul> <li><a href="#1-丁寧なレビューが受けられる">1. 丁寧なレビューが受けられる</a></li> <li><a href="#2-気軽に質問ができる">2. 気軽に質問ができる</a></li> <li><a href="#3-目指す目標になる">3. 目指す目標になる</a></li> </ul> </li> <li><a href="#毎週の1on1による目標達成に向けた後押し">毎週の1on1による目標達成に向けた後押し</a><ul> <li><a href="#具体的にした相談事項">具体的にした相談事項</a></li> <li><a href="#1on1によって生まれたネクストアクション">1on1によって生まれたネクストアクション</a></li> </ul> </li> <li><a href="#積極的なアウトプット機会">積極的なアウトプット機会</a><ul> <li><a href="#ブログ文化">ブログ文化</a></li> <li><a href="#HRBrain-Fly-HighLTイベント">HRBrain Fly High(LTイベント)</a></li> </ul> </li> <li><a href="#まとめ">まとめ</a><ul> <li><a href="#後編の内容">後編の内容</a></li> </ul> </li> </ul> <h2 id="はじめに">はじめに</h2> <p>私は2022年12月よりHRBrainで長期インターンシップを開始し、組織診断サーベイを開発するチームに配属されました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.jp%2Femployee-experience" title="HRBrain 組織診断サーベイ | EX Intelligence | 【大企業満足度 No.1】 | HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.jp/employee-experience">www.hrbrain.jp</a></cite></p> <blockquote><p>EX Intelligenceは組織全体の状態の可視化はもちろん、従業員ひとりひとりにフォーカスした分析が可能な組織診断サーベイです。改善施策に直結した設問項目で、経営・人事・現場、すべての方に活用いただけます。</p></blockquote> <p>EX Intelligenceは従業員体験(Employee Experience)を「期待値」と「実感値」で測定し、組織や従業員の状態を定量的に分析できるプロダクトです。</p> <p>このプロダクトの中で主にフロントエンドを担当し、ReactとTypeScriptを用いて開発をしていました。技術スタックもTanStack Queryなど最新のライブラリを選定していることが特徴です。</p> <p>今回は私がHRBrainにインターン生として入社して得た数多くの成長機会の中から抜粋して、HRBrainに興味を持っている方の解像度を高められるように詳しく紹介したいと思います。</p> <p>本記事は前編と後編に分けており、前編では「インターン生としてHRBrainでできること(概要)」について。後編では「実際に私がHRBrainで取り組んだこと(経験)」について、自らの体験を深掘ってご紹介します。</p> <h2 id="プロダクトチームの一員として開発する">プロダクトチームの一員として開発する</h2> <h3 id="インターン生も設計から開発リリースまで全て責任を持って行う">インターン生も設計から開発、リリースまで全て責任を持って行う</h3> <p>私がHRBrainの長期インターンシップで一番成長できると実感したポイントは「<strong>裁量の大きさとそれに応じた責任を与えられる</strong>」ことです。エンジニアのタスクはコードを書くことだけではありません。ビジネスサイドと連携しながら仕様を詰め、デザイナーと共にUI・UXの設計をした上でコードを実装し、CS(カスタマーサクセス)と連携を取りながらリリースをします。HRBrainではインターン生でありながらこれら全てを任してもらえます。</p> <p>私はこの経験からエンジニアとしての視野が大きく広がり、<strong>常にビジネス的な観点を持ちながらタスクを進めることができるようになりました。</strong>具体的には以下のような要素をタスク遂行時に意識しています。</p> <ul> <li>リリースのタイミングとして一番インパクトを出せるのはいつか? <ul> <li>そこから逆算して開発のスケジュールを立てる</li> </ul> </li> <li>ビジネスサイドと仕様を確定する段階で、専門的な用語を使わずにコミュニケーションするには? <ul> <li>事前に資料を用意して伝わりやすい言葉で実装可能性を検討する</li> </ul> </li> <li>リリースバグを無くすためのQAエンジニアとのコミュニケーションはどのように行う? <ul> <li>開発者が仕様を丁寧にまとめ、QA観点を予め自分で用意しておく</li> </ul> </li> </ul> <p>このような考慮ができるようになった背景には大きな裁量権だけでなく、それに伴う責任を同時に与えて貰えたことにあります。仕様の設計に漏れがあればプロダクトの価値を下げてしまいますし、コードの実装に負債があれば今後の開発に影響を与えてしまいます。<strong>社員と同じように責任を持って開発に臨める環境</strong>が私が最もHRBrainで成長できると思う要因です。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230721/20230721163602.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="メンター制度によるサポートと学び">メンター制度によるサポートと学び</h2> <p>HRBrainの長期インターンシップでは大きな裁量が与えられ、ただチームに放り投げられるわけではありません。丁寧なメンターによるサポートがあります。私自身入社して4ヶ月間はチームのフロントエンドエンジニアの先輩にサポートしてもらいました。</p> <p>メンターは新卒2年目の方が就いてくださり、近い距離感でありながら自分よりも高い技術力を持っている先輩に質問できる環境は学びが大きかったです。以下にそのポイントをまとめます。</p> <h3 id="1-丁寧なレビューが受けられる">1. 丁寧なレビューが受けられる</h3> <p>メンターから直接的な学びを得られる機会は「レビュー」です。コードの妥当性も当然のことながら、より可読性と保守性の高いコードの書き方など普段の個人開発では得られない指摘をいただくことができます。特にレビューのコミュニケーションを丁寧にに取ってくださったことからも実装の議論は当然のこと、それぞれの考えるReactのベストプラクティスについて会話することが多かったため、新しい発見や学びが合ったことを覚えています。</p> <h3 id="2-気軽に質問ができる">2. 気軽に質問ができる</h3> <p>私はメンターの隣の席で業務を行っていました。質問と言っても堅苦しいものではなく、最近気になる技術スタックについての雑談やプロダクトに導入できるかの議論などを頻繁にしていまいした。そこから実際にライブラリ移行する判断をしたり、設計の見直しをしたりすることで議論が発展していったので、すごく勉強になるコミュニケーションだったなと思います。</p> <h3 id="3-目指す目標になる">3. 目指す目標になる</h3> <p>近い年齢の先輩にメンターになってもらうと目指す目標になります。もちろんエンジニア歴が豊富なメンターから学べるものが多いことも事実です。しかし、<strong>年齢の近い先輩にメンターをしてもらうと、自分との差分が測りやすいメリットがあると思っています。</strong>「先輩に近づくには何をしたらいいか」と考えることが成長機会になります。私自身、メンターと今の自分の差分は何かと常に考えながら技術に向き合ったことで、少しずつ成長することができました。</p> <h2 id="毎週の1on1による目標達成に向けた後押し">毎週の1on1による目標達成に向けた後押し</h2> <p>HRBrainでは1on1の文化が活発で毎週EM(エンジニアリングマネジャー)の方と実施していました。1on1は普段の業務における不安などの気軽な相談から、目標の進捗確認まで様々な目的で行っています。</p> <p>私の場合は「今どんな状態か」「次何を目指すか」「そのためには何をしたらいいか」を意識して相談していました。これによって具体的なアクションが明確になり、精度の高い短期的な目標を細かく設定することができます。</p> <h3 id="具体的にした相談事項">具体的にした相談事項</h3> <ul> <li>「今どんな状態か」 <ul> <li>学生エンジニアの域からなかなか抜け出せていない</li> </ul> </li> <li>「次何を目指すか」 <ul> <li>社会人エンジニアとの差分を埋めるべく、技術力と開発力を向上させる</li> </ul> </li> <li>「そのためには何をしたらいいか」 <ul> <li><strong>ここを1on1で相談していました。</strong></li> </ul> </li> </ul> <h3 id="1on1によって生まれたネクストアクション">1on1によって生まれたネクストアクション</h3> <ul> <li>春のJavaScript祭りでLT登壇する</li> <li>社会人エンジニアのイベント・コミュニティに参加する</li> <li>周りを巻き込みながらブログの執筆に力を入れる</li> <li>HRBrainのLTイベントで登壇する(2回)</li> </ul> <p>1on1での会話から上記のアクションを取ることができました。1on1はエンジニアを10年と経験している社員の方に実施していただけるので、より自分のことを客観的に見て、経験則でアドバイスをしてもらえます。メンターの人も含めて様々な人からアドバイスをいただける環境があるのは成長角度を高く保つ上でも大切だなと感じました。</p> <p>また、1on1で全て答えが出なくても<strong>些細なことも聞いてもらえる環境</strong>が重要だと実感しています。悩みや不安は大小限らず少なからずあります。そういったことを細かく定期的に発散しながら軌道修正できたことがとても1on1に感謝している点です。</p> <h2 id="積極的なアウトプット機会">積極的なアウトプット機会</h2> <p>HRBrainは積極的に社外にアウトプットを行っています。アウトプットの方法は大きく2つあり、それは「ブログ文化」と「毎月の技術イベント主催」です。私自身これらのアウトプット機会を有効に活用することで成長することができたと考えています。</p> <h3 id="ブログ文化">ブログ文化</h3> <p>Qiitaでは社内の誰かが毎月投稿しており、<a href="https://qiita.com/advent-calendar/2022/ranking/feedbacks">Advent Calendar 2022</a>では第3位、<a href="https://qiita.com/official-campaigns/engineer-festa/2023">Qiita Engineer Festa 2023</a>では第6位のいいね数を獲得しています。なによりHRBrainの特徴は<strong>若手の積極的なアウトプット</strong>にあると思います。実際社内のQiitaいいね数の1位と2位は23卒の社員と私です。</p> <p>現在では24卒の内定者も全員が記事を執筆するなど、アウトプットに対する姿勢は他社に比べても特徴的だと感じます。</p> <p>また、ブログを執筆するたびにEMの方々からのレビューをしてもらえる点にも新しい発見や学びがあります。一人で記事を書くとその正確さなどに不安があると思いますが、しっかり記事のレビューをしてくださる環境があることで、気兼ねなくアウトプットができると思います。</p> <h3 id="HRBrain-Fly-HighLTイベント">HRBrain Fly High(LTイベント)</h3> <p>HRBrainでは2023年4月から毎月技術イベントを主催して社外へのアウトプットを行っています。テーマは様々で、エンジニアの成長戦略からFrontendに特化したLTまで幅広く、CTOやテックリードが登壇するだけでなく若手エンジニアも登壇したりと、社員全員が積極的にアウトプットする習慣があります。</p> <p>実際私も2回登壇の機会をもらいLTを行いました。インターン生でも前に立って発表の機会をいただけることは本当に貴重です。</p> <p>またこれらのLTイベントでは他社との共同で主催するイベントもあるため、社内に留まらないコミュニケーション機会があることも魅力です。実際に私もこれらイベントで知り合ったエンジニアの方との会話から新しい発見が数多くありました。</p> <h2 id="まとめ">まとめ</h2> <p>以上HRBrainの長期インターンシップで得られる成長機会について自身の経験を踏まえて紹介しました。改めてHRBrainの一番の強みは「<strong>やりたいことはなんでもできる</strong>」ことだと思います。そしてそのサポート体制やアウトプット機会が充実しています。</p> <p>学生の間からこのような経験ができたことは非常に貴重であり、今後のエンジニアキャリアの土台になる成長をさせてもらえたと感謝しています。</p> <p>後編の記事では私がHRBrainの中で具体的にどのような業務を行ったのか、開発の側面とアウトプットの側面でご紹介したいと思っています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/t/taisei-13406/20230721/20230721161653.jpg" width="1133" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="後編の内容">後編の内容</h3> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2F2023%2F07%2F26%2F165109" title="【後編】HRBrainの長期インターンシップでの挑戦と実績〜チャレンジできる環境はここにある〜 - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/2023/07/26/165109">times.hrbrain.co.jp</a></cite></p> <ul> <li>開発での取り組み <ul> <li>配属後のファーストタスク</li> <li>ライブラリの移行</li> <li>認証フローの改善</li> </ul> </li> <li>社外アウトプットに関する取り組み <ul> <li>毎月の技術ブログ投稿と若手の巻き込み</li> <li>社内勉強会の主催</li> <li>LTイベントでの登壇</li> </ul> </li> </ul> <p>25卒向けにも長期インターンの募集しています!興味のある方は↓のリンクから応募してみてください!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.wantedly.com%2Fprojects%2F1089305" title="25卒学生対象!導入社数1000社以上のSaaSプロダクトを開発 - 株式会社HRBrainのWebエンジニアの採用 - Wantedly" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.wantedly.com/projects/1089305">www.wantedly.com</a></cite></p> taisei-13406 【登壇インタビュー #2】田川 勇希さん 〜SaaSスタートアップ企業に新卒入社することとは〜 hatenablog://entry/820878482946872087 2023-07-24T10:00:00+09:00 2023-07-24T10:00:01+09:00 はじめに 2023年5月29日、株式会社HRBrainはatama plus株式会社さんと合同で社外向け勉強会、HRBrain Fly Highを開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口がこちらのHRBrain Blogで詳しく記載しています) 「⚡23卒限定 LT Battle⚡」 をテーマにしたイベントで登壇してくれた田川 勇希さんを深掘りしていきます! 23卒限定 LT Battleで登壇してくれた蔭山 幸太さんについてはこちらのHRBrainBlogで公開しています 田川 勇希(Yuki Tagawa)さん プロフィール 株式会社HRBrainに2023… <h2 id="はじめに">はじめに</h2> <p>2023年5月29日、株式会社HRBrainはatama plus株式会社さんと合同で社外向け勉強会、<strong>HRBrain Fly High</strong>を開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口が<a href="https://times.hrbrain.co.jp/entry/2023/06/12/HRBrainFlyHigh">こちらのHRBrain Blog</a>で詳しく記載しています)</p> <p> <strong>「⚡23卒限定 LT Battle⚡」</strong> をテーマにしたイベントで登壇してくれた<strong>田川 勇希</strong>さんを深掘りしていきます! <strong>23卒限定 LT Battle</strong>で登壇してくれた<strong>蔭山 幸太さん</strong>については<a href="https://blog.hatena.ne.jp/hrbrain/hrbrain.hatenablog.com/edit?entry=820878482946649669">こちら</a>のHRBrainBlogで公開しています</p> <h2 id="田川-勇希Yuki-Tagawaさん">田川 勇希(Yuki Tagawa)さん</h2> <p><strong>プロフィール</strong></p> <p>株式会社HRBrainに2023年新入社員として入社したフロントエンドエンジニア。 HRBrainを含め2社で合計2年ほどインターンを経験。 趣味はサウナとラーメンと音楽(やるのも聞くのも)</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230703/20230703191148.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h1 id="LTテーマ-SaaSスタートアップ企業に新卒入社することとは">LTテーマ: SaaSスタートアップ企業に新卒入社することとは</h1> <h2 id="LT概要">LT概要</h2> <p>スタートアップに新卒入社をしてたいへんだと感じた点と、良かった点とを話してくれました。 学生時代のインターンを通して、スタートアップで働くことの大変さを知っていた田川さんが、なぜスタートアップのHRBrainに入社を決め、 そこでの働きを楽しんでいるのかという話をLTをしてくれました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230703/20230703191242.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="田川さんがスタートアップで働きたいと思ったきっかけは何だったんですか">田川さんがスタートアップで働きたいと思ったきっかけは何だったんですか?</h3> <p>HRBrainで2022年5月から長期インターンとして働いていたのですが、その前にも別の会社でインターン生として働いていました。 その会社はシード期ということもあり、コードを書く以外の様々な業務を担当していました。 とても忙しくて大変という反面、多くの業務に携われること・自分が会社に与える影響がとても大きく、やりがいを感じられ、楽しいと思いながら働いていました。 そこで、自分の役割に留まらずコードを書く以外の業務もできる機会が多いスタートアップ企業に就職したいと考えるようになりました。</p> <h3 id="複数のインターンを経験されていた中でHRBrainに入社を決めたのはなぜですか">複数のインターンを経験されていた中でHRBrainに入社を決めたのはなぜですか?</h3> <p>HRBrainの選考で関わった人がとても話やすかったことと、素のままの自分で一番話ができたと感じたからです。選考で、こういう正直に話をしてくれる人ばかりと話ができるということは、会社に話しすい人が多いのだろう。と感じることができました。就職活動での面接は、どうしても自分をよく見せようと思ってしまっていたのですが、HRBrainでの面接ではそうなりませんでした。あとは、会社の良いところも、悪いところも隠さずに話をしてくれたことが印象的でした。 大企業の面接等も何度か受けていたのですが、やはり表面の部分のみを話されているような感じや、多くの就活生の中の1人として扱われている感じがしました。HRBrainはそういった対応がありませんでした。 もちろん、自社開発がいいとか、SasSがいいとかその他、様々な理由はあります。 その中で、特にこれという理由は、そういった自分に対する接し方や正直な対応をしてくださる人が多かったという点が決定打でした。</p> <h3 id="HRBrainで働き始めて成長できた変わったなと思ったことはありますか">HRBrainで働き始めて成長できた、変わったなと思ったことはありますか?</h3> <p>働き始めて、自分の成長は感じています。 技術的なところはもちろんですが、例えば昔は何でも1人でやらないと。頑張らないと。と考えていたのですが、今は人を巻き込んで一緒に解決したり、調べても調べても分からなくて詰まった時は有識者にアドバイスを求めたりするようになりました。 自分一人では得られなかった知見やできなかったことが知れ、成長を感じることができています。</p> <h3 id="将来どのようなエンジニア働き方をしたいと考えていますか">将来どのようなエンジニア、働き方をしたいと考えていますか?</h3> <p>いいプロダクト、質の高いプロダクトを作るということに向き合っていける人になりたいと考えています。 そのためにはエンジニアとしての技術はもちろん身につけたいです。 まずはフロントエンドエンジニアとして一人前になりたいです。 ただ、それだけではなく、いいプロダクトを作るために周りとコミュニケーションをしっかり取れたり、落ちそうなタスク、落ちているタスクを自ら拾っていけるようになりたいです。 そういう行動がチリツモで成果になって、ちょっとでもいいプロダクト開発に貢献できるようになればと考えています。</p> <h3 id="スタートアップで新卒社員として働くことを楽しむ方法を教えてください">スタートアップで新卒社員として働くことを楽しむ方法を教えてください</h3> <p>何事も自分ごとだと思うことですね。 整っていない環境を自分が整えないといけないですし。 自分の担当のものでもないし、やりたくないものかもしれないけど、会社単位でやっていることは自分ごとだと考えるようにしています。</p> <p>HRBrainは、やったことを周りが称賛してくれる環境があるので、様々なタスクを任されても楽しめているという思います。 「田川くんならできるっしょっ」といって、PdMのかた、TLの方たちがチャレンジする機会をたくさん作ってくれることもHRBrainで働くことを楽しめている要因だと思います。 大変なこともたくさんありますが、HRBrainには成長の機会がたくさん転がっていると思います。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230703/20230703191636.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>田川さん、ありがとうございました!!!</strong></p> <h2 id="登壇資料">登壇資料</h2> <p><iframe id="talk_frame_1046169" class="speakerdeck-iframe" src="//speakerdeck.com/player/afc9654865b84eaba740f3ece07aac4f" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/raorao1011/saassutatoatupuqi-ye-nixin-zu-ru-she-surushi-toha">speakerdeck.com</a></cite></p> <h2 id="最後に">最後に</h2> <p>HRBrainでは月に数回、外部向けのLTイベントを行っています。 <code>#HRBrainFlyHigh</code>のハッシュタグをつけて、Twitterで告知をしているのでぜひ、チェックをお願いします。 そして、HRBrainに興味を持っていただけたらイベント参加あるいは、<a href="https://www.hrbrain.co.jp/recruit">採用ページ</a>からカジュアル面談の申し込みをお願いします。</p> iriko666666 【登壇インタビュー #1】蔭山 幸太さん 〜新卒が感じたLLMアイデアソンでの気付きと考え方〜 hatenablog://entry/820878482946649669 2023-07-18T10:00:00+09:00 2023-07-18T12:42:11+09:00 はじめに 2023年5月29日、株式会社HRBrainはatama plus株式会社さんと合同で社外向け勉強会、HRBrain Fly Highを開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口がこちらのHRBrain Blogで詳しく記載しています) 今回のMeet upでは「⚡23卒限定 LT Battle⚡」 をテーマに弊社エンジニア蔭山 幸太さん、田川 勇希さん、橋本 健史さんが登壇し、入社して2ヶ月弱で挑戦したことやスタートアップに入社して感じたこと、業務で挑戦したこと等を発表してくれました。 このブログは前編、蔭山 幸太さん・後編、田川 勇希さんの2回にわた… <h2 id="はじめに">はじめに</h2> <p>2023年5月29日、株式会社HRBrainはatama plus株式会社さんと合同で社外向け勉強会、<strong>HRBrain Fly High</strong>を開催しました!!!(HRBrain Fly Highの詳細は弊社EM山口が<a href="https://times.hrbrain.co.jp/entry/2023/06/12/HRBrainFlyHigh">こちらのHRBrain Blog</a>で詳しく記載しています)</p> <p> 今回のMeet upでは<strong>「⚡23卒限定 LT Battle⚡」</strong> をテーマに弊社エンジニア<strong>蔭山 幸太</strong>さん、<strong>田川 勇希</strong>さん、<strong>橋本 健史</strong>さんが登壇し、入社して2ヶ月弱で挑戦したことやスタートアップに入社して感じたこと、業務で挑戦したこと等を発表してくれました。</p> <p>このブログは前編、蔭山 幸太さん・後編、田川 勇希さんの2回にわたり、イベントでの登壇内容等を踏まえお二方について深掘りしていきます!(橋本 健史さんは別イベントでの登壇でお話を伺います!)</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230702/20230702224801.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="蔭山-幸太Kota-Kageyamaさん">蔭山 幸太(Kota Kageyama)さん</h2> <p><strong>プロフィール</strong> <br> 株式会社HRBrainの23新卒入社 エンジニア。 2022年5月から同社でインターンを行っていました。 現在はバックエンドエンジニアとして、社員名簿の開発を担当しています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230718/20230718124136.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h1 id="LTテーマ-新卒が感じたLLMアイデアソンでの気付きと考え方">LTテーマ: 新卒が感じたLLMアイデアソンでの気付きと考え方</h1> <p>蔭山さんは入社1ヶ月目にして社内アイデアソンに参加しました。 そのアイデアソンに参加する際に行ったアイディア出しの試行錯誤方法や、アイデアソンを終えて感じたことをLTで発表をしてくれました。 自分自身のタスクや技術習得に大変な中、アイデアソンに参加した理由や、HRBrainに新入社員としての働き方や今後のキャリアについて聞いてきました。</p> <h3 id="入社して1ヶ月アイデアソンに参加決意した理由は何だったのですか">入社して1ヶ月、アイデアソンに参加決意した理由は何だったのですか?</h3> <p>アイデアソンであれば、HRBrainで長く働いている方、技術力の高い方と肩を並べて戦えると思ったからです。 また、今回のアイデアソンが「LLMを活用した既存プロダクト強化案」というものだったので今、世界的に流行っているChatGPTを学ぶ機会になると考えたからです。</p> <h3 id="実際に参加されてどうでしたか">実際に参加されてどうでしたか?</h3> <p>アイデアソン、すごく好きだなと実感しました。 今までビジコン等は出たことがあったのですが、市場調査や将来性とかアイディアを考える前にやっておくことがとても多かったです。 また、プレゼンの時間自体もアイディアの発表というより、アイディアにたどり着くまでの手法によっているように感じていました。 個人的にビジコンは、本来の課題解決の手法・モノに対しての発表内容が薄れてしまうなという印象がしました。 一方で、アイデアソンではみんなの目を引くアイディアを磨くことができます。より本質的な課題を解決している実感があり、将来性や市場規模と関係のないビジネスの種だとを作る経験ができてとても良かったです。 自分は良いアイディアを磨き続け、技術・知識を磨いた上で周りの協力も得てサービスに落とし込んでいくような仕事をしたいと考えています。 なので、これからもアイデアソンの機会があれば積極的に参加したいと思います。</p> <h3 id="ちなみに蔭山さんがHRBrainに入社を決めた理由って何だったのでしょうか">ちなみに、蔭山さんがHRBrainに入社を決めた理由って何だったのでしょうか?</h3> <p>一番の決め手は会社が社員をとても大切にする社風だったことです。 入社前に、子育てをしながら仕事も続けている方がいるインタビュー記事を読み、この会社はプライベートと仕事の両立しながら働ける環境があるのだと知りました。 会社がそういった働き方を推進しているということは、会社に余力があるからできると思ったんです。そういう会社はきっと社員が長く働きたいと思うだろうし、自分自身も安心して働けると感じたからです。 次に会社の文化・働いている方々がとても話しやすく働きやすそうだなと感じられたことです。 自分自身がこの会社で働くというイメージがつきHRBrainへの入社を決めました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230711/20230711115806.jpg" width="1200" height="577" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="実際に入社されて会社の人や雰囲気はどうでしたか">実際に入社されて、会社の人や雰囲気はどうでしたか?</h3> <p>HRBrainで働いてみて、人を助け合う風土がしっかりあるなと思います。 サポート体制がとてもしっかりしています。 具体的には、中途入社の方がきた際、チームの方・人事の方がしっかりオンボーディングをしてくれたり、エンジニア用のオンボーディングがあったり、しっかりしていました。 自分自身も、新卒入社したときに新人研修がしっかりあり、HRBrain全体のプロダクト理解を促進するために配属予定のプロダクト以外のタスクを対応したり、お問い合わせ対応を経験したりできとても学びになりました。営業の方とお客様のアポイントに同行し、HRBrainが実際にどう使われているか直接知る機会もありました。 サポートやオンボーディング体制がしっかりしていないと、良い方が入社されても既存の社員が人を育成しようとせずに、すぐに人が辞めていくのではと思います。</p> <p>サポート体制がしっかりしているからこそ、今自分も新しい挑戦ができています。 入社してから失敗した経験もあるのですが、チームの方に「次の成長として捉えたらいいよ。」と言ってもらえたし、フォローをしてもらえたことがとてもありがったかったです。</p> <h3 id="HRBrainで働き始めて成長できた変わったなと思ったことはありますか">HRBrainで働き始めて成長できた、変わったなと思ったことはありますか?</h3> <p>仕事に対する責任感が入社前よりもついたと思います。 あとは、自分1人ではできないことがたくさんあると気づくことができました。 自分一人でやらないといけないとは思わずに、新卒なので迷惑かけちゃおう。ちゃんと聞きにいこう。と、いい意味で考えを切り替えられるようになりました。</p> <h3 id="蔭山さんは将来的にどういったエンジニア社会人になりたいと考えていますか">蔭山さんは将来的にどういったエンジニア・社会人になりたいと考えていますか?</h3> <p>良いサービスを作りたいという思いが強くあります。 プログラミングだけに閉じた業務だけではなく、エンジニアとしての技術を高めることはもちろん、より良いサービスを作るためにマネージャーやPdMよりの仕事をしていきたいと今は考えています。 プロダクト開発に幅広く関われるプレーヤーになって、会社が円滑にプロダクト開発を進めていけるように引き続き頑張っていきたいと思います!!</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20230711/20230711120856.jpg" width="1200" height="1081" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>蔭山さん、ありがとうございました!!!</strong></p> <h2 id="登壇資料">登壇資料</h2> <p><iframe id="talk_frame_1032254" class="speakerdeck-iframe" src="//speakerdeck.com/player/b5336cbb3e60491b83990b96c59a72f4" width="710" height="399" style="aspect-ratio:710/399; border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen"></iframe> <cite class="hatena-citation"><a href="https://speakerdeck.com/kotakageyama/learning-through-llm-ideathon">speakerdeck.com</a></cite></p> <h2 id="さいごに">さいごに</h2> <p>HRBrainでは月に数回、外部向けのLTイベントを行っています。 <code>#HRBrainFlyHigh</code>のハッシュタグをつけて、Twitterで告知をしているのでぜひ、チェックをお願いします。 そして、HRBrainに興味を持っていただけたらイベント参加あるいは、<a href="https://www.hrbrain.co.jp/recruit">採用ページ</a>からカジュアル面談の申し込みをお願いします。</p> iriko666666 デベロッパーミートアップ「HRBrain Fly High」始動!! hatenablog://entry/820878482939924394 2023-06-12T22:05:18+09:00 2023-06-16T12:46:21+09:00 こんにちは。Dev.Enablementチームの@yug1224です。 梅雨に入り、ジメジメした日が続いていますね。皆様いかがお過ごしでしょうか。 オフラインの開発者イベントも増え始め、少しずつですがコロナ禍前の日常が戻りつつあるように感じます。 弊社でも4月以降イベントを開催してきましたが、ここで改めて「HRBrain Fly High」についてご紹介します。 <p>こんにちは。Dev.Enablementチームの<a href="https://twitter.com/yug1224">@yug1224</a>です。</p> <p>梅雨に入り、ジメジメした日が続いていますね。皆様いかがお過ごしでしょうか。</p> <p>オフラインの開発者イベントも増え始め、少しずつですがコロナ禍前の日常が戻りつつあるように感じます。</p> <p>弊社でも4月以降イベントを開催してきましたが、ここで改めて「HRBrain Fly High」についてご紹介します。</p> <h2 id="HRBrain-Fly-High-とは">HRBrain Fly High とは</h2> <p>「Power to the people」をPurposeとして掲げるHRBrainによるデベロッパーミートアップです!🍖</p> <p><em>働くひとりひとりの成長を支え、会社ひとつひとつを成長に導く。どこよりも成長に伴走し、成長を科学し、成長を具体的にソリューションとして提示できる存在になる。</em></p> <p>そんな想いから、技術を深く掘り下げる Deep Dive ではなく、より高く飛び上がる Fly High を目指して <strong>「HRBrain Fly High」</strong> と名付けました!🎉</p> <p>HRBrainのメンバーが、どのように技術を学び活かしているかをミートアップを通じて発信していくので、ぜひご参加ください ✨</p> <p><figure class="figure-image figure-image-fotolife" title="[HRBrain Fly High #1](https://hrbrain.connpass.com/event/278979/) [HRBrain Fly High #2](https://hrbrain.connpass.com/event/283389/) の集合写真"> <div class="images-row mceNonEditable"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yug1224/20230609/20230609102438.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yug1224/20230609/20230609102531.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></div> <figcaption><a href="https://hrbrain.connpass.com/event/278979/">HRBrain Fly High #1</a> <a href="https://hrbrain.connpass.com/event/283389/">HRBrain Fly High #2</a> の集合写真</figcaption> </figure></p> <h2 id="直近の実施イベントと今後の予定">直近の実施イベントと今後の予定</h2> <p>「HRBrain Fly High」これまでの実施イベントと現時点での今後のスケジュールは下記の通りです。</p> <ul> <li>2023/04/25(木): <a href="https://hrbrain.connpass.com/event/278979/">HRBrain Fly High #1 -BtoB ビジネス開発の裏側-</a></li> <li>2023/05/29(月): <a href="https://hrbrain.connpass.com/event/283389/">HRBrain Fly High #2 -23 卒限定 LT Battle-</a></li> <li>2023/06/15(木): <a href="https://hrbrain.connpass.com/event/285384/">HRBrain Fly High #3 -U25 若手エンジニアの成長戦略-</a></li> <li>2023/07/24(月): HRBrain Fly High #4</li> <li>2023/08/28(月): HRBrain Fly High #5</li> <li>2023/09/25(月): HRBrain Fly High #6</li> </ul> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.notion.so%2FHRBrain-Developer-Meetup-ec00293aaa1d4d9f9160263fbe3dc338" title="🌐HRBrain Developer Meetup情報🌐" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.notion.so/HRBrain-Developer-Meetup-ec00293aaa1d4d9f9160263fbe3dc338">www.notion.so</a></cite> <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhrbrain.connpass.com" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://hrbrain.connpass.com">hrbrain.connpass.com</a></cite></p> <p>今後もイベントを複数企画中です!</p> <p>随時Connpassにてイベント告知を行っていきますので、お楽しみに!🍻</p> yug1224 プロダクトファーストな開発組織で、あなたの技術力を最大限発揮しませんか? hatenablog://entry/820878482938000310 2023-06-12T15:12:54+09:00 2023-06-12T15:25:37+09:00 こんにちは。HRBrainでVP of Engineeringを担当している川田です。本記事は、開発組織の概要を伝えるために書きました。 カジュアル面談ではよく伝えている内容ですが、対外的な発信はしていなかったので、改めて実例を交えながら紹介します。 想定読者は、HRBrainの開発組織に興味を持った方、興味を持つかもしれない方です。カジュアル面談の前などに軽く目を通しておいていただけると、より深い話ができるのでぜひご一読ください。 HRBrainとは HRBrainは、HR TechのSaaSプロダクトを提供するスタートアップです。 開発組織として、開発者が顧客の本当に求めているものを作り出… <p>こんにちは。HRBrainでVP of Engineeringを担当している川田です。本記事は、開発組織の概要を伝えるために書きました。</p> <p>カジュアル面談ではよく伝えている内容ですが、対外的な発信はしていなかったので、改めて実例を交えながら紹介します。</p> <p>想定読者は、HRBrainの開発組織に興味を持った方、興味を持つかもしれない方です。カジュアル面談の前などに軽く目を通しておいていただけると、より深い話ができるのでぜひご一読ください。</p> <h2 id="HRBrainとは">HRBrainとは</h2> <p>HRBrainは、HR TechのSaaSプロダクトを提供するスタートアップです。</p> <p>開発組織として、開発者が顧客の本当に求めているものを作り出し、しっかり届けられていることを実感できることを大切にしています。</p> <p>HR Techのサービスと言うといわゆる業務アプリケーションのような古いイメージを持たれがちですが、HRBrainではより良いユーザー体験が得られるWebアプリケーションを開発しています。</p> <p>嬉しいことに、顧客からも使いやすいというフィードバックを多くいただきます。</p> <p><figure class="figure-image figure-image-fotolife" title="評価プロダクトのファーストビュー"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607142900.png" width="1200" height="629" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>評価プロダクトのファーストビュー</figcaption></figure></p> <h2 id="開発体勢">開発体勢</h2> <p>私たちは開発者だけでなく、各機能組織から成るプロダクトチーム体制を採用しています。大きく分けて開発を推進するDevelopment(Dev)と、顧客と接するセールスやカスタマーサクセスなどのメンバーを含むRevenue(Rev)に分かれています。DevもRevも対等にディスカッションをし、一緒にプロダクト開発を行っています。この体制により、「何のために作るのか?」「何を、いつまでに作るのか?」といった問いから、実際の開発までの過程を歩調を合わせながら推進することができます。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230608/20230608171826.png" width="1200" height="529" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="仕様策定フェーズ">仕様策定フェーズ</h2> <p>仕様を決める段階では、プロダクトオーナーに全てを任せるのではなく、開発者も積極的に関わります。なぜなら顧客の普段の業務の解像度が高くないと、求められていない機能を作ってしまう可能性があるからです。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607204607.png" width="1200" height="677" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>私たちはデザイナーやエンジニアに対しても、顧客の会社の人事や社内の顧客接点が多いメンバーと直接対話をし、普段の課題のヒアリングや開発中の案を見せながらフィードバックを得ることを奨励しています。そうすることで、顧客が真に求めている機能を最初から提供することが可能となります。</p> <p>SaaSプロダクトでは、一度リリースしてしまうと顧客に利用し始められてしまうため、取り下げることが難しいといった特徴があります。そのため最初から本当に顧客が求めていた機能を開発しないと本来残したくないコードが残り続けてしまうことになります。顧客のためだけでなく、開発者自身のためにも仕様を決めることに力を割くことは重要です。</p> <h2 id="開発中">開発中</h2> <p>私たちの開発組織では、常に多くの開発ラインが稼働しています。リリース予定の機能はnotionにまとめて社員の誰でも見れるように整理されています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607204222.png" width="1200" height="621" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>プロダクトごとに分かれたチームが各々の裁量で開発を進めます。ほとんどの意思決定はプロダクトチームで完結します。セールスたちと調整をしつつ自分たちで決めた期日に向けて開発を進めます。</p> <p><figure class="figure-image figure-image-fotolife" title="↑セールス、カスタマーサクセスを含むプロダクトチーム全体での会議風景"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607180742.png" width="1200" height="574" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>セールス、カスタマーサクセス等を含むプロダクトチーム全体での会議風景</figcaption></figure></p> <h3 id="Branch-Deploy">Branch Deploy</h3> <p>検証環境ではバッティングを防ぐために、開発Branchごとに独立した環境を立ち上げる仕組みがあります。通常、「Dev1, Dev2, Dev3の環境があり、開発者で奪い合う」といった状況になりがちですが、HRBrainは各々が任意のタイミングで自身の環境を立ち上げることができ、他の開発ラインに影響なくスムーズに開発を進めることが可能です。</p> <p>Branch Deployについては別記事にまとまっているので、ぜひ御覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2Fkubernetes-branch-deploy" title="Kubernetesの「ブランチデプロイ」で誰もがハッピーなDev環境を作る - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/kubernetes-branch-deploy">times.hrbrain.co.jp</a></cite></p> <p>検証環境の立ち上げは、以下の画像のようにBranchのコメントに「/deploy」とコメントするだけです。その後環境が立ち上がった後で、自動的にコメントが編集され検証環境のリンクが書き込まれます。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607181524.png" width="693" height="364" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="Feature-Flag">Feature Flag</h3> <p>私たちが開発する機能は、ある程度まとまった単位で提供して初めて顧客が価値を享受することができます。一方、ソフトウェア開発のセオリーとしては小さくmainにマージして小さくデプロイを繰り返すことが推奨されます(<a href="https://cloud.google.com/blog/ja/products/gcp/using-the-four-keys-to-measure-your-devops-performance">参考</a>)。</p> <p>この矛盾を解決するために、Feature Flagという仕組みも用意しています。この仕組みにより、大きい機能開発であってもソースコードをこまめにmainにマージして日々小さい単位でリリースすることができます。</p> <p>詳しくは、こちらも別記事があるので御覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2F4486%2Fitems%2F6eae2840160d4f06cc84" title="未完成の価値に着目して不確実性の高い開発に向き合った話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/4486/items/6eae2840160d4f06cc84">qiita.com</a></cite></p> <h2 id="リリース前">リリース前</h2> <p>リリース前には、プロダクトの機能を社内に説明する定例会を実施し、市場投入の準備を行います。これは主にプロダクトオーナーが行いますが、開発者が直接説明することもあります。なぜなら、開発者自身が作ったものがどのように使われるのかを理解していることで、より具体的なフィードバックや改善点を発見しやすいからです。</p> <p>実際に、評価サービスのカスタマイズシート機能という1年がかりの大規模な開発では、開発中の機能を社内で勉強会を細かく実施したり、直接顧客からフィードバックをもらうことで、リリース直後から非常に大きい反響を得ることができました。</p> <p>この開発フローでは、リリース前から社内のセールスやカスタマーサクセスメンバーが機能について既に詳しくなっているため、リリース前から顧客に詳細に説明することができてリリース直後からすぐに使ってもらうことができました。</p> <p><figure class="figure-image figure-image-fotolife" title="カスタマイズシート機能の説明会風景"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607205807.png" width="1200" height="667" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>カスタマイズシート機能の説明会風景</figcaption></figure></p> <h2 id="リリース後">リリース後</h2> <p>リリース後は、まずプロダクトチームから社内全体に向けてアナウンスをします。 称賛しあうことで、隠れてしまいがちな開発者の活躍が分かったり、モチベーションの向上につながります。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607172411.png" width="1047" height="1030" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>また顧客からのフィードバックも非常に大切にしています。作ったものが実際にどのように喜ばれているかを知ることで次の開発に活かすことができます。 顧客との会話の録画やカスタマーサクセスチームからの定性的なフィードバックにより、リリースした機能が具体的にどのように喜ばれたか、という具体的な事例を教えてくれます。</p> <p>「サクセスニュース」というemojiがついた投稿のみが流れてくるSlack Channelがあり、ここでポジティブなフィードバックをまとめて閲覧することができます。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230607/20230607173903.png" width="955" height="933" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="変遷">変遷</h2> <p>最初から今まで継続的にこのような文化があったわけではありませんでした。従業員が少ない頃は自然とできていましたが、人員増加に伴い組織の壁が大きくなってきました。そんな中、開発者自身がプライドを持って最高のプロダクトを開発するという原点を再認識し、様々なチャレンジを積み重ねた結果、組織文化が大きく変化しました。</p> <h2 id="開発体制の強化">開発体制の強化</h2> <p>私たちはこれからも開発力をさらに強化し、開発組織を拡大していく予定です。そして、私たちと共に、顧客が真に求めるものを追求し、技術力を発揮したい方を探しています。私たちと一緒に新しい発想で組織を巻き込み、挑戦していきましょう。</p> <p>以上が私たちの開発組織の概要です。何かご質問がありましたら、いつでもお気軽にお問い合わせください。弊社のチームであなたの技術力を存分に発揮し、顧客のために最高のプロダクトを一緒に作り出しましょう。</p> <p>カジュアル面談ができるのを楽しみにしています。</p> <p><iframe width="560" height="315" src="https://www.youtube.com/embed/Hm5PXq7MdDI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="HRBrain タレントマネジメントシステム「ブレインさん語り」篇 30秒"></iframe><cite class="hatena-citation"><a href="https://youtu.be/Hm5PXq7MdDI">youtu.be</a></cite></p> hrb-kawata Power to the Team研修はじめました hatenablog://entry/4207112889984660388 2023-06-01T18:36:55+09:00 2023-06-05T18:57:59+09:00 こんにちは、HRBrainのDev.Enablement室長の川田です。 Dev.Enablementは、2023.04に立ち上がった開発組織の採用/育成/活性化の仕組み化を推進するチームです。 その施策1発目として、Power to the Team研修というものをスタートしました! Power to the Team研修とは Power to the Team研修とは、HRBrainの開発組織に所属する優秀なメンバーが講師となり、他メンバーの学習を加速させるための学習機構です。 HRBrainの開発組織では、任意の書籍の購入支援やカンファレンスやイベントの支援など、各々の自発性に委ねた機構… <p>こんにちは、HRBrainのDev.Enablement室長の川田です。</p> <p>Dev.Enablementは、2023.04に立ち上がった開発組織の採用/育成/活性化の仕組み化を推進するチームです。</p> <p>その施策1発目として、Power to the Team研修というものをスタートしました! <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-kawata/20230601/20230601183428.jpg" width="1200" height="900" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h1 id="Power-to-the-Team研修とは">Power to the Team研修とは</h1> <p>Power to the Team研修とは、HRBrainの開発組織に所属する優秀なメンバーが講師となり、他メンバーの学習を加速させるための学習機構です。</p> <p>HRBrainの開発組織では、任意の書籍の購入支援やカンファレンスやイベントの支援など、各々の自発性に委ねた機構を用意しています。 一方、メンバーが受け身でも学べる機構は用意していませんでした。</p> <p>自律的な学習ももちろん大事ですが、自律性だけに委ねてしまうと各々がそのときにたまたま興味のある領域の学習しか促進されません。</p> <p>例えば、マネージャから見て「バックエンドエンジニアのAさんは、フロントエンドの知識を身につけるとエンジニアとしての活躍の幅が広がりそうだな」という状況があったとしても、当の本人がフロントエンドについての解像度が低く面白さをまだ発見できていない場合、学習したいという欲求が生まれません。</p> <p>もしフロントエンドについて詳しい社内メンバーからフロントエンドの楽しさを伝えられたら、「フロントエンド面白いかも!学んでみたい!」と感じて自発的な学習につながり、活躍の幅を大きく広げられる可能性が高まります。</p> <p>こういったことを狙い、社内の有識者から他のメンバーに対して技術やマネジメントの面白さを伝える研修をはじめました。</p> <p>弊社には「Power to the Team」というValueがあります。</p> <pre class="code" data-lang="" data-unlink>行動が伴わない評論やネガティブはスピードダウン。いつだって決断と行動で前進しよう。 ポジティブにエンパワーメントし合える集団で仕事を楽しもう。</pre> <p>まさに開発メンバーをポジティブにエンパワーメントする機構だなと思い、「Power to the Team研修」と名付けました。</p> <h1 id="どんな内容なのか">どんな内容なのか</h1> <p>研修は、1テーマにつき前半後半の全2回を1セットとして、隔週で実施します。</p> <p>前半は座学です。</p> <p>テーマに沿った内容で、有識者の知見を教えてもらいます。</p> <p>一方的な情報共有だけだと学びが薄くなるので、参加メンバーの発言も促しながら実施します。</p> <p>前半の最後に、後半までにやる宿題を出してもらいます。</p> <p>後半は、宿題をやった上での学びや振り返りを行います。</p> <p>座学だけでなく、実際に実践をした上で、同じ実践をした他メンバーと振り返ることで学習の促進が期待できます。</p> <h1 id="テーマ">テーマ</h1> <p>社内のテックリードに相談して、半年先までのテーマを決めました。</p> <ol> <li>ピープルマネジメント / チームビルディング</li> <li>エンジニアのためのプロダクトマネジメント</li> <li>プロジェクトマネジメント</li> <li>バックエンド、インフラ、アーキテクチャ</li> <li>フロントエンド</li> <li>ポータブルスキル</li> </ol> <p>まずは半年実施してみて、今後のやり方や内容を改善していく想定です。</p> <p>実施したら、レポートとしてブログを書く予定です。</p> <p>今後のレポートをお楽しみに!</p> <h1 id="さいごに">さいごに</h1> <p>HRBrainでは、会社の成長と共に自身も成長したいエンジニアを募集しています!</p> <p>会社が成長すると新しいポジションが生まれ、新規開発へのアサインなど成長機会が多くなりやすいです。</p> <p>ただ機会があるだけでなく、これからはDev.Enablementとして成長の後押しに力を入れていきます。 一緒に成長したい方はぜひご連絡お待ちしています!</p> <p><a href="https://www.hrbrain.co.jp/recruit/career/">https://www.hrbrain.co.jp/recruit/career/</a></p> hrb-kawata インセプションデッキ作ってみた<ファシリテーター視点> hatenablog://entry/4207112889967548620 2023-03-13T10:00:00+09:00 2023-03-13T10:00:01+09:00 はじめに こんにちは。 Development Officeのマネージャー兼エンジニアリングマネージャーをしている柳川です。 Development Officeとは何か、興味のある方はぜひ以下のインタビュー記事をご覧ください。 www.wantedly.com さて、今回のこの記事で扱う内容は、昨年末に労務プロダクトチームのPdMである齊藤さんから依頼されて実施した 「インセプションデッキ作成のワークショップ設計とファシリテーションの実践方法」 となります。 PdM齊藤さんの記事はこちら この記事を読んで、実際にやってみたい方のお力になることができたら幸いです。 インセプションデッキとは? … <h2 id="はじめに">はじめに</h2> <p>こんにちは。 Development Officeのマネージャー兼エンジニアリングマネージャーをしている柳川です。</p> <p>Development Officeとは何か、興味のある方はぜひ以下のインタビュー記事をご覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.wantedly.com%2Fcompanies%2Fhrbrain%2Fpost_articles%2F442964" title="開発組織のカルチャーを支えるDevelopment Office立ち上げへの想い。「いつか組織づくりをプロダクトに還元したい」 | 株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.wantedly.com/companies/hrbrain/post_articles/442964">www.wantedly.com</a></cite></p> <p>さて、今回のこの記事で扱う内容は、昨年末に労務プロダクトチームのPdMである齊藤さんから依頼されて実施した</p> <p><strong>「インセプションデッキ作成のワークショップ設計とファシリテーションの実践方法」</strong></p> <p>となります。</p> <p>PdM齊藤さんの記事は<a href="https://times.hrbrain.co.jp/entry/roumu/202303">こちら</a></p> <p>この記事を読んで、実際にやってみたい方のお力になることができたら幸いです。</p> <h2 id="インセプションデッキとは">インセプションデッキとは?</h2> <p>アジャイルサムライで紹介されている、プロダクトの全体像を端的に捉えるためのフレームワークです。</p> <p>11枚のスライドがテンプレートとして用意されています。</p> <p>アジャイルサムライのサポートページでスライドは配布されています。</p> <p><a href="https://github.com/agile-samurai-ja/support/tree/master/blank-inception-deck">https://github.com/agile-samurai-ja/support/tree/master/blank-inception-deck</a></p> <blockquote><ol> <li><em>我々はなぜここにいるのか?</em></li> <li><em>エレベーターピッチ</em></li> <li><em>パッケージデザイン</em></li> <li><em>やらないことリスト</em></li> <li><em>プロジェクトコミュニティ</em></li> <li><em>技術的な解決策の概要</em></li> <li><em>夜も眠れなくなるような問題はなんだろう?</em></li> <li><em>俺たちの"Aチーム"</em></li> <li><em>期間を見極める</em></li> <li><em>トレードオフ・スライダー</em></li> <li><em>初回のリリースに必要なもの</em></li> </ol> </blockquote> <p>これらのスライドを作成することで、プロダクトのビジネス価値やビジョンが明確になり、開発チームを取り巻く人・技術・計画という観点での全体像の把握と課題発見が可能となるため、プロダクト開発のスタートラインに立つことができると言えます。</p> <h2 id="ワークショップ開催の目的">ワークショップ開催の目的</h2> <p>今回、ワークショップを開催するにあたって、目的を2つに絞りました。</p> <p><strong>1. チームメンバーとの関係性構築</strong></p> <p>チームでの役割上普段話すことの少ないメンバーや新しくジョインしたメンバーの、人となりや仕事に対する思いを知り、普段からコミュニケーションの取りやすい状態を作ることを目的としました。<br/> そのため、今回は話しやすい空気を醸成しやすい少人数でのグループワークを取り入れています。</p> <p><strong>2. プロダクトの目指している方向性を明らかにし、認識を揃えること</strong></p> <p>こちらは、インセプションデッキの「我々はなぜここにいるのか?」「エレベーターピッチ」の2枚のスライドを完成させることを今回のゴールとしました。</p> <h2 id="ワークショップの進め方">ワークショップの進め方</h2> <p>今回のワークショップは、開発ビジネス含めたメンバー12名(ファシリテーターの私を含む)で、5時間ほどの時間を使って開催しました。</p> <p><figure class="figure-image figure-image-fotolife" title="アジェンダ"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143729.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>アジェンダ</figcaption></figure></p> <h3 id="俺たちのAチーム">「俺たちの”Aチーム”」</h3> <p>このワークのファシリテートは、主催者であるPdM齊藤さんにお任せしました。</br> チームメンバーがチームでの自身の役割を説明しながら、話し合いの場を温めてもらいました。</p> <h3 id="我々はなぜここにいるのか">「我々はなぜここにいるのか?」</h3> <p>このワークでは、以下のような問いかけの答えを見つけていきます。</p> <blockquote><ul> <li><em>私たちは何のためのプロダクトを作っている?</em></li> <li><em>何のためのチームを組んでいる?</em></li> <li><em>私たちの顧客って誰?</em></li> <li><em>そもそもこのプロダクトの始まりって何?</em></li> </ul> </blockquote> <p>ワークは以下の手順で進めます。 <figure class="figure-image figure-image-fotolife" title="個人ワーク"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143803.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>個人ワーク</figcaption></figure></p> <p><figure class="figure-image figure-image-fotolife" title="グループワーク"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143830.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>グループワーク</figcaption></figure></p> <p><strong>チーム分けは、普段あまり会話していないようなメンバーと意図的に組むことが大切です。</strong></br> そのため、事前にPdM齊藤さんと相談してチームを決めました。</p> <p><figure class="figure-image figure-image-fotolife" title="まとめ"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143848.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>まとめ</figcaption></figure></p> <p><strong>ここでのファシリテーションの大切なポイントは、どの意見も基本的には正であると捉えることです。一見対立するような意見が出ることがあっても、視点を変えるとどの意見も一理あることがほとんどです。</strong></br> </br> <strong>そういった意見をその場にいる全員が認め合い、さまざまな意見の中に内在する共通項を見つけていく手助けをすることが大切です。</strong></br> </br> 労務プロダクトチームでは、最終的に2つの大事な理由をメンバーみんなで納得して決めることができました。</br> <strong>フォーマットにこだわり過ぎず、みんなが納得いく結果を生み出すことも重要です。</strong></p> <h3 id="エレベーターピッチ">「エレベーターピッチ」</h3> <p>エレベーターピッチでは、30秒以内にプロダクトのアピールをするという設定で、以下のフォーマットに沿ったセンテンスを落とし込んでいきます。</p> <blockquote><p><em>「潜在的なニーズを満たしたり、潜在的な課題を解決したり」したい</br></em> <em>「対象顧客」向けの、</em> <em>「プロダクト名」というプロダクトは、</br></em> <em>「プロダクトのカテゴリー」です。</br></em> <em>これは、「重要な利点、対価に見合う説得力のある理由」ができ、</br></em> <em>「代替手段となるプロダクト」とは違って、</br></em> <em>「差別化の決定的な特徴」が備わっている。</br></em></p></blockquote> <p></br> ワークは以下の手順で進めます。</p> <p><figure class="figure-image figure-image-fotolife" title="グループワーク"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143911.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>グループワーク</figcaption></figure></p> <p>今回は文章の一部分を切り出して案出しする形のため、他チームが前後どのような文章を持ってくるのか想像しながら自分たちの案を決めていかなければなりません。</br> </br> 難易度は高いですが、その分話し合い自体は活性化しやすくなります。</br> </br> このワークのチーム分けでも、普段あまり会話していないようなメンバーと意図的に組んでもらうため、先ほどのチーム分けとはまた違うメンバーで構成しました。</p> <p><figure class="figure-image figure-image-fotolife" title="まとめ"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yue_hrb/20230308/20230308143932.jpg" width="720" height="405" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>まとめ</figcaption></figure></p> <p>バラバラに集めた材料でまとめるのですが、今までの経験上ではここであまりにも整合性のとれていない文章になることはほとんどありません。</br> </br> それは「我々はなぜここにいるのか」のワークを事前に行なっていることで、プロダクトに対する認識の土台ができているためです。</br> </br> <strong>ただ、細かい文章の違和感をなくし、より良いエレベーターピッチにしていくためにチームメンバーで時間を費やすことに意味があるので、ファシリテーターはあえて疑問を投げかけたりして議論を誘発することが必要となります。</strong></br> </br> 労務プロダクトチームでも一度固まってきたら、誰かに声に出して読み上げてもらい、そこで感じた違和感を潰し、を何度も繰り返して最終的な成果物へと導いていきました。</p> <h2 id="最後に">最後に</h2> <p>インセプションデッキに限らずですが、私がワークショップを設計/ファシリテーションする時には、以下のことを大切にしています。</p> <ul> <li><strong>ワークの目的を明確にすること</strong></li> <li><strong>目的に沿ったワークを設計すること</strong></li> <li><strong>議論を誘う問いかけをすること</strong></li> <li><strong>置いてきぼりの人を作らないこと</strong></li> <li><strong>必要な議論はし尽くすべきというスタンスを明確にし、時間に捉われずに議論できるように場の設計をすること</strong></li> <li><strong>目に見える成果物をアウトプットすること</strong></li> </ul> <p></br> この記事が、インセプションデッキ作成や、ワークショップ設計 / ファシリテーションをしてみたいと思っている方のお力になれば幸いです!</br> ぜひトライしてみてください!</p> yue_hrb インセプションデッキ作ってみた<チーム視点> hatenablog://entry/4207112889961380208 2023-03-13T10:00:00+09:00 2023-03-13T10:00:00+09:00 はじめに 株式会社HRBrainで労務サービスのプロダクトマネージャーをしています id:Moou_hrです。 少し前の話で恐縮ですが、年末にインセプションデッキを作るワークショップを開催しました。 チーム全員の目線を合わせる為だけでなく、親睦を深めるという意味でも有意義な時間になりましたのでその話を書かせて頂ければと思います。 インセプションデッキとは? アジャイル開発を進める際に使用される手法の1つで、プロジェクトの全体像を明確にしたり、関係者の間で認識合わせをしたりするために活用します。 プロジェクトの全体像を把握し、メンバー全員がプロジェクト開発に共通の認識と目標を持って取り組むために… <h2 id="はじめに">はじめに</h2> <p>株式会社HRBrainで労務サービスのプロダクトマネージャーをしています <a href="http://blog.hatena.ne.jp/Moou_hr/" class="hatena-id-icon"><img src="https://cdn.profile-image.st-hatena.com/users/Moou_hr/profile.png" width="16" height="16" alt="" class="hatena-id-icon">id:Moou_hr</a>です。</p> <p>少し前の話で恐縮ですが、年末にインセプションデッキを作るワークショップを開催しました。 チーム全員の目線を合わせる為だけでなく、親睦を深めるという意味でも有意義な時間になりましたのでその話を書かせて頂ければと思います。</p> <h3 id="インセプションデッキとは">インセプションデッキとは?</h3> <p>アジャイル開発を進める際に使用される手法の1つで、プロジェクトの全体像を明確にしたり、関係者の間で認識合わせをしたりするために活用します。<br> プロジェクトの全体像を把握し、メンバー全員がプロジェクト開発に共通の認識と目標を持って取り組むために作成します。</p> <h2 id="何故今なのか">何故今なのか?</h2> <p>基本、インセプションデッキはサービスが始まる前に作る事が多いかと思います。<br> 弊社の労務サービスは2022年の10月に既にリリースしており時期としてはかなり遅い開催になりました。<br> それでも開催した理由としては</p> <ul> <li>私含め労務開発メンバーの過半数が半年以内に入社しており背景が曖昧な状態で進んでいた</li> <li>さらに良いサービスを提供する為に再度目線を合わせる必要があった</li> </ul> <p>等が挙げられます。</p> <h2 id="事前準備">事前準備</h2> <p>まず、今回のワークショップでどこまでを議題にあげる必要があるのか考えました。<br> インセプションデッキを全て完了するには10の問いに答える必要があります。<br> 確保していた時間が4時間程と少ない事もあり優先度が高い3つの課題をピックアップし、なるべく議論の深堀りが出来るような時間配分を心がけました。<br></p> <ul> <li>俺たちのAチーム</li> <li>我われはなぜここにいるのか</li> <li>エレベーターピッチ</li> <li>トレードオフスライダー(時間があれば)</li> </ul> <p>今回は開発メンバーだけでなく、セールスやカスタマーサクセスといったビジネス組織のメンバーも参加して頂くことを念頭に置いていました。<br> 開発側とビジネス側のコミュニケーションの円滑化もワークショップの裏目的としていましたので「俺たちのAチーム」をアイスブレイクとして先頭に行い、それぞれのメンバーに対する期待値を共有出来た状態でワークショップに臨める状況作りました。<br></p> <p><figure class="figure-image figure-image-fotolife" title="グループワーク"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/M/Moou_hr/20230223/20230223224305.png" width="1200" height="896" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>グループワーク</figcaption></figure> ※上記ワークショップの進め方や詳細につきましては、ファシリーテーター(弊社エンジニアリングマネージャー柳川)の記事をご確認ください。<a href="https://times.hrbrain.co.jp/entry/inceptiondeck_workshop/202303">こちら</a><br></p> <h2 id="やってみてどうだったか">やってみてどうだったか</h2> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/M/Moou_hr/20230223/20230223230713.png" width="1182" height="832" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span> 短い時間ではありましたが、「我われはなぜここにいるのか」「エレベーターピッチ」を議論し決定する事が出来ました。<br> 私的に一番良かったことは、開発とビジネス側のメンバーが一緒にグループワークをしたことでお互いのプロダクトに対する未来や現状の思いを言語化する機会が持て同じ目線に立てた事だと思います。<br></p> <p>ワークショップの終了後に、参加者の方々から感想を頂きました。</p> <ul> <li>普段会話できていなかった方々との交流や、仕事への向き合い方スタンスなど共通認識をもててすごくよかったです!</li> <li>話したことがあまりないビジネスサイド側のお話も聞けたし今後はもっと気軽に相談出来る空気になった</li> <li>ものを考えるにあたって、どういう観点で見ているのかがお互いに明らかになり、コミュニケーションの質が開発側とビジネス側で違うなと肌で感じられた</li> </ul> <p>インセプションデッキによって、当初の目的でもあった「全員のプロダクトに対する目線を合わせる」事が出来たのではないかなと思います。<br> また、ワーク後は部署を跨いだ意見交換も頻繁に行われる様になりコミュニケーションの円滑にも貢献出来たと言えそうです。<br></p> <h3 id="風化させない取り組み">風化させない取り組み</h3> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/M/Moou_hr/20230301/20230301155728.jpg" width="1200" height="778" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span> せっかく議論して良い指標が出来たのにそれを風化させてしまっては意味がないですよね?<br> 常に思い出して意思決定の判断軸とするために下記の事を実行しています。</p> <ul> <li>定例の冒頭に必ず全員で確認する</li> <li>ポスターにして壁に飾る</li> <li>印刷して手元に置く</li> </ul> <p>常に目につく所にあることで自然に全員が思い出せる状況になり、議論の途中で話題にあげて意思決定をする事も増えました。</p> <h2 id="総括">総括</h2> <p>このタイミングでインセプションデッキに取り組めたことは結論とても意義がありました。<br> 複数観点から議論することで新しい発見が出来、全員が同じ方向を向ける良い機会だったと思います。<br> プロジェクトを開始するタイミングだけでなく途中で認識のズレが見えたり方向性が曖昧になった時などは実施してみるのも良いのではないでしょうか。<br></p> <p>今回決めきれなかった残りの項目に関しては良きタイミングで実施をしようと思います。<br> その時はまたこのブログでお会いましょう。<br></p> <p>最後までお読み頂きありがとうございました。<br></p> Moou_hr 【HRBrain Advent Calendar 2022】25日間走りきりました! hatenablog://entry/4207112889948681100 2022-12-28T11:16:25+09:00 2022-12-28T16:50:56+09:00 バックエンドエンジニアの入中です。 2022年のクリスマスもあっという間に終わってしまい、もう年末ムードですね。 今年のHRBrain Advent Calendarは合計61記事が投稿されました! そして、結果はなんと…… すべてのカテゴリ: 3位☃️ Organization: 2位 🎉 総いいね数: 1,695🎄 (2022/12/28 16:00時点) という、HRBrain史上1番の記事数、いいね数、順位の🎄🎅3冠達成🎅🎉となりました!! 投稿予定の記事を校閲し合ったり、 1記事だけではなく、周りを巻き込みながら自発的に2記事目を書いてくれたりと、 エンジニア、CS、バックオフィス、… <p>バックエンドエンジニアの入中です。</p> <p>2022年のクリスマスもあっという間に終わってしまい、もう年末ムードですね。</p> <p>今年のHRBrain Advent Calendarは合計<strong>61</strong>記事が投稿されました!</p> <p>そして、結果はなんと……</p> <p><span style="font-size: 150%">すべてのカテゴリ: <strong>3位</strong>☃️ </span> <br></p> <p><span style="font-size: 150%">Organization: <strong>2位</strong> 🎉 </span> <br></p> <p><span style="font-size: 150%">総いいね数: <strong>1,695</strong>🎄 </span> <br> (2022/12/28 16:00時点)<br> という、HRBrain史上1番の<strong>記事数</strong>、<strong>いいね数</strong>、<strong>順位</strong>の🎄🎅<strong>3冠達成</strong>🎅🎉となりました!!</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20221228/20221228160639.png" width="756" height="204" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>投稿予定の記事を校閲し合ったり、 1記事だけではなく、周りを巻き込みながら自発的に2記事目を書いてくれたりと、 エンジニア、CS、バックオフィス、デザイナーなど、 所属部署に関係なく会社全体で盛り上がることのできたイベントとなりました。</p> <p>さらにアドベントカレンダー終了後、こんな嬉しい投稿もありました👀</p> <div align="center"> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yug1224/20221227/20221227203434.png" width="50%" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> </div> <p>これから、HRBrainのTech Blogもさらに盛り上がっていくことでしょう😏</p> <h3 id="HRBrainでは一緒に盛り上がって働いていただける仲間を募集しています">HRBrainでは一緒に盛り上がって働いていただける仲間を募集しています</h3> <p>興味を持っていただいた方はぜひ弊社の採用ページもご覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> <p>今年も1年ありがとうございました。<br> 来年もHRBrainをよろしくお願いします!<br> 良いお年を!</p> <p><strong>2022年 HRBrain Advent Calendarはこちらです</strong></p> <table> <thead> <tr> <th style="text-align:left;"> DATE </th> <th style="text-align:left;"> TITLE </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 2022/12/01 </td> <td style="text-align:left;"> <a href="https://qiita.com/yuonoda/items/22a6dd04eb18b4dca240">GoでデータフレームパッケージのOSSを作ってみた話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/01 </td> <td style="text-align:left;"> <a href="https://qiita.com/_ken_/items/f6962e4007669329f4fd">【もう慌てない】Git操作まとめ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/01 </td> <td style="text-align:left;"> <a href="https://qiita.com/satomi310/items/64c5273fab1c33f9fb6a">date pickerとdate range pickerができるまで</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/02 </td> <td style="text-align:left;"> <a href="https://qiita.com/Iriko666666/items/cf791b8e19f0d8eefc4c">GASでアドベントカレンダーの日付を自動割当できるスクリプトを作成した</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/02 </td> <td style="text-align:left;"> <a href="https://qiita.com/135-san/items/e2629f6c5d4029832e22">個人情報の取扱いについて皆が考えた方が良いよねって話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/03 </td> <td style="text-align:left;"> <a href="https://qiita.com/shippokun/items/26f06576987acfa19556">プロジェクトを進める上でやっておくこと</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/03 </td> <td style="text-align:left;"> <a href="https://qiita.com/tomtomtommy18/items/88754bfa3e36e3069959">35歳のフロントエンドエンジニアがメガベンチャーから転職した理由</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/04 </td> <td style="text-align:left;"> <a href="https://qiita.com/uqichi/items/06c4f4d25d2b0dab9fef">Goのsliceはsafeじゃない</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/04 </td> <td style="text-align:left;"> <a href="https://qiita.com/kota33/items/377d18f5dd2258e5a711">今すぐ使えるSQLのNULLとunknownの考え方</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/05 </td> <td style="text-align:left;"> <a href="https://qiita.com/hrb-oki/items/06416e799661152f7662">エンジニアの新卒採用本格始動しました!</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/05 </td> <td style="text-align:left;"> <a href="https://qiita.com/hrb-matsudo/items/69e20b21cef2bcb380d5">Figmaと仲良くなるために覚えておきたいショートカット3選</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/06 </td> <td style="text-align:left;"> <a href="https://qiita.com/fujiwaram/items/f877a03114a1a47adc7d">Go言語で桁数指定可能な四捨五入関数を作る</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/06 </td> <td style="text-align:left;"> <a href="https://qiita.com/purpleeeee/items/1d8c4264be2b35a428b1">スタイルを上書きできるコンポーネントはなるべく作らない方がいいという話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/07 </td> <td style="text-align:left;"> <a href="https://qiita.com/Iriko666666/items/851d10947af6c5b13f5a">OSSにissueを立てた話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/07 </td> <td style="text-align:left;"> <a href="https://qiita.com/riku0202/items/2867d412effab9042848">type-challengesの「Permutation」で詰まった話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/07 </td> <td style="text-align:left;"> <a href="https://qiita.com/tonarinohey/items/1b6b546cc62111a989b5">Goのslice比較でテストがFlakyになったってハナシ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/08 </td> <td style="text-align:left;"> <a href="https://times.hrbrain.co.jp/entry/terraform-plan-github-actions">terraform planを動的に実行するシンプルなGitHub Actions</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/08 </td> <td style="text-align:left;"> <a href="https://qiita.com/HZama/items/f311def335f5869f1148">mermaidを使って図を楽に作ろう!</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/09 </td> <td style="text-align:left;"> <a href="https://qiita.com/taijuf212/items/17f8c052cce457754a55">Goでエンベロープ暗号化してみた</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/09 </td> <td style="text-align:left;"> <a href="https://qiita.com/hrb_yoshi/items/f6269dc0b210cfdebe55">品質保証エンジニアという知る人ぞ知るお仕事</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/10 </td> <td style="text-align:left;"> <a href="https://qiita.com/4486/items/6eae2840160d4f06cc84">未完成の価値に着目して不確実性の高い開発に向き合った話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/10 </td> <td style="text-align:left;"> <a href="https://qiita.com/hrb-ando-kaoru/items/e83d2b5c06efb10b1cee">コミュニケーションを促進するカンタンな図の使い方</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/11 </td> <td style="text-align:left;"> <a href="https://times.hrbrain.co.jp/entry/cs-fuji1">バックオフィスの労務担当が社内異動で労務管理システムのCSになった話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/11 </td> <td style="text-align:left;"> <a href="https://qiita.com/yug1224/items/2a87f34dd49593b8bd4a">かけだしエンジニアリングマネージャーが1on1ミーティングで大切にしていること</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/12 </td> <td style="text-align:left;"> <a href="https://qiita.com/goodtea0223/items/651717378d645a13365d">テスト用のmockデータをフロントで手軽に作成</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/12 </td> <td style="text-align:left;"> <a href="https://qiita.com/naiki____/items/d64794b46231528fa622">Pythonで始めるCode Golf</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/13 </td> <td style="text-align:left;"> <a href="https://qiita.com/Occhiii623/items/646c25d3c3f177d02b34">新人が問い合わせ対応をがんばったら社内で一番になった件について</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/13 </td> <td style="text-align:left;"> <a href="https://qiita.com/Mozu1206/items/c99e514ce45ebf37b6b3">デザイン・フロントエンド・バックエンドをやってみて良かったこと</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/14 </td> <td style="text-align:left;"> <a href="https://qiita.com/raorao1011/items/acc54a215064bbb888c6">TypeScript + Hardhatで始めるスマートコントラクト開発環境構築</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/14 </td> <td style="text-align:left;"> <a href="https://qiita.com/k_tohiski/items/b0cee7e7102905b7566d">お客様へ適切に「HRBrain」を届けたい</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/15 </td> <td style="text-align:left;"> <a href="https://qiita.com/yug1224/items/c7663540bde617e348ac">時間を取り戻したい時に使えるGitテクニック</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/15 </td> <td style="text-align:left;"> <a href="https://qiita.com/hrb-ohashi/items/ecc5ef2a97d0585d625e">めざせ!notionマスター!〜notion初心者がレシピ集と食材管理と買い物リストをDB管理!それってつまり…クレイジーってコト!?</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/16 </td> <td style="text-align:left;"> <a href="https://qiita.com/ftojima/items/c460579208ea67d12d2f">Config Controller + GitHubでCloud RunのGitOpsを構築してみる</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/16 </td> <td style="text-align:left;"> <a href="https://qiita.com/ingtk/items/43c7b7a2ae5cbfc7ae6a">PostgreSQLで外部キーを使う際の注意点</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/17 </td> <td style="text-align:left;"> <a href="https://qiita.com/yudppp/items/579462bcf7bfdbac883e">SVGの一部分をSVGだけで回転させたい</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/17 </td> <td style="text-align:left;"> <a href="https://qiita.com/y_yue/items/8ef6d2fdc50db42072f6">HRBrain開発チームのオンボーディング紹介</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/17 </td> <td style="text-align:left;"> <a href="https://qiita.com/ren7087/items/bb48251cff0673ecd865">ECMAScriptの第一歩</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/18 </td> <td style="text-align:left;"> <a href="https://qiita.com/shiza_takao/items/5da0b34eb6fb5644de9f">【新米PdM必見】Notionでいい感じにガントチャートを作る方法【付録付き】</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/18 </td> <td style="text-align:left;"> <a href="https://qiita.com/Moou0820/items/7d5d009dfa10d346a7f2">toC脳からtoB脳へ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/19 </td> <td style="text-align:left;"> <a href="https://times.hrbrain.co.jp/entry/expression-editor">計算式Editorの作り方</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/19 </td> <td style="text-align:left;"> <a href="https://times.hrbrain.co.jp/entry/comedyschool">お笑い養成所で医者のネタをして激ヅメされた話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/19 </td> <td style="text-align:left;"> <a href="https://qiita.com/HZama/items/27b66f8b4b8480cf206e">k6で負荷試験してpandasで集計した話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/20 </td> <td style="text-align:left;"> <a href="https://qiita.com/taijuf212/items/57fccf4550ac6a983b8d">zshrcのカスタマイズ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/20 </td> <td style="text-align:left;"> <a href="https://qiita.com/minamikkk/items/6d6c0965738e188db5a8">マルチプロダクト戦略における「繋げる」戦術</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/20 </td> <td style="text-align:left;"> <a href="https://qiita.com/shiza_takao/items/56dfc4ecdc1887bb82ba">タスクベースUIとOOUIの差について一考</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/21 </td> <td style="text-align:left;"> <a href="https://qiita.com/tomtomtommy18/items/a3731a1d26c016325452">VS Codeでstyled-componentsの補完が効かないときの対応方法</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/21 </td> <td style="text-align:left;"> <a href="https://qiita.com/darkro/items/c3d6b73456ae87701a6c">Goでユニットテストを書くためのTips</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/21 </td> <td style="text-align:left;"> <a href="https://qiita.com/_ken_/items/435cbce30c45ea92c307">アニメオタク、GraphQLのクエリを学ぶ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/22 </td> <td style="text-align:left;"> <a href="https://times.hrbrain.co.jp/entry/2022/12/22/">HRBrainに出戻りしました</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/22 </td> <td style="text-align:left;"> <a href="https://qiita.com/ssossan/items/bde774a4dda32c9d38a9">EMの役割は鼻</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/22 </td> <td style="text-align:left;"> <a href="https://qiita.com/hh_hrb/items/eeb90456bef29c68a0f6">QAエンジニアである私の転職理由</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/23 </td> <td style="text-align:left;"> <a href="https://qiita.com/JunpeiNakagawa/items/1c244ed189241512e28e">OSSのコントリビューターになれなかった話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/23 </td> <td style="text-align:left;"> <a href="https://qiita.com/ervitis/items/eaaeed04a23c9dab5006">Golangでバッチとgoroutinesとgo channelsと比較してみましょ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/23 </td> <td style="text-align:left;"> <a href="https://qiita.com/yug1224/items/8bbb701039c059e74b95">dotfilesの配置はGNU Stowを使おう!</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/24 </td> <td style="text-align:left;"> <a href="https://qiita.com/mioin/items/d51cee21f2c273aac8b1">日常の育児でリサーチの手法を知らず知らずのうちに試していた話</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/24 </td> <td style="text-align:left;"> <a href="https://qiita.com/quarter789_/items/fe2f8858fd30c4663e14">SupabaseのRealtimeを使ってクイズアプリを作ってみた</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/24 </td> <td style="text-align:left;"> <a href="https://qiita.com/taisei-13046/items/37d685ff07b561881935">私の考えるReact Queryベストプラクティス</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/25 </td> <td style="text-align:left;"> <a href="https://qiita.com/tomotaka_s/items/b1eca5a4766bb475d898">M1 Mac において Go のリモートデバッグができない問題を解決し原因を考察した</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/25 </td> <td style="text-align:left;"> <a href="https://qiita.com/ryosuke77777/items/f15267fd4bc115dd8a70">非技術者PdMが、Slackワークフロー投稿をNotionデータベースへ溜めるGAS書いてみたよ</a> </td> </tr> <tr> <td style="text-align:left;"> 2022/12/25 </td> <td style="text-align:left;"> <a href="https://qiita.com/yug1224/items/5a895d8f19ad2418331f">消えたnpm xmasをもう一度</a> </td> </tr> </tbody> </table> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> iriko666666 HRBrainにアルムナイ入社しました hatenablog://entry/4207112889947210189 2022-12-22T11:36:15+09:00 2022-12-22T17:18:33+09:00 はじめに この記事はHRBrain Advent Calendar 2022 カレンダー2の22日目の記事です。 https://qiita.com/advent-calendar/2022/hrbrain 自己紹介 はじめまして、HRBrainでPMMとSales Enablementを兼務している島田と申します。 私たちは人事業務効率化のSaaSプロダクトを開発・運営している企業なのですが、 各種プロダクトの販促戦略・推進を行うための、コンテンツ企画・資料作成(PMM) 営業部隊との連携を行い、組織を強化・改善を含めた活動(Sales Enablement) をメインミッションとして担い、… <h1 id="はじめに">はじめに</h1> <p>この記事はHRBrain Advent Calendar 2022 カレンダー2の22日目の記事です。 <a href="https://qiita.com/advent-calendar/2022/hrbrain">https://qiita.com/advent-calendar/2022/hrbrain</a></p> <h1 id="自己紹介">自己紹介</h1> <p>はじめまして、HRBrainでPMMとSales Enablementを兼務している島田と申します。 私たちは人事業務効率化のSaaSプロダクトを開発・運営している企業なのですが、</p> <ul> <li>各種プロダクトの販促戦略・推進を行うための、コンテンツ企画・資料作成(PMM)</li> <li>営業部隊との連携を行い、組織を強化・改善を含めた活動(Sales Enablement)</li> </ul> <p>をメインミッションとして担い、ビジネス活動全般をリードするための施策立案を行っています (言葉だけ聞くとかっこよく聞こえますが、実際はまずはやれることをがむしゃらにやっている最中です笑) この度は弊社のエンジニアやPdMの皆様に混ざって「好きなことかいていいよ!」という ありがたいお言葉いただいたので、年の瀬であるのと、知り合いの方々から生存確認をいただくので最近の出来事を振り返っていきます。</p> <h1 id="アイスブレイク">アイスブレイク</h1> <p>突然ですが、私は「死んだと思っていた仲間が強くなって再会するシーン」とか 「窮地に陥った主人公のピンチに駆けつけるライバル」みたいなベタな展開がとっても好きです。 例えば、有名どころだとワンピースで主人公ルフィが義理の兄、サボと再会するシーンとかです。 ダイの大冒険のアバン先生が終盤復活するところもたまらないですよね。 でもHUNTER×HUNTERのゴトーが死んだと思ったらキリコが化けていたときはとても悲しかった。 ようは仲間との「再会」って最高ってことなんです。<br/> つまりそうですね、<strong>アルムナイ</strong>です。 以上、無理やりのアイスブレイクでした。</p> <h1 id="アルムナイって">アルムナイって?</h1> <p>皆さん「アルムナイ」って言葉はご存知でしょうか?「アラムナイ」とか「アムルナイ」とか表記ミスが多いアルムナイです。僕もよく間違えます。「卒業生」「同窓生」といった意味を持ち、人事領域で使われる場合「定年退職を覗いて企業を退職した人」のことを指します。終身雇用が主流の企業に務められている方にとって聞き馴染みがないかもしれませんが、アルムナイ採用を積極的に掲げて取り組んでいる企業も出始めており、今後もキャリアの多様性が増す影響もあり、更に増えていくかと思います。</p> <p>そして、私自身も、半年前にHRBrainに出戻りした<strong>アルムナイ社員なんです。</strong> 当時半年でHRBrainに戻ることは全く考えていませんでしたし、新卒時代から入りたいと思っていた会社だったのですが紆余曲折あり戻ってきました。 前職ではベンチャー企業でエンジニア採用をやっていたのですが、半年たってキャリアを見据えたときに、「自分はこのままエンジニア採用やりたかったんだっけ?」と思ったら仕事のパフォーマンスが全くでなくなってしまったんです。当時、転職活動もしていて有り難いことにいくつか内定もいただいていたんですが、色々とご縁もありHRBrainに戻ることになりました。</p> <p>ちなみに蛇足ですが、今年で社会人5年目なのですが、出戻りを含めると既に3回転職しています。 転職エージェントに履歴書を登録したらジョブホッパー認定されて、まともに面談してくれないかもってくらい職歴は荒れてます。 ただ最近は、勤続年数よりも過去の経験や将来のキャリアを熱く語れる方が認めれる時代になってきている気がしており、 「まだ1年もはたらいていないし、経歴に傷がつく」「折角苦労して入った会社だからすぐやめたくない。。」と思われる方も、 モヤモヤしているぐらいならまず色んな企業様とカジュアル面談をすることをおすすめします。 あくまで転職=異動くらいの感覚になりつつある一個人の意見ですが、やってみると転職ってハードル高くなかったりします。</p> <h1 id="HRBrainに戻ってみて">HRBrainに戻ってみて</h1> <p>成長する環境としてHRBrainがベストな選択肢だと思ったというとてもありきたりな理由で戻ってきました。 HRBrainの既存社員からすると「なんで半年で戻ってきたの???」と正直ネガティブな感想もたれるだろうなーと覚悟していたんですが、皆さんとても温かく迎え入れてくれました。 そして半年しか経っていないのに、従業員もプロダクトもたくさん増えていてびっくり。成長中のベンチャーっていいなあと勝手に感動していました。 自分自身会社からしっかり評価してもらえるか正直不安なところもあったんですが、「9月から企画やってね」とラフに通達がきたときはびっくりしました。 出戻りして3ヶ月しか経ってないし、そもそも営業と人事の経験しかない人間を、企画職に異動させるのはクレイジーだな。。と。 ただ僕自身前からやりたかった仕事ですし、一度HRBrainを辞める直前もずっとやりたかったミッションであることは伝えていたので、任せて貰えたんじゃないかと勝手に思っています。お陰様で無事実力不足が露呈し、いい意味で新卒気分で業務に向き合えています。背伸びしながら仕事できるって幸せだよなあと個人的には充実した日々を過ごせているなと。</p> <h1 id="今後の展望">今後の展望</h1> <p>自己紹介で記載した通り、現在はPMMとSales Enablementを兼任しており、企画側の人間としてPdMをはじめとする開発側の方々を関わる機会も増えています。 弊社はSaaSのビジネスモデルとして非常にスタンダードである「The Model」を取り入れた営業の分業制度を取り入れています。 この制度のおかげで業務の効率化や社員全体の最適化に成功をしているものの、一方で ビジネス側と開発側のコミュニケーションが取りにくい体制があるんじゃないかと思っています。 会社を成長させるためにも、お互いの業務理解を進められるような構造・仕組みを作っていければなと。 その旗振り役としてPMMとPdMが協力しながら、「ビジネス理解が深いエンジニア」「プロダクト開発理解が深いセールス」 を沢山生み出せるように頑張っていきます!</p> <h1 id="最後に">最後に</h1> <p>よく会社の採用HPで「若いうちから裁量権がある!」みたいな押し出しをしている企業もありますが、<strong>HRBrain以上に若手抜擢をしている会社はなかなか無いんじゃないかと思います。</strong> 弊社のValueのひとつに「Take Ownership」という言葉があるんですが、 自分自身で業務範囲を決めつけず、プロとして高い当事者意識もちながら仕事をされている方は きっとHRBrainは合うと思いますし、ご縁があれば一緒に働けたら嬉しいです。 今まさに転職活動している方も、新卒の方も是非一度カジュアル面談してくださいね!</p> <p>募集中の職種はこちら→ <a href="https://hrmos.co/pages/hrbrain/jobs">https://hrmos.co/pages/hrbrain/jobs</a></p> moshimoAAA 計算式Editorの作り方 hatenablog://entry/4207112889940868948 2022-12-19T10:24:39+09:00 2022-12-21T10:43:55+09:00 インタラクティブな計算式Editorを作成するために必要だったことをまとめました。 <p>この記事はHRBrain Advent Calendar 2022の19日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> <h2 id="はじめに">はじめに</h2> <p>HRBrainではタレントマネジメントシステムHRBrainを提供しています。</p> <p>社員名簿機能では、運用に合わせて自由に社員情報に紐付く項目を作成・編集することで、あらゆるデータを管理できます。</p> <p>項目には種類があり、文字列や数値、カスタムプルダウン、計算式など項目の種類も選ぶことが可能です。</p> <p><figure class="figure-image figure-image-fotolife" title="レイアウト編集画面"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221205/20221205144935.gif" width="1200" height="609" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>レイアウト編集画面(このレイアウト編集画面も一年半ほど前に自分が実装を担当しました。)</figcaption></figure></p> <p>計算式項目はさまざまな用途に利用されています。</p> <p>例えば生年月日から年齢を算出したい場合の計算式は下記の通りです。</p> <pre class="code" data-lang="" data-unlink>ISBLANK({生年月日}) ? &#39;&#39; : DATEDIF({生年月日}, NOW(), &#39;Y&#39;)</pre> <p>計算式の言語仕様は下記をサポートしています。</p> <ul> <li><code>ISBLANK</code>や<code>DATEDIF</code>などの関数</li> <li>社員名簿に登録されている他の項目からの参照</li> <li>数値や文字列</li> <li><code>+</code>や<code>-</code>などの演算子</li> <li>三項演算子</li> </ul> <p>2022年12月現在、計算式を設定する際はシンプルなInput要素に文字列を入れていただく形となっています。 簡単な計算式であればそれで十分だったのですが、想像を超えて複雑な計算式を利用されるようになり、計算式Editorの必要性が増しました。</p> <p><figure class="figure-image figure-image-fotolife" title="現在の計算式入力画面(一部省略しています)"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221213/20221213153529.png" width="830" height="616" loading="lazy" title="" class="hatena-fotolife" style="width:320px" itemprop="image"></span><figcaption>現在の計算式入力画面(一部省略しています)</figcaption></figure></p> <p>それを受け、今回計算式Editorを作ろうと思い立ち、計算式Editorを作るために行ったことをまとめて行こうと思います。</p> <h2 id="作り方">作り方</h2> <h3 id="1-Tokenizeを行う">1. Tokenizeを行う</h3> <p>今回のように計算式をTokenizeを行う場合は演算子や数値、関数などのトークン(単語や文字の塊)に分割することを指します。 例えば、「12 + 3 * 4」という数式の場合、トークンは「12」「+」「3」「*」「4」という演算子や数値の単位に分割されます。</p> <p>先程の年齢を算出するための計算式の場合は下記の画像のように分割されます。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221208/20221208175630.png" width="1200" height="429" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>今回は分割する際に値と合わせて、トークンの種別も持つようにしました。</p> <p>トークンの種別は下記の5種類定義しました。</p> <h4 id="Number">Number</h4> <p>数値型 整数や小数を扱う。</p> <h4 id="String">String</h4> <p>文字列型 ダブルクォーテーションもしくはシングルクォーテーションで括られた文字列</p> <h4 id="Operator">Operator</h4> <p>演算子 <code>+</code>や<code>-</code>などや三項演算子のための<code>?</code>や<code>:</code>など、また比較のための<code>==</code>や<code>&gt;</code>なども受け入れます。</p> <h4 id="Bracket">Bracket</h4> <p>括弧 ()や[]などの括弧を扱います。</p> <h4 id="Identifier">Identifier</h4> <p>上記以外の文字列は何かしら意味があるものであることが多いので識別子として扱います。 今回だと関数名や生年月日などの参照項目名などが入ってきます。</p> <p>実装については文字列を先頭から1文字ずつ取り出し塊ごとに分割していきます。</p> <h3 id="2-抽象構文木にParseする">2. 抽象構文木にParseする</h3> <p>Tokenizeでトークンごとに分割されましたが、それだけでは括弧の数があっているのかなどのFormatとして正しいのかなどが不明です。</p> <p>そこで抽象構文木に変換することで、計算式の構造を理解しやすくします。</p> <p>こちらもトークンを前から一つずつとっていきIdentifierの次に「Bracket(<code>(</code>)」があったら関数として扱うのように判別しながら木構造に変換していきます。</p> <p>先程同様に年齢を算出するための計算式はこのような木構造に変換されます。(開始位置、終了位置等を省略しています)</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221209/20221209200331.png" width="1200" height="717" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>使われている関数や引数などが理解しやすい形になりました。</p> <h3 id="3-Validationを行う">3. Validationを行う</h3> <p>数式のFormatとして大枠が正しいことが木構造に変換することで確認できました。ただしこのタイミングでは実在しない関数名を指定できたり、「生年月日」の代わりに存在しない「誕生日」という参照項目を誤って書いてしまうことも可能な状態です。</p> <p>そこで存在する関数名なのか、また関数の引数の数や受け入れる形式(数字なのか文字列なのか)、存在する項目を参照できているかなどのチェックを行います。</p> <h3 id="4-Editor画面を作ろう">4. Editor画面を作ろう</h3> <p>Editorを作る前に実現したいことを洗い出しました。</p> <ul> <li>計算式のFormatが正しくないときにエラー内容を提示する</li> <li>関数や参照項目の入力を簡単に行えるようにする</li> <li>関数の説明文や引数に何を指定すべきなのかがわかりやすい</li> <li>参照項目を少し目立たせたい</li> </ul> <p>1から作ることも考えたのですが、入力をサジェストする機能を作るにあたって、テキストエリア内のスタイルを調整したり、キャレット(カーソル)の位置を気にしたりすることを考えると大変そうだったのでライブラリーを利用することを考えました。</p> <p>下記の3つのライブラリーを検証しました。</p> <ul> <li><a href="https://github.com/facebook/lexical">lexical</a></li> <li><a href="https://github.com/signavio/react-mentions">react-mentions</a></li> <li><a href="https://github.com/inokawa/rich-textarea">rich-textarea</a></li> </ul> <p>調査した結果、interfaceがシンプルで使いやすかった<a href="https://github.com/inokawa/rich-textarea">rich-textarea</a>を採用することに決めました。</p> <p>rich-textareaではキャレットの位置のPosition(x,y)や何文字目なのかを取ることができます。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221210/20221210134520.gif" width="980" height="340" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>キャレットが何文字目なのかと先程までの木構造と組み合わせることで、今どの値を書く位置にいるのか判別できるようになり、あとは力技でサジェストができるようになりました。</p> <p>またrich-textareaではrendererを実装することができ、用意されているcreateRegexRendererを利用することで任意の文字列に対して任意のスタイルを与えることが可能になっています。</p> <pre class="code js" data-lang="js" data-unlink>const renderer = createRegexRenderer([ [/red/g, { color: &#34;red&#34; }], [/blue/g, { color: &#34;blue&#34; }], ]);</pre> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221210/20221210140318.gif" width="976" height="318" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>これらを組み合わせた結果下記のような計算機Editorが完成しました。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-suzuki/20221210/20221210151542.gif" width="1200" height="480" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="最後に">最後に</h2> <p>こちらの計算機Editorは技術検証を終えたタイミングであり、プロダクションコードにまだ入れきれておりません。 近々もう少し作り込んだものをリリースできればと考えております。 文字列を抽象構文木に変換することによってフロントエンドとして扱いやすく、やりたいことがやれる状態にできたと考えています。</p> <p>今後も顧客により使いやすいサービスになれるよう努めていきたいと思います。</p> <p>またHRBrainのエンジニアリングに興味を持っていただいた方はぜひ弊社の採用ページもご覧ください。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> hrb-suzuki お笑い養成所で医者のネタをして激ヅメされた話 hatenablog://entry/4207112889945061845 2022-12-19T00:00:00+09:00 2022-12-19T13:30:08+09:00 お笑い養成所での学びを新規事業立案に活かしている話です。 <h2 id="はじめに">はじめに</h2> <p>この記事はHRBrain Advent Calendar 2022 カレンダー2の19日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> <p><span style="font-size: 150%"><strong>はいどーもーーーーーー!</strong></span></p> <p>HRBrainでPdMをしています。けんしろうです。 私が所属しているのはSaaS Startup StudioというSaaS事業を立ち上げ続けることをミッションにしたチームで、そこのStudioManagerをしています。 実際に今年は労務管理クラウド・AIチャットボットをPdMとして立ち上げ、リリース致しました。</p> <p>本記事では新規事業を立ち上げる上で大切にしていることを、 そのことを強く意識したお笑い養成所時代のお話を交えながら書きたいと思います。 見切り発車気味なとこもあるのですが、読んでもらえたら幸いです。</p> <h2 id="お笑い養成所時代の話">お笑い養成所時代の話</h2> <p>皆さんはお笑い養成所ってどんな印象があります?</p> <p>・みんな売れたいとギラギラしているところ ・変な人が集まるところ ・事務所の人が怖そう</p> <p>いろんな意見があると思いますが、実際に通ってみた僕が感じたのはとても<code>ロジカル</code>で<code>意味を持たせる</code>ことを重視している場所ということでした。</p> <p>今でこそPdMなどとアルファベットを並べた肩書を拝命している僕ですが、4年前まで事務所に所属しながら夢を追いかける貧乏芸人でした。その芸人キャリア?のスタートとなった養成所は他のスクールと比べると珍しい週末コースが有った点です。</p> <h3 id="授業構成">授業構成</h3> <p>お笑い養成所での授業構成は ダンス1演技2ネタ見せ4というものでした。</p> <p>養成所に通って第一に言われたのは痛烈な否定でした。</p> <blockquote><p>本当に面白いやつは養成所通わずに自分で売れる。ここに来たということはお前らは面白くないってことだ。</p></blockquote> <p>実際に普段友人やまわりから<code>暗い</code> <code>つまらない</code>と言われて悔しくてきたと言う同期も居ました。</p> <p>そんな僕らにとって、<code>話のリズム感</code> <code>演技力</code>の基礎を付けることはとても理にかなった方法でした。</p> <p>そして授業の半分以上を占める <strong>ネタ見せ</strong> では毎回全員が考えてきたネタをクラス全員の前で講師に見てもらい、内容に対してFBをもらうというものでした。 クラスメイトのネタを見たり、その内容へのFBを聞くことはとても勉強になりました。</p> <p>もちろん自分自身のネタに対してのダメ出しは更に勉強になりました。 特にタイトルにも記載した、はじめてのネタ見せでのFBは記憶に鮮烈に残っています。</p> <h2 id="初めてのネタ見せ">初めてのネタ見せ</h2> <p>その日僕は医者になりたいと言う相方に付き合って、手術の再現をするという漫才を披露しました。 自分なりには頑張って台本を書いたネタでしたが講師の先生から想定外の一言が飛び出しました。</p> <p><span style="font-size: 150%"><strong>僕と相方「どうも〜ありがとうございました!!」</strong></span></p> <p><span style="font-size: 150%"><strong>講師「・・・・・・・お前ら医師免許持ってるの?」</strong></span></p> <p><span style="font-size: 150%"><strong>僕「え、、持ってないです。」</strong></span></p> <p><span style="font-size: 150%"><strong>講師「なのになんで医者のネタやったの?なんで?狙いは?」</strong></span></p> <p><span style="font-size: 150%"><strong>僕「・・・・・・(何も言えねー)」</strong></span></p> <p>その時に自分は漫才っぽいものを作ろうとしてただけなんだなと気が付きました。 ネタ作りはなぜそのテーマで作るのか?を考えるところが一番大事だったんです。</p> <p>更にその後聞いた話で何気なく笑っていた売れている芸人さんの <code>ネタの意図</code>を知って、とてもワクワクしたのを覚えています。</p> <h3 id="OKバブリー">OKバブリー!!</h3> <p>今では売れっ子の某女性芸人の先輩は、当時アベノミクスで経済が上向き、今後再びバブルを彷彿とさせる盛り上がりを見せるのでは!?と考えてバブリーキャラを先取りするネタを作り平成の世に再びバブリー旋風を巻き起こしたという話であったり。</p> <h3 id="ピカソよりラッセン">ピカソよりラッセン</h3> <p>一時期テレビで見ない日はなかった某アングラ芸人の先輩は、 昔バブルの時に何も知らない成金が美人のキャッチに捕まりラッセンのイルカの絵を買わされ、ピカソなどよりもラッセンが好きだと負け惜しみを言っていた過去のあるあるを揶揄し、JKやその当時のことを知らない若い世代向けにリズムと言い方で <code>意味がわからない</code>と思わせつつ笑いを取っていたそうです。その構図を見て意味がわからないと笑っている内情に痛烈な皮肉が含まれているシュールさに当時のことを知っているTV関係者の方々が面白がって起用した部分があったという話であったり。</p> <p>様々な例を交えつつ何も考えていない思考停止を激ヅメされました。</p> <p><span style="font-size: 150%"> <strong>講師「お前らがやるなら広告代理店のネタだろ!」</strong></span></p> <p>そう言われました。 当時僕はネット広告代理店で有名な会社に勤めながら、相方も広告代理店業界第2位の有名企業に勤め、2人とも働きながら週末養成所に通っていました。</p> <p>そんな2人であればその背景があるからこそ<code>説得力が増し</code>、<code>面白さを表現できる</code>ネタをやるべきだったのです。</p> <p>更に講師は、僕たちが高校卒業したてで1から漫才を極めて売れていく形が取れる年齢だったらアドバイスも変わるとおっしゃいました。正統派の漫才をやった時に純粋なお客さんや視聴者の方に比較されるのはそれこそM-1決勝に出場している方々やそれこそ歴代優勝者の方々です。 そこに遅れて入っていって同じことをしても長期間苦戦するのは当然なことです。</p> <p>医者の設定のネタをするならそれこそ医師免許を持っている人がやるほうが表現の幅が広がります。 そんなの関係ないと頑張って、 <code>誰がやっても面白いネタ</code> が作れたとしても、そんなネタなら先達の漫才名人の方がやってくれたほうが面白くなってしまうのです。</p> <h2 id="新規事業を考える上での共通点">新規事業を考える上での共通点</h2> <p>ちょっと配分が芸人によりすぎてませんか?大丈夫ですか? 僕は大丈夫です。</p> <p>ここで急な確度でSaaSビジネスの新規事業企画に話を戻してみましょう。 異なる企画の種類でも根本はそう変わらないのではないかと私は思っています。</p> <p>大切なのは何故 <code>今</code> <code>他の誰でもなく</code> <code>自分</code>が企画し実行するべきなのかを考えることです。</p> <h2 id="何故今SaaSなのか">何故今SaaSなのか?</h2> <p>ここからはいろんな方がいろんな意見で論じています。 私もいくつかの点で今まさにコミットすべきだと思っています。 そしてそのためには一緒に新しい事業を作ってくれる人がぜんぜん足りておりません! ここから先の具体的な狙いは一緒に事業・プロダクトを作ってくれる人にお話したいと思います!是非気軽にお声がけください!</p> <p>Twitterはこちら → <a href="https://twitter.com/ShirokenTokyo">https://twitter.com/ShirokenTokyo</a> 過去のInterview記事 → <a href="https://www.wantedly.com/companies/hrbrain/post_articles/396468">https://www.wantedly.com/companies/hrbrain/post_articles/396468</a> 募集中の職種はこちら→ <a href="https://hrmos.co/pages/hrbrain/jobs">https://hrmos.co/pages/hrbrain/jobs</a></p> ShirokenTokyo 【HRBrain Advent Calendar 2022】絶賛開催中! hatenablog://entry/4207112889944407367 2022-12-12T12:52:46+09:00 2022-12-12T12:53:58+09:00 HRBrain開発チームの柳川です。 もうすぐクリスマスですね🎄 そんなわくわくムードの中、 HRBrain Advent Calendar 2022 が絶賛開催中です! 今年はすでに24記事が更新されています。(12/11までの集計) 技術的なギークなお話から、HRBrainで働く人のお仕事紹介など、多岐に渡る内容でお送りしています。 是非一度ご覧ください! ここまでで更新された記事はこちらです。 12/1 更新 qiita.com qiita.com qiita.com 12/2 更新 qiita.com qiita.com 12/3 更新 qiita.com qiita.com 12/4… <p>HRBrain開発チームの柳川です。</p> <p>もうすぐクリスマスですね🎄</p> <p>そんなわくわくムードの中、<br/> <strong>HRBrain Advent Calendar 2022 が絶賛開催中です!</strong></p> <p><strong>今年はすでに24記事が更新されています。</strong>(12/11までの集計)</p> <p>技術的なギークなお話から、HRBrainで働く人のお仕事紹介など、多岐に渡る内容でお送りしています。</p> <p>是非一度ご覧ください! <br/> <br/> ここまでで更新された記事はこちらです。</p> <p><strong>12/1 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fyuonoda%2Fitems%2F22a6dd04eb18b4dca240" title="GoでデータフレームパッケージのOSSを作ってみた話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/yuonoda/items/22a6dd04eb18b4dca240">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fsatomi310%2Fitems%2F64c5273fab1c33f9fb6a" title="date pickerとdate range pickerができるまで - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/satomi310/items/64c5273fab1c33f9fb6a">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2F_ken_%2Fitems%2Ff6962e4007669329f4fd" title="【もう慌てない】Git操作まとめ - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/_ken_/items/f6962e4007669329f4fd">qiita.com</a></cite></p> <p><strong>12/2 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2F135-san%2Fitems%2Fe2629f6c5d4029832e22" title="個人情報の取扱いについて皆が考えた方が良いよねって話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/135-san/items/e2629f6c5d4029832e22">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2FIriko666666%2Fitems%2Fcf791b8e19f0d8eefc4c" title="GASでアドベントカレンダーの日付を自動割当できるスクリプトを作成した - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/Iriko666666/items/cf791b8e19f0d8eefc4c">qiita.com</a></cite></p> <p><strong>12/3 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fshippokun%2Fitems%2F26f06576987acfa19556" title="プロジェクトを進める上でやっておくこと - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/shippokun/items/26f06576987acfa19556">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Ftomtomtommy18%2Fitems%2F88754bfa3e36e3069959" title="35歳のフロントエンドエンジニアがメガベンチャーから転職した理由 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/tomtomtommy18/items/88754bfa3e36e3069959">qiita.com</a></cite></p> <p><strong>12/4 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fkota33%2Fitems%2F377d18f5dd2258e5a711" title="今すぐ使えるSQLのNULLとunknownの考え方 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/kota33/items/377d18f5dd2258e5a711">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fuqichi%2Fitems%2F06c4f4d25d2b0dab9fef" title="Goのsliceはsafeじゃない - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/uqichi/items/06c4f4d25d2b0dab9fef">qiita.com</a></cite></p> <p><strong>12/5 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fhrb-oki%2Fitems%2F06416e799661152f7662" title="エンジニアの新卒採用本格始動しました! - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/hrb-oki/items/06416e799661152f7662">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fhrb-matsudo%2Fitems%2F69e20b21cef2bcb380d5" title="Figmaと仲良くなるために覚えておきたいショートカット3選 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/hrb-matsudo/items/69e20b21cef2bcb380d5">qiita.com</a></cite></p> <p><strong>12/6 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Ffujiwaram%2Fitems%2Ff877a03114a1a47adc7d" title="Go言語で桁数指定可能な四捨五入関数を作る - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/fujiwaram/items/f877a03114a1a47adc7d">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fpurpleeeee%2Fitems%2F1d8c4264be2b35a428b1" title="スタイルを上書きできるコンポーネントはなるべく作らない方がいいという話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/purpleeeee/items/1d8c4264be2b35a428b1">qiita.com</a></cite></p> <p><strong>12/7 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Ftonarinohey%2Fitems%2F1b6b546cc62111a989b5" title="Goのslice比較でテストがFlakyになったってハナシ - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/tonarinohey/items/1b6b546cc62111a989b5">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Friku0202%2Fitems%2F2867d412effab9042848" title="type-challengesの「Permutation」で詰まった話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/riku0202/items/2867d412effab9042848">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2FIriko666666%2Fitems%2F851d10947af6c5b13f5a" title="OSSにissueを立てた話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/Iriko666666/items/851d10947af6c5b13f5a">qiita.com</a></cite></p> <p><strong>12/8 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2Fterraform-plan-github-actions" title="terraform planを動的に実行するシンプルなGitHub Actions - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/terraform-plan-github-actions">times.hrbrain.co.jp</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2FHZama%2Fitems%2Ff311def335f5869f1148" title="mermaidを使って図を楽に作ろう! - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/HZama/items/f311def335f5869f1148">qiita.com</a></cite></p> <p><strong>12/9 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fhrb_yoshi%2Fitems%2Ff6269dc0b210cfdebe55" title="品質保証エンジニアという知る人ぞ知るお仕事 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/hrb_yoshi/items/f6269dc0b210cfdebe55">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Ftaijuf212%2Fitems%2F17f8c052cce457754a55" title="Goでエンベロープ暗号化してみた - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/taijuf212/items/17f8c052cce457754a55">qiita.com</a></cite></p> <p><strong>12/10 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fhrb-ando-kaoru%2Fitems%2Fe83d2b5c06efb10b1cee" title="コミュニケーションを促進するカンタンな図の使い方 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/hrb-ando-kaoru/items/e83d2b5c06efb10b1cee">qiita.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2F4486%2Fitems%2F6eae2840160d4f06cc84" title="未完成の価値に着目して不確実性の高い開発に向き合った話 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/4486/items/6eae2840160d4f06cc84">qiita.com</a></cite></p> <p><strong>12/11 更新</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftimes.hrbrain.co.jp%2Fentry%2Fcs-fuji1" title="バックオフィスの労務担当が社内異動で労務管理システムのCSになった話 - HRBrain Blog" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://times.hrbrain.co.jp/entry/cs-fuji1">times.hrbrain.co.jp</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fyug1224%2Fitems%2F2a87f34dd49593b8bd4a" title="かけだしエンジニアリングマネージャーが1on1ミーティングで大切にしていること - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/yug1224/items/2a87f34dd49593b8bd4a">qiita.com</a></cite></p> <p><strong>ここから先も続々と更新予定ですので、お楽しみに〜!</strong></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> <p>過去のアドベントカレンダーはこちら</p> <p><a href="https://qiita.com/advent-calendar/2021/hrbrain">Calendar for HRBrain | Advent Calendar 2021 - Qiita</a></p> <p><a href="https://qiita.com/advent-calendar/2020/hrbrain">HRBrain Advent Calendar 2020 - Qiita</a></p> <h3 id="HRBrainでは一緒に働く仲間を募集しています">HRBrainでは一緒に働く仲間を募集しています</h3> <p>AdventCalendarを見ていただき、興味を持っていただいた方はぜひ弊社の採用ページもご覧くださいね。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> yue_hrb バックオフィスの労務担当が社内異動で労務管理システムのCSになった話 hatenablog://entry/4207112889943623029 2022-12-11T07:00:00+09:00 2022-12-11T07:00:01+09:00 はじめに こんにちは。 HRBrainで労務管理サービスのカスタマーサクセスを担当している藤本です! Advent Calendarを書かせていただくことになり、あっという間に順番が回ってきました! 12月といえば、毎年いい感じのダウン欲しいなぁ~と思い始める時期なのですが、ブランド・丈(ショートorロング)・色で悩みまくり、結局ダウンを買う前に春を迎えてしまうというのをかれこれ数年続けておりますw そんな優柔不断な私ですが、つい数ヶ月前キャリアを変え、新たなチャレンジが始まりました。 今回はそのことについて書ければと思います。 あ!先にお伝えすると…… Tech要素はあまりないのでHRBra… <h3 id="はじめに">はじめに</h3> <p>こんにちは。 <br>HRBrainで労務管理サービスのカスタマーサクセスを担当している藤本です! <br>Advent Calendarを書かせていただくことになり、あっという間に順番が回ってきました! <br>12月といえば、毎年いい感じのダウン欲しいなぁ~と思い始める時期なのですが、ブランド・丈(ショートorロング)・色で悩みまくり、結局ダウンを買う前に春を迎えてしまうというのをかれこれ数年続けておりますw</p> <p>そんな優柔不断な私ですが、つい数ヶ月前キャリアを変え、新たなチャレンジが始まりました。 <br>今回はそのことについて書ければと思います。</p> <p>あ!先にお伝えすると…… <br>Tech要素はあまりないのでHRBrainにこんな人もいるんだ〜という軽い気持ちで読んでいただけたら嬉しいです!!</p> <p>この記事はHRBrain Advent Calendar 2022 11日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="HRBrainのカレンダー | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> <h3 id="新しいキャリアの始まり">新しいキャリアの始まり</h3> <p>現在は労務管理サービスのカスタマーサクセスを担当していますが、つい3か月前まではHRBrainの労務担当でした。 2021年8月にHRBrainへ入社し、主な業務は勤怠管理、給与計算や入退社手続き、福利厚生業務、安全衛生管理etc…前職を含めると約8年人事・労務実務をやっていました。</p> <p>そんな中、入社からちょうど1年が経過した今年の夏に新規事業である労務管理サービスのカスタマーサクセスへの異動の話をいただきました。</p> <p>労務担当として入社していたこともあり、上司からは「選択肢に無かったら今のままでも問題ないよ」と言っていただいたのですが、「そのキャリアチャンジ面白そう!」というワクワクが強かったため、その場で「やります」とお返事させていいただきました。(超即決!)</p> <p>何をするにも散々悩むのに、不思議と一切悩まなかったです。(笑)</p> <h3 id="実務経験のある私だからこそなれるCSがきっとある">実務経験のある私だからこそなれるCSがきっとある</h3> <p>これは個人的に感じたことなのですが、今まで顧客立場で人事領域サービスの提案を受ける上で、腹落ちしないことが何度かありました。 <br>なんでだったんだろう、、、?と考えたところなんとなく下記が思い浮かびました。</p> <ul> <li>かつて商談や導入提案を受けた際、営業担当者が導入先の現場実務を十分理解してくれなかった</li> </ul> <p>例えば、従業員から10種の情報を回収する労務手続きがあり、現在は労務担当が紙媒体で運用している企業があるとします。 そこへ、「労務サービスAを導入すれば、電子的に8種まで回収できる」と導入提案されたとしても、残り2種には非対応で、導入後も引き続き紙媒体で回収しなければなりません。</p> <p>「運用の80%もシステム化できるなら、サービスAをぜひ導入しよう」と考えるべきでしょうか……</p> <p>残りの20%が電子非対応で別運用となる場合、導入後に現場担当者の作業はむしろ増加・煩雑化する可能性があるのです。 <br>そこまでケアされていない導入提案に対し、労務担当者としては導入意義が低いと感じてしまうのです。</p> <p>もちろん全てがそうというわけではないですし、今すぐにどんなお客様にでも”100%”というのは難しいことでもあると思います。 <br>開発チームも限られた時間の中でより多くのお客様へ良いものをお届けするべく優先順位をつけて開発を進めていますし、サービスリリース後もどんどん機能がアップデートされていきます。</p> <p>だからこそ、今はまだ足りない数%、数十%を埋めることがCSである私の仕事だと考えています!</p> <h3 id="どんなCSになっていきたいか">どんなCSになっていきたいか</h3> <p>労務業務はどうしても減点方式になってしまうんです。ミス0が当たり前で、ミスが起こると減点になってしまう、そんなイメージです。 <br>労務担当だった時は、システムに取り込むCSVデータ作成1つとってもヒューマンエラーが起こらないような構成を組んだりその後のデータの流れを想像してこだわりを持って、かつ属人化しないように一般化していくことを意識して業務を行っていました。</p> <h5 id="そんな実務経験からCSとして大切にしたいこと">そんな実務経験からCSとして大切にしたいこと</h5> <ul> <li>お客様と同じ解像度で話をする</li> <li>お客様がやりたいことに紐づいている先の業務を想像する</li> <li>その上で伴走しながらお客様の課題を解決に導く</li> </ul> <p>時にはお客様から改善要望をいただくこともありますが、多くのお客様にHRBrainを使いやすいと思っていただくためにも開発チームとの連携が重要だと思っています。 <br>いただいたご要望は労務開発チームに相談し、今後の対応方針を検討していくのですが、開発メンバーは皆、お客様とちゃんと向き合って最適解を導き出そうという気持ちが強く、とても心強いです。 <br>開発も営業もONE TEAMで労務管理プロダクトを大きくしていっているんだと日々感じています。</p> <p>最近は労務管理サービスという生まれたての赤ちゃんを育てているような感覚にもなりつつあります。 <br>子育てをしたことはないですが(笑)</p> <h3 id="最後に">最後に</h3> <p>HRBrainは労務管理サービスをはじめ、これから様々な機能がリリースされアップデートされていきます! <br>個人的には自分と同じ大変さを感じている人事・労務担当者がHRBrainを利用することで業務が定量的に効率化され本来取り組むべきことに目を向けられる……そんな未来にしていきたいと考えています。 <br>引き続き、お客様とプロダクトとの架け橋となり双方にとって良い方向に進むよう頑張っていきたいと思います!</p> <p>この記事を読んで少しでもHRBrainやカスタマーサクセスに興味を持っていただけたら嬉しいです! <br>HRBrainでは一緒に働く仲間を募集しています。気になる!興味ある!という方はぜひご応募ください!</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> <p>最後までお読みいただきありがとうございました!!</p> yoshiko_f terraform planを動的に実行するシンプルなGitHub Actions hatenablog://entry/4207112889940490685 2022-12-08T00:00:00+09:00 2022-12-08T00:00:22+09:00 こんにちは、プラットフォームチームのテックリードの星井です。HRBrainのAdvent Calendarの8日目の記事です。 先日、Terraformコマンドを実行するGitHub Actionsのワークフローを作成しました。 作成するにあたって、いくつかインターネットの記事を参考にしましたが、monorepo用でシンプルなワークフローが意外となかったので、ブログにまとめることにしました。 メンテナンスしやすいワークフロー GitHub Actionsは便利ですが、数が増えてくると、依存関係のアップデートなどが面倒です。なので、今回はメンテナンスコストを最低限にしたワークフローを作ることを目… <p>こんにちは、プラットフォームチームのテックリードの星井です。<a href="https://qiita.com/advent-calendar/2022/hrbrain">HRBrainのAdvent Calendar</a>の8日目の記事です。</p> <p>先日、Terraformコマンドを実行するGitHub Actionsのワークフローを作成しました。</p> <p>作成するにあたって、いくつかインターネットの記事を参考にしましたが、monorepo用でシンプルなワークフローが意外となかったので、ブログにまとめることにしました。</p> <h2 id="メンテナンスしやすいワークフロー">メンテナンスしやすいワークフロー</h2> <p>GitHub Actionsは便利ですが、数が増えてくると、依存関係のアップデートなどが面倒です。なので、今回はメンテナンスコストを最低限にしたワークフローを作ることを目指しました。コマンドスクリプトを使って動的なワークフローにして、便利な<code>tfcmt</code>を使うことで、メンテナンス性を高めています。</p> <pre class="code lang-yaml" data-lang="yaml" data-unlink><span class="synIdentifier">name</span><span class="synSpecial">:</span> terraform-plan <span class="synIdentifier">on</span><span class="synSpecial">:</span> <span class="synIdentifier">pull_request</span><span class="synSpecial">:</span> <span class="synIdentifier">paths</span><span class="synSpecial">:</span> <span class="synStatement">- </span><span class="synConstant">'environments/**'</span> <span class="synIdentifier">env</span><span class="synSpecial">:</span> <span class="synIdentifier">TF_VAR_project_id</span><span class="synSpecial">:</span> &lt;PROJECT_NAME&gt; <span class="synIdentifier">jobs</span><span class="synSpecial">:</span> <span class="synIdentifier">check_changed_dirs</span><span class="synSpecial">:</span> <span class="synIdentifier">runs-on</span><span class="synSpecial">:</span> ubuntu-20.04 <span class="synIdentifier">outputs</span><span class="synSpecial">:</span> <span class="synIdentifier">changes</span><span class="synSpecial">:</span> ${{ steps.pr_dir_changes.outputs.changes }} <span class="synIdentifier">steps</span><span class="synSpecial">:</span> <span class="synStatement">- </span><span class="synIdentifier">uses</span><span class="synSpecial">:</span> actions/checkout@v3 <span class="synIdentifier">with</span><span class="synSpecial">:</span> <span class="synIdentifier">fetch-depth</span><span class="synSpecial">:</span> <span class="synConstant">0</span> <span class="synStatement">- </span><span class="synIdentifier">id</span><span class="synSpecial">:</span> pr_dir_changes <span class="synComment"> # masterと差分のあるディレクトリのみを抽出する</span> <span class="synComment"> # https://stackoverflow.com/questions/50440420/git-diff-only-show-which-directories-changed</span> <span class="synIdentifier">run</span><span class="synSpecial">:</span> echo <span class="synConstant">&quot;changes=&quot;</span><span class="synSpecial">[</span>$(git diff origin/&quot;$<span class="synSpecial">{</span>GITHUB_BASE_REF<span class="synSpecial">}</span><span class="synConstant">&quot; --dirstat=files,0 | awk '{print $2}' | sed -e 's:/*$::' | grep 'environments' | awk '{ print &quot;</span>\&quot;&quot;$0&quot;\&quot;&quot;}<span class="synConstant">' | paste -sd, -)]&quot;&quot; &gt;&gt; &quot;$GITHUB_OUTPUT&quot;</span> <span class="synConstant"> tf-ci:</span> <span class="synConstant"> runs-on: ubuntu-20.04</span> <span class="synConstant"> permissions:</span> <span class="synConstant"> contents: '</span>write' <span class="synIdentifier">id-token</span><span class="synSpecial">:</span> <span class="synConstant">'write'</span> <span class="synIdentifier">pull-requests</span><span class="synSpecial">:</span> <span class="synConstant">'write'</span> <span class="synIdentifier">timeout-minutes</span><span class="synSpecial">:</span> <span class="synConstant">20</span> <span class="synIdentifier">needs</span><span class="synSpecial">:</span> check_changed_dirs <span class="synIdentifier">strategy</span><span class="synSpecial">:</span> <span class="synIdentifier">matrix</span><span class="synSpecial">:</span> <span class="synIdentifier">dir</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> fromJSON(needs.check_changed_dirs.outputs.changes) <span class="synSpecial">}}</span> <span class="synIdentifier">defaults</span><span class="synSpecial">:</span> <span class="synIdentifier">run</span><span class="synSpecial">:</span> <span class="synIdentifier">shell</span><span class="synSpecial">:</span> bash <span class="synIdentifier">working-directory</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> matrix.dir <span class="synSpecial">}}</span> <span class="synIdentifier">steps</span><span class="synSpecial">:</span> - <span class="synIdentifier">uses</span><span class="synSpecial">:</span> actions/checkout@v3 - <span class="synIdentifier">run</span><span class="synSpecial">:</span> echo $<span class="synSpecial">{{</span> matrix.dir <span class="synSpecial">}}</span> - <span class="synIdentifier">uses</span><span class="synSpecial">:</span> google-github-actions/auth@v1 <span class="synIdentifier">with</span><span class="synSpecial">:</span> <span class="synIdentifier">workload_identity_provider</span><span class="synSpecial">:</span> &lt;WORKFLOW_IDENTITY_PROVIDER_ID&gt; <span class="synIdentifier">service_account</span><span class="synSpecial">:</span> &lt;SERVICE_ACCOUNT&gt; - <span class="synIdentifier">uses</span><span class="synSpecial">:</span> google-github-actions/setup-gcloud@v1 <span class="synComment"> # mercari/tfnotifyが頻繁に更新されていないため、mercari/tfnotifyのフォークのtfcmtを使う</span> - <span class="synIdentifier">run</span><span class="synSpecial">:</span> | <span class="synIdentifier">sudo curl -fL -o tfcmt.tar.gz https</span><span class="synSpecial">:</span>//github.com/suzuki-shunsuke/tfcmt/releases/download/$TFCMT_VERSION/tfcmt_linux_amd64.tar.gz sudo tar -C /usr/bin -xzf ./tfcmt.tar.gz <span class="synIdentifier">env</span><span class="synSpecial">:</span> <span class="synIdentifier">TFCMT_VERSION</span><span class="synSpecial">:</span> v4.0.0 - <span class="synIdentifier">uses</span><span class="synSpecial">:</span> hashicorp/setup-terraform@v2.0.3 <span class="synIdentifier">with</span><span class="synSpecial">:</span> <span class="synIdentifier">terraform_version</span><span class="synSpecial">:</span> 1.3.2 - <span class="synIdentifier">run</span><span class="synSpecial">:</span> terraform fmt <span class="synIdentifier">continue-on-error</span><span class="synSpecial">:</span> <span class="synConstant">true</span> - <span class="synIdentifier">run</span><span class="synSpecial">:</span> terraform init <span class="synComment"> # 長くなってしまうので、matrix.dirのenvironmentsは省いてtfcmtに渡す</span> - <span class="synIdentifier">run</span><span class="synSpecial">:</span> tfcmt -var <span class="synConstant">&quot;target:$(echo ${{ matrix.dir }} | sed 's/environments\///g')&quot;</span> plan -patch -- terraform plan -no-color -lock=<span class="synConstant">false</span> <span class="synIdentifier">env</span><span class="synSpecial">:</span> <span class="synIdentifier">TF_VAR_project_id</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> env.TF_VAR_project_id <span class="synSpecial">}}</span> <span class="synIdentifier">TF_VAR_org_id</span><span class="synSpecial">:</span> &lt;ORGANIZATION_ID&gt; <span class="synIdentifier">TF_VAR_billing_account</span><span class="synSpecial">:</span> &lt;BILLING_ACCOUNT&gt; <span class="synIdentifier">PR_HEAD_SHA</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> github.event.pull_request.head.sha <span class="synSpecial">}}</span> <span class="synIdentifier">PR_NUMBER</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> github.event.number <span class="synSpecial">}}</span> <span class="synIdentifier">GITHUB_TOKEN</span><span class="synSpecial">:</span> $<span class="synSpecial">{{</span> secrets.GITHUB_TOKEN <span class="synSpecial">}}</span> </pre> <h3 id="コマンドスクリプトを使って動的なワークフローにする">コマンドスクリプトを使って動的なワークフローにする</h3> <p>HRBrainのTerraformリポジトリは以下のような構成になっています。</p> <pre class="code" data-lang="" data-unlink>├── environments │ ├── dev │ │ ├── app1 │ │ ├── app2 │ ├── prod │ │ ├── app1 │ │ ├── app2 └── modules</pre> <p>各ディレクトリにTerraformの構成ファイルが存在しており、ディレクトリごとに<code>terraform plan</code>を実行する必要があります。</p> <p>元々リポジトリ直下のファイルに実行したいディレクトリを指定して<code>terraform plan</code>を実行していましたが、そのファイルがコンフリクトしたり、手順がそもそも分かりづらく、Terraformリポジトリを触る開発者に混乱を招いていました。</p> <p>そこで今回は、プルリクエストの差分から実行したいディレクトリを取得し、動的にワークフローを実行するようにしました。できるだけ依存関係を減らしたいので、実行したいディレクトリを取得するのにActionやプログラミング言語を使わず、コマンドスクリプトを使うよう工夫しました。</p> <pre class="code lang-yaml" data-lang="yaml" data-unlink> <span class="synIdentifier">check_changed_dirs</span><span class="synSpecial">:</span> <span class="synIdentifier">runs-on</span><span class="synSpecial">:</span> ubuntu-20.04 <span class="synIdentifier">outputs</span><span class="synSpecial">:</span> <span class="synIdentifier">changes</span><span class="synSpecial">:</span> ${{ steps.pr_dir_changes.outputs.changes }} <span class="synIdentifier">steps</span><span class="synSpecial">:</span> <span class="synStatement">- </span><span class="synIdentifier">uses</span><span class="synSpecial">:</span> actions/checkout@v3 <span class="synIdentifier">with</span><span class="synSpecial">:</span> <span class="synIdentifier">fetch-depth</span><span class="synSpecial">:</span> <span class="synConstant">0</span> <span class="synStatement">- </span><span class="synIdentifier">id</span><span class="synSpecial">:</span> pr_dir_changes <span class="synComment"> # masterと差分のあるディレクトリのみを抽出する</span> <span class="synComment"> # https://stackoverflow.com/questions/50440420/git-diff-only-show-which-directories-changed</span> <span class="synIdentifier">run</span><span class="synSpecial">:</span> echo <span class="synConstant">&quot;changes=&quot;</span><span class="synSpecial">[</span>$(git diff origin/&quot;$<span class="synSpecial">{</span>GITHUB_BASE_REF<span class="synSpecial">}</span><span class="synConstant">&quot; --dirstat=files,0 | awk '{print $2}' | sed -e 's:/*$::' | grep 'environments' | awk '{ print &quot;</span>\&quot;&quot;$0&quot;\&quot;&quot;}<span class="synConstant">' | paste -sd, -)]&quot;&quot; &gt;&gt; &quot;$GITHUB_OUTPUT&quot;</span> </pre> <p>ちなみにcheckout時に<code>fetch-depth: 0</code>を指定しないと動きません。ここで取得したディレクトリを<a href="https://docs.github.com/ja/actions/learn-github-actions/expressions#fromjson">fromJSON</a>を使って、<a href="https://docs.github.com/ja/actions/using-jobs/using-a-matrix-for-your-jobs">ジョブのマトリックスに設定</a>します。</p> <p>マトリックスを使用して、<code>working-directory</code>に指定すると、ディレクトリごとにジョブを実行することができます。</p> <pre class="code lang-yaml" data-lang="yaml" data-unlink> <span class="synIdentifier">tf-ci</span><span class="synSpecial">:</span> <span class="synIdentifier">runs-on</span><span class="synSpecial">:</span> ubuntu-20.04 <span class="synIdentifier">permissions</span><span class="synSpecial">:</span> <span class="synIdentifier">contents</span><span class="synSpecial">:</span> <span class="synConstant">'write'</span> <span class="synIdentifier">id-token</span><span class="synSpecial">:</span> <span class="synConstant">'write'</span> <span class="synIdentifier">pull-requests</span><span class="synSpecial">:</span> <span class="synConstant">'write'</span> <span class="synIdentifier">timeout-minutes</span><span class="synSpecial">:</span> <span class="synConstant">20</span> <span class="synIdentifier">needs</span><span class="synSpecial">:</span> check_changed_dirs <span class="synIdentifier">strategy</span><span class="synSpecial">:</span> <span class="synIdentifier">matrix</span><span class="synSpecial">:</span> <span class="synIdentifier">dir</span><span class="synSpecial">:</span> ${{ fromJSON(needs.check_changed_dirs.outputs.changes) }} <span class="synIdentifier">defaults</span><span class="synSpecial">:</span> <span class="synIdentifier">run</span><span class="synSpecial">:</span> <span class="synIdentifier">shell</span><span class="synSpecial">:</span> bash <span class="synIdentifier">working-directory</span><span class="synSpecial">:</span> ${{ matrix.dir }} </pre> <p>このように並列で<code>terraform plan</code>が実行できるので便利です。 <figure class="figure-image figure-image-fotolife" title="マトリックスに基づいて複数ジョブが実行される"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-hoshii-natsuki/20221129/20221129141126.png" width="1200" height="456" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>マトリックスに基づいて複数ジョブが実行される</figcaption></figure></p> <h3 id="便利なtfcmtを使う">便利な<code>tfcmt</code>を使う</h3> <p>以前は<a href="https://github.com/mercari/tfnotify">mercari/tfnotify</a>を使っていて、特に問題がなかったのですが、今年の2月くらいからアップデートが止まっているようでした。調べたら、<a href="https://github.com/suzuki-shunsuke/tfcmt">tfcmt</a>という<code>mercari/tfnotify</code>のフォークがあり、ちゃんとメンテナンスされてそうだったので、こちらを使いました。依存関係は増えますが、<code>terraform plan</code>の内容をGitHub上にコメントしてくれるため、とても便利です。</p> <pre class="code lang-yaml" data-lang="yaml" data-unlink> <span class="synStatement">- </span><span class="synIdentifier">run</span><span class="synSpecial">:</span> tfcmt -var <span class="synConstant">&quot;target:$(echo ${{ matrix.dir }} | sed 's/environments\///g')&quot;</span> plan -patch -- terraform plan -no-color -lock=<span class="synConstant">false</span> <span class="synIdentifier">env</span><span class="synSpecial">:</span> <span class="synIdentifier">PR_HEAD_SHA</span><span class="synSpecial">:</span> ${{ github.event.pull_request.head.sha }} <span class="synIdentifier">PR_NUMBER</span><span class="synSpecial">:</span> ${{ github.event.number }} <span class="synIdentifier">GITHUB_TOKEN</span><span class="synSpecial">:</span> ${{ secrets.GITHUB_TOKEN }} </pre> <p><code>tfcmt</code>はデフォルトの設定のままで、<code>-var</code>と<code>-patch</code>オプションを使っています。<code>-var</code>オプションでターゲットを指定すると、コメントにどのディレクトリで実行したかを表示してくれます。<code>-patch</code>オプションは、追加コミット時にコメントを追加せず、元のコメントを更新してくれます。これにより、プルリクエスト上のコメントの可読性が上がります。</p> <p><figure class="figure-image figure-image-fotolife" title="tfcmtによるコメント"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-hoshii-natsuki/20221129/20221129142054.png" width="1200" height="808" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><figcaption>tfcmtによるコメント</figcaption></figure></p> <p>コメント自体もシンプルな<code>mercari/tfnotify</code>に比べて読みやすいです。</p> <h2 id="終わりに">終わりに</h2> <p>GitHub Actionsを使って、プルリクエストの差分から動的に<code>terraform plan</code>を実行する方法を説明しました。初めは、動的なワークフローを作ることが目的でしたが、<code>tfcmt</code>を使うことで、可読性も上げることができました。</p> <p>今回のワークフローを作ったことにより、依存関係の自動アップデートツールなども導入できるようなります。機会があれば、その内容も記事にしてみたいと思います。</p> <h2 id="参考にした記事">参考にした記事</h2> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fzenn.dev%2Fnaofumimurata%2Farticles%2Ftf-monorepo-github-actions" title="GitHub Actions + Terraformモノレポ環境で変更ファイルに応じてCIを実行する" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://zenn.dev/naofumimurata/articles/tf-monorepo-github-actions">zenn.dev</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftech-blog.yayoi-kk.co.jp%2Fentry%2F2022%2F05%2F10%2F110000" title="GitHub Actionsでterraform planするworking directoryを動的に抽出する - 弥生開発者ブログ" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://tech-blog.yayoi-kk.co.jp/entry/2022/05/10/110000">tech-blog.yayoi-kk.co.jp</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fzenn.dev%2Ftaxin%2Farticles%2Finfra-cicd-2022" title="Terraform + GitHub ActionsでInfra CI/CDを試す (2022年版)" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://zenn.dev/taxin/articles/infra-cicd-2022">zenn.dev</a></cite></p> hrb-hoshii-natsuki 【HRBrain Advent Calendar 2022】今年も開催します!! hatenablog://entry/4207112889940793617 2022-11-29T17:18:55+09:00 2022-11-29T17:59:39+09:00 HRBrain バックエンドエンジニアの入中です。 今年もまたこの季節がやってきましたね!🎉 HRBrainは今年もAdventCalendarを実施します!! HRBrain Advent Calendar 2022はこちら🎄 qiita.com 今年はエンジニア・デザイナー・PdMなどの開発メンバーに加え、 CSや人事のメンバーなど、50名を超えるメンバーが多様なテーマで記事を投稿していきます! HRBrainで働くメンバーがどんな人なのか。 どんな技術を使ってサービスを作っているのかが垣間見えると思うので、 ぜひとも購読をお願いします🤗 HRBrain Advent Calendar 2… <p>HRBrain バックエンドエンジニアの入中です。<br> 今年もまたこの季節がやってきましたね!🎉<br> HRBrainは今年もAdventCalendarを実施します!!</p> <p><strong>HRBrain Advent Calendar 2022はこちら</strong>🎄 <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fadvent-calendar%2F2022%2Fhrbrain" title="Calendar for HRBrain | Advent Calendar 2022 - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://qiita.com/advent-calendar/2022/hrbrain">qiita.com</a></cite></p> <p>今年はエンジニア・デザイナー・PdMなどの開発メンバーに加え、<br> CSや人事のメンバーなど、<strong>50名を超える</strong>メンバーが多様なテーマで記事を投稿していきます!</p> <p>HRBrainで働くメンバーがどんな人なのか。<br> どんな技術を使ってサービスを作っているのかが垣間見えると思うので、<br> ぜひとも購読をお願いします🤗</p> <p><figure class="figure-image figure-image-fotolife" title="HRBrain Advent Calendar 2022"><div class="images-row mceNonEditable"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20221129/20221129145111.png" width="1200" height="843" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/i/iriko666666/20221129/20221129145040.png" width="1200" height="843" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></div><figcaption>HRBrain Advent Calendar 2022</figcaption></figure></p> <h4 id="過去のアドベントカレンダー">過去のアドベントカレンダー</h4> <p>2021: <a href="https://qiita.com/advent-calendar/2021/hrbrain">Calendar for HRBrain | Advent Calendar 2021 - Qiita</a> <br> 2020: <a href="https://qiita.com/advent-calendar/2020/hrbrain">HRBrain Advent Calendar 2020 - Qiita</a></p> <h3 id="HRBrainでは一緒に働く仲間を募集しています">HRBrainでは一緒に働く仲間を募集しています。</h3> <p>AdventCalendarを見ていただき、興味を持っていただいた方はぜひ弊社の採用ページをご確認ください🎄</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.hrbrain.co.jp%2Frecruit" title="株式会社HRBrain" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.hrbrain.co.jp/recruit">www.hrbrain.co.jp</a></cite></p> iriko666666 組織を横断すると、一段上の景色が見えてくる。全社の技術的課題を解決したエンジニアの話 hatenablog://entry/4207112889932736415 2022-11-01T16:24:54+09:00 2022-11-01T16:24:54+09:00 2022年2月にHRBrainにジョインしてすぐに組織横断のプロジェクトに取り組み、大きな成果をあげた岩本。現在はプロダクト開発に転向して、サブテックリードとして活躍しています。横断的な取り組みならではのやりがいや、今の仕事への向き合い方について話を聞きました。 ー 自己紹介をお願いします。 新卒で入社した会社ではエンジニアとしていくつかの小さめのプロダクトに関わり、後に組織横断のプロジェクトマネージャーを1年ほど経験しました。 その後、HRBrainにジョインしました。前職に引き続き、組織横断の取り組みとしてデザインシステムのリニューアルプロジェクトを手がけました。 現在はサブテックリードと… <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221101/20221101154501.jpg" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span> 2022年2月にHRBrainにジョインしてすぐに組織横断のプロジェクトに取り組み、大きな成果をあげた岩本。現在はプロダクト開発に転向して、サブテックリードとして活躍しています。横断的な取り組みならではのやりがいや、今の仕事への向き合い方について話を聞きました。</p> <p><strong>ー 自己紹介をお願いします。</strong></p> <p>新卒で入社した会社ではエンジニアとしていくつかの小さめのプロダクトに関わり、後に組織横断のプロジェクトマネージャーを1年ほど経験しました。</p> <p>その後、HRBrainにジョインしました。前職に引き続き、組織横断の取り組みとしてデザインシステムのリニューアルプロジェクトを手がけました。</p> <p>現在はサブテックリードとして、新しく発足したチームを牽引しています。主にタレントマネジメント(HRBrainのプロダクト)の機能開発をメインでやっています。</p> <p><strong>ーデザインシステムのリニューアルプロジェクトで苦労したことはなんですか?</strong></p> <p>デザインコンポーネント(プロダクトのUIで使うボタンなどのパーツ)のライブラリ変更とプロダクトの変更を同時に行うことです。</p> <p>新しいプロダクトが徐々に増えるにつれ、デフォルトのデザインをよりニュートラルなものにし、各プロダクトの特色をより出しやすく、変化に対応しやすい状態にする必要があります。</p> <p>それらの流れを<strong>効率よく進めるために、キーパーソンとの丁寧な合意形成</strong>を工夫しました。</p> <p>既存のプロダクトの関係者と、変更の方針をすり合わせをしつつ、コンセンサスを取りながら、スピード感を失わないように進めていきました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221101/20221101155353.png" width="1200" height="675" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h4 id="更新性の高いデザインシステムにリニューアル">更新性の高いデザインシステムにリニューアル</h4> <p><strong>ー プロジェクトの成果はいかがでしたか?</strong></p> <p>実際に使っている社内のメンバーから「リニューアルして見やすくなった」「使いやすくなった」というフィードバックが嬉しかったです。やりがいを感じました。</p> <p>今後の開発の観点では、プロダクトとライブラリを切り離したことで、思い切った変更が可能になったのは良かったと思います。</p> <p>プロダクトが変化し続けられるというのは、意義深いものだと思います。</p> <h5 id="横断的取り組みでの経験を活かしプロダクト開発で活躍中">横断的取り組みでの経験を活かし、プロダクト開発で活躍中</h5> <p><strong>ー 現在は、プロダクト開発へ転向されたのですね。</strong></p> <p>はい。</p> <p>テックリード/サブテックリードとして機能開発における技術のリーダーシップを発揮し、仕様策定や設計などに携わっています。また、メンバーのタスク管理や技術力向上などチーム運営も必要に応じて実施しています。</p> <p>今の役割と、これまでの横断的な役割とは、明確にシナジーがあります。全体最適をゴールに取り組む「横軸」の施策は、最終的にそれが現場で使われないと意味がないものになってしまいます。つまり、現場のユーザーの目線にならないと独りよがりのアウトプットになってしまいがちなのです。</p> <p>そのため、<strong>「縦軸」として実際のプロダクト開発に関わることは、現場のインサイトを掴むためにもなくてはならない経験</strong>となります。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221101/20221101155447.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h4 id="全体最適を実現するための鍵はリスペクト">全体最適を実現するための鍵は「リスペクト」</h4> <p><strong>ー そうした「横と縦」を意識した仕事に取り組むにあたって、大切にしていることはありますか?</strong></p> <p><strong>「先人の功績をリスペクトしつつ、第三者からのアプローチとして進める」</strong>ということです。既に出来上がっているものを否定して変えるのではなく、より進化させるための動きを意識します。</p> <p>全体最適をアップデートするような取り組みは、会社の「直近の価値」にはなりにくくても、中長期的には効果を発揮します。今までの価値を創ってきた先人達の功績という恩恵の土台のもとで、活動が出来ているということを常に念頭に置いています。</p> <p>全体最適がゴールだからこそ「心情」はとても大事です。多くの人を巻き込んで前向きな変化をしていくために、今ある価値を築き上げた方々に対してリスペクトすることを最も大事にしています。</p> <h4 id="多様なチャレンジを肯定してくれる環境">多様なチャレンジを肯定してくれる環境</h4> <p><strong>ー 岩本さんから見て、HRBrainはどんな会社ですか?</strong></p> <p>「いろんな意味で若い会社」だということです。<strong>多様なチャレンジをさせてもらえる組織</strong>で、かつ経営陣はいつも<strong>チャレンジに対して肯定的に</strong>受け取ってくれます。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221101/20221101155541.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span> <strong>ー 今後チャレンジしたいことを教えてください。</strong></p> <p>今後は、チームにこだわらない開発をやってみたいと思っています。逆に言うと、「自分のチームに関与しないから関わらない」というのは好きじゃなくて。自分が関わることで開発組織がエンパワーメントされるような動き方に挑戦したいですね。そのためには、自分自身が常にポジティブでいようと思っています。</p> <p>チームでのチャレンジでいうと、一緒に働く人がハッピーになるような施策をやりたいと思っています。エンジニアやプロダクトマネージャーが幸せになるような施策を考えたいですね。技術的負債も溜まっているので、新規開発だけで手一杯になっていたものを掘り起こして、整理していきたいです。</p> <p>こんな人と働きたい <strong>ー 積極採用中ですが、どんな人なら活躍できると思いますか?</strong></p> <p>技術的なことよりも、ポータブルスキルがしっかりある人が良いと思います。人間性でいうと、<strong>ポジティブで周りを鼓舞できるような人や、一緒に働いていて楽しくなれるような人</strong>が良いですね。トップバッターで走り、物事を牽引するようなリーダーシップを持っていたり、逆に何かをやると決めたときに一緒に動いてくれるフォロワーシップを持ち合わせている人が活躍できると思います。</p> <p>HRBrainでは、「やりたいけどやれていないこと」がまだまだたくさんあります。大胆にガシガシ捌いていけるような人と一緒にチャレンジをしたいですね。刻々と変わる組織でもしがみついて活躍できるよう、背中を押しますよ!</p> hrb-tateoka 開発組織のカルチャーを支えるDevelopment Office立ち上げへの想い。「いつか組織づくりをプロダクトに還元したい」 hatenablog://entry/4207112889929390241 2022-10-21T11:37:49+09:00 2022-10-21T11:37:49+09:00 ー柳川さんの自己紹介をお願いします 新卒でサイバーエージェントにエンジニアとして入社し、そこから弊社を含め3社を経験しました。職種としてはエンジニア、スクラムマスター、エンジニアリングマネージャーを経験し、現在はDevelopment Officeという開発組織のHR・カルチャー領域を支える横断的な組織を立ち上げ、マネージャーをしています。 いちエンジニアとして働いていた時は、とにかく良いモノをユーザーに届けたいという思いでプロダクト開発にあたっていました。開発プロセスに責任をもつスクラムマスターを経験したことで、継続的に良いモノを生み出すためには、開発プロセスやチーム力が要であるという考えに… <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221021/20221021111126.png" width="1136" height="710" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ー柳川さんの自己紹介をお願いします</strong></p> <p>新卒でサイバーエージェントにエンジニアとして入社し、そこから弊社を含め3社を経験しました。職種としてはエンジニア、スクラムマスター、エンジニアリングマネージャーを経験し、現在はDevelopment Officeという開発組織のHR・カルチャー領域を支える横断的な組織を立ち上げ、マネージャーをしています。</p> <p>いちエンジニアとして働いていた時は、とにかく良いモノをユーザーに届けたいという思いでプロダクト開発にあたっていました。開発プロセスに責任をもつスクラムマスターを経験したことで、<strong>継続的に良いモノを生み出すためには、開発プロセスやチーム力が要である</strong>という考えに至り、現在は組織づくりや組織課題の解決に注力しています。</p> <p><strong>ー立ち上げ期のHRBrain開発組織が成長していくにあたって苦労したことはなんですか?</strong></p> <p>私が入社した当時は、個人の力でそれぞれが開発をしている状態でした。「チーム」でモノづくりをするプロセスに進化させるため、「スクラム」の導入をはじめました。</p> <p>個で仕事を進めていた環境にとって、スクラムは手間が増えてしまうという印象を与える傾向にあります。「なんのためにこのイベントをやるのか」という疑問が挙がることも多々ありました。スクラムの意義を理解してもらうワークショップを行ったり、丁寧に疑問や不満を受け止めつつ、導入を進めていきました。</p> <p>スクラム導入後も課題はたくさんあり、大規模リリースの直前などは一旦スクラムイベントをやめて、ガントチャートを引いて細かくプロジェクトマネージメントをしていた時期もありました。</p> <p>ただ、この選択はチームの皆の発信によって実施されたもので、その時うまくいっていなかったことへの改善策を講じたものでした。</p> <p>これは、<strong>スクラムを導入したことで、振り返りを定期的に実施しチームで改善を回していくというスクラムのメリットが生きた経験でした。</strong></p> <p>個のパワーで動いていた開発チームが、チームとして前に進むことを体現した瞬間でもあったと感じています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221021/20221021111226.png" width="1200" height="791" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ースクラム導入のように一つの物事を組織全体に浸透させていく中で意識すべきことはなんですか?</strong></p> <p>ここが肝!という的を絞り、そこを重点的に浸透させることですかね。</p> <p>スクラム導入では、振り返りのイベントを通してチームで改善を回すことに重きをおいて、浸透に努めました。</p> <p><strong>ー新しい概念を組織全体に浸透させていくというのはできるだけシンプルに絞って伝えていくことが大切なんですね</strong></p> <p>そうですね。<strong>的を絞ることで、効果的かつ効率的な浸透が実現できると思います。</strong></p> <p>また、個別で出てくるような疑問や不満に対しても、丁寧に向き合うことが重要です。相手の考えも尊重しながら、チームとして向かいたい先に目線を合わせ、全体最適な行動変容を促せるとベストだと思います。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221021/20221021111329.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><span style="font-size: 150%">本当に力を発揮する理想の「チーム」の実現のために</span></p> <p><strong>ー柳川さんは今までやってきたことを拡大し、7月にはDevelopment Officeを立ち上げましたが、その経緯を教えてください。</strong></p> <p>HRBrainに入社した当初から、スクラムマスターとしての活動と並行して、採用や育成をはじめとした組織づくりに関わらせてもらっていました。この2年くらいの間で開発組織の人数も増え、コロナ禍による働き方の変化もある中で多種多様な課題が生まれ、スピード感をもって課題解決をしていくことが常に求められているような状況になりました。</p> <p>そういった中で、<strong>中長期的な目線で、開発組織のカルチャー構築やメンバーのエンゲージメント向上にしっかり向き合っていく必要性を強く感じたことが、Development Office立ち上げの動機になっています。</strong></p> <p>組織カルチャーは勝手に構築されていくもののように考えがちですが、中長期的に組織の向かうべき方向を見据えて戦略的に構築していくべきものだと考えています。</p> <p>現在Development Officeでは、<strong>開発組織のチーム力最大化</strong>を重要視し、そのためのカルチャー構築や育成・採用の方針を検討しています。</p> <p><strong>ー柳川さんの中で、開発組織において”チーム力”が強い状態とはどのような状態ですか?</strong></p> <p>個々のメンバーのもつ力を最大限引き上げられていることと、そのパワーを発揮できる環境が揃っている状態だと考えています。</p> <p><strong>ーそういう状態をつくっていくために鍵になるものは何ですか?</strong></p> <p>個々のスキルアップも当然ですが、<strong>カルチャー構築の土台となるマインドセットを揃えること</strong>がとても重要だと思いますね。</p> <p>現在、Professional Developer Mindというプロの開発者として持っておくべきマインドセットを明文化し、浸透に向けて動いています。例えば、「みんなの考えるプロフェッショナルってなに?」という問いを起点に、プロの開発者としての当たり前の基準を揃えていくようなワークショップを設計・実行したりしています。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221021/20221021111424.png" width="1200" height="714" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ー他にチーム力最大化のために取り組まないといけないということはありますか?</strong></p> <p>開発組織のコミュニケーションの活性化ですね。</p> <p>開発組織がプロダクトチームに細分化していることで、コミュニケーションが各チームに閉じやすくなっている現状があります。それぞれが持つノウハウや良い取り組みを共有し合う環境をつくるため、勉強会やLTなどで開発組織ないし全社的にコミュニケーションの幅を広げていきたいです。</p> <p>さらに、他社から有識者の方を招いてお話を聞くことでメンバーが新たな発想を得る機会を設けたり、ハッカソンでメンバーが業務から離れて個人のスキルアップに挑戦するような機会も作れたらと考えています。</p> <p>プロダクト開発だけではない観点で、開発組織や会社全体に対してメンバー起点で価値を提供していく取り組みも、Development Officeが後押しできたらいいなと思っています。</p> <p><span style="font-size: 150%">社内に閉じない組織づくりへの思い</span></p> <p><strong>ー組織づくり、カルチャー構築に携わる醍醐味はなんですか?</strong></p> <p>私たちはHRTechを提供している会社なので、自分たちが会社の中でやっている取り組みをプロダクトに落とし込んで事業として成立させることが出来ると考えています。</p> <p>「開発組織のチーム力を最大化」というミッションは、市場的にも難易度の高い課題です。<strong>この課題解決を体系化し、サービスとして社会に届けられたら、まさに弊社のパーパスである”Power to the People”になる</strong>と思いますし、社会にインパクトを与えられると思うとワクワクします。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221021/20221021111500.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ー最後に一言お願いします</strong></p> <p>Development Officeは立ち上げたばかりの組織でまだ人数も少ないですが、明確なミッションを持って、抽象度の高い課題に取り組んでいます。</p> <p>私自身は、組織づくりもエンジニアリングだと捉えています。Development Officeにとっての顧客はHRBrainの開発組織です。開発組織にとって価値となる仕組みを仮説をもって提供し、フィードバックを受けて改善を繰り返すことで、再現性の高い状態での体系化を実現させたいです。そしていつか、Development Officeにとっての顧客が、HRBrainという枠を飛び出せたら嬉しいなと思っています。</p> <p>このような考えに共感し、同じミッションを掲げて一緒に旗を振ってくれる方と、ぜひ一緒に働きたいです!</p> hrb-tateoka 「誇れるプロダクトを作りたい」開発をリードするCTOがチームに求めることを語ります hatenablog://entry/4207112889924441242 2022-10-04T14:49:37+09:00 2022-10-04T19:07:16+09:00 ー鈴木さんの自己紹介をお願いします。 東京理科大学を卒業後、2013年に株式会社サイバーエージェントに入社しました。サイバーエージェント時代に、HRBrain CEOの堀と一緒に働いていました。その後、日本テレビや電通などが出資していたジョイントベンチャーでテレビ放送関連の開発に従事し、2018年にHRBrainに入社しました。 最初の2ヶ月間は開発を進めていた人事評価プロダクトの運用改善を行っていました。その中で営業メンバーやカスタマーサクセスの声を聞いていくと大幅な改善が必要なことがわかり、フルリプレースすることを決めました。ユーザーからのフィードバックを受けながら顧客課題の解像度を上げ、… <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221004/20221004143551.png" width="1136" height="757" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ー鈴木さんの自己紹介をお願いします。</strong></p> <p>東京理科大学を卒業後、2013年に株式会社サイバーエージェントに入社しました。サイバーエージェント時代に、HRBrain CEOの堀と一緒に働いていました。その後、日本テレビや電通などが出資していたジョイントベンチャーでテレビ放送関連の開発に従事し、2018年にHRBrainに入社しました。</p> <p>最初の2ヶ月間は開発を進めていた人事評価プロダクトの運用改善を行っていました。その中で営業メンバーやカスタマーサクセスの声を聞いていくと大幅な改善が必要なことがわかり、フルリプレースすることを決めました。ユーザーからのフィードバックを受けながら顧客課題の解像度を上げ、1年がかりでリリースしました。</p> <p>現在は、CTOとして開発全般に携わっています。</p> <p><strong>ー新卒時代に大切にしていたメンタリティーやスタンスはなんですか?</strong></p> <p>一人前の技術者になるために常に学びの姿勢を心がけていました。</p> <p>当時は理系の嗜みとしてプログラミングに触れていた程度で、ウェブエンジニアは未経験でした。</p> <p>サイバーエージェント時代に所属していたプラットフォームチームは、業務範囲が広い上に求められる基準も高かったため、当時未経験で入社した私にとっては難しいことばかりでした。そのような環境だったからこそ、全ての出来事が自分自身の学びに繋がるチャンスだと捉えていました。例えば、バグが起きたコードや、身近な先輩が書いたコードは全て読むようにしていました。</p> <p><strong>ー鈴木さんの中での一人前の技術者とはどんな人ですか?</strong></p> <p>高いプログラミングスキルを有しているだけでは、ビジネスにおいてプロダクトを完成させることはできません。ベースとして、プロダクトが成り立つために必要な仕事なら泥臭くてもやり切るというスタンスが必要です。</p> <p>その上で、プロダクトの仕様を定義し、様々な関係者とコミュニケーションを取りながら、チーム意識を持ってモノを作る。そのレベルで開発を遂行できるエンジニアが一人前だと思います。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221004/20221004143853.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h4 id="プロダクトセントリックな組織で顧客へのビジネスインパクトを最大化する">『プロダクトセントリック』な組織で、顧客へのビジネスインパクトを最大化する</h4> <p><strong>ー鈴木さんは様々なプロダクト開発に携わったり、ビジネスサイドにも注力したりと、周りを巻き込むことに長けている印象があります。鈴木さんが技術者かつCTOとしての目線で意識していることはなんですか?</strong></p> <p>常に、会社やプロダクトを横断的かつ俯瞰的に捉えられている状態であることです。</p> <p>HRBrainは、様々な人事課題を解決する人材プラットフォームを目指しています。ある機能の課題やソリューションを断片的に捉えていても、それが理想のプロダクト像を実現するための最適解であるとは限りません。</p> <p>営業など顧客と対峙する領域にも耳を傾けることで、より解決するべき優先度が高い課題の解像度が高まっています。</p> <p> <strong>ー鈴木さんにとっての、プロダクト開発のゴールを教えてください。</strong></p> <p>個人としては、誇りを持てるプロダクトを開発すること。そして、我々のプロダクトを通じて、顧客がこれまで実現できなかったことが実現できるようになることです。</p> <p>誇れるかどうかの尺度は、顧客のビジネスに対するインパクトの大きさや、満足度の高さですね。</p> <p><strong>ー鈴木さんがおっしゃる「プロダクトに誇りを持てる状態」を全社的に醸成するためには、どのようなアプローチが有効だとお考えですか?</strong></p> <p>プロダクトセントリックという戦略です。</p> <p>我々が定義するプロダクトセントリックとは、エンジニアが顧客や競合についてきちんと理解して開発をしている状態を指します。顧客起点でプロダクトの理想状態を描けている状態。かつ、早く実装でき、すぐに価値を届けられる状態です。</p> <p><strong>ープロダクトセントリックを実現するために、開発組織に必要なことを教えてください。</strong></p> <p>エンジニアが顧客やマーケットの情報にすぐアクセスできる状態を作ることです。</p> <p>弊社では、新たにPMM(Product Marketing Manager)というポジションを新設しました。おかげで、エンジニアがこれまでよりも早く・深く市況感を理解できるようになってきています。</p> <p><strong>ー価値提供をできた実感の積み重ねによって、誇りは形成されるのでしょうね。</strong></p> <p>はい。ただ、誇りを履き違えて「とてもいいものを作ろう」となるあまり、いつまで経ってもリリースされず、顧客に価値を届けることができないので気を付けないといけません。 <span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221004/20221004144053.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ー技術者はこの先どのようになっていくべきだと考えていますか?</strong></p> <p>”いいものを作る”ことに思考を割けるようになるといいのかなと思います。</p> <p>実際に業務をしていると、目先のタスクや納期に追われて”いいものを作る”ことに対する思考の割合が少なくなりがちです。</p> <p>知的好奇心をエンジニアリングだけでなく、いいプロダクトを作るためにやるべきことへ広げていく。</p> <p>そうすることで、自ずと「こういった機能が必要ではないか?」「このやり方ならより早く価値を届けられるのではないか?」といった議論が生まれると思います。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hrb-tateoka/20221004/20221004144152.png" width="1200" height="800" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><strong>ーHRBrainの開発組織を高めていくため、今後取り組みたいことはありますか?</strong></p> <p>既に取り組んでいることとして、”カリカリフライデー”という企画があります。「カリカリに、フライにする=水分を飛ばした状態」から転じて、金曜日にPdMも交えながら開発において無駄なものを削ぎ落とすためのディスカッションやプランニングをする時間です。</p> <p>この取り組みがきっかけとなって、カリカリフライデー以外でも「本当に誇れるプロダクトになっているのだろうか」「顧客に価値を生めるのか」といった問いが自然発生的に生まれるような組織を目指します。</p> hrb-tateoka