組織

社内ハッカソンの意義 〜Raksul Hack Week #2 開催から見えてきたこと〜

こんにちは。ハコベル(物流サービス)チームのサーバサイドエンジニア 加藤です。

このブログでもお伝えしていた第2回社内ハッカソン Raksul Hack Week #2。6月第2週に開催しました。今回は開催のレポートをしつつ、そこから見えてきたものについて書いてみたいと思います。

開催概要と今回のテーマ

2回目となる今回も、Raksul Hack Week #1から基本的な開催概要は変えずに企画しました。

  • 参加者はエンジニア、プロダクトマネージャー、デザイナーとする
  • ハッカソンの期間は1週間とし、期間中はハッカソン100%コミット、普段の開発業務はやらない(※ ただし緊急対応系は最優先で)
  • チーム制とする
  • 最終日に各チームは成果発表する
  • ラクスルの事業、ステークホルダーに関わることであれば何に取り組んでも良い

結果として、4日間の作業期間+1日の発表会&表彰式という日程で、2〜5名の16チームが参加する大イベントとなりました。運営は各事業部から集まったエンジニア・PM・デザイナーの4人で行いました。

そして今回のテーマは、

 

みんなで創る次の世界

〜好きなことから始まる挑戦〜

課題 ✖️チーム✖️技術

 

第一回の開催の後、様々な背景を持ったメンバーが増えて続けているプロダクトチーム。普段は業務に集中していて、視野を広げたり、チームを超えてお互いを知り合う時間が十分にとれないのが現状です。今回は、普段の仕事の範囲を超えて、お客様や社内の課題を共有し、チームと技術の力を使って、次の世界を実現するきっかけにしようという気持ちを込めました。

開催までの取り組み

今年は、以下のように開催2ヶ月前から次ごとにテーマを区切り準備を進めてきました。

  • 4月:アイデア月間
  • 5月:チーミング月間
  • 6月:Raksul Hack Week #2

この期間に、各事業部のビジネスメンバーからお客様の課題、自分たちの業務の課題やこんなのがあれば嬉しいといった声を聞くランチイベント Hack Week Lunch や、チームビルディングイベント Hack Week Pre-event を開催しました。

詳しくは、今年も Raksul Hack Week を開催します! や いよいよRaksul Hack Weekが始まります!をご覧ください。

いよいよ本番

まずは、初日のキックオフ。毎週の全社朝会の後、スケジュールや注意事項の説明を聞き、くじで発表順を決めていざ開始!

キックオフの様子

初日は、それぞれのチームで、4日間をどんな風に進めるか、課題を整理したりプランニングしたりする様子が見受けられました。

ホワイトボードを前にチームでディスカッション

進め方を決めたあとはそれぞれで作業を進めたり、ラクスルでもすっかり定番になった、ペアプロやモブプログラミングを取り入れて進めるチームやユーザ調査に出かけるチームもありました。

モブプロで作業を進めるチーム

連日、いつもより遅くまで作業を続ける姿が見られました。すごいコミットメントですね。

バイキングデスクで仲良く作業する2人

ベトナムからは今回は2チームが参加。

作戦を練り直すベトナムチームのメンバー

発表会

発表会は、参加メンバーはもちろん、弁理士の先生や、ボードメンバー、ビジネスメンバーも参加して行われました。持ち時間は、各チーム7分。お昼を挟んでの2部構成で行いました。

ネットワークがつながりにくいというトラブルがある中、それぞれ、デモまで行って聞き応えのある発表となりました。1週間の熱量が発表にもこもります。

チームみんなで発表

技術的にも、AI、IoT、モバイルアプリやフロント技術を使ったものや、組み合わせ方に工夫を凝らしたものなど、様々な取り組みが発表されました。どのチームも課題設定が素晴らしく、ボードメンバーからも賞賛の声がありました。

発表を聞き入るCEO 松本とCTO 泉

投票&表彰式

前回は、シールをボードに貼る形式で行われましたが、今回は集計のことも考えて Google Form を利用。一人2チームを選ぶ形式で投票を行いました。また、どこが素晴らしいと思って投票したのか、投票コメントも記入してもらうようにし、翌週に全チームにフィードバックしました。

受賞したチームや受賞は逃したものの評価が高かったチームを3チームほどご紹介します。

技術負債の可視化ツールに取り組んだのは、以前からこのブログにも度々投稿している、エンジニアマネージャーの二串とチームメンバー。ラクスルは以前から技術負債解消に果敢に取り組んでいますが、その取り組みをダイエットに見立てて、楽しく可視化しようとしたアイデアがみんなの心を掴みました。

技術負債可視化チーム

そして今回一位は、古参の岡田と新卒からラクスルにジョインしている3人のメンバーのチームでした。

印刷マッチングプラットフォームであるラクスル。その重要なテーマの1つである、発注周りの改善提案に取り組みました。

ビジネスメンバーが思いつかなかった課題にテクノロジーを使って切り込み、見事な改善提案で、みんなをあっと言わせました。

リーダーシップをとったのは、3年目の岸野。「以前から個人的にやるべきだと思っていた課題。Hack Week という機会に取り組むことができました。」とコメント。ジョブローテーションをしながら、確実に成長している3人の今後がますます楽しみになりました。

CEO松本と1位のチーム

ちなみに私のチームは、CEO賞を受賞しました。ハコベル(物流サービス)の技術スタックを横展開し、他事業で数年前からの課題を解決するWebサービスとアプリを開発しました。運営しつつも、今回のテーマ「みんなで創る次の世界」を体現したいと思い、CTOの泉、アプリエンジニアのライアン、デザイナーの武末とともに、トライアル運用を目指して取り組みました。

未来を見つめるCEO賞受賞チーム

ここで紹介しきれませんが、本当にどのチームの成果も素晴らしく、今後どのようにするのかは継続議論がされることになりました。

懇親会で締めくくり

みんな全力投球したHack Weekを終えての懇親会は、それぞれ取り組んだテーマの話で盛り上がりました。また、期間中のエピソードもたくさん聞くことができました。

懇親会で挨拶するCTO

Raksul Hack Week #2 開催から見えてきたもの

Hack Week後のアンケートを通じて、参加メンバーからたくさんの声をいただきました。

「Hack Week Lunchもラクスル自体の理解度解像度が上がり良かった」

「普段あまり関わりの無いメンバーと開発でき、充実していた」

「ゼロからのプロダクトに少人数で考えて向かうという、実は普段あまりチャンスが無いようなことができたことにとても価値があったと思う」

「新しい技術にトライできて勉強になったし楽しかった」

「自分自身の課題も見えたり、メンバーとの交流できて、良い経験が得られたなと思った」

 

これらの声や運営している中での気づきから、ラクスルにおける社内ハッカソンの意義を私なりにまとめてみました。

  1. 学びの機会
    – 技術だけでなく、ビジネス課題に視野を広げる
    – 課題設定、プランニング、ゼロイチの開発を自分たちで行う力を養う(広義の開発力の向上)
  2. コミュニケーションの機会
    – 成長しているエンジニア組織でのチームを超えたコミュニケーションの促進
    – お互いを応援・賞賛しあう文化づくり
  3. 挑戦の機会
    – 新しい技術への挑戦
    – 結果が見えないテーマに挑戦(失敗できる機会)
  4. ビジョンの実現の加速の機会
    – 動くものを見せることで未着手のテーマに本格的に取組むきっかけにする

Hack Week はさながら冒険の旅のようでした。出発前の戸惑いあったり、チームで課題を乗り切る場面があったり。翌週出会ったみんなは、心なしか一回り力強くなったように感じました。

表彰式後の集合写真。何のポーズかな??

1週間業務を止めて行う社内ハッカソンの開催は、それなりの投資。決定するのにも勇気が要りますし、運営チームや参加者を含めて準備もあります。でも、上記にまとめたように、今回それ以上に意義のあるイベントだと思いました。

エンジニア組織の活性化をお考えの方は、社内ハッカソンに取り組んでみてはいかがでしょうか。

ラクスルでは事業をつくっていきたいエンジニアを絶賛募集しています!

自分の書くコードで、印刷・広告・物流といった大きな産業の課題を解決するようなインパクトを作り出してみませんか。技術・業界・業務など多角的に理解を深めながら、自らアイデアを出し、主体的に事業をつくっていく。そんな働き方をしたい方をお待ちしています!

ハコベルチームはHack Week後から五反田の新オフィスで勤務。新オフィスにもぜひ遊びに来てください!

いよいよRaksul Hack Weekが始まります!

こんにちは。エンジニアマネージャーの石川です。普段は、印刷ECサイトで提供している集客支援(ダイレクトメール、新聞折込、ポスティング等)の開発に携わってます。

前回、ハコベルの加藤よりHack Weekの紹介をさせていただきましたが、いよいよHack Week #2の開催が来週となりました。

Hack Weekは、エンジニア、デザイナ、PM、普段ラクスルの事業を支えているTECHチームが参加するハッカソンイベントです。自分たちでアイディアを出し合い、1週間かけて開発を行います。

本日は、前回の記事以降に行われたチームビルディングイベントの様子をご紹介したいと思います!

チームビルディングイベントを開催しました

Hack Week開催まで3週間を切った5/22、Hack Week pre-eventと称して、チームビルディングを目的としたイベントを開催しました。

前回の記事では、 Hack Week Lunch を実施の様子をご紹介しましたが、今回はチームビルディングイベントということもあり、美味しい食事とお酒を楽しみながら、自由な雰囲気でコミュニケーションを取りやすいイベントを目指しました。

まずはIceBreak

Hack Weekでは、普段は違うチームで開発をしているメンバーと一緒に開発ができる良いチャンスでもあります。

今回のイベントでは、普段のチーム以外のメンバーともぜひ交流を深めてほしい。

そこで、冒頭の時間をIceBreakタイムとして簡単なゲームを実施しました。

まずは隣にいる人と話すきっかけを持ってもらうこと、声を出して話して見ることで、緊張をほぐしてもらうことが目的です。

2人ペアを組んでもらい、簡単なゲームを通して15分ほど会話を楽しんでもらいました。

会場の雰囲気も和んできたところで…ラクスルビールで乾杯をしてイベントスタートです!

チームビルディングタイム

「こういう面白いことやろうと思ってるんだけど、フロントやってくれませんか?」

と、熱いプレゼンをするメンバー

「まだ何をやるか決めてないんですが、何やるか決めました?」

と、すこし不安な思いを抱えながらの参加となったメンバー

それぞれの想いが入り混じりながら、チームビルディングタイムがスタートしました。

それぞれの想いを胸に、イベントスタートです!

最初はみんな手探りでしたが、それぞれが持ち寄ったアイディアを語り合いながら食事とお酒を楽しみ、それぞれのテーブルで様々な議論が交わされました。

身振り手振りを交えて熱い議論を交わします。

チームビルディングイベントの結果は?

イベント開催をきっかけに、16のチームが結成されました!

チームビルディングイベント中に結成されたチームも合ったようですが、イベントの翌日以降に改めて話して結成したチームも多く見られたようです。

チームビルディングイベントに参加してみて

私自身も、ラクスルに入社して4ヶ月。

社内にまだまだ知り合いが少ないので少し不安な気持ちでの参加でしたが、自己紹介から始まり、お互いの事業の紹介をしたり、温めていたアイディアの話をしたり、Hack Weekに対する不安が解消され「いよいよ始まるんだな!」と期待が膨らむイベントになりました。

いよいよRaksul Hack Weekが始まります!

いよいよ来週からRaksul Hack Weekが始まります。

それぞれの16チームのテーマも出揃いました。

テーマは、普段関わっている事業に関するもの、最新の技術を使ったもの、様々です。

次回は、Hack Week開催後に結果をお届けしようと思います。

ラクスルではエンジニアを引き続き募集しております!

ラクスルでは、一緒に事業を盛り上げてくれる仲間を引き続き募集しております。

エンジニア一人一人が事業に対して高い解像度を持ち、事業に関わることができる。全職種一丸となって事業を成長させていける、そんな職場です。

ただ開発をするだけではなく、事業を一緒に創っていきたい方、ぜひ弊社オフィスに遊びにきてください!

 

 

今年も Raksul Hack Week を開催します!

こんにちは。ハコベル(物流サービス)チームの加藤です。

今年も社内ハッカソンイベントの開催が決まり、準備が進んでいるのでその様子をご紹介したいと思います。

Raksul Hack Week #1

昨年9月に開催した社内ハッカソンイベント Raksul Hack Week #1

こんな概要で、オフィス内で4日間の日程で開催しました。

  • 参加者はエンジニア、プロダクトマネージャー、デザイナーとする
  • ハッカソンの期間は1週間とし、期間中はハッカソン100%コミット、普段の開発業務はやらない(※ ただし緊急対応系は最優先で)
  • チーム制とする
  • 最終日に各チームは成果発表する
  • ラクスルの事業、ステークホルダーに関わることであれば何に取り組んでも良い

(詳しくは 1週間やる、楽しい社内ハッカソンの作り方 をご覧ください)

Raksul Hack Week #1

いつもの業務から離れたテーマを行ったり、いつもとは違う技術を使って開発したり、他のチームのメンバーと仕事したり。それぞれのチームの発表もお互いに刺激になり、とても好評なイベントとなりました。

さらに、この中からプロジェクトとして採用されたり、実際に世に出たりしたものもあります。

ラクスルデザインブログもその一つ。バナー、LPから、各サービスのプロダクトデザイン、イベントブースのデザイン、RubyKaigi などのノベルティなど、オールマイティに活躍するラクスルの優秀なデザイナーが綴るブログとなっています。ぜひご覧ください。

どうなるかわからない不安を乗り越えて

さて、参加メンバーにも経営陣にも好評だった第1回を受けて、今年もめでたくRaksul Hack Week を開催することになりました。

今回の開催にあたっては運営メンバーを一新。UXデザイナーで入社した新卒2年目のロビンが手をあげてリーダーを務めます。印刷・広告・物流の各チームからメンバーが集まり、前回の運営メンバーのアドバイスをもらいないがら、週一回のミーティングをベースに準備を進めることにしました。

開催日程は、6月中旬の1週間。会社が成長しているので、参加メンバーも増加。2回目で大枠の進め方が見えているとはいえ、運営メンバーの中には前回まだ入社していなかったメンバーもいるのでどう進めるのか不安も出てきました。まずは、”Wednesday Raksul” という社内の技術勉強会中にみんなに前回の参加のJourney Map を書いてもらって、運営メンバーで共有するところから始めました。

とあるメンバーの Journey Map (イベント開催前)

とあるメンバーのJourney Map (イベント開催中)

第1回目は最終的にとても楽しく刺激になるイベントだったのですが、開催前には「やることを決められるだろうか」「チームメンバーを集められるだろうか」といった不安があったことが見えてきました。新しく入社したメンバーからも同じような声があがったので、なるべくその2つの課題のサポートができるばと思いながら進めることにしました。

Raksul Hack Week #2 のテーマは…

さてそんな中から生まれてきた、今年のRaksul Hack Week #2のテーマは

 

みんなで創る次の世界

〜好きなことから始まる挑戦〜

課題 ✖️チーム✖️技術

 

事業部ごとに様々な背景を持ったメンバーが増えていたり、新卒メンバー4人は全員国籍が違うというほどダイバーシティーに力を入れていたりする現在のラクスル。

そんな中でラクスルの「仕組みを変えれば世界はもっと良くなる」というビジョンを実現する一つの手段として、次の世界をみんなの力を使って実現できるようなきっかけになるようなイベントにしたいという想いが込められています。

新しい試み Hack Week Lunch

Journey Map から見えてきたことや、今年のテーマを踏まえ、開催までの期間を以下のように区切りイベントを開催したり案内を出したりすることにしました。

  • 4月:アイデア月間
  • 5月:チーミング月間
  • 6月:Raksul Hack Week #2

4月から5月にかけては、各事業部のビジネスメンバーからお客様の課題、自分たちの業務の課題やこんなのがあれば嬉しいといった声を聞くランチイベント Hack Week Lunch を実施しました。

ディスカッションの内容をホワイトボードに記録。その場のディスカッションを盛り上げたり、その場でどんな話題が出たのか参加していないメンバーにも共有していきました。

Hack Week Lunch

さらにアイデアを共有するためのSlackチャンネル #hack_week_ideas を用意して、Hack Week に直接参加しないビジネスメンバーとエンジニア/デザイナー/PMがアイデアを出し合う場をオンライン上でも作りました。

#hack_week_ideas チャンネル

部門を超えて課題やアイデアを交換したりする場になってきて、次のステップの本質的な価値提供の話題も上ったりしています。このチャンネルを通年運用したいという声もありました。

開催まで1ヶ月弱

いよいよ開催まで1ヶ月弱となってきました。5月はチーミング月間。「チームメンバーを見つけられるだろうか」という声に少しでもお答えしようと、カジュアルなプレイベントを実施する予定です。

今年はどんなチームや取り組みが生まれるのでしょうか。意外な組み合わせが、面白い結果を生んだりすることもあります。偶然の流れも大切にしながら、Raksul Hack Week #2 を楽しんでいきたいと思います。

 

ラクスルでは事業をつくっていきたいエンジニアを絶賛募集しています!

自分の書くコードで、印刷・広告・物流といった大きな産業の課題を解決するようなインパクトを作り出してみませんか。技術・業界・業務など多角的に理解を深めながら、自らアイデアを出し、主体的に事業家人材と一緒に事業をつくっていく。そんな働き方をしたい方をお待ちしています!

1週間やる、楽しい社内ハッカソンの作り方。

RakSul Hack Week Logo

はじめに

こんにちは。ラクスルプラットフォームチームのエンジニアの二串です。

先日、ラクスルではRaksul Hack Week #1という1週間通しでやる全員参加型の社内ハッカソンを開催しました。その運営を担当しまして、本記事では1週間やる楽しい社内ハッカソンの作り方をご紹介します。

開催の背景

もともとラクスルのエンジニア向けの制度としてHack-It Dayという月に1日、自由なテーマで開発することができる日がありました。もちろん活用はされていたものの、1日では満足いくものが作れなかったり、日々のリリースを優先してしまったり…といった課題も見えてきていました。そこで今回「Raksul Hack Week」に名称を改め、皆で1週間集中して面白いプロダクト・サービスを作ったり、新しい技術チャレンジをしたりする機会をつくろうと考えました。

第1回目となる今回のテーマは「HACK THE SYSTEM, HACK THE WORLD. (仕組みをハックすれば、世界はもっとカッコよくなる)」です。1週間通しでハッカソンをやる、というのは個人的に(そして他のエンジニア達も)初めての体験でありましたが、結果として自分たちの設定したテーマに全力を注ぐことができてよかったと思います。取り組んだ内容は記事後半の方で紹介します。

イベント概要

どんな感じのイベントだったのか?

  • 参加者はエンジニア、プロダクトマネージャー、デザイナーとする
  • ハッカソンの期間は1週間とし、期間中はハッカソン100%コミット、普段の開発業務はやらない(※ ただし緊急対応系は最優先で)
  • チーム制とする
  • 最終日に各チームは成果発表する
  • ラクスルの事業、ステークホルダーに関わることであれば何に取り組んでも良い

開催週の月曜日が祝日のため実際には前3日間開発、4日目成果発表会となりました。開催場所は企画段階で社外のコワーキングスペース等を借りるという案も出ましたが、初回ということで慣れたオフィス内開催としました。

準備

参加者の自発性を重視する形で、チーム構成は自由、また取り組む内容もチーム毎に自由に決定可能としました。また、イベント開催1ヶ月以上前から、各自で取り組みたいことを考えてもらってアイデアを膨らませてねーとお願いし、少しつづ Hack Week を盛り上げることにしました。

今回やったチームを決めるまでの流れは次の通りです。

  1. まず、社内(非参加者方面)からネタ(お困り毎など)を募集する
  2. 1を参加者に展開してアイデアの種にしてもらう
  3. 参加者は各自やりたいことをシェアする(専用confluenceページに書いてもらう)
  4. 出たやりたいことに賛同した人たちでチームを組む、もしくは3の起票者がメンバをリクルーティングしたりして組んでもらう
  5. チームを決めかねてる人たちはシャッフルで決定。取り組み内容は3を参考に決めてもらう
  6. Google Formでチームエントリ

全チーム構成が決まったのが開催の1週間前でした。この時点で大体のチームがやることもざっくり決めれている状態でした。

普段の業務に近いメンバーと組んだチームもありましたが、結構普段組まないメンツでの構成のチームもあり、結果的には何が出来上がるかな〜と期待が膨らんでくるチーム編成となりました。

ステッカー作りました(もちろんラクスルで作りました)

ハッカソン当日

ハッカソンが始まってしまえばあとは各チームもくもくと作業するだけです。社内の様々な場所で開発が行われました。

ちなみに、私は運営ではありましたがチームの一員としても参加しており期間中はがっつりと開発してイベントを楽しむこともできました。事前の準備が大事! 普段はサーバサイドの開発がメインですがHack Weekでは違う技術をということでTypeScriptNuxt.jsでフロントエンド中心のプロジェクトをやりました。難しかったですが勉強になりました!

ちなみに、1日の終わりに各チーム進捗報告をSlack #hack_week チャネルにしてもらうようにしました。進捗サマリとともに開発風景やスクショ等を共有してもらうことで、チーム間でもコミュニケーションが生まれたり、ビジネスメンバ等も様子を垣間見れたりして良かったとおもいます。

CTO泉率いるチームの開発風景。なんか楽しそうです。

 

ベトナムの開発拠点もリモート参加

取り組み内容紹介

一部ではありますがアウトプットを紹介します!

Fax2Web

アナログとデジタルとのブリッジになるための技術開発、ということでFAXとwebをつなぐチャレンジ。FAXを受信するとシステム連携されwebの注文ステータスが変更されたり、文字認識により自動入力されたりする仕組みのPoCを取り組みました。

メンテゲーム

サイトのメンテ中に遊べるゲームの実装にトライ。システム構成は Vue CLI 3 を使った静的サイト。

発表会・打ち上げの様子

発表会は1チームづつ順に発表。ベトナムの開発拠点とも接続して中継しました。

発表会の様子

 

1週間のハッカソンを振り返って話題が尽きない打ち上げとなりました

その他細かい運営のこと

参加必須のため参加者が50人弱ということでそれなりに入念に準備しました。まず、各チームの開発繁忙期と被らないようにスケジュール調整し日程を決めました。その後は運営コアメンバを招集してのキックオフ(これが開催3ヶ月前)、あとは週1回定例会を開きまして、少しづつ準備進めていきました。

なお、企画にあたっては以下の記事を参考にさせていただきました。有益な情報ありがとうございました。

まとめ

Raksul Hack Week #1 という社内ハッカソンを開催しました。

初めての長期社内ハッカソンということで、開催前には本当に盛り上がるのだろうか、普段1週間開発を止めてまでやるほどの価値が出るだろうか、といった不安も運営的にはありましたが、結果的には開催後のアンケートや、また経営陣へのイベント後の振り返り報告でも好評で良いイベントになりました。

普段の業務では要件通りに仕事をするということは大切ではありますが、今回のようにエンジニアやデザイナーの自発的でクリエイティブな発想で仕事をするというのも価値があることだなと感じました。また、使ったことのない技術スタックを試す機会としても良かったとおもっていて、実際今回使った新しい技術を業務に取り入れることにしたチームもありました。

今後もラクスルのテックカルチャーの1つとして開催していければいいなとおもいます。

社内ハッカソンイベント Raksul Hack Week #1 を開催中です

RakSul Hack Week Logo

エンジニアの二串です。

最近少しづつ朝晩が冷えるようになってきて秋の到来を感じますね。さて、秋といえばハッカソンですよね(!!?)

というわけで今週、ラクスルでは社内ハッカソンイベント「Raksul Hack Week #1」 を開催しています。

RakSul Hack Weekとは?

もともと月に1日、エンジニアは直接的な業務を離れ自由に開発をしていい Hack It Day という制度がありました。今回はそれを拡張し、1週間に渡って、全社的に(エンジニア、プロマネ、デザイナー混ぜて)やろうよ!というイベントです。さらりと書きましたが、1週間普段の開発を止めて、自由な発想でおもいっきりやってみる企画になります。今回が記念すべき(?)第1回目となります!!!

今回はやりたいことを事前にメンバーから集めて、出てきたアイデアをベースに数名1チームでチームを組んで、チーム=プロジェクトを作って取り組む方式を採用しました。

今週はシルバーウィークで月曜がお休みなので火曜から金曜まで計4日間の開催し、最終日にはチームごとの成果発表を開催します。成果発表会では、参加者の他、非参加者(ビジネスやカスタマーサポート)も交えての会となります。

楽しく作戦会議中の様子

各チームで作業が進んでます

今回は1週間ということで普段なかなか試せない技術スタックを試してるチームも多く、参加者達はそれぞれ盛り上がって来ているようです。

どんなことをやってるの?

例えば、

  • AWS lambda を使ってのFAXとウェブをつなげるサービスの開発
  • Nuxt.js + TypeScript で作るSlackと連携したウェブサービス
  • AIによる注文審査の自動化システム

などなど…. 技術領域も解決する課題も様々。今回は12チーム、総勢41名が参加しています。

もくもく作業中!?

さて、どんな成果物ができるでしょうか!!? 今から楽しみです。

また詳細はレポートします。

そうだ、ラクスルを作り直そう!

10月からラクスルにジョインさせていただいた水島です。

新参者ですが、宜しくお願いいたします。

さて、入社して間もなくCTOの肝いりでスタートした 「Raksul Platform Project」 のプロマネを拝命したため、今日はその全体感の話をしたいと思います。

なにをするのか

「スタートアップあるある」だなんて言わないでください。

ラクスルをフルスクラッチで作り直そうとしています。

でもそれはあくまで手段です。

目的は、

  • 技術負債と思われている部分を根本的に解消して開発しやすい状態にする(エンジニアを幸せに)
  • システムに柔軟性を持たせて経営戦略の選択肢が増えている状態にする(経営を幸せに)

の大きく2つです。

特に前者の「エンジニアを幸せに」という目的に対する経営陣の温度感が不思議と高いのはポジティブに感じています。短期的な投資対効果とかではなく、「ものづくり」を大切にする会社になるんだという意思が強く感じられるので、長い道のりにはなりそうですが、エンジニアとデザイナーがさらに輝けるようにするために是非やりきりたいと思っています。

後者の「経営を幸せに」という目的は、プロマネである私のバランサーとしてのプライドみたいなものです。ただ作り直してキレイになりました、幸せです!だけでは虚しさがあるので、経営の潜在ニーズを今回のプロジェクトで一定先回りして、いつかドヤ顔したいと思っているのです。

つまりは、単純に他言語、他フレームワークで作り直すということではなく今後のアーキテクチャーから見直していくプロジェクトです。

 

今までのいろんなアンチパターンを思い返して方針を考える

ラクスルの現在のシステムの状態を見たり、私が今まで経験してきた様々なサービス、プラットフォーム、受託システムの開発を思い起こすと、やってはいけないアンチパターンの連続が強烈な反省と共に頭の中を駆け巡ります。

それらをベースに今回はどのようなアーキテクチャーで進めていこうとしているかをいくつかご紹介したいと思います。

アンチパターン1: サービスのコア機能が汎用化されていない

サービスはユーザーのニーズや市場環境を見ながら進化していくものなのですが、再利用可能なコア機能が主力サービスの中に閉じ込められていることがあります。

私の経験を思い返しても、

  • 会員体系の認証、認可機能
  • 決済、経理、資金決済法遵守のための仮想通貨管理などの機能
  • データ分析基盤機能
  • 校閲、投稿内容チェックなどの機能
  • 画像管理、変換機能
  • CMSと広告配信管理機能
  • ファイルシステムみたいな機能

などがありました。

つまりは社内外で今後再利用される可能性があるものを主力のサービスとは疎結合に作っておけばよかったと後悔し、後で掘り起こして、汎用サービス化することを繰り返してきました。

社外のクラウドサービスで置き換え可能な機能も増えているので、要件がほぼフィットするならそれらを活用すべきというのは言うまでもなく、実際にFirebaseなどに載せ替えた部分もありましたが、自社の強みや特殊要件が眠っている場合は、早めの段階で社内クラウドサービスのように汎用的な設計にして再利用可能な状態にしておくべきです。

現在のラクスルにおいて、主力サービスの中に閉じ込められている汎用的なコア機能としては、

  • ラクスル社の他事業(ハコベル事業等)で共通に使える汎用機能レイヤー
    • 個人向け、法人向け決済、経理処理などの機能
    • メール送信とテンプレ管理機能
  • 印刷関連事業で共通に使える汎用機能レイヤー
    • 印刷SCMと発注基盤機能
    • スピードチェック入稿を含むDTP機能
    • オンラインデザイン制作サービス機能
  • raksul.com で共通に使える汎用レイヤー
    • ラクスル会員の認証、認可機能
    • ECの基本機能

と分析しています。

ハコベル事業でも物流の輸配送管理システムなどは、物流全般で共通に使える汎用機能レイヤーと言えるかもしれません。

裏を返すとこれらの機能の汎用化ができていないために、既存事業とシナジーのある多角的な取り組みの開発スピードが落ちていたり、顧客体験の低下や、事業の機会損失が出始めているようにも見えます。

今回のプロジェクトでは、これらの機能を各レイヤーにおいて、社内外の他サービスと接続しやすく切り出して作り直し、そしてそのアーキテクチャーを継続していけるような開発体制を作っていくことが重要となります。

raksul.comの印刷サービスや集客支援サービスは、これらの汎用機能の上に成り立つ一つのサービスという位置づけになります。後付にはなりますが、これがRaksul Platform Projectと呼ばれている所以です。

 

アンチパターン2: データベースとアプリケーションの切り方を間違える

よくあるアンチパターンな構成としては、モノリシックなデータベースが中心にあり、ユーザー向け、管理画面やAPIなどの多数のWebアプリが読み書きしている状態です。

立ち上げ期はスモールな構成なのでいいのですが、そのまま多角的に機能追加を行ってしまった結果、データベースとメインのWebアプリ、管理画面などが肥大化していき、辛くなって対処療法的に小さなアプリだけを切り出し始めます。

 

こうなってしまうと、

  • 各アプリケーションで似て非なるモデルが冗長に開発され、コピペしはじめる(DRYでない)
  • 各アプリケーションがそれぞれの事由でスキーマを変更、書き込みをしていき、影響範囲が広くなる
  • 新しいエンジニアやオペレーターがシステムをキャッチアップするのに時間がかかる

といった弊害が出てきます。

開発の現場から悲鳴が上がり始め、内部にインターナルAPIを置き、データベースやビジネス・ルールを一定ラップして凌ぐことになります。ラクスルにも内部にAuth API, Order APIといった比較的新しくて小さな内部APIが存在していて、一時的な対処はしている状態ですが、抜本的な解決には至っていません。

本質的には適切な関心事であるドメイン毎に、データベースを分割して、各ドメインのアプリケーションが、

  • エンドユーザー向けWeb画面
  • 管理者向けWeb画面
  • 他アプリケーション向けAPI

の3つのプレゼンテーション機能を持ち、一つのデータベースと一つのストレージ(AWS S3 のバケット等)の保全に責任を持つ、という構成にすることで、機能の凝集度を高めるべきです。

早期にこういった発想でデータベースとアプリケーションの切り出しを意思決定したかったと後悔することがよくあります。

 

アンチパターン3: マイクロサービス化しすぎて逆に効率が落ちる

上記で説明した、データベースとアプリケーションの切り方についてですが、柔軟性を求めすぎて細かく切りすぎてしまい、ピタゴラスイッチ状態になるとまた問題が出てきます。

  • dockerなどを使っても環境セットアップするのが辛くなる
  • データを非正規化しすぎて不整合が起きやすくなる
  • 障害対応やチューニングの難易度が上がる

ラクスル内部でも、Auth APIがつらい、直接usersテーブル参照したい、joinしたいといった声が聞こえることがありますが、まさにといった弊害かと思います。それは近くにあるべきはずのものが遠くに切り出されてしまっている可能性があります。

一定仕方のない部分はありますが、なんでもかんでもAPIにして分割していくということではなく、逆に統合すべきドメインを見定め、的確にケーキカットしていくことが非常に重要だと思っています。

ラクスルの場合は、

  • 全社共通で使われるであろう機能レイヤーに2アプリケーション
  • ラクスルのコア技術で印刷事業共通に使われるであろう機能レイヤーに3アプリケーション
  • raksul.comのECサイトのレイヤーに2〜3アプリケーション

の合計7〜8アプリケーション構成程度になってくると思っています。
これでも少し多いですが、これ以上切り出すのは多すぎると思っています。

 

アンチパターン4: テストしにくい状態で身動きが取れなくなる

フレームワークや言語のバージョンアップをするというプロジェクトを今まで何度も経験していますが、ここで辛いのが、テストがないアプリケーションのマイグレーションです。

例えば、Rails5が出ている時期に、 テストが不十分なRails3の巨大なモノリシックなアプリがあってなかなかマイグレーションできませんでした。「Rails3 なんですねえ。。。」と採用面接で何度言われたことでしょう。

持続可能な事業を支えるアプリケーション、開発組織であればここは妥協すべきではありません。

ラクスルでも、PHP + テストがないアプリケーションなどが一部あります。かつ、それがとても事業上重要なアプリケーションだったりします。日々の開発では、End2Endテストと人力のQAで品質を担保していますが、もう少し細かいレベルでのテスティングに力を入れなければ長くアプリケーションの品質を保つのは難しいのは言うまでもありません。

思い切ってこれらのアプリケーションをRuby on Railsでテストフレームワークも含めて標準化し、テストを書きながら作り直していく必要があると考えています。

 

まとめ

さて、ご紹介してきたアンチパターンを踏まえた上で、今のところのRaksul Platform Projectの基本的な方針は以下のような形です。

  • レイヤーとドメインを定義し、コア機能を汎用的に切り出して社内外と接続可能な状態にする
  • 1アプリケーションに対して、1データベース、1ストレージ構成のアプリにする
  • アプリケーションを細かく切りすぎないように7〜8アプリケーションぐらいに再分割して切り出していく
  • Ruby on Railsでアプリケーションを標準化してreadable、testableな状態にする

ラクスルの開発現場はこれから大きく変わろうとしています。また、これによりシステム構成と事業・組織構成の間の歪を最小化することができる考えています。

印刷業界をリードできるコア機能の開発が段々できるようになってきた今、今度はそれらをモダンなアーキテクチャーに載せ替えていき、ワクワクするような経営・事業戦略と共にエンジニアもさらに高いレベルに成長できると思います。

ラクスルでは、絶賛エンジニア募集中です。
「仕組みを変えれば世界はもっとよくなる」
世界が変わっていく瞬間を一緒に体験したいエンジニアの方、お待ちしています♡

京都オフィス立ち上げ秘話

4月ですね。

これをお読みの皆様の会社でも、新入社員が入ってこられたでしょうか。
ラクスルも無事2名の新卒を受け入れることが出来ました。
1名はエンジニアですので、ここに登場してくれる日も近いことでしょう。

前置きが長くなりましたが、早いもので入社してそろそろ1年になるエンジニアの渡邉です。
春ということで、今回はラクスルが新しく拠点として立ち上げた、京都オフィスについて
お話したいと思います。

まずはこちらを御覧ください。

京都事務所開設のお知らせ

続きを読む

ラクスルでの開発スタイルについて

はじめに

ラクスルでサーバーサイドエンジニアをしている田中です。
印刷ECタスクフォース(以下ECTF)というチームでテックリーダーを名乗っています。

入社して1年ちょっとになりますが、その1年間でもオフィスが移転したりメンバーが増えたり組織体制が変わったり。。。と目まぐるしく状況が変化する中で、
エンジニアに焦点を当てるとドラスティックに変わった(んだろうなぁ)と感じるのが開発スタイルでした。

ちょうど新しい開発手法の導入期からジョインして色々なことを体験したので、そこを少しご紹介したいと思います。

続きを読む