RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

何を思って地域テックコミュニティを立ち上げたのか振り返る

こんにちは。目黒付近の会社で働いているエンジニアの星野です。

この記事は めぐろ LT のアドベントカレンダー 25 日目の記事です。

参加者の皆さん、たくさんの寄稿ありがとうございました!!

めぐろ LT は「ラクスル」という会社のイベントではなく、「めぐろ 100km 圏内の会社持ち回りで開く LT イベント」という地域コミュニティとして開催しています。

2022 年に「コロナも落ち着いてきたし、リアル開催イベント開きたいなー」と社内でつぶやいたらあれよあれよという感じで「めぐろ LT」というコミュニティができ、いつの間にか所属関係なく毎度 50 人近くの方が参加してくれる会に成長することができました。

一年の振り返りに、この記事では「発足させた時に何を思ったのか」「コミュニティを運営しながらどういうことを考えたのか」ということを思い返して綴りたいと思います。

めぐろ LT をどうして立ち上げたいと思ったのか

最初にめぐろ LT という地域コミュニティを立ち上げるとき何を思っていたのか、振り返ろうと思います。

以下の弊社の和田がめぐろ LT を立ち上げたいと言った時の背景を別の記事でまとめてくれてました

エンジニアコミュニティの立ち上げから 1 年、定期開催までの軌跡

そこでは「最初にやろうと思った動機」について

  • 業界の最新動向や技術トレンドに追いついていたい
  • 自身のスキルや知識が取り残されていないという安心感を得たい
  • 個々の成長やキャリアの発展をサポートする場がほしい

だったということに触れられています。

もともと社外のコミュニティにごくまれに顔を出すくらいの頻度で参加していたのですが、コロナ禍で社外エンジニアとの交流が少なくなり

  • チーム外のエンジニアと関わる機会がほとんどなくなる(意図的に場を作らないと社内の別チームのエンジニアともほとんど関わらなくなる)
    • コミュニティがあったときは、同業者のプレゼンテーションや会話の中で自分のスキルの程度をある程度測れたり、自チームや会社が扱っている技術や体制がトレンドに遅れていないかのようなセルフチェックができていたが、その機会が失われた
    • 特に新卒メンバーは自チームだけでエンジニアとの関係が完結すると、そのチームにいる先輩のスキル傾向によって成長にキャップがかかりうる。(本人はサーバーサイドが好きだけど先輩がフロント好きで、自分の望む領域を得意分野とする人がいないなど)

というのを考えていました。

何かを知れる知れない以前に、チームという小さいコミュニティ(5 人? 10 人?)だけにしか所属していないのって、将来を考えたときに単純に不安なのではないか。いかに素晴らしいチームに所属していたとしても、世の中を見渡せないので自分が良いチームにいるのか、そうでないのかすら観測できずモヤモヤを抱えることもあるのではないか。というように疑問を持っていました。

企画を始めた当時、チームリーダー的な立場にあり、以下の理由で地域コミュニティはメンバーの意欲向上や離脱リスクの低下にならないか考えていました

  • どんなにチームを良くして行っても、このような「わからないから不安」という感情はチームそのものの改善ではなくしていくのは困難
    • 一方で個人としてこの不安や問題を解決するのは簡単で、転職を繰り返して自分に合ったチームを見つければ良いだけ
  • エンジニアの需要がどんどんと高まり、転職市場の活動も盛んになっていくような気配が当時あった

上記理由があり、社内で LT 会を発案した時「ラクスル単体の LT イベントではなくぜひ地域コミュニティとして広げていきたい」ということにこだわりました。結果、より広い人たちが集まりやすい会を作れたと思っています。

運営しながら感じたこと

とはいえ上記したことは、コミュニティ活動の副次的な効果です。実際のコミュニティ運営としては

  • コミュニティガイドラインなどを作る
  • 社内で開催した後に振り返りを行い次回に活かす

など、一般的なイベント開催とそう変わりない活動に集中しました。共催を増やして行ったりイベント自体を改善していくことに繋がりよかったなと思っています。

共催の企業を集めるにあたっても、上記のような話はあまりせずテック系の LT イベントであること以外の縛りは少なめで、各社持ち回りの会ごとに運営はお任せしました。結果、会ごとに違う色が出て、飽きない作りになったのではないかと感じています。各社の会を開く目的は様々だと思いますので、ブランディングなりメンバーのスキルアップであったりと、目的設定も各自で行え共催しやすくもあったのかなあ思っています(なっていたら嬉しいです)

また一方で、本アドベントカレンダーの1日目の記事

技術イベントが社内にもたらした変化と効果 | Racoon Tech Blog

で言及されているように、地域コミュニティに参加したことでチーム強化を実感してくれた方々がいたり

社内メンバーも SNS などで「コミュニティ活動は、学びをチームに持ち帰れるのが良い」といってくれたりなどもともと自分が狙っていたことが形になっていくのが何回か観測でき、裏でほくそ笑むなどしていました。

めぐろ LT 参加者でもあり、他のコミュニティにもよく参加するうちの若手が以下のようなつぶやきを Slack でしていました。

自分が思っていることが端的にまとまっているし、こう感じている人が増えていくことがめっちゃ嬉しかった一年でした。

まとめ

こういった会で持ち帰ったものがチームの改善活動に取り込んでいける下地があることなどの前提での話を主にしましたが、そうでなかったとしても「チームがうまくいかない」などの話をチーム外にして、同じように悩んでいる人や、そこを乗り越えた人などを見つける機会にもなりうるかなと思っています。

また、主催・共催したい側にとって「なぜ LT コミュニティに参加するのか。既に自社で行っているテックブランディングに比べてそんなに効率的でないのではないか」とつっこまれたときの切り返しとして「実は社外の人に対するテックブランディング以外に、社内を強くするチームビルディングでもあるんだ」という切り口だと開催意義を説明しやすくなるのではないでしょうか。

めぐろ LT は共催企業さんを募集しているとともに、このようなテックコミュニティが広がっていけば良いなと個人的に思っています。これから地域コミュニティなど作っていきたいと考えている方の一助にこの記事がなれば幸いです。

Pandasでメモリを効率的に扱うテクニック5選

はじめに

ノバセル新卒2年目の田村(tamtam)です。

今回はPyconAPAC 2023でJoeun Park氏が話されていた「How much data can we cram into 16GB RAM with less budget?」を参考に、Pandasでメモリ使用量を抑え大規模なデータを扱うためのテクニック5選を紹介しようと思います!

データ処理に精通している方にとっては、これらの内容はおなじみのものかもしれません。しかし、復習の意味を込めて、ぜひご一読いただければ幸いです。

Joeun Park氏の登壇はYoutubeも公開されていますので興味ある方はご覧ください。 www.youtube.com

1.サンプリングをしデータの行数を減らす

サンプリングとは、データセットからランダムに行を選び出し、より小規模なデータセットを作成することを指します。

データセットのサイズを減らすことで、必要なメモリ量が減り、処理速度が向上します。

ここでは具体的なサンプリングを2つ紹介します。

ファイルレベルでサンプリングする

大量のデータが複数のファイルに分散されている場合に役立ちます。

データセット内のファイルをランダムに選択します。

import os
import random

# ファイルが格納されているディレクトリ
directory = "/path/to/your/directory"

# ディレクトリ内のファイルリストを取得
file_list = os.listdir(directory)

# サンプリングするファイルの数を設定
number_of_samples = 10  # 例として10個のファイルを選択

# ファイルリストからランダムにサンプルを選択
sampled_files = random.sample(file_list, min(number_of_samples, len(file_list)))

# サンプリングされたファイルのリストを出力
print(sampled_files)

ファイルのチャンクごとでサンプリングをする

特に大きなファイルやストリームデータを扱う際に有用です。

ファイル全体を一度に読み込むのではなく、小さなセグメント(チャンク)に分割して、それぞれからサンプルを取得します。

import pandas as pd

chunk_size = 10000  # 1回に読み込む行数
sample_fraction = 0.1  # サンプリングで保持する行の割合

# CSVファイルをチャンクで読み込み、各チャンクからランダムに行をサンプリング
df_sampled = pd.concat([chunk.sample(frac=sample_fraction) 
                        for chunk in pd.read_csv('data.csv', chunksize=chunk_size)])

# サンプリングされたデータフレームを使用
print(df_sampled.head())

2.サブセットを抽出しデータの列数を減らす

サブセットの抽出とはデータフレームから特定の列だけを選択することを指します。

不要な列を取り除くことで、使用するメモリ量を削減できます。

具体的なサブセット抽出の方法を2つ紹介します。

ファイル読み込み時にサブセット抽出をする

pandasのread_csvメソッドを使用する際にusecols引数を利用します。

こちらを利用することでファイル読み込み時に必要な列のみを抽出することができます。

import pandas as pd

# 読み込む列の名前を指定
columns_to_use = ['column1', 'column2', 'column3']

# 指定した列だけを読み込む
df = pd.read_csv('your_data.csv', usecols=columns_to_use)

usecols を使用する際は、CSVファイル内の列の名前または位置を正確に知っている必要があることに注意しましょう。

データフレーム読み込み後にサブセット抽出をする

下記の例では「列名を指定して抽出」する方法になります。

import pandas as pd

# データフレームの読み込み
df = pd.read_csv('your_data.csv')

# 特定の列を選択
columns_to_keep = ['column1', 'column2', 'column3']
subset_df = df[columns_to_keep]

他にもデータ型などの「特定の条件に基づいて抽出」、「不要な列を除外」といった抽出の方法があります。

3.データを分割して読み込む

大規模なデータセットを一度に全てメモリへ読み込むことは、メモリの制約により困難または不可能な場合があります。

データを分割して読み込むことで、小さなメモリフットプリントで処理が可能になります。

import pandas as pd

chunk_size = 10000  # 1チャンクあたりの行数
chunks = pd.read_csv('large_dataset.csv', chunksize=chunk_size)

for chunk in chunks:
    # ここで各チャンクに対して処理を行う
    # 例:基本的な統計を計算、データのクリーニング、ファイルへの保存等

4.扱うデータタイプを変える

よりメモリ効率の良いデータ型に変換することで、データを格納するのに必要なメモリ量を減らす方法になります。

Pandasでは、データフレームを読み込む際、多様なデータを扱うために、広範囲に渡る一般的なデータ型がデフォルトで使われます。しかし、これにより無駄なメモリ消費をすることがあります。

そのため、場合によってはデータ型をよりメモリ効率が良いものに変換した方が良いです。

ここでは代表的な型変換を3つ紹介します。

Numericな値の変換: データ範囲の縮小化

Numericな値(整数や浮動小数点)のデータの表現可能な範囲を狭くすることでメモリ消費を抑えます。

Pandasではto_numeric() 関数を使って自動的に最適な型に変換することができます。

# 整数型のダウンキャスト
df['int_column'] = pd.to_numeric(df['int_column'], downcast='integer')


# 浮動小数点型のダウンキャスト
df['float_column'] = pd.to_numeric(df['float_column'], downcast='float')

ダウンキャストは、精度の低下やオーバフローを引き起こす可能性があるため、データの範囲と精度を考慮して変換しましょう。

Pandasの describe() メソッドを使用すると数値データの基本統計量を確認できますので、必要に応じてデータ型を変更する前に確認しましょう。

文字列の変換: Categorical型の利用

Categorical型は特に重複する値が多い列で、文字列型よりもはるかに少ないメモリを消費します。

Pandasの Categorical 型は、データの一意の値を内部的に整数値で表現します。これにより、同じ文字列がデータセット内で繰り返し出現する場合、各インスタンスは整数参照として保存され、実際の文字列データは一度だけ保存されます。

一方通常の String 型では、各個の文字列が独立してメモリに保存されます。

import pandas as pd

# データフレームの読み込み
df = pd.read_csv('your_data.csv')

# 文字列型の列をCategorical型に変換
df['string_column'] = df['string_column'].astype('category')

データの多くが欠損値や0である列の変換: Sparse 型の利用

Sparse型は欠損値やゼロを効率的に格納し、メモリ使用量を大幅に削減することができます。

下記の例では、fill_value に0を指定しています。これは、非0値のみが効率的に格納され、0値は省略されることを意味します。

# ゼロが多い列をSparse型に変換
df['sparse_column'] = df['sparse_column'].astype(SparseDtype(float, fill_value=0))

5.Parquet形式で保存をする

Parquetとは、列指向のストレージフォーマットで、列ごとにデータを保存することが特徴です。

この特徴からParquetは列ごとにデータを圧縮し、効率的なストレージと高速な読み書きを実現します。

対照的に、CSVやテキスト形式は行指向であり、異なるデータタイプが混在するため、圧縮率が低くなりがちです。

Parquetファイルにはメタデータが含まれており、スキーマ情報やデータ型、統計情報などが記録されています。このメタデータを使用して、効率的なデータ読み込みや圧縮方式の選択が可能です。

Parquetファイルを扱う際には、Pandas以外に追加の(pyarrow または fastparquet)が必要になります。

import pandas as pd

# データフレームの作成
df = pd.read_csv('large_dataset.csv')

# Parquetファイルとして保存
df.to_parquet('large_dataset.parquet')

# Parquetファイルの読み込み
df = pd.read_parquet('large_dataset.parquet')

まとめ

この記事では、「How much data can we cram into 16GB RAM with less budget?」を参考に、Pandasでメモリを効率的に扱うテクニックを5つ紹介していきました。

  1. サンプリングをしデータの行数を減らす
  2. サブセットを抽出しデータの列数を減らす
  3. データを分割して読み込む
  4. 扱うデータタイプを変える
  5. Parquet形式で保存をする

ぜひ活用してデータ処理の助けになれれば幸いです!

Japan.R 2023イベントレポート

こんにちは、ノバセルの松村です。

12/2(土)に統計処理プログラミング言語Rに関する年次イベント「Japan.R 2023」がハイブリッド形式にて開催され、ラクスルは目黒オフィスでの会場提供という形で協賛させていただきました。短めではありますが、そのレポートをできればと思います。

今年のJapan.Rは年末のLT大会ということで、R言語やデータ分析に関する様々なLTが繰り広げられました。また、年次イベントということでRコミュニティに関するセッションもありました。

japanr.connpass.com

Japan.Rとは?

統計学に関する解析や可視化が得意なプログラミング言語Rには、日本各地にユーザーコミュニティがあります。現在活動が活発なものとしてはTokyo.Rfukuoka.Rがありますが、SappoRo.RSendai.ROsakaRなど不定期に開催されるものもあります。かつては沖縄や名古屋、筑波などにもRコミュニティがありました。Japan.Rは、もともとはそういった各地のユーザーコミュニティが一同に介するイベントとしてスタートしました。

japanr.connpass.com

直近2, 3年はコロナ禍によりオンライン開催となっていましたが、今年初めてのハイブリッド開催をすることになり、ラクスルは協賛企業として会場提供を行いました。

当日は会場参加が30名以上、オンライン参加が150名以上と盛り上がりました。

勉強会当日の様子

Japan.R 2023 アジェンダ①
Japan.R 2023 アジェンダ②

ラクスル社員からみたJapan.R 2023

これまでラクスル社内ではハイブリッド型のイベントは実施したことがありましたが、外部のイベントに会場提供ではこの形式は初めてでした。筆者は後述するめぐろLTの運営にも携わっており、会場の設備にも詳しいことから、会場担当として参加させていただきました。結果として、スムーズに会を終えることができ、参加者の皆様にも大変感謝しております。

個人的に印象に残った発表は、「サテライト企画の振り返り」です。サテライト企画とは、オンライン開催のTokyo.Rを例えば福岡や仙台、ときには東京でもリアル会場に少人数で集まって観戦しよう、という企画です。オンラインでの勉強開催も当たり前になってしまった昨今ですが、2023年はサテライト企画が述べ10箇所以上で開催され、Rコミュニティにおける「リアルな勉強会の雰囲気を取り戻そう」という気持ちがすごく感じられる発表でした。

speakerdeck.com

めぐろLT発祥の地として

さて、ラクスルはめぐろLTというエンジニア向けLTイベント発祥の地でもあります(現在は目黒を超えて様々な企業の持ち回りで開催をしています)。

meguro-lt.connpass.com

今回、ラクスルとしては初めて外部の勉強会向けにハイブリッド会場の提供を行いましたが、滞りなく会を終えることができました。

めぐろLTは現在20-30人程度の規模で会場参加のみで実施しています。今回の事例を糧にして、来年はめぐろLTでもハイブリッド形式でやれたらより多くの方が観戦、発表することができて、エンジニアコミュニティとしてももっと盛り上がるのでは、と思っていたりします。ぜひハイブリッド開催をやりたい!!

エンジニアコミュニティの立ち上げから1年、定期開催までの軌跡

この記事は「技術広報 Advent Calendar 2023 シリーズ2」15日目と、「めぐろLT Advent Calendar 2023」16日目の記事です。

こんにちは。ラクスル技術広報の和田です。
ちょうど1年前の12月、社内外のエンジニアが集い、技術的な交流を目指すエンジニアコミュニティ「めぐろLT」が誕生しました。
今やcompassに登録いただいているメンバーが260名を超え、共催企業も7社に拡大。12月18日には10回目の開催を控え、参加者数が予想を上回る大盛況となっています。

今回は、非エンジニアの私がどのようにしてエンジニアコミュニティの運営を推進してきたのか、「めぐろLT」の立ち上げから定期開催までの軌跡を振り返ります。

はじめの一歩

「めぐろLT」のはじまりは、ノバセルエンジニア星野さんからの1件のSlackでした。

星野さんとCCOのゆるっとしたやり取り(笑)

当時、星野さんのメッセージには下記のような意図がありました。

  • 業界の最新動向や技術トレンドに追いついていたい
  • 自身のスキルや知識が取り残されていないという安心感を得たい
  • 個々の成長やキャリアの発展をサポートする場がほしい

特にジュニアメンバーにとって大切だと考えていると熱く語る星野さんの姿に触発され、このようなニーズに応えるためには、単発のイベントを実施するのではなく、定期的に機会を提供し続ける必要があると考えました。
これに共感したCCO(Chief Culture Officer)の大きな後押しもあり(上記のような 笑)、定期開催を念頭に置いた「めぐろLT」を立ち上げました。

立ち上げの鍵

期待を超える参加者・共催企業の反響の裏側には、ポイントが二つあったと考えています。

①コミュニティのコンセプトと目的の整理

コミュニティの立ち上げに至った後に、コンセプトと目的をまずは整理しました。 これにより、社内のメンバーをはじめ、イベントの参加者がコミュニティの方針や目指す方向性を理解しやすくなりました。私たちの願いは、エンジニアが気軽にアウトプットできる環境やチャレンジを支援し、このような環境が将来的には技術コミュニティ全体の成熟と発展に寄与することです。これらの想いが多くの参加者や企業に共感され、現在は共催企業の7社とラクスルの各社持ち回りで、毎月「めぐろLT」を開催しています。

コンセプト

  • オープンで協力的な雰囲気を醸成する
  • 気軽に意見やアイディアを発信できる場を提供する
  • 異なるバックグラウンドや専門性を尊重する

目的

  • 最新の技術情報や業界トレンドにアクセスしやすく、気づきや学びを得られる環境を提供する
  • 外部へのアウトプットを望みつつも、その機会が得られなかったエンジニアに新たなチャンスを提供する 
  • 知識の共有と交流を通じて、メンバーのキャリアの発展と個々の成長を支援する
②雰囲気の醸成

▼初回イベントの概要 
テーマ:「初めてLT」
資 格:外部登壇が初めて、またはそれに準じる人
形 式:発表時間5分、Q&Aなし

初回イベントの概要を検討する際に、外部登壇が初めてでも気軽に参加できる心理的なハードルが低いテーマ設定や資格であることに重きを置きました。
テーマや資格に初心者向けの要素が組み込まれたことで、初めて外部登壇を考えるエンジニアたちにとって、参加するハードルが低く、多くのエンジニアが積極的に参加しやすくなりました。
初回イベントから、「やってみたい」という挑戦ができる場として認知され、テーマを変えても新しい顔ぶれが積極的にLTに参加できる雰囲気が醸成されていきました。
会を重ねるごとに、参加者間で挑戦の意欲が育まれ、今では初登壇が「めぐろLT」です!という声をたくさんいただいています。

初登壇を果たしたラクスル新卒のふたり。懐かしい☺

技術広報の役割

1年を振り返り、技術広報としてコミュニティの発展において大切だったなと思う要素がいくつかあったため、私自身の視点で整理してみました。

①方向性を示し続けること

コミュニティが成長するにつれ、様々なメンバーやアイディアが加わります。この時、基本的な目的を忘れず、新たな要素がそれに合致するかどうかを確認し、運営の一貫性を保つことは、アイデンティティの維持にも重要です。これが守られることで、共鳴する共催企業との関係強化にもつながっていると感じています。

②透明性を保つこと

コミュニティの活動を社内外に定期的に発信することで、社内で協力を得られるだけでなく、参加者や共催企業の理解にもつながります。実際に、イベント開催日が決まったら、参加を促すPRだけでなく、リーダー陣やメンバーとのカジュアルな会話の中でイベントの舞台裏や登壇メンバーの活躍を積極的に共有することで、自主的にお手伝いを申し出てくれるメンバーが現れたり、リーダー陣がメンバーの登壇を評価していたりと、透明性が良い結果を生んでいます。

③問題解決と改善の推進

予測不可能な問題が生じた際、積極的に解決策を提案し、改善に努める姿勢が求められます。コミュニティにおける問題は、その都度、持続可能な運営のために必要な調整を専門部署と協力して行い、解決策を提案・推進していくことで、社内の協力関係が一層深まっていきました。エンジニア組織以外とも連携し、問題解決のための努力が、コミュニティの信頼性を高め、円滑な運営につながっています。

④エンジニアとの連携

エンジニアが技術的なリーダーシップを発揮し、技術広報がサポートを担当することで、コミュニティは技術的な視点と組織的なサポートがバランスよく機能します。 私はエンジニアが得意な技術領域以外で、コミュニケーションや組織サポートの分野でメンバーをサポートしています。お互いの強みを最大限に生かし、共にコミュニティの発展に向けて協力することで、強力な連帯感が育まれています。

いつもありがとう!🙏

おわりに

「めぐろLT」と共に歩んだ1年間は、挑戦の連続でした。コミュニティが成長する中で、答えをもっていない、経験したことがない壁に何度もぶつかりました。そんな時、世の中には技術広報視点の情報がまだまだ不足しているなと感じました・・・
幸いにも、私はエンジニアたちをはじめとするメンバーの協力のおかげで、ここまでの道のりを歩むことができましたが、このブログが未来のコミュニティ運営者たちにとって役立つヒントになったら嬉しいなと思っています。
これからも「めぐろLT」はエンジニアたちの交流と成長の場として、新たな可能性に挑戦し続けます。これからのイベントもお楽しみに!

ROSCAFE TECH NIGHT #2 イベントレポート: CTO岸野が語るプラットフォーム開発と技術負債の本質

こんにちは、ラクスル広報の和田です。
11月21日(火)、ROSCAFE TECH NIGHT #2がラクスル目黒オフィスで開催されました。
このイベントには、ラクスルからCTO岸野が登壇。ほか、SODAさん、LinQさん、出前館さんのCTO/VPoEが一同に会し、テーマ「CTOやVPoEに求められる役割とは?」に基づいて熱いLTセッションが繰り広げられました。
本記事では、CTO岸野がLTで語った内容に焦点を当て、自身がどのようにしてCTOの地位に到達したのか、日常業務で直面する課題や現在の注力テーマについて、イベントの概要と共に紹介していきます。

ROSCAFE とは?

エンジニア専門のフリーランスエージェント「ROSCA」が運営するコミュニティの名称。このイベントでは、様々なプレイヤーが集まり、エンジニアリングの進化やこれからの展望について情報交換が行われています。

イベント概要

このイベントでは、時代の変化に応じてCTOやVPoEに要求される役割やリーダーシップの多様性に焦点を当てました。各登壇者は、組織の課題、解決方法、そして自身の役割の定義について、それぞれの視点でLTを行いました。

登壇者紹介

岸野 友輔(ラクスル株式会社 ラクスル事業本部CTO)
林 雅也(株式会社SODA 執行役員 CTO)
Kazuma Takeda(株式会社LinQ CTO)
米山 輝一(株式会社出前館 執行役員 IT本部 本部長 兼 VPoE)

LTセッション  (スピーカー:ラクスルCTO岸野)

CTOになった経緯

2017年、ラクスルに新卒第一号として採用されました。入社以来、印刷事業の中心である印刷のECサイトにおいて、表側の部分や裏側のシステム開発を担当し、パートナー様向けの印刷依頼システムの開発などに従事してきました。
また、プロジェクトとして印刷の発注を効率化するアルゴリズムの開発など、効果的なプロジェクトの立ち上げも行っていました。2021年には、ラクスルとして初めてのM&Aを実施し、段ボール製造の会社を傘下に迎えました。
プロジェクトやM&Aを通じた組織の発展に貢献し、2022年8月にダンボールワン社のCTOに就任。その後、2023年8月にはラクスルとの吸収合併により、現在はラクスル事業のCTOとして、統合後の組織の立ち上げ、開発スピードの向上、事業推進を担っています。

事業フェーズの変遷

印刷のEC事業からスタートし、急速な事業拡大と新規事業を展開してきました。特に、グッズのカスタマイズ可能なECサイトやアパレル・ユニフォーム事業の立ち上げなど、多岐にわたる挑戦を行ってきました。しかし、それに伴いシステムの技術的な課題が浮き彫りになり、技術負債が蓄積されていました。
当時、そのような状況を改善するための判断として採用されたのは、既存のシステムの拡張ではなく、新しいシステムの構築でした。この意思決定は正しかったと考えています。そうしたことで、柔軟性のある構造が作り上げられ、ラクスルは着実に成長しています。
現在は新たなフェーズに突入し、個別最適から中長期を見据えた全体最適への移行が進行しています。特に、全社的なプラットフォームの構築に注力し、購入者の利便性向上に焦点を当てています。
具体的なプロジェクトとして、ラクスルで購入したユーザーにとって非効率的だったECサイトの購買体験を向上させるための取り組みが進行中です。これにより、マイページや注文履歴の統合など、より統一されたユーザーエクスペリエンスが提供されることが期待されています。

開発組織のリーダー体制の変化

事業部を超えたアサイン変更の難しさやCTOへの一極集中が、事業運営において健全でない状態を招いていました。
その後、積極的な変革を行うため、新たな組織体制を導入しました。具体的には、Tech、 Bizの意思決定者を集約したTech意思決定機関の組成や、縦割りの個別最適から横軸での全体最適への転換です。新しい構造では、事業責任者やシステム部門、CTOなどが連携しやすくなり、迅速な意思決定が可能となりました。縦割りの組織から解放されたことで、より効率的で柔軟な開発体制が構築されたと思います。

現在のビジネスフェーズや組織の変遷を考慮すると、事業も進化する中でプラットフォームの構築が鍵となり、全体的な開発投資が不可欠です。
CTOは組織の目指すべき姿を描き、その推進をリードするリーダーシップが求められています。
同時に、技術を駆使して事業改造を促進し、レバレッジ可能なポイントを見つけ出すことが必要です。CTOがこれらの役割を果たすことで、攻めの要素を強調した役割に変容していると考えています。
新卒入社した当時から高めてきた事業解像度や事業変革プロジェクトのリーダーシップ経験を活かし、技術戦略を策定し、組織を牽引しています。

現在の注力テーマ

現在の主要な取り組みとして、私の注力テーマは大きく3つです。プラットフォームプロジェクトの推進、技術負債の解消計画の策定、そして開発組織の強化です。

1つ目のプラットフォームプロジェクトでは、成長を促進するために新規事業やM&Aなどの戦略を組み合わせ、状態を整えることで更なる発展を目指しています。

2つ目は、技術負債の返済計画の策定です。弊社のECシステムは事業において重要な位置を占めています。そのため、このコアなシステムにかかる技術的な負債に対処する必要があります。CTOとして、この技術的な側面を正確に認識し、適切な説明を通じて計画を進め、返済を推進することが求められています。 技術負債の返済計画の立案はCTOの役割の一環と考え、その計画をどう策定し、実行していくかについても具体的な取り組みを行っています。
特に、システムの注意深い監視と改善が不可欠で、実際にシステム量の見かけの変動に惑わされず、減少していく過程を明確に示すことが重要です。 技術負債の返済は挑戦的なプロジェクトであり、これをゼロに近づけるためには、計画をしっかりと実行する必要があり、そのための体制を整えています。

3つ目は、開発組織の強化に焦点を当て、計画の実現に必要な人材を育成・採用しています。具体的には、採用活動の強化、既存のメンバーがより活躍できるように、キャリアパスを整備し、個別のメンバーに焦点を当てた育成計画などが進行中です。これにより、計画の実現に必要な開発組織を構築し、全体の推進力を向上させています。

まとめ

本日改めて、ほかのLTも聞いていて感じたことは、CTOの役割は曖昧でありながらシンプルだということです。CTOは経営の中で最もテクノロジーを理解し、テクノロジー組織の中で経営も理解している存在として、必要なことをシンプルに進め、自らが最も得意とする分野で最も力を発揮できる場所に焦点を当て、柔軟性を持って変化することが重要です。今後も、確かなテクノロジー理解を持ち、成長に貢献していきたいと思います。

懇親会

LTセッション終了後の懇親会では、参加者と登壇企業のCTOやVPoEの皆さんがアットホームな雰囲気で交流し、興味深い話題を共有しながら、今後のテクノロジー業界やリーダーシップに対する期待などについて熱く語り合う場となりました。

おわりに

ROSCAFE TECH NIGHTに初めて参加させていただきましたが、技術やリーダーシップに関する情報交換が盛んで、カジュアルな雰囲気でイベントを楽しむことができました。
異なるバックグラウンドを持つ企業同士の交流も、やっぱりおもしろい!
ご用意いただいた軽食もマックとあり、ハンバーガー片手に交流をしている様子はカジュアルさを引き立てていました(笑)
参加いただいた皆さま、登壇者・関係者の皆さま、そして何より企画運営をいただいたRoscaの皆さま、ありがとうございました!
また、イベントでご一緒できる日を楽しみにしています!