見積書発行ページのリニューアルとその過程での学び

半年前に免許を取ったばかりの初心者ドライバー、石川です。
最近のマイブームは、ルパン三世というアニメシリーズのテーマソングを聞きながら車の運転をすることです。映画みたいなカーチェイスをしている気分になれます。(※実際は安全運転)

今回、下記のブログで紹介されている、4年前に開発された見積書発行ページのリニューアルを担当しました。

以下はリニューアル後のサイトです。

URL: https://www.farend.ne.jp/quote/



見積書発行ページでは、当社が提供するプロジェクト管理SaaS「My Redmine」などの見積書をインターネット上で発行しています。社印入りの見積書をサポート窓口に依頼することなくPDF形式で即時ダウンロードできます。

Redmineのガントチャートを拡張するプラグイン「Lychee Gantt Chart Pro」をMy Redmineに組み込んだサービス「My Redmine with Lychee Gantt Chart」の見積書の発行もできるようにする、というのが最初の目標だったのですが、帳票ツール「ThinReports」のバージョンが古くテンプレートファイルの再利用が難しかったこともあり、一から作り直すことになりました。

デザインとしての大きな変更はありませんが、PDF出力前に内容を確認することが可能になったり、今までソースコードを書き換えることでしかサービスの項目を追加できなかったのですが、今は管理画面でそういった変更も行えるようになっています。

今回は、この見積書発行ページを作る過程で私がやったことや感じたこと、学んだことについて書きます。

1.「スクラムの手法を取り入れたシステム開発」

前回のブログ でも少し書きましたが、今は、スクラムの手法を取り入れたシステム開発業務に取り組んでいます。スクラムとは、アジャイル型開発手法の1つです。

スクラム開発では短い期間ごとに開発を区切り、その単位で計画を立てていきます。 また、区切りが短いとゴールも近く、その目鼻の先にある目標向かって進むことができます。 ずっと先にある100km先のゴールを目指すよりも、目に見える1km先の給水所を目指す方がイメージしやすいですし、頑張れる気がしますよね? 私は運動が不得意なので1km先でもげんなりとしてしまうのですが、100km先よりはマシだと思えます。

今回紹介した見積書発行ページを作っている時には、計画を立てる段階でどんなタスクが必要なのかもいまいち分からず、「これが足りなかった」「あれが足りなかった」と、後からタスクが増えていってしまいました。

* * *

<その時のバーンダウンチャート>

※バーンダウンチャートとは、最初に見積もった作業量から終わっただけ引いていき、今までの作業の推移と残りの作業量を一目で確認することができる図です。


太い黒の線が実績線で、赤が最初に定めた理想線です。(細くて黒い線は書き間違い) 最初の予定としていた理想線の遥か上を実績線が通っています。 最終的に一つの区切りとしていた1週間のうちに終わったのは半分程度でした。

<今のバーンダウンチャート>


最初に比べるとある程度要領がつかめてきたのか、多少の誤差はありつつも確実に残作業が減っています。タスクがほぼ計画通りに消化できていることが分かります。

チームが一つのスプリントの中でどのくらいのタスクを消化できるかは、毎回データをとっており、それを基にして次のスプリントの内容を決めることで精度を高めることができます。

* * *

まだまだ慣れないことが多いですが、振り返りを定期的に繰り返しながらなんとか前に進んでいます。

2.「汚いコードと綺麗なコード」

<学生の時> 動けばいい

に対し、

<今>    今後改修時のことも考えなければいけない

勉強としてのシステムばかり作っていると、

新しいものを作る→動いた→やった!→次のものを作ろう→動いた→やった!→以下ループ

という流れに入ってしまいがちな気がします。

作ったものが実際に誰かに使ってもらえるような環境だったり、自分からそれを公開したり、というようなことがあればもちろん別だとは思いますが、悲しきことに私はそうではありませんでした。

この見積書発行ページを石川さん(私)が作り直したように、別の人が後から修正したりすることもあるから、その人がわかりやすいように作ろうね。

と教えていただき、改めて見てみると自分の書いたソースコードの読み辛さに気づきました。


また、ソースコードをレビューしてもらった経験もほとんどありませんでした。 精々学校でインデント(コードを見やすくするための字下げなどのこと)について指摘を受ける程度で、その結果可読性の低いものが量産されていました。

この見積書発行ページを作る中で、アドバイスをしていただいたり、プロの綺麗なソースコードを見たことで、たくさんの自分が直すべきことに気づくことができました。 適当な名前でテーブルや項目を作ってしまったが故に作り直す羽目になったりという失敗もありましたが、それもしっかりと学びにつながっています。

目指せ綺麗なコードが書ける人!!

を目標として頑張ります。

3.「最後に」

上記にもあるように、私は勉強として何かを作るばかりで、それを公開したり、使ってもらったりすることはありませんでした。 なので、今回初めて作ったものが公開されるということがとても嬉しいです。 この嬉しさを次へと繋げて、新しいプロジェクトを進めていこうと思います。

また、ファーエンドテクノロジーは、何かやりたいことがあればそれに挑戦させてもらえる素敵な環境です。「高校卒業後、進学するか就職するかで迷っていたんですよね」という話をした数日後、「通信制の短大で学んでみませんか?」というように言っていただきました。今、願書を取り寄せているところです。

これからも楽しみながらたくさん挑戦をしていきたいです。

ファーエンドテクノロジーからのお知らせ(2024/03/27更新)
2024年4月14日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催)
ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。
My Redmine スタンダードプランおよびAdminサポートデスクプランの料金改定のお知らせ【2024年4月ご利用分より】
2024年4月ご利用分より、My Redmine スタンダードプラン(民間企業・個人向け及び官公庁向け)とAdminサポートデスクプランの料金を改定いたします。
My Subversion 一部のプラン・料金改定のお知らせ【2024年4月ご利用分より】
2024年4月ご利用分より、My Redmine スタンダードプラン(民間企業・個人向け及び官公庁向け)とAdminサポートデスクプランの料金を改定いたします。
My Subversion ストレージ容量増量のお知らせ(一部プランを除く)
My Subversionではミディアムプラン以上の各プランのストレージ容量を増量します。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け