システム設計者がお客様とやり取りして作成した設計書を元に、実際に動くものを作る仕事です。
WEBアプリケーションの実装がメインなので、サーバーサイドのプログラム(PHP、Javaなど)やブラウザで動作するクライアントサイド(JavaScript)のプログラムを作成します。デザインの修正も行うことがあります。
書籍、インターネットから、常に情報を収集することを心がけています。
というのも、効率良くシステムを実装するには、プログラミング言語、フレームワーク、デザインパターン、データベースなど時代に即した知識が必要です。
また、メンテナンスを考えると、命名規則やリファクタリング、ユニットテストなどの知識も必要です。
プログラムの実行速度を考えると、データ構造、アルゴリズムなど古典的な知識も必要と考えています。
レガシーコードのメンテナンスに苦労した思い出があります。
簡単な修正と思えても、デグレードを起こさないように影響範囲をコードから追う必要があります。また、似たような機能を追加する場合において、既存のコードの再利用が難しくて悩まされることもあります。
特にレガシーコードが持つ脆弱性への対応には苦労しました。
この手の作業は、地道で骨の折れる作業です。
こういった作業の思い出から、新しい開発案件に携わる場合は、プログラムの再利用や可読性、セキュリティ面を強く意識します。
実際に動くものを作るという点に醍醐味があります。
やはり自分で作ったものが期待通りに動くと面白いです。
また、ソフトウェア開発の技術は日進月歩なので、新しい技術を追うのが楽しいです。知的好奇心が満たされます。
良い意味で規模の小さい会社なので、ルールに守られて身動きが取りづらいということが無く、テンポ良く仕事ができます。
何か困ることがあれば忌憚なく意見を言えます。
仕事の面で言うと、システム設計に携わる方々とは仕様に関するやり取りが多いです。
同じ開発者とは、協力して作業することもあれば、勉強会を開催して何かを学ぶ場を設けることもあります。
後輩からは、プログラムやサーバーに関する相談を受けることが多いです。
プライベートでは、同僚とたまにどこかに遊びに行くこともあります。