はじめに
今日からゴールデンウィーク初日!
仕事のほうも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も素晴らしい。しかし、仕事はお金稼ぎでやっているので、綺麗なコードがお金稼ぎにつながるかを考えないといけないと思った。
プロジェクトを航海にたとえれば、ひとりでパンを食べまくった結果、食料がつきて、目的地にたどり着く前に全員餓死しちゃうような状況。なんて傲慢なんだろう!
場合によりけりだとおもうが、今回のプロジェクトでは綺麗なコードは悪いことだと思ったのが今日の日記の結論。
ゴールデンウィーク初日からうつうつだが、思うところはここに吐き出したので、忘れてリフレッシュしよっと。