- バックオフィス
- サーバーサイドエンジニア
- 営業事務
- Other occupations (1)
- Development
- Business
【NXTED】エンジニアInterview:開発責任者に聞く、NXTEDの開発体制
Photo by Christopher Gower on Unsplash
こんにちは。NXTED採用担当です。
今回は、当社のエンジニア達をまとめる開発部部長に、NXTEDの開発体制についてインタビューしました。募集記事ではご紹介しきれない、開発現場の特徴や魅力について語っていただきました!
NXTEDはチームでの開発を大切にしていますが、その一環であるペアプロとコードレビューについて教えてください。
具体的にはどのようにペアプログラミングを行っているのでしょうか?
当社における「ペアプロ」は、メンター制度の一環として、新しいメンバーが独り立ちするまでの教育プログラム的な意味合いが大きいです。具体的には、新入社員や若手メンバーが先輩社員とペアを組み、①先輩社員が要件と仕様を説明、具体的な実装方法等を指示 ②メンバーが実際にプログラムを書いてみる ③書かれたコードが適切か一緒にチェックする という流れで実施しています。チェックするだけでなく、技術面での相談やサポートも頻繁に行っています。ペアプロを実施する期間は特に決まっておらず、その人それぞれの経験値やスキル等に応じて柔軟に設定するようにしています。
どういったメリットがありますか?
まず、先輩社員と若手メンバーがペアで作業することによって、相談や質問が気軽にできる関係性を構築できるので、悩む時間も短く先輩側もフォローしやすくなります。そうすると、初心者メンバーの勉強スピードが向上し、立ち上がりも早いのでプロジェクトへの参画がスムーズです。一方チームとしては、成果物への責任を個人に依存することなく担保することができます。
ペアプロ開発を行う上で、心がけていることはありますか?
個人に頼り過ぎずに、チームで開発しているという意識を常に念頭に置くようにしています。「ペアプログラミング」という形で一つのタスクに一緒に取り組むことで、メンター/メンティーという上下関係による心理的な壁が少しでも低くなるように心がけています。
コードレビューについて教えてください。どのような頻度や体制で行っているのでしょうか?
当社では、原則、実装したコードは必ず実装者以外の誰かが目を通し、レビューを行っています。レビュアーは、GitHubなどにプッシュされる成果物(ソースコード)についてプルリクエストを確認、チャット等でフィードバックし、必要に応じて口頭でフォローを行います。ただ、形式的ではなくても日常的に実装方法の相談をしたり、メンバー同士で「こんな実装で問題ないか?」といったやり取りを頻繁に行えるようなフランクな雰囲気が当社にはあります。また、定期的に誰かが書いたソースコードを題材にしたレビュー会を開いて、意見交換を行ったりもしています。
レビュアーの立場として、どういった観点でレビューをされていますか?
成果物として仕様を満たしているか、冗長な書き方をしていないか、コーディング規約に沿った記述になっているか、をチェックします。コードの書き方に「正解」はないと思っているので、書いた人の意図を尊重しつつ、自分の経験をもとに今後のメンテナンスを見越したコード記述のアドバイス等をするように心がけています。
次にプロジェクトやチームのマネジメントについて教えてください。
主にどんなプロジェクト管理手法・ツールを用いていますか?
ラボ開発の場合はお客様のプロジェクトに寄りますが、弊社が主導となる受託開発案件の場合でも、プロジェクトの性質によって管理手法・ツールを使い分けています。例えば、ウォーターフォール型開発の場合は、Redmineのガントチャートを使用して進捗管理を行ったりチケットを利用して開発を進めることが多いです。アジャイル型開発の場合は、GitLabにてIssuesの管理やレビュー管理を行ったり、Trelloのボードを利用したカンバン方式を採用したことがあります。
開発責任者として、メンバーやプロジェクトのマネジメントで心がけていることはありますか?
プロジェクト管理と言っても、個人を管理することを目的としていません。チーム内のコミュニケーションを活性化させ、個人の意見を尊重し合い、互いに成長していけるような環境を作ることが大切だと考えています。チーム内の関係性の質が下がると、思うような成果が出せず、結果、モチベーションの低下に繋がってしまいます。半期ごとに1on1の機会もありますが、日常の雑談や会話の中でもメンバーのキャリアプランや、興味のある技術等を自然とヒアリングするようにしています。これは少人数の体制だからこそ出来ることかもしれません。勿論全てを叶えるのは難しいですが、各々のメンバーがモチベーションを保ちながら業務の中でもスキルアップできるような作業担当の割り当てを心がけています。
NXTEDは100%自社内開発ですが、実際どうですか?
当社のようなニアショアの小規模な開発会社で、自社内での受託/ラボ開発のみ、客先常駐がない、という企業は珍しい方かもしれません。私も実際これまでのキャリアで客先常駐も経験していますが、転職せずとも様々な会社の案件の進め方を学べたり、人脈が広がったりなど良いことも沢山ありました。ただ、自社内開発ですと、顧客へのヒアリングから要件定義やシステム設計などの上流工程からお手伝いさせていただく機会も多く、より幅広い工程に携わることができます。細分化された目先の作業だけに集中するのではなく、案件の全体図を把握して取り掛かれるので、やりがいを実感しやすいです。また、同時進行で色々な案件に参画したり、スキルアップのために勉強できたり、より伸び伸びと仕事ができる点が自分には合っていて気に入っています。
クライアントとのコミュニケーションで心がけていることはありますか?
常駐に比べてどうしてもコミュニケーションの時間が限られてしまうので、出来るだけ齟齬が生じないように気を付けています。物理的に離れている分、例えば、お客さんの業務を理解したり、お客さんの目線に立って提案したり、開発側の都合に囚われすぎない、ということが一層大切になると考えています。
残業や休日出勤を少なくできている理由は何だと思いますか?
まず、残業や休日稼働が必要になるというのは、スケジュールや進捗管理が失敗しているという状況です。そのため、案件スタート時のヒアリングや見積が非常に大事になるのですが、当社では営業だけで案件を獲得するということはありません。案件獲得の判断からエンジニアが主体的に参加し、スケジュールや見積を見極めることで、後に失敗につながる要素を最小限に排除出来ているのだと思います。様々なプロジェクトでの失敗や成功体験を活かして、精度の高いスケジュール割や進捗管理が出来るエンジニアがいるのも、当社の強みかもしれません。
最後に、どのような方がNXTEDにマッチすると思いますか?
当社は受託開発をメインとしている為、お客様からの指示で動くのではなく、自ら考え、行動することが求められます。「行動」という点では責任が伴う為、自主性ではなく主体性を求められます。お客様のご要望を最大限に引き出し、実現することが必要不可欠です。また、想定外の課題へ臨機応変に対応できること、幅広い知識が身に付いていること、身に付けようと努力することも必要です。当社のエンジニアはフルスタックへの意識が強く、未経験分野への挑戦意欲が非常に強いです。その為、業務時間以外にも学習し、資格なども積極的に取得しています。そのような主体的な目線と、積極的な興味や学習意欲をもつ方には、やりがいを感じていただける環境だと思います。
とても有意義なお話をありがとうございました!
最後までお読みいただき、ありがとうございます。
NXTEDでは、バックエンドエンジニア&フロントエンドエンジニアを積極的に採用中です。
札幌のスタートアップで、エンジニアのキャリアを磨きたい方、ご応募をお待ちしております!