概要
社内で使用している内製のプロジェクト管理ツール「案件くん」のリニューアル。
背景
受託案件の企画や制作という業務の特性上、ユニバにおいては各メンバーが同時に複数のプロジェクトにたずさわるケースは珍しくない。案件くんは、進行しているプロジェクトを把握し、各メンバーのスキルセットに合わせてバランスよく配分するための情報を提供するツールとして、数年前から運用されてきた。
ユニバに依頼されるあらゆる仕事は案件くんに集約される。企画のタイトルやクライアント、プロジェクト開始日や完了日といった基本情報に加えて、実現に必要とされる役割(デザイナー、アートディレクション、フロントエンド、インフラ、など)も登録され、社内に周知される。それぞれの役割に対して、アサインするメンバーと想定される稼動時間を入力することで、プロジェクト完了までに必要な時間の大まかな目安を立てることができる。案件くんは、日報としてメンバーが入力しているGoogle Calendarから毎週の稼動の実績値を集計するツール(「集計くん」)と連携しており、登録されたプロジェクト計画と、集計くんから取得した実績値を比較することで、計画の消化状況やメンバーの忙しさをリアルタイムに把握できる。
問題意識
これまで案件くんは、主に週頭に開かれる全社ミーティングで活用されてきた。案件くんを見ながら、順調でないプロジェクトを察知して対策を議論したり、メンバーの稼動の偏りを調整する作業はこの場で行われてきたが、プロジェクトの数が増えるにつれ、必要な時間的・精神的負荷が増大してきた。「一覧からモニタリングへ」というコンセプトのもとで、プロジェクトやメンバーの状態をシステムが検知し、適切なタイミングで通知してくれるような仕組みを作ろうと考えた。
特長
リニューアルの結果、従来エンジニアがBootstrapで作っていたUIが一新され、使い心地が改善された。また、プロジェクトの開始/終了、アサインメンバーの変更といったイベントが、社内のSlackに通知されるようなった。さらに、事前に計画した稼動時間を元に算出した「推奨ペース」がレコメンドされるようになり、各メンバーがその週、どのプロジェクトにどの程度の力を割けばよいのかの参考値を提示できるようになった。入力データに不備があったり、その週の稼動が大幅に超過することが予想される場合、メンバーのアイコンが黄色や赤色にハイライトされ、注意を喚起するようになっている。
技術コメント
リストのフィルタリングやフォームの更新、チャートの表示切替をスムースに行いたい、という要件から、フロントエンドはシングルページアプリケーションとして制作することにした。社内サービスの開発においては、技術的なトレンドの検証も重要な成果の1つであり、社内でのノウハウの蓄積が不十分だったり、評価の定まっていないフレームワークやパラダイムを積極的に試してみることで、受託案件での投入に備えることができる。今回はReact/Fluxを全面的に導入し、複数人が長期的にメンテナンス可能な見通しのよいコードとなるよう意識している。バックエンドについては、基本的なプロジェクト情報のCRUDを行うAPIサーバはRuby on Railsで構築しつつ、それをプロキシしてフロントエンド向けに提供するAPIサーバをNode.jsで実装している。
(文:Ryo Murayama)