【開発経験】Loglassのサマーインターンで得た、実践的DDDとプロダクト開発のリアル

## はじめに

就職活動を見据える中で、「本質的な価値に向き合う開発」と「成長環境のあるチーム」での経験を求めていた私は、経営管理SaaSを開発する株式会社ログラスのサマーインターンに参加しました。

短期とはいえ実際のプロダクトを題材に、ドメイン駆動設計（DDD）とスクラム開発を実践できる環境が整っており、「プロダクト開発とは何か」を深く考える5日間となりました。
しかも今回はログラスとして初めてのインターン実施とのことで、手厚いサポート体制のもと、密度の高い時間を過ごすことができました。

この記事では、インターンを通じて感じたログラスの開発スタイル、学びのポイント、チームの雰囲気などを率直にお伝えしたいと思います。「ログラスのサマーインターって実際どんな感じで行っているんだろう？」と気になっている方にとって、少しでも参考になれば嬉しいです。


## ログラスについて
https://www.loglass.co.jp/

株式会社ログラスは、「良い景気を作ろう。」というミッションのもと、企業の意思決定を加速させるための経営管理SaaS「Loglass」を提供しています。

数字に基づいた戦略的な判断が求められる時代に、経営情報を正しくすばやく捉え、現場と経営の距離を縮める。そんなプロダクトを支えているのがログラスのエンジニアリング組織です。

組織内では「Update Normal」というTech Valueを掲げ、次の3つの姿勢を大切にしています。

1.  顧客の本質的な価値提供
2.  学びと適応
3.  技術的卓越性の追求と還元

インターン中もこの価値観に触れる機会が何度もあり単なる実装体験ではない、"良いプロダクトづくり"に向けた真剣さを肌で感じることができました。


## インターンについて

### チーム構成と役割

今回のインターンは少人数体制で実施され、私を含む3名で開発チームが編成されました。スクラム開発をベースに、モブプログラミング形式で常にコミュニケーションを取りながら実装を進めました。

役割分担としては、「コードを実際に書くドライバー」、「設計や方針を指示するナビゲータ」、「不明点が出た際に即座に調査を行うリサーチャー」の3つに分かれ、5日間の中でロールを交代可能としながらも、私たちのチームでは基本的に役割を固定して取り組みました。
(私はナビゲータの役割を担当しまｓ)

異なるバックグラウンドを持つメンバーが集まったことで、多角的な視点から設計や実装にアプローチでき、非常に学びの多いチーム開発となりました。


### 概要

ログラスで実施した今回のサマーインターンは、「ドメイン駆動設計（DDD）」と「スクラム開発」の実践を軸とした5日間の短期集中プログラムでした。

インターンの前半は講義パートとして、DDDとスクラム開発について体系的に学ぶ時間が設けられ、後半はそれを実際の開発課題に落とし込む実践パートへと進んでいきました。
途中には中間レビューや成果発表もあり単なる「実装体験」にとどまらず、思考とアウトプットの往復を通じた濃密な学びの時間となりました。

* **期間**：2025年5月23日（金）〜5月27日（火）
* **形式**：オフライン
* **進行スケジュール**：

| 日程 | 内容 |
|------|------|
| Day 1 | オリエンテーション、DDD講義、仕訳のモデリング |
| Day 2 | モブプロ形式で仕訳実装、コードリーディング |
| Day 3 | PL自動生成の実装、スプリントレビュー、KPT |
| Day 4 | PLの貸借ロジック整備、フロント実装 |
| Day 5 | 最終スプリントレビュー・成果発表・個別FB |


#### インターン課題

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 52
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691932/db08fea2-324a-49b4-8162-ce863e214895.png>
図１　仕訳表
end title
@enduml
```
```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 52
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691932/1442a1f5-f273-4c32-9257-9863ff227a6b.png>
図2　損益計算書/貸借表
end title
@enduml
```

今回のインターンでは、実際にログラスのプロダクトに近い構造を持った「ミニLoglass」の開発に取り組みました。
課題のテーマは、「Excelで管理されている複式簿記の帳簿（仕訳帳）をWebアプリケーションとしてシステム化する」というものです。

与えられた帳簿データをもとに、以下の機能を持ったアプリケーションを開発することが目標でした。

* 仕訳データの登録／一覧表示
* 損益計算書（PL）の自動生成
* 貸借対照表（BS）の自動生成
* PL・BSを表示するUIの実装
* 勘定科目などのドメインモデリング

開発の初期段階では、複式簿記やPL/BSの基本的な仕組みについてのキャッチアップからスタート。簿記の知識がなかった私にとっては難易度の高い内容でしたが、メンターの方に手厚く支えていただきながら要件を実装しUIから確認できる状態まで仕上げることができました。

単に機能を作るだけでなくDDDの原則に基づいて「ビジネスロジックをいかにコードに落とし込むか」という視点を持ちながら取り組むことで、より深い学びを得ることができたと感じています。


#### 技術スタック

インターンでは、ログラス本番環境の技術構成に近い形で以下のようなスタックが使われていました。

* **言語**：Kotlin
* **フレームワーク**：Spring Boot
* **データベース**：H2（Javaベースの軽量RDBMS）
* **ORM**：jOOQ（型安全なSQL DSL）
* **テンプレートエンジン**：Mustache
* **開発環境**：IntelliJ IDEA Community Edition
* **マイグレーション管理**：Flyway

バックエンドは主にKotlinとSpring Bootを使いDBとのやりとりにはjOOQを活用。UIはMustacheテンプレートを用いてサーバーサイドで描画し Vanilla JSで動的な操作を補う構成でした。

基盤となるコードはメンターの方が事前に用意してくださっており、そこにPLの計算処理やUI表示機能を追加していく形で開発を進めました。結果的に、設計から実装、表示までを一通り経験できる構成となっており非常に実践的な課題だったと感じています。


## インターンで学んだこと

### 講義パート

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691932/9add5731-2d08-4d4d-803c-a539ea7fe7f2.png)
インターン初日は開発に入る前の導入として「ドメイン駆動設計（DDD）」の講義が行われました。
DDDの講義では、現役のエンジニアの方から「良いコードとそうでないコード」を比較しながら、モデルの役割やアーキテクチャの思想について丁寧に解説してくださいました。特に「ドメインを理解することが実装を楽にする」という考え方には強く納得感があり単に「設計技法」としてのDDDではなく開発チーム全体で共有すべき視点だと実感しました。

スライドだけではなく実際のコードベースを交えた実践的な内容だったため、すぐに実務に活かせる知識として定着させることができました。


### 開発パート

講義を終えた後は、さっそくスクラム形式での開発がスタートしました。1スプリント＝2日というスピード感の中で、要件の確認・モデリング・実装・レビューを繰り返しながら機能を追加していきました。

スクラムのプロセスを回す中で特に印象的だったのは、モデリングやリファクタリングも頻繁に発生し、都度「このモデルはこのままで良いのか？」「ドメインに対して責任を分離できているか？」といった問いを投げかけていただけたことで、常に設計への意識を持ちながら開発に取り組むことができました。


### プロダクトを作る上でドメインモデルをどうコードに落とすか
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691932/3837ecab-89fc-4554-b793-7f2a9563784d.png)

インターンでの開発では、事前に用意されたモデリングテンプレートはありましたが、ゼロからドメインモデルを考えていく必要がありました。特に仕訳帳やPL（損益計算書）、BS（貸借対照表）といった簿記の概念をプログラムとしてどのように構造化するかを考える過程はとても刺激的でした。

当初は、データベースのテーブル構造からそのままエンティティを組み立てようとするなど、いわゆる「データベース駆動」の思考に陥りがちでした。しかし、「誰が・何を・なぜ使うのか」を丁寧に問い直してもらうことでドメイン視点からの設計に切り替えることができました。

たとえば、「仕訳（Journal）」の中に含まれる「明細（JournalDetail）」の責務や、貸方・借方のバリデーションはどこに持つべきかといった点に関しても、単なる仕様の実装ではなく、ドメインのルールとして表現することの大切さを学びました。

ドメインモデルがしっかりしていれば、あとはそれに沿って自然とコードが整理されていく感覚があり、DDDの価値を実感することができました。

### データ構造の転換と情報設計の難しさ

仕訳とPLの関係を設計・実装する中で、データ構造が「親子関係の逆転」を伴うようなケースに直面しました。仕訳詳細が主語になる一方で、仕訳情報も必要になる場面では、DTOや整形処理の設計が重要な論点となり、ドメインモデルとビューとの接続に頭を悩ませました。

UI設計に合わせた整形ロジックの配置（usecase層 or Mapper）や、PL特有の集約の方法にチームで議論しながら取り組んだことで、情報設計と技術の接続について深く考えるきっかけになりました。



### スプリントレビューでどれだけ意見を引き出せるか / 工数をどう考えるか

今回のインターンでは、スクラム開発の中で「スプリントレビュー」が非常に重要なフェーズであることを実感しました。単に成果を見せるだけでなく、プロダクトオーナー(PO)からリアルなフィードバックを引き出し、次の一手につなげるための対話の場として機能していました。

特に印象的だったのは、**POが同じチームに在籍していた**という点です。これにより、開発メンバーだけでは判断が難しい機能の優先度や仕様の微妙なニュアンスについても、すぐに相談・意思決定ができる環境が整っていました。

その分、レビューでは「何を作ったか」だけでなく、「本当に必要なのか」「今やるべきなのか」を自ら問い直し、POや他のステークホルダーから積極的に意見を引き出すことが求められました。

また、フィードバックを受けた後には、それを実現するための工数を冷静に見積もる力も必要でした。どこまでの修正が次のスプリントで実現可能か、実装にどれだけの負荷がかかるかを考慮しながら提案や調整を行う経験は、チーム開発における現実的な判断力を養う貴重な機会となりました。



### 今後の展望

今回のインターンを通じて、これまで自分が抱いていた「開発力＝実装力」という認識が大きく変わりました。特に、ドメインモデルを正しく捉えることで実装の迷いが減り結果的にスピードや品質が大きく向上するという経験は、自分にとって非常に大きな気づきでした。

今後は、単にコードを書くことにとどまらず、「なぜこの機能が必要なのか」「どのようなユーザーの課題を解決しているのか」を意識しながら、より本質的な設計・開発ができるエンジニアを目指していきたいと思います。

また、スクラムやDDDのような思想をプロジェクトにどう浸透させていくか、チームメンバーとどのように共通理解を築くかという視点でも継続的に学び、技術だけでなくチームづくりやプロダクトマネジメントの観点にも挑戦していきたいと考えています。


#### プロダクト志向エンジニアへの道

インターンを通して、技術スキルの深化とともに、プロダクトへの深い理解と愛着が重要であることを学びました。ドメイン理解・業務知識・ユーザー視点をもった開発者が求められており、今後は「ビジネスと技術の橋渡し役」として活躍できるようなエンジニアを目指していきたいです。インターンを通じて、技術を使って機能を作るだけでなく、「チームが健全に開発できる状態を整える」ことの重要性にも気づきました。スクラムマスターやEM（エンジニアリングマネージャー）の役割にも興味を持ち始め、今後は自分自身もそうした立場からプロダクトを推進していく視点を考えていきたいと考えています。



### おわりに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3691932/948d6626-dd6e-40c6-a510-453f88392a6f.png)

今回のログラスでのインターンは、5日間という短い期間ながらもこれまでの学生生活では得られなかった多くの学びと刺激に満ちた非常に濃密な経験となりました。

本インターンを本気で設計・運営してくださったログラスの皆さま、日々のレビューや丁寧なフィードバックを通じて成長の機会を惜しみなく与えてくださったことに心から感謝しています。

また、同じ目標に向かって5日間駆け抜けたチームメンバーの皆さんにも深く感謝しています。異なる強みや価値観を持つ仲間と切磋琢磨しながら開発に取り組めたことは私にとって何より貴重な体験でした。

単なる技術習得にとどまらず、「価値あるプロダクトとは何か」「良いチームとは何か」といった本質的な問いに向き合えたことは、今後のキャリア選択やプロダクト開発における大きな指針となると確信しています。