当社のOJTで作成した社内システムをご紹介します。
※Fusicでは、エンジニアの新入社員に対し、約半年間の教育制度を導入しています。
その期間のうち数か月間は、エンジニアとしての技術力向上や、
一人でクライアントとやり取りができるようになることを目的とし、
OJTを実施しています。
==============================
【システム名】
どこくる(社内座席予約管理システム)
【システム種別】
予約管理システム
業務系システム
【セールスポイント】
① ワンクリックで座席を予約可能
② 日頃見慣れているSlackアイコンを表示することにより、一目で誰がどこにいるかがわかり、検索も可能
③ Outlookカレンダーと連携しているので、表示されているSlackアイコンにマウスホバーすると該当社員の当日の予定を確認できる
2021年7月にフリーアドレス制となってリニューアルした、オフィスの座席を管理するWebアプリです。
「どの席が空いているかがわからない」「あの人がどこにいるかがわからない」といった問題を解決するために作成しました。
社内の人に日常的に使ってもらうアプリなので、
最初の1か月で基本機能の実装を行い公開しました。
その後ユーザーのフィードバックをもらいながら機能の追加と修正を行いました。
【開発期間】
2か月
【技術】
Laravel8、Vue.js
岡部の感想
【難しかったこと】
今回はLeafletというプラグインを使用してオフィスマップ表示を行いましたが、
もともと屋内表示を想定したプラグインではないため、想定した機能を実装するのに苦労しました。
また、スケジュールとの兼ね合いやユーザーからの要望、実装時のインパクトなどを考慮しながら、
機能として何を採用し、何を採用しないのかという判断をしていきました。
しかし、この作業が最も難解で大事だったなと今振り返って思います。
【頑張ったこと】
ユーザー自身で座席を登録してもらうシステムなので、
いかにユーザーの手間を減らして、日常的に快適に使ってもらうかを常に考えていました。
また、機能改善のスピードにもこだわりました。
【OJTを通して学んだこと】
主に岡本くんがバックエンド、私がフロントエンドの担当として
チームで開発する経験ができたことが、とてもよかったです。
コミュニケーションを頻繁に取り、認識の齟齬がない状態で開発を進めていく大変さと大切さを、身をもって体験できました。
また開発が詰まった時には手助けしてくれる先輩が周りに数多くいて、
改めて当社の良さやエンジニアのレベルの高さを学びました。
岡本の感想
【難しかったこと】
他のユーザーが行った更新をリアルタイムで自分の画面にも反映させるため、
一部の通信をWebSocketというプロトコルを用いて行いました。
リアルタイムで通信するには仮想的にサーバーを新たに2つ用意する必要があったため、
環境構築の際に通信がどこで失敗しているかの特定が難しく、
当初想定していたよりも多くの時間がかかってしまい、
使ったことがない技術を使うことの難しさを痛感しました。
【頑張ったこと】
PHPもJavaScriptも、ほんの少しだけ書いたことがある程度で
フレームワークは名前しか知らない状態で入社したので、
文法を思い出しつつコーディングしているところから始まりました。
主に担当していたのはバックエンド側ではありますが、
LaravelとVue.jsをある程度理解し、コーディングできるようになったのは頑張ったところだと思います。
【OJTを通して学んだこと】
私は競技プログラミングの経験もありコーディング自体はある程度自信があったのですが、
他の人とコードを共有する機会はほとんどなかったので、
メンテナンスしやすいコーディングを心がけるところが難しかったです。
「いわゆるDRYの原則を守るためにどのように設計するか」や、
「他の人にも分かりやすいネーミングを考えること」など、
実際にコーディングで試行錯誤している時間以外にも多くの時間が取られるということを感じました。