目次
こんにちは。SMHCでエンジニアとして働いているS.Kです。
私は現在、ユーザー自身が業務に合わせてカスタマイズできる、ノーコード型の業務SaaS(ERP)開発にSEとして携わっています。
このプロジェクトで求められるのは、与えられた手順に沿って実装することではありません。仕様を理解し、既存機能への影響を考え、どのように実現するかを自分で判断する力です。
自由度が高い一方で、自分のタスクには最後まで責任を持つ。そんな環境で、AIやクラウドを取り入れたプロダクト開発に向き合っています。
今回は、実際の仕事内容や使用している技術、働くなかで感じる成長、そして現場のリアルを紹介します。
ユーザーが自ら業務を変えられる、ノーコード型ERPをつくる
私たちが開発しているのは、ユーザー自身が業務に合わせてカスタマイズでき、ほかのシステムとも連携できる業務SaaSです。
業務に必要な仕組みを、すべてエンジニアへ依頼して一から開発するのではなく、ユーザー自身が柔軟に組み立てられる。さらに、AIが業務やデータを理解し、作成や分析、処理を支援する。そんな将来を見据えたプロダクトを目指しています。
単に画面や機能を作るだけではありません。
さまざまな企業や業務で利用されることを想定し、柔軟性、拡張性、セキュリティ、使いやすさを考えながら、プロダクトの基盤そのものを育てていく仕事です。
約20名で進める、長期のプロダクト開発
プロジェクトは約20名の体制で進められており、SMHCからもリーダーとメンバーが参画しています。
開発期間は長期にわたり、短期間で納品して終了する案件とは異なります。継続的に機能を追加し、利用者の声や技術の変化を取り入れながら、プロダクトを成長させていきます。
長く続くプロダクトだからこそ、その場しのぎの実装ではなく、将来の変更や拡張まで考えた設計が必要です。
自分が書いたコードがプロダクトの一部として残り、その後も改善されながら使われていくことに、責任とやりがいを感じています。
SEとして、仕様の先にある「実現方法」を考える
私の役割はSEです。
プロジェクトはアジャイル開発で進められており、一定の期間で区切られたスプリントのなかで、要件の確認、設計、開発、テスト、レビューを行います。
会議は週3回程度です。必要なタイミングで要件や進捗を確認し、それ以外の時間は担当する開発作業に集中します。
要件確認から開発、テスト、レビューまで
仕事の基本的な流れは、次のようになります。
・要件や仕様を確認する
・不明点や既存機能への影響を整理する
・実現方法を検討する
・フロントエンドまたはバックエンドを開発する
・自分で動作や品質を確認する
・プルリクエストを作成してレビューを受ける
・指摘を反映し、完了まで進める
仕様について分からないことがあれば、必要な情報を確認できます。
ただし、「このコードを書いてください」「この手順で進めてください」と、実現方法まで細かく指定されるわけではありません。
簡潔な仕様から目的を読み取り、既存の処理を確認し、影響範囲を考えたうえで、自分なりの実現方法を組み立てます。
正解が一つとは限らないなかで、品質や保守性も考えながら判断する。それが、この仕事の難しさであり、面白さでもあります。
.NET、Next.js、AWS。プロダクト全体に関わる開発
このプロジェクトでは、比較的新しい技術を積極的に取り入れています。
バックエンドではC#と.NET 8、フロントエンドではTypeScript、Next.js、Reactを使用しています。データベースはPostgreSQL、クラウド環境にはAWSを採用しています。
担当する機能によっては、画面だけ、APIだけと領域を限定せず、フロントエンドからバックエンド、データベース、クラウドまで幅広く関わります。
一つの機能が画面からデータベースまで、どのようにつながって動いているのか。プロダクト全体を見ながら開発できることが、この案件の特徴です。
開発環境にはDocker、コード管理やレビューにはGitとAzure DevOpsを使用しています。プルリクエストによるレビューを通して、チームで品質を確認しながら開発を進めています。
生成AIを、プロダクトの機能として組み込む
このプロジェクトでは、AIを開発作業の補助として使うだけでなく、プロダクトの機能として組み込んでいます。
Microsoft.Extensions.AIやAmazon Bedrockなどを活用し、ユーザーの設計や業務を支援する機能を開発しています。
AWS上では、認証、ファイル管理、バッチ処理、アプリケーションの実行やデプロイなど、プロダクトの運用に必要な仕組みを構築しています。
AIやクラウドを検証だけで終わらせず、実際に利用されるプロダクトとして形にしていく経験を積める環境です。
この現場で身につくのは、技術だけではない
このプロジェクトでは、フロントエンドとバックエンドの両方に関わる機会があります。
画面、API、データベース、クラウドまで幅広く関わることで、特定の領域だけでなく、プロダクト全体を見ながら開発する力が身につきます。
そして、技術面以外で特に鍛えられるのが、自走力です。
「指示を待つ」から「自分で判断して完遂する」へ
簡潔な仕様を受け取り、実現方法を考え、開発とテストを行い、レビューを経て完了させるところまで、自分で担当します。
この進め方を繰り返すことで、次のような力が身についていきます。
・分からないことを調べて解決する力
・仕様の目的と既存処理への影響を読み取る力
・スケジュールや優先順位を管理する力
・レビュー前に自分で品質を作り込む意識
・未経験の技術を短期間で学ぶ力
・スプリントのなかで成果を出す力
最初は比較的シンプルな仕様の実装から始まったとしても、経験を重ねることで、設計や判断を含めて自分で完遂できる範囲が広がります。
フロントエンドとバックエンドの双方を経験し、将来的にはタスクリードや技術リード、さらにプロダクト全体を見る役割へと進んでいくことも考えられます。
良いところも、大変なところも「自律性」
この現場の特徴を一つ挙げるなら、自律性の高さです。
作業の進め方を細かく管理されたり、必要以上に干渉されたりすることは多くありません。自分で考えて進められる人にとっては、集中しやすく、自由度の高い環境です。
一方で、自由には責任が伴います。
自分のタスクについては、進捗、品質、期限を自分で管理し、最後までやり遂げる必要があります。
自分で考えることが前提の環境
正直に言えば、作業の一つひとつを手取り足取り教えてもらう環境ではありません。
仕様について分からないことは確認できますが、実現方法については、自分で調べ、考え、解決することが求められます。
各メンバーが自分の担当に責任を持っているため、「誰かが常に進め方を決めてくれる」「細かく管理してもらえる」という前提では働けません。
レビューも、品質を一から作ってもらう場ではありません。実装者自身が事前に十分確認したうえで、複数名によるクロスチェックを受けます。
スプリントのスピード感に対応しながら、自分で品質を作り込む意識が必要です。
開発に必要なツールやAIへの支援は手厚い
作業そのものを代わりに進めてもらえるわけではありませんが、仕事に必要な環境やツールはしっかり提供されます。
AIや各種開発ツールなど、効率や品質の向上につながるものは積極的に取り入れられています。
進め方を細かく管理するのではなく、各自が力を発揮するための環境を整える。
それが、この現場におけるサポートの形だと感じています。
この環境で力を発揮できる人
この現場に向いているのは、自律性のある環境でこそ力を発揮できる人です。
・仕様をもとに、自分で実現方法を考えられる
・分からないことを自ら調べて解決できる
・自分のタスク、期限、品質を管理できる
・未経験の技術にも積極的に取り組める
・必要な情報を簡潔に共有できる
・裁量だけでなく、結果への責任も引き受けられる
こうした働き方を好む方にとっては、技術力と判断力を存分に発揮できる環境だと思います。
手順の明確さより、裁量と責任を選びたい方へ
一方で、明確な手順やマニュアルに沿って仕事を進めたい方や、実現方法まで細かく指示を受けたい方には、負担が大きいかもしれません。
こまめなフィードバックや指導を受けながら基礎から経験を積みたい方にも、別の環境のほうが合う可能性があります。
これは、どちらの働き方が優れているという話ではありません。
自分で考えて任された範囲を完遂する働き方と、相談や指導を重ねながら進める働き方のどちらが、自分の力を発揮しやすいかという違いです。
入社や案件参画後のミスマッチを防ぐためにも、この点は率直にお伝えしたいと思います。
AIとノーコードの未来を、自分の判断でつくりたい方へ
ここは、自分で調べ、考え、判断し、最後までやり遂げる自律性が求められる環境です。
その分、作業以外への干渉は少なく、自由度も高くなっています。AIや開発ツールなど、仕事を支える環境も充実しています。
ユーザー自身が業務を変えられるノーコード基盤づくり。
AIを実際のプロダクトへ組み込む開発。
.NET、Next.js、AWS、生成AIを活用したモダンなプロダクト開発。
こうした仕事に実務で挑戦したい方、自律性のある環境で自分の力を試したい方にとって、成長とやりがいを感じられるプロジェクトだと思います。
私たちと一緒に、これからの業務システムをつくってみませんか。