ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

ストックを増やすことで効率化

同じ会社の複数の支社の方から様々なシステムの開発依頼に対応する仕事をしています。
この仕事は、僕が担当になる何年も前から続いているので、かれこれ10年近く続いています。

長い間継続しているので、様々な知識が蓄積されていきます。
担当になった当初は、画面上の言葉の意味がわからなくて、言われるがままに作成していましたが、今ではわかるので、ときには合っているのかと確認することがあります。
機能についても同様で、お客さんが言っていることより、こちらの方がより分かりやすいのではないかと提案することもあります。
不具合対応も同様で、過去に発生させてしまったトラブルは、どうしてそうなったのか、どうすべきだったか把握しているので、新しいシステムを作成するときには反映をしていっています。

f:id:AJYA:20170306124545j:plain
photo credit: sjkln The Wonderland of Knowledge via photopin (license)

新しいシステムを作成するときは、大概既存のシステムを元にして、こういった機能を追加、この機能は削除となります。
こういった機能を追加というのは、大概他の既存のシステムで実現できています。
パッチワークのように、ここはあのシステムで作った機能、こっちはあちらのシステムで作った機能を持ってきて、新しいシステムに適合させて、機能を追加させます。
こうすることで、新しいシステムを短時間で作成することができるようになります。

別の会社の案件では、さすがにそのままではありませんが、細かいレベルのコーディング内容、たとえばjQueryでどう記述すると、選ばれているラジオボタンの値が取得できるのかは、個人のストックとして保存していっています。
簡単なものから、一工夫した結果できたものまで、さまざまな内容をストックしていっています。


長く同じようなことを続けるということは、面白みがなくなる面もありますが、ノウハウが蓄積される分だけ、早くどうすればいいのかの判断ができるようになります。
同じようなことをしつつ、新しい要素を取り入れ、できることのストックを増やし続けていきたい。

一度だけの作業かもしれなくても記録をしておけば、後々別の作業のヒントになる

一度だけと思っていたら、意外に同じようなことを繰り返していると最近感じています。

プラットホームの変更

1ヶ月以上前に、ある簡単なデータを登録する社内用のプログラムをPHP 5.1ベースからPHP 7.0ベースに載せ替えました。
結果、いろいろな箇所でエラーが出力されて悩まされました。
修正してエラーが解決するに、どのように修正したのか修正内容を記録しておきました。

つい先日、別の社内用のプログラムをPHP 5.1ベースからPHP 7.0ベースに載せ替える機会がありました。
以前と同様にエラーが発生しましたが、以前どのように修正したのか記録があるので、対処方法がわかります。
それほど時間をかけることなくエラーはなくなり、動作するようになりました。

f:id:AJYA:20170305232739j:plain
photo credit: XoMEoX In Line via photopin (license)

本番へ環境の更新

本番稼働しているシステムに、あれこれ機能を追加したテストシステムを作成し、テストが完了しました。
本番環境への反映を行う前に、どのような手順で更新を行い、どのように反映するか考えて書き出し、書いた順番に従って作業を行いました。
本番環境のデータは当然壊さないように作業しなくてはならず、作業に手間取る面もありました。
事前に考えた内容では不十分な部分がいろいろありましたが、気づくたびにその内容を事前に書き出した内容に追加や修正を行い、作業の記録としました。

その後新たなシステムを作成していますが、一部の機能は今回本番環境に反映したシステムと同じ機能を利用します。
本番環境が既に存在しているわけではないので、本番環境の切り替え時のテストは楽には行えます。
それでも、一部の機能は以前の作業の記録を参考にして本番環境に切り替えることができるので、より時間を短縮することができます。


一度だけと思っていても、いつか似たようなことを行う機会は多いので、記録を残すことは有用と感じています。

1週間の振り返り(2017/2/25〜2017/3/3)

豚パンです。
f:id:AJYA:20170304235547p:plain
見た目からはわかりませんが、豚まんのパンバージョンです。
f:id:AJYA:20170304235619p:plain
僕は気に入りました。

  • 2017/2/25(土)
    寝不足が起因しているのかはっきりしませんが、体調を崩しかけていました。
    身体のことも考えないと、無理はできません。

ajya.hatenablog.jp

  • 2017/2/26(日)
    JAの直売所で野菜を購入しました。
    鮮度がよくて長持ちする野菜が安く購入できるので、ありがたいです。
  • 2017/2/27(月)
    PDFファイルの自動作成で、文字列が自動改行されるはずがされず、バイト数を計算して強制改行するように修正しました。
    バイト数の計算に過去の記事が役に立ちました。

ajya.hatenablog.jp

  • 2017/2/28(火)
    先週なんとか作成完了してお客さんに連絡したシステムの修正をしていました。
    当初不要と言われた機能が追加になり、手間がかかりました。
    当初から必要と判断して欲しかったです。
  • 2017/3/1(水)
    テストが完了したシステムの本番設定を行いました。
    切り替え作業と確認に手間取りました。
    どのように作業し、確認するかのヒントとなる情報は残せたので、今後類似の作業をするときには、手順のヒントにはなると考えています。
  • 2017/3/2(木)
    要件が二転三転しているシステムを作成して、お客さんに連絡して作成完了となりました。
    要件が二転三転するのは、作成側として疲れます。

ajya.hatenablog.jp

  • 2017/3/3(金)
    登録システムの締め切りが正午にあり、対応に追われていました。
    締め切りのときは、毎回いろいろ起きていて今回も予想外のことが起きて慌てました。
    なんとか締め切って、落ち着きを取り戻せたのは夕方近くになっていました。


開発前に必要か確認して不要と判断され、後から必要と判断され、再度不要と判断されて、そのたびに修正をする羽目になりました。
こういう案件は、やる気が削がれて正直やりたくなくなります。
見て操作してみないと分からない部分と、そうではない部分があって、そうではない部分が二転三転するのは、開発依頼前の検討が不足しているとしか考えられないです。

3月最初の2日連続、電車が遅れていて、通勤に余分な時間がかかりました。
こういう事態のときに在宅勤務ができるといいなと思ったりもしますが、子どもからは、自宅にいると遊んでもらえると思われるのをどうすればいいのだろうと悩みます。