当記事の概要
本記事は、主にPAC開発職の「手法」「言語」「環境」を深ぼっていく内容となります。弊社の特徴的な開発手法「アジャイル開発」の詳細や「使用言語」の他に、弊社の強みともいえる各種福利厚生に基づいた「開発者環境」の紹介をいたしますので、是非最後までご覧ください!
開発手法のご紹介
アジャイル開発とは
開発職の方には釈迦に説法かもしれませんが、まずは「アジャイル開発」についてご紹介します。アジャイル(Agile)という単語自体は、「素早い」「機敏な」などの意味があります。
アジャイル開発はシステムやソフトウェア開発手法のひとつで、従来の主流であった「ウォーターフォール開発」(最初に全体の機能設計・計画を決定し、この計画に従って開発・実装していく手法)に対して、小単位で実装とテストを繰り返して開発を進めていきます。
従来の開発手法に比べて開発期間が大幅に短縮されるため、アジャイル(素早い)と呼ばれています。
なぜPACはアジャイル開発を採用しているのか
それでは、PACがなぜアジャイル開発を採用しているのか、どういった点にメリットを感じているのかを紹介していきます。
理由はシンプルに、「PACサイクルととても相性が良いから」です。
ここで突然「PACサイクル」という言葉が出てきましたので、少し説明しますね。(響きは似ていますが「PDCAサイクル」ではないですよ。)
PACでは、事業部は職種ごとではなく、ソリューション(製品)ごとに分かれており、営業、コンサルタント、開発が同じ事業部で常に連携しています。この、1つのソリューションを中心として異なる職種が連携してソリューションの価値・品質を高めていくサイクルを、「PACサイクル」と呼んでおり、とても大切にしている概念です。
※PACサイクルのイメージ図↓
上図のように、お客様からヒアリングしたご意見やご要望を、1つの部署・職種で完結させるのではなく、営業、コンサルタント、企画、開発といったそれぞれのチーム間で随時職種の壁なく共有し、「こんな機能があったら良いな」「ここを変えれば設定がもっとシンプルになる」といったアイディアや知見を高速で実現する仕組みが、各ソリューションの付加価値を生み出す源泉です。
※PACサイクルについては、過去に別の記事でも紹介していますので、ご興味があればこちらも是非ご覧ください。
この「PACサイクル」の高速回転を可能にするのが、「アジャイル開発」なのです。例えば、具体的には下記のようなシーンでアジャイル開発のメリットが発揮されています。
短期リリースが可能に!
各ソリューションに対してお客様から頂く様々な要望に、製品単位ではなく機能単位で改修を検討、実装できるので、短期間でのリリースが可能になります。さらに、改修中でもその影響規模が小さいので、比較的容易に仕様変更が可能となります。
チームごとの開発進捗が干渉し合わない!
機能毎に担当を割り振って開発を進める為、他の開発者やチームなど周りの進捗や状況に左右されず、個別に納期を設定できます。その結果、小規模なリリースが可能となります。また、誰かがいないと作業が進まないといった事がないので、フレックス勤務も利用しやすいです!
開発着手までの工数も激減!
従来の開発手法では要望・要件を全て精査し、システム全体に対して設計を行ってから開発に着手することになりますが、途中で要望が変わったり増えたりすると、また振り出しに戻ってしまうことも…このようなシーンでも機能単位で実装に動くことで開発着手までの時間・工数も大幅に削減できます。
ちなみに社内言語を統一することで、最終的に短期リリースが可能にとしている特徴もございます。ここで社内言語の代表となるC#も追加でご紹介いたします。
開発言語のご紹介
弊社ではどのソリューションもC#を用いています。C#を使っているメリットをご紹介します。
汎用性が高い!
弊社のソリューションではスマートフォンで使えるソリューションもあり、数多くのプラットフォームで開発が出来るため。
通常の実行ファイル等を起動して動かすGUIアプリケーションの他に、コマンドライン上で動くCUIアプリケーションやWebアプリケーションの開発も可能です。
実行速度が早い!
コンパイラ型言語に属すゆえに、実行処理速度が早くパフォーマンスが高い
『コンパイラ言語とは』
コンパイラ型言語とは、人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語のこと。
『インタプリタ言語とは』(比較対象)
コードを実行をする際に1行ずつ機械語に翻訳していくプログラム言語のこと。
環境構築が簡単!
Visual Studio(マイクロソフト提供)を使っているため、ダウンロードするだけで始めることが可能。
ライブラリは豊富!
JSONを扱うためのJSON.NET、導入が簡単でアプリケーションのデバッグなどに必要となるログ情報を任意の場所に出力できるNLog、ネットワークやデータベースにアクセスするクラスをモックしてテスト時間を短縮することのできるmoq、Webサイトやサービス、デスクトップアプリなどを実行するサポートを行う、net.Framework等、C#での開発を楽にするためのライブラリがたくさんあります。
弊社のソリューションに関しては、分析機能が多いためC#のような実行速度の早いコンパイラ言語を採用しています。なので、プログラムを一回一回機械語に翻訳するような、実行速度の遅いインタプリタ言語は使用しておりません。
テスト体制のご紹介
弊社では、開発者以外にテスターの方が在籍しております。
まず、テスターとは簡単に説明すると、システムやアプリケーション、IT製品が正常に動くかをテスト・評価するエンジニアです。サービスや製品の開発にテストは欠かせない工程であると考えています。
そのテストを開発者自らで行うと開発者の工数の増加に加え、開発者は動きを理解している故に潜在的な不具合に気づきにくいことも多々あります。なので、弊社では開発者はテストケースを書くのみになっています。
福利厚生に基づいた開発者環境のご紹介
弊社の福利厚生に関してはすごく充実しているものだと思っています。以下のような開発者にも嬉しい福利厚生があります。
書籍購入支援
業務に必要な書籍を会社負担で購入できます。
技術書・基礎本なども購入して勉強することが可能となっております。
資格取得費補助
会社として取得が必要な資格の社会受験料は全て会社が負担します。
自己啓発支援制度
今々はすぐに業務に直結しないけれど、この勉強をしておくとお客様対応であったり、今後の開発に役立つかもしれないから学びたい等々、自己啓発に繋がる学びについて1年間で上限10万円まで支援をする制度です。
勤務体系(フレックス制)
→弊社ではフレックス制を採用しています。基本的な勤務時間は9:30~18:30ではありますが、コアタイム(11:00〜16:00)となっておりますので、ご自身でスケジュールを組み調整することが出来ます。コアタイムに合わせて休憩時間を含めて11:00-20:00の勤務時間としている開発者が多い傾向にあります(もちろん、午前中に時間を寄せることも可能です。)
また、弊社はハイブリッドワークも採用しており、開発職の方々は原則週3日間の在宅勤務が認められています。ハイブリッドワークとは、出社と在宅を組み合わせた働き方を指します。弊社の開発者は会議がある日は出社、会議がない日を在宅としている方が多くいます。
~最後に~
いかがでしたでしょうか?
PACが大切にしている「PACサイクル」を高速に回していく為に、アジャイル開発がなくてはならないことをお分かりいただけたかと思います!
PACの開発メンバは、営業やコンサルタントと協力し、日々お客様に新しい可能性・価値を提供できるよう、今日もアジャイル開発に励んでいます!
ご興味のある方は、ぜひ一緒にPACサイクルを回しましょう!ご応募お待ちしています!
求める人物像
・色々な言語を使ってみたい方。
・今後のキャリア(開発者としての)の幅を広げたい方
・開発がお好きな方