カテゴリー別アーカイブ: SOLUTION

  • phpMyAdminに代わる新しいオススメツール

  • 2018/05/21
  • Category:
  • DBをGUIで操作するツールとして、phpMyAdminを便利に使っています。
    ターミナルからmysqlにログインして、直接SQLを実行しても良いのですが、ちょっとしたSELECT文を試したいくらいのときにはおおげさです。
    しかし、サーバの設定の都合上phpMyAdminをインストールできない場合があります。
    あるいは、phpMyAdminをインストールすることが手間な場合もあります。

    上記のような場合、がんばってターミナルからSQLを実行するしかないのでしょうか?
    もっと、便利な方法があるはずので、探してみました。

    Macならsequel pro

    Mac環境の場合は、Sequel Proが定番のDBクライアントとなります(他にあったら教えてください!)。
    基本的にMySQLのためのクライアントとなりますが、見た目のUIなどはphpMyAdminに似ているため、違和感なく移行できるかと思います。
    テーブル操作やSQLの実行まで、一通りのことができるため、Mac環境であればSequel Proがあれば問題なく使えそうです。

    WindowsではA5:SQL Mk-2, MySQL Workbench

    普段仕事をする環境はWindowsなのでSequel Proを探してみましたが、Windows版がありません。
    ただ、類似のアプリケーションとして、A5:SQL Mk-2, MySQL Workbenchがあります。
    両方ともphpMyAdminに似たことができますが、A5:SQL Mk-2はどちらかというとDBのモデリングが主な機能であり、MySQL WorkbenchはMySQL専用でテーブル操作にはあまり向かないという印象があり、実際に業務で使用するならば使い分けることになりそうです。

    Linuxでがんばるならmycli

    上記はGUIでDBを操作できるものを取り扱いました。
    しかし、どうでしてもターミナルから操作しなければならない場合もあります。
    GUIに慣れていると、SQLのコマンドが思い出せずに検索して時間がかかることがよくあります(筆者がそうです……)。
    そこで少しでもSQL入力を楽にする方法として、mycliがあります。
    mycliはデフォルトのmysqlコマンドを代替するもので、mycli -u root -pなどとしてログインすると、コマンドやテーブルの補完機能を使うことができるようになります。
    SQLの文法が思い出せいない場合、何文字かを入力してタブキーを押せば、それらしいコマンドをサジェストしてくれるので、いろいろはかどります。

    まとめ

    主要な環境で使えるDB操作アプリケーションを紹介してみました。
    DBは1つ操作を間違えると大変な結果になるため、素早く正確に(しかも簡単に!)できるようにしておきましょう。

    日々多様化・複雑化していくあらゆるシーンに於いて、シームレスにアテンドするソリューション事業部はこちら

    ●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    ●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)

Pocket

  • デバッグへの取り組み

  • 2018/05/18
  • Category:
  • 開発をする上で、どうしても発生するのがバグです。
    バグのない開発ができれば言うことありませんが、実際はいろいろな原因で問題が発生するものです。
    発生してしまったバグをどのようにデバッグすればいいのか、普段気をつけていることを整理してみたいと思います。

    バグの再現

    バグを発見すると、反射的に修正したくなるかもしれません。しかし、ここを我慢しましょう。
    修正しようとする前に、まずそのバグが確実に発生するのかを確かめましょう。
    バグが発生したりしなかったりする状況は、なにを修正するのかすらあいまいになってしまうため、無駄な時間を使うことになりかねないためです。
    再現させるための前提として、サーバや開発言語を可能な限りバグが発生した環境と同じに揃えるなどして、1つ1つ不確定要素を潰すようにすると良いでしょう。

    原因の特定

    バグを再現できるようになったら、次は原因を特定しましょう。
    原因を特定する方法はエンジニアの数だけやりかたがありますが、おおむねのところ共通する手法は以下になるのではないでしょうか。

    01.仮説を立てる
    02.ログなど事実(データなど)を収集する

    実際のデバッグにおいては、2つのうちどちらか1つを使うというものではなく、両方の組み合わせになるかと思います。

    注意すべきは、なにを調べたら良いのかわからず、闇雲に原因を調査することです。
    とはいえ、実際に調査する方針がつかめないこともあるため、闇雲に調べる場合はせめてどのようなことを調査したのかを書きだしておくと、1つ1つ原因を追いこんでいくための助けになるかと思います。

    用途に応じた修正

    原因が特定できたら、いよいよ実際の修正を行いますが、ここでも考慮したいポイントがあります。

    01.簡単で根本的な修正
    02.難しくて根本的な修正
    03.簡単で場当たり的な修正
    04.難しくて場当たり的な修正

    ※根本的な修正とは、今後の変更や拡張性などを考慮した修正であり、場当たり的な修正とはとりあえず問題が解決していれば良いものとする修正を表します。

    基本としては根本的な修正を行うべきですが、実際は1から4のうちどれを選ぶかは状況に左右されます。

    場当たり的な修正が良くないとわかっていても、時間的な制約で選ばなければならないことがあります。
    そのような場合はコメントを残したりチケットに登録したりと、後に対応することになったとき、少しでも楽になるようにすると良いかもしれません。
    なにしろ自分で記述したコードであっても、1カ月後には忘れていることもあるためです。

    修正の確認

    問題が修正できたら、実際に修正できているのかを検証しましょう。
    修正したての状態だと、特定の条件下のみでは意図通りの動きをするが、条件を変えたとたんに動かなくなる場合が多いためです。
    特に、場当たり的な修正を実施した場合は、修正したことの副作用として別の場所でバグが発生するということすらありえます。
    ここでハマると、場当たり的な修正→別の場所でバグが発生→場当たり的な修正……というループにハマってしまわないように気をつけたいところです。

    まとめ

    デバッグ方法を整理しましたが、書かれていることは当たり前のことかもしれません。
    しかし、どのような状況でも上記ステップを着実に踏んで進められるかとなると、話が変わってきます。
    ハマってしまうと、気がつくと闇雲に原因を探してしまっている……、ということは良くあります。

    上記ステップを踏んでデバッグを行い、その上でどうしても解決できないバグがある場合はどうすれば良いものでしょうか?

    答えの1つとはしては、その日は切り上げて帰って寝てしまうことです。

    身も蓋もない答えかもしれません。しかし1日かかって解決しなかった問題が、次の日すっきりした頭で取り組むと10分で解決するということが意外とあるためです。
    だいたいの場合、解決方法は複数あるものだったりします。
    頭がすっきりしているときに改めて取り組むことも、立派な解決策の1つであることを思い出せるようにしておきましょう!

    日々多様化・複雑化していくあらゆるシーンに於いて、シームレスにアテンドするソリューション事業部はこちら

    ●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    ●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)

Pocket

  • インデックスを使用してデータベースの検索速度を高める

  • 2018/05/14
  • Category:
  • データベースのパフォーマンスを考える上で、本でいう目次に相当する機能であるインデックスを適切に設定することは重要です。
    インデックスはデータベースの検索速度に大きく影響し、引いてはWebサービスの快適さに直結します。
    今記事ではインデックスについて整理してみましょう。

    インデックスのメリットデメリット

    先ほども記述しましたが、インデックス機能を使うメリットは検索速度の向上です。
    使いかたによっては10倍以上も速度向上が見こめるため、適切なインデックスの使用は必須と言えるでしょう。

    逆に、デメリットもあります。
    インデックスはINSERT, UPDATE, DELETEを実施するたびに再生成されます。
    そのため、変更の多いテーブルにインデックスを作ると、逆に動作速度が低下することもあります。
    また、巨大なテーブルにインデックスを作ると、インデックスのファイルサイズが大きくなるという問題もあります。

    インデックスをどこに使うか?

    実際にインデックスを設置するには、どのようにすれば良いでしょうか?
    もちろんデータベースのテーブル構造ごとに異なりますが、おおまかな指針を考えてみます。

    01.WHERE句
    インデックスは検索速度を向上させるため、実際にWHERE句に使うカラムに設定すると効率化が見込めます。
    ただし、データ量が多く変更が多いカラムの場合は、インデックスの再生成が何度も実施されてしまうため、かえってパフォーマンス低下の怖れがあります。

    02.結合条件
    これは上記WHERE句と同様に、絞り込みを行う条件であるため、インデックスを効果的に使用できるためとなります。

    03.カラムの値の種類が多い
    区分などで0か1など、条件しかデータがない場合は、インデックスは効果を発揮しません。
    名前など、データが複数あるもののほうがインデックスを使用するものとしては望ましいものとなります。

    まとめ

    データベースの速度はサービスの快適さに直結します。
    ユーザに使いやすいサービスを提供するため、常に速度を意識したデータベースを構築しましょう。

    ●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    ●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)

Pocket

  • システム開発での作業効率化に必要不可欠な定義ジャンプ(tags、language-server)

  • 2018/05/11
  • Category:
  • 大規模なシステム開発をしていると、そこそこの頻度で使用するコマンドがあるかと思います。
    そのなかでも今回は、定義ジャンプを紹介します。

    定義ジャンプとは


    コーディングをしていると、メソッドの内容や使用時に必要な引数がどのようになっているか思い出せないことが発生します。
    そのとき、都度メソッドがどのファイルのどこに記述されているかを探すのは手間となってしまうでしょう。
    そんなとき、定義ジャンプ機能があれば簡単にメソッドなどの定義先に移動して、内容を確認することができます。

    EclipseやといったIDEや、Atomなどのモダンエディタであれば大半の言語で実行可能な標準機能となりますが、歴史的なおさらいも兼ねて今までのやりかたも紹介してみたいと思います。

    検索を容易とするインデックスを作成するtags


    tagsとはメソッドや変数などの定義箇所のインデックスを作成するためのプログラムです。
    そのなかでも複数の言語に対応したctagsが有名(Google検索でたくさんヒットする)なので紹介します。
    以下のようなコマンドを実行すると、tagsというインデックスファイルが生成されます。

    ctags -R –languages=PHP –langmap=PHP:.php.inc –php-types=c+f+d -f ~/tags

    生成したファイルを読み取り、定義ジャンプを実現します。
    元々がUnixプログラムである関係上、vimやemacsなどのCUIエディタで実行可能でしたが、近年はwindowsでも秀丸エディタなどで対応しています。

    プログラムを解析して情報を提供するlanguage-server


    tagsを使ってインデックスを作成する方式は、安定しているとはいえ古いやりかたなのは否めません。
    そこで、MicrosoftがVisual studioとは対照的に、軽量なモダンエディタとして発表したVisual Studio Code(以下VSCode)ではどのように実現しているのかを紹介します。

    2016年にMicrosoftはlanguage server protocolという仕様を公開しました。
    これはプログラムを解析してコード補完、変数やメソッドの定義参照、コードのエラーチェックなどの機能を統一的に提供するプロトコルになります。

    機能ではなくプロトコル(規約)であるところがポイントで、プロトコルの形式を守ればどのようなエディタであっても同じ定義ジャンプ機能を実装可能となります。
    実際にはVSCodeで使われていますが、vimやEmacsでもlanguage-serverを使用した言語ごとのプラグインが各種公開されており、ctagsなしでの定義ジャンプが可能となuものがあります。

    まとめ

    昔ながらのctagsを使用する例は減りましたが、VSCodeなどモダンエディタが使えない環境においてはまだまだ現役です。
    既存のコードを検索する時間をtagsやlanguage-serverでなくして、新しいコードを書くことに集中できるようにしましょう!

Pocket

  • システム拡張には優しく、変更には厳しく

  • 2018/04/19
  • Category:
  • システム開発時のよくあるパターンとして、機能を追加しようとすると既存のコードの複数箇所に修正をしなければならない、ということはよくあります。
    修正をすることで別の箇所でエラーが発生して……、という頭の痛い展開を防ぎたいものです。

    では、どのようにすれば良いでしょうか。

    OCPのクラス設計方針とは




    いきなり英語が出てきましたが、Open / Closed Princpleの略となります。
    日本語にすると解放/閉鎖原則となります。そのままですが、よけいに意味がわからなくなったかもしれません。
    意味するところは、記事タイトルのように、

    拡張に対して開いている(Open)
    修正に対して閉じている(Closed)

    上記方針を守った、クラスの設計方針のことです。
    仕様変更に対して、機能追加は簡単にできるように、かつ既存のコードを変更しないでいいようにすることを指します。
    巨大なシステムであるほど、既存のコードに対する修正はリスクが高まり、機能追加時に修正が不要になることは大きなメリットがあります。

    OCPをどのように使うのか?



    どのような方針で設計をすれば良いのでしょうか。
    『アジャイルソフトウェア開発の奥義』の著者ロバート・C・マーチンがあげる例によれば、呼び出すクラスに依存させるのではなく、インタフェースや抽象クラスに依存させることを指針とすべきだ、というものです。
    直接クラスを使用すると依存箇所ができてしまうため、インタフェースを実装したクラスを使用することで、インタフェースを実装したクラスであれば差し替え可能にすることで、変更を防ぐというものです。
    差し替え可能にすることで柔軟性を保つという発想は、依存性の注入(Dependency Injection)とも重なります(ここでは割愛)。

    まとめ



    複雑なシステムを構成するには、機能追加に柔軟な設計になっていることが必要となります。
    『アジャイルソフトウェア開発の奥義』には他にも有用な考え方が多数掲載されており、筆者も勉強中となります。

    ところで、上記内容を解決するための根本的な発想はもう1つあります。
    コードを書かないでいいようにすることです。
    コードがなければバグもない、そんなの当たり前と考えるかもしれませんが、クライアントと相談するなどすれば意外とコードを書かないでも解決できてしまったりすることがあるのです。
    OCPに沿ったコードそのものが本当に必要なのか、書かないでいい方法はないか、ここから問うようにしましょう。

    ●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)

    株式会社CPR ソリューション事業部はこちら

Pocket

  • 高機能なテキストエディタ『vim』とは(初級編)

  • 2018/04/18
  • Category:
  • 4月になって時間もたち、新入社員の方は仕事に慣れようとしている時期かと思います。
    弊社にも新しくメンバーが参加し、フロントエンド技術の研修を行っております。

    メンバーにサーバ設定を教えるなかで、こんな会話がありました。

    「設定ファイルをvimで開いて」
    「vimってなんですか?」

    筆者はvimを当然の前提知識として考えておりましたが、考えてみればフロントエンドからエンジニアになった人からすれば知らなくてもおかしくありません。
    しかし、フロントエンドエンジニアとはいえ、最低限の知識はあったほうが良いということでvimの操作を教えることとなりました。

    vimを使うには何を教えれば良いのか?



    Windowsのメモ帳でやっていることができればいいだろうと考えました。
    文字の入力と削除、コピー&ペースト、キーの移動、ファイルの保存、エディタの終了です。

    しかし、vimは上記操作を行う以前に知らなければならないことがあります。

    用途に応じたモードの区別



    vimにはモードという考え方があります。
    どんなものかと言えば、文字入力をする挿入モードと、編集(削除など)をするノーマルモードとで明確に分離しています。
    例をあげると、文字入力(インサート)モードのときに、Ctrl-C, Ctrl-Vでコピーや貼りつけができません。
    逆に不便になっているのでは? という疑問もあるでしょうが、たとえば編集モード2yyと押すだけで2行コピーできるなど、便利なことが多いためそうなっています。

    モードの考えかたを教えた上で、最低限ファイルの編集をするためのコマンドを紹介します。

    vimの基本操作



    ■移動
    ノーマルモード時
    h : 左へ移動
    j : 下へ移動
    k : 上へ移動
    l : 右へ移動

    ■編集
    ノーマルモード時
    i : ノーマルモードから挿入モードにチェンジ
    yy : 1行コピー
    p : 下にコピーした内容を貼りつけ
    x : 1文字削除
    dd : 1行削除

    ■保存と終了
    挿入モード時にesc : 挿入モードからノーマルモードにチェンジ
    :w : 保存
    :q : vimを終了

    まとめ



    必要最低限のものとなりますが、vimの操作を紹介してみました。
    フロントエンドエンジニアでもVagrantのLinuxにログインして設定ファイルを編集するなどのケースがあるため、最初は慣れないかもしれませんが、チャレンジしてみましょう!

    ●Wantedly掲載情報( Angular/Reactを極めたいフロントエンジニア大募集!! )

    株式会社CPR ソリューション事業部はこちら

Pocket

  • 社員紹介〜ソリューション事業部 – ダニエル

  • 2018/02/22
  • Category:
  • はじめに

    皆さん、こんにちは。
    ソリューション事業部のエディです。

    私はオーストラリア出身で故郷はシドニーで3年前に来日しました。
    今回は私がCPRに入社し、今まで仕事の経緯などをお話させて頂きます。
    CPRで働くフロントエンドのエンジニアはどんな人物か、どちらかの参考になればと思います。

    Greetings everyone.
    My name is Daniel Eddy from the Solutions Department at CPR.

    Originally from Sydney, Australia I came to Japan 3 years ago, in this article I will be explaining my background and previous working career. I believe this article could also be insightful for anyone interested in working with CPR as a Frontend Engineer.

     

    Webスキルやコミュニケーションスキルを取得した専門学校・インターン

    オーストラリアの専門学校に入学して、2年間勉強して卒業しました。
    そこでWebスキルの勉強を始め、基本的なHTML、CSSとPHPを取得しました。
    また大規模なWebデザイン会社で1年間のインターンシップを行い、チームとのコミュニケーションスキルが向上しました。
    インターンシップでは様々なことに挑戦し経験することが出来て感謝しています

    I entered Australian vocational school studying frontend web development for 2 years this is where I developed my first skills as a professional web developer covering basic HTML, CSS and PHP. While studying I did an internship with a large web design company working as a assistant web developer for 1 year this really helped be build my team communication skills.

    Webエンジニア、マネージャーを経験した広告代理店での業務

    専門学校後、広告代理店に就職しそこで私はJavaScriptアプリケーションエンジニアになりました。
    オーストラリアの弁護士のための教育プラットフォーアプリケーション案件に参画し、22歳で5人のWeb開発者のチームを管理していました。
    若い時にマネージャーを経験させて頂いて感謝しており、マネージャー時代には解決策のスキルを培うことが出来ました。

    その後、2015年にオーストラリアから東京に移りました。

    After my graduation I got a job with a advertising agency mainly developing apps as a Javascript engineer. I created a learning platform for a Australian law groups at this job and managed a team of 5 developers at the age of 22.

    Getting experience as a young manager allowed me to develop my soft skills and resolving conflicts that occurred in the working environment.

    Soon after that job In 2015 I made the decision to move to Tokyo, Japan

    日本企業での新しい挑戦

    来日後、日本のベンチャー企業のWeb開発(Angular、Reactなど)に携わりましたが、その時は本当に大変でした。
    私は日本語を話せませんでしたので、日本語でのコミュニケーションは私にとっての大きな挑戦でした。
    しかし毎日少しずつ日本語を学んだ結果、回りの方とコミュニケーションを取る事が出来るようになりました。

    When I first arrived in Japan I was able to get a job with an Japanese internet venture company where I work mainly with Angular and React projects the cultural and language barrier was a big challenge in the beginning.Because I could not speak much Japanese and basic communicate with other team members was always difficult but I was able to push through.

    Everyday I learn more and more Japanese intensively self educating myself, to the point where I could communicate efficiently with everyone in the company within 6 months I arriving in Japan.

    最後に

    今私は日本に住み始めて3年が経とうとしています。
    今回CPRにジョインして私のスキルと経験を伸ばしたいです。

    Now 3 years later I have experience working with different Japanese companies and projects. I’m looking forward to developing further skills and experience by being involved with the team at CPR.

Pocket

  • Wantedlyに中途採用(フロントエンジニア)の募集を掲載しました。

  • 2018/02/13
  • Category:
  • 少し前まではフロントサイドがjQueryのみで実装されているシステムが主流でしたが、最近はSPA(Single Page Application)が主流となってきております。

    そこで今回はSPAを実現する為に必要となるSPAフレームワーク(Angular/Reactなど)を使用するフロントエンジニアを募集しております。

    SPAフレームワークのスキルアップが出来る環境

    CPRでは複数ある案件の中でもSPAフレームワークの割合も多く、様々な案件で確実にSPAフレームワークのスキルアップが出来ます。

    今後成長が見越せるSPAフレームワークのスキルをしっかり取得してエンジニアとしての市場価値をしっかり向上していく事が出来ます。

    募集要項

    フロントエンジニア未経験の方もエンジニア経験があればOK!
    むしろ勉強しながら新しいことにチャレンジしたい人も大歓迎です。(Angular/React以外でもOK)

    《具体的な業務内容》
    ︎Web・オープン系を中心としたシステム開発(要件定義・設計・実装)
    ︎ソーシャルゲームなどのスマホアプリ開発
    ※技術力以外にもマネージメント力も高めていきます

    面接希望の方はWantedlyまたはE-MAIL(info@cpr-inc.jp)にてお問い合わせください。
    面接日時は出来る限り希望に応じますので、お気軽にご相談ください。
    20時以降や土日の面接もご希望があれば、対応いたします。

    ●Wantedly掲載情報( Angular/Reactを極めたいフロントエンジニア大募集!! )

    ●株式会社CPR
    http://cpr-inc.jp/

Pocket

  • 2018年1月度全体ミーティング

  • 2018/02/07
  • Category:
  • こんにちは、株式会社CPRソリューション事業部です。
    今回は2018年1月度の全体ミーティングについてお届けしたいと思います。

    1月度全体ミーティング

    1月度の全体ミーティングは2018年の始まりということもあり、ふぐ一郎様にてふぐコースを頂きました。
    去年の冬の全体ミーティングでもこちらのふぐコースを頂き、大変好評だったので今年の冬もふぐを外すことが出来ません。

    コース内容はふぐ皮煮凍り、てっさ(ふぐのお刺身)、ふぐ唐揚げ、ふぐちり鍋(ふぐ鍋)、ひれ酒と全てふぐ料理で思う存分に堪能しました。
    特にひれ酒の炙ったひれから出る香ばしさとふぐ料理の相性もバッチリで、お酒の弱いスタッフもついつい進んでしまう程の美味しさです。

    まとめ

    弊社では毎月事業部の垣根を越えた全体ミーティングを行っており、全社員の交流の場を大切にして風邪通しの良い社内作りを目指しています。
    オンオフをしっかりわける事が日々の業務の作業効率を上げることだと考えており、CPRではこうした取り組みを大切にしてます。

    株式会社CPR

Pocket

  • 社員紹介 〜ソリューション事業部 園田〜

  • 2018/01/16
  • Category:
  • はじめに

    皆さん、こんにちは。
    ソリューション事業部の園田です。

    今回は私がCPRに入社してからどのように仕事を覚えていったのかを記事にしました。
    CPRで働くシステムエンジニアはどんな人物か、という一つの参考になればと思います。

    研修・自社サービスの運用保守


    私は、2016年の9月に株式会社CPRに入社しました。
    1ヶ月間はシステムエンジニアにとっての基本的な知識やスキルを習得するための研修を行いました。
    具体的には、ITインフラについての概要や専門知識、JAVAやPHPなどのプログラミング言語、DBの概要やSQLのスキル、UNIXコマンドなどの基本的且つ汎用的な知識やスキルを教わり、その後は、自社の運用するWEBゲームの運用・保守に携わりました。

    このゲームはユーザーが集めたカードを駆使してバトルを行うというゲームだったのですが、オーソドックスなWEBゲームということもあり、システムエンジニアとしての基本的なスキルを鍛えられたと思います。

    特に、試験項目書の作成やそれを用いての実際の試験実施などは次の現場で真っ先に任された仕事だったこともありシステムエンジニアとしての基礎的な下地になりました。
    またフロントエンドがメインでしたが、システムの不具合修正も数をこなしたことで自分の下地になりました。

    学校紹介サイトの運用保守


    2017年に入ってからは、学生向けの学校紹介サイトの運用・保守を行いました。
    ここでも試験項目書の作成やそれを用いての試験実施やシステムの不具合修正を行い、システム全体が大規模なことやチームでのコミュニケーションの方法や使用するツールなど、それまでと勝手が異なるということで戸惑いがありましたが、研修や自社サービスの運用で培った経験のおかげで乗り越えることができました。

    また、サーバーがLinux、DBがMySQL、開発言語はJAVA、フレームワークがSpringなど、事前に経験していた環境と近かったこともありそれまでに学んだことがすぐに活かせて成長していることを実感できました。
    規模の大きなシステムだっただけに、大規模システムの運営についてのノウハウを吸収することもできて非常にたくさんのことを学ぶことができました。

    大手グルメサイトのWEBディレクター


    学校紹介サイトの現場にいた頃に、予てより興味のあったWEBディレクターの案件の募集があり、思い切って挑戦することにしました。
    経験が不足しているのではないかという不安がありましたが、熱意をもって面談に取り組んだところ担当者の方に興味を示してもらい参画することができました。

    上流行程を担当するということで、それまでとやることが違いすぎて業種自体が変わったような気持ちになりましたが、その分いろいろと挑戦できる機会も多くすごくやりがいのある仕事だと思いました。

    WEBディレクターをやる前は、開発側だったこともあり「いかに決められた通りに仕事を仕上げるか」ということに着目するばかりでしたが、ディレクターは反対に「システムをよりよくするためには、どういうアイデアが必要か」「予算やスケジュールを考えて現実的なアイデアか」「本当にユーザーの満足度が上がるアイデアなのか」など、決まっていないことをどんどんと決めていく仕事なので、すごくクリエイティブな経験をすることができました。

    この案件は業界トップのグルメサイトのディレクター案件だったので、ユーザーの気持ちを理解するために普段では食べにいくことが絶対ないようなお店を予約したりもしました。
    開発側ではそんなことをする必要もなかったのですが、実際に自分がユーザーの立場に立つことで見えてくることも多く、食事に行った時に煮詰まっていたアイデアの改善策が思い浮かんだりしたこともありました。
    エンドユーザーから直接ヒアリングさせてもらえる機会もあり、ユーザーの生の声を聞いてシステムに反映することも多かったです。

    最後に

    上流〜下流の行程をある程度経験することができて、システムエンジニアといっても本当にたくさんの仕事があるのだと実感しています。
    開発側の経験がもっと積んでからディレクターになった方が良かったのかもと考えたりもしましたが、CPRは挑戦したいと思ったことを応援してくれる会社です。

    だからこそ、一年も経験がない状態でも上流工程を経験するチャンスがもらえましたし、もちろん失敗することも多いですが、大切なことはその失敗を活かして次にどう行動するのかだと思っています。
    CPRには、やりたいことをやらせてもらえる環境があります。
    私にとっては、こういうCPRの社風が一番ありがたいなと感じる今日この頃です。

    エンジニア想いの環境で様々な分野にチャレンジ出来るソリューション事業部はこちら

Pocket