SIerからスタートアップへ!何が違って何が活かせる!?
クアンドのエンジニアチームは新たな仲間を募集しています!そこで、スタートアップで働いたことのないエンジニアにもクアンドに興味を持ってほしい、でもSIerやSESでの開発とアーリーフェーズのスタートアップの開発は何がどんなふうに違うのか、もしくはどんなスキルが活かせるのか?社内だけでは分からないことだらけ。今回はSIerでのプロジェクトマネージャーの経験を持ち、現在はLINE Fukuokaで活躍する古後良輔さんをお呼びして、お話を聞いてみました。ビールと軽食をつまみながらのほろ酔い座談会の様子です。
座談会メンバー紹介
古後 良輔 さん
1977年生まれ、福岡県福岡市出身。2001年九州大学大学院 工学研究科修了、株式会社東芝入社。技術職・研究開発・システムエンジニアとして従事。2008年に日鉄ソリューションズ株式会社入社。大手製造業や大手流通業を対象としたシステム企画・開発・導入のプロジェクトマネージャーとして従事。新規事業立上げや事業拡大も手掛ける。2018年に横浜国立大学大学院 国際社会科学府(MBA)修了。2019年福岡へのUターンを機にLINE Fukuoka株式会社入社。クアンドには2020年~2021年にDX事業のアドバイザーとして参画。
髙野 嵐
1996年生まれ、福岡県宗像市出身。大学3年の2017年夏にインターンとしてクアンドにジョインし、2021年4月入社。インターン時代も含めるとクアンド最古参のメンバー。とにかくこだわりが強く、お酒のエンゲル係数は高め。スタイルがいいので、現場用作業着もおしゃれに着こなせる。
眞弓 保弘
1987年生まれ、福岡県大牟田市出身。前職はSES派遣エンジニアとして各大手SIerにてシステム開発に従事。地元志向が強く、QUANDO DNAに強く共感。地元の産業が活気を取り戻せば、若い人も住み続けられる街にすることができると思い、クアンドへ入社。粘り強く、一直線に仕事をこなすことから社内では「修行僧」の名を持つ。
SIerってどんなとこ?
眞弓・髙野:古後さんお久しぶりです!今日はいろいろ教えてください!
古後:僕も久々にみんなと飲めてうれしいですよ、よろしくお願いします。
髙野:古後さんは日鉄ソリューションズというSIerにて、プロジェクトマネージャーとして活躍されてきた経験をお持ちですよね。僕はインターンからそのままクアンドに入社しているので、他のスタートアップ企業のことも分からなければ、SIerなんてまるで想像がつかないのですが、組織とか開発スタンスの違いにおいてどんな違いがありますか?
古後:顧客の業界や業種ごとに組織がつくられて、営業がいて、顧客のシステム構築を行う技術部門として、PM(プロジェクトマネージャー)、PL(プロジェクトリーダー)、TL(チームリーダー)、その下にエンジニアがつくという構造です。主に半年~数年のプロジェクトで、終われば別のプロジェクトにアサインされるいうような働き方ですが、金融系だと同一顧客15年間やってますみたいなエンジニアもいます。
髙野:なんとなくドキュメントが膨大にありそうなイメージがあります。
古後:基本的にはドキュメントいっぱい作りますね。ドキュメントベースで顧客との要件定義やレビューが進んでいくし、成果物であるし。あと、開発規模も大きく、大人数のチームでものづくりを行うという面もありますね。最初にプロジェクト実行計画書やWBSを作成し、機能一覧、要件定義書、画面設計書や帳票設計書、処理設計書、概念図、論理モデル、物理定義や、インフラ・アーキテクチャも書いて、ネットワーク設定情報やパラメータも環境ごとに全部書きます。ジョブの実行方式や処理設定、アーカイブ処理、システム移行設計や移行対象データの一覧なども全部ドキュメントに残してたね。
髙野:それは健全なフローで、全て必要なものですよね。
古後:でも、全部作るととんでもない工数かかるので、プロジェクトの特性や開発手法に応じて本当に重要なものだけに絞り込んで、うまくメリハリをつけるようにしていました。そこがPMのセンスだったりしますね。
眞弓:自分はSES派遣でいろんなSIerに入って仕事してたんですけど、古後さんはテストに関してはどんな段階を踏んでやっていましたか?
スタートアップのテスト、SIerのテスト
古後:システム開発というとプログラミングのイメージがあると思うけど、テストもかなりの工数をかけてやっていました。工程でいうとデバッグ、単体テスト、結合テスト、システムテスト、総合テスト、受入テストみたいな感じですね。外部システムと連携することが多いのでインターフェーステストのようなものも大事でしたね。プロジェクト開始時点で品質保証計画書っていうのを最初に作成して品質保証方針や基準や条件をつくって、テスト開始する際にはテスト仕様書を作成し、日々上がってくるテストの進捗結果を見ながらレビュー数や指摘数、テスト数や障害数、信頼度成長曲線などを計測しながら品質管理してましたね。
眞弓:私も10年近くその数字の縛りに悩まされてきたのでよくわかります。テストの粒度は全然違うかもしれないけど、クアンドもテストは大事にしようとしているよね。
髙野:僕はめっちゃ「単体テスト書いてください」って言ってますよね(笑)。1+1 = 2 だよねっていうようなテストですけど。
眞弓:クアンドの開発スタイルで言う「テスト」って、 コードカバレッジの関数レベルのテストみたいな感じなんですよ。 入出力のモックを作って、 この場合どう動く、 OK/NGという結果を残していく、というような。
古後:そういう意味では、僕がSIerでやってたテストはより粒度が大きいかな。デバッグみたいな概念で、共通プログラムとか関数のテストはあらかじめ別に行ってたね。
髙野:短期間で開発を繰り返していくスタートアップでは、全てのテスト項目を完全にクリアすることに時間を取られていては、全く開発のイテレーション(設計・開発・テスト・改善 から構成される開発サイクルの単位)が回っていかないんですよね。でもだからこそ最低限のところが担保されるテストの設計が重要だと言えますよね。
古後:SIerでも納期や費用によっては、テストの中でもプライオリティをつけて、心臓を守る部分として必須なテストなのか、リリースした後に改修してもなんとかなるからスキップできるテストなのか、判断してましたね。でもその判断はスタートアップの方よりシビアにしていくことになるんでしょうね。スタートアップは特に、すでに世に出ているプロダクトの改善を重ねるわけだから、リグレッションテストをたくさんしていくことになりますよね。プログラムの一部分を変更したことで、ほかの箇所に不具合が出ていないかを確認するっていう。
眞弓:スタートアップに来て、テストの少なさには多少不安は感じたこともありますね。でも、試して、反応を見て、改善してっていうサイクルが速いことは楽しくもあります。SES時代に、緻密で網羅的なテストの考え方を身につけていたから、その上で、取捨選択をしながらスタートアップに合わせた選択ができるのは強みかもしれないですね。全体を知ったうえで、間引くことができるという。
髙野:スタートアップにおける開発の目的って、仮説検証なんですよね。だからどこにあるか分からないターゲットのペインを見つけるというプロセスの中に開発があったりして。だから開発そのものが失敗したとしても、これから自分たちが解決すべきペインが見つかったのであればそれはそれで成功なんですよね。
一方で、仮説検証を速く回そうとすると、コードが壊れる危険性も高まるんです。その開発における影響範囲の検証をおざなりにしていると、負債になってしまうので。影響があるという事実を検知するためのテストを徹底しようとしていますね。こういう思想に関しては事あるごとに共有して、Devチームでの意識を統一していこうとしていますね。
定石を知っていることが活きてくる
髙野:あと眞弓さんの経験に助けられていることと言えばセキュリティチェック関連ですね。こういうお客様だとこう言ってくる可能性があるよ、とかいうアドバイスはめちゃくちゃありがたい。
眞弓:責任の所在がどこにあるか明確な場で、それを意識しながら働かざるを得なかったからね。
古後さん:テストをするにしても、ドキュメントに残すにしても、開発におけるセオリーというか勘所のようなものを知っているっていうことが大きな利点かもしれないね。いろんな角度で多面的にテストやドキュメント作成をしてきたっていうことは生きているんじゃないですか。
眞弓:そうですね、定石を知っているのと、それを知らずに削られた状態しか知らないというのはやっぱり違うだろうと思います。
SIer経験者だからこそ活かせる考え方があるんですね!アーリーフェーズのスタートアップにとってはとても重宝されそうです。後半は、逆にどんな部分にスタートアップとSIerの違いが現れてくるのか、深掘っていきます!近日公開!お楽しみに。
クアンドでは幅広いポジションのエンジニアを募集しています!クアンドのエンジニアチームはこんな感じです!
募集中のエンジニア求人はこちら
クアンドのカルチャーや会社説明資料などはこちらから