はじめに
今日からゴールデンウィーク初日!
仕事のほうも2月から3ヶ月間続いたプロジェクトが一区切りだ。
過去のブログ記事と関連づけながら、ここで振り返りをしてみる。
前提
このプロジェクトに入る前は、精神的につぶれてた。
なので、1月はリハビリのために特定のプロジェクトには参加していなくて、 毎日Emacsをいじっていた。
2月になってすこしずつ元気になってきたので、 お試し開発のプロジェクトに参加することになった。
お試しという意味は、まだ顧客もいなくて、 ビジネスとしてなりたつのかよくわからない、 予算の限られたトライアルプロジェクトという意味。
よかったこと
Rubyistになった
そして、Rubyistになった。
以前から、いつか仕事でRubyがつかえたらいいなと漠然と心に抱いていたので、 これはうれしかった。
RubyTkをつかったGUIアプリケーションの開発がまかされた。
わからないことが毎日あったが、 お金がないから残業できないので、その分は定時後にスタバにこもって勉強した。
どうでもいいRubyTk関連の記事の投稿をこのブログにも怒涛のごとくしてた。
Excel VBAをみにつけた
Rubyistとしてワクワクしている月日は1.5ヶ月くらいで終わった。 それからExcel VBAer?になった。
ExcelVBA知らないけど、1日100Step、5日で完成という工程。 かなり厳しいと思ったが、3日くらいで不自由なく読み書きできるようになった。 前知識としてC++,Java,Rubyがあったからだと思う。
これは、正直驚き、また自信につながった。 オブジェクト指向言語ならば、他の言語もそんなに苦にならずに 身につけられるような気がした。
大事なのは、パラダイムを押さえることではと思った。MOOCでこんな講座もはじめた。
今後は関数型プログラミングのパラダイムを身につけたい。というか、EmacsLisp書きたい!
また、ExcelVBAの開発環境が貧弱すぎることも、 Eclipse大好きな僕には嫌だった。なので、ネット上に散らばったツールをrakeでまとめた。
この背景には、C言語のTDD開発環境ceedlingに感動した体験がある。 Rubyがすごいと思いはじめ、Rubyがやりたくなったのもこの体験があったから。
わるかったこと
コスト意識がなかった
コスト意識がなかったことが、最大の反省点。 なかったわけではなくて、あったことはあったが、もっとあるべきだった。
だんだんとまわりから、
「これは売り物になるの?iPhoneアプリつくったほうが儲かるんじゃないの?」
という実は真実の脅しうけてビクビクしたり、
「じつはこのプロジェクトはXX万の予算を投入したんだよね」
とぷよぷよされて、プロジェクト参加前に比べて精神が悪化したりした。 しかし、今までコスト意識があまりなかったので、
これはよいことなのだと自虐的に受け止めた。
CleanCodeは悪
予算も限られていてかけられる工数が少なかったが、 プログラミングに凝りすぎたことが最大の反省点。
具体的には、クラスの依存関係を弱くしたり、小さいメソッドやクラスを書いていた。 以下のようなカルチャーショックの直後だったので、これが今思い返せば悪影響していた。
自分に求められていたのは、モジュール分割がされていないモンスターメソッドであり、 インスタンスはグローバル変数で保持するような密結合の設計だった。
結果的に、予定よりも遅れてしまった。これだけが原因ではなくて、見積りも悪かったのもあるけど。
綺麗なコードを書くことを心がけていたが、 その価値観をすこしあらためないといけないと思った。 TDDはよいという価値観も今回の開発でかわった気がする。
もちろん、きれいなコードはそれはそれでよいことだし、TDDも素晴らしい。 しかし、仕事はお金稼ぎでやっているので、 綺麗なコードがお金稼ぎにつながるかを考えないといけないと思った。
プロジェクトを航海にたとえれば、 ひとりでパンを食べまくった結果、食料がつきて、 目的地にたどり着く前に全員餓死しちゃうような状況。なんて傲慢なんだろう!
場合によりけりだとおもうが、 今回のプロジェクトでは綺麗なコードは悪いことだと思ったのが今日の日記の結論。
ゴールデンウィーク初日からうつうつだが、 思うところはここに吐き出したので、忘れてリフレッシュしよっと。