29 Aug 2017, 14:28

ITエンジニアは勉強するべきか?の感想

おくればせながら、数カ月前にネットでバズッてた記事を見つけて興味深かったので、

思ったことを書いておく。

私は、エンジニアが業務時間外にでも勉強するべきにはやや賛成である。

ややの理由

勉強しない人には、理由がある。

  • 育児が大変
  • 家事が大変
  • 趣味を優先したい

それを否定するわけではない。育児や家事をしながら仕事をするだけでも大変で、

それをしている人には頭が下がる。

独身でも、趣味に没頭してリフレッシュしているリア充の人は羨ましいが、

それはそれでいいと思う。

それでも、エンジニアという職業を選んだ時点で勉強し続けることは義務だと思う。

勉強しないならば、その人はエンジニアに向いていない。

自分が勉強が好きで実際人よりも勉強していると思うので、

自分を優位に立たせて正当化したいという裏の目標もあるのかもしれない。

どうして義務なのかをロジックで説明できないので、やや賛成。

社会人が勉強するべき理由

ITエンジニアに限らず社会人が勉強する理由について考えてみる。

勉強カフェの存在

私は勉強カフェの会員で、勉強はもっぱら勉強カフェで行う。

勉強カフェとは、社会人のための有料自習室だ。

勉強カフェにはいろんな目標を持った人が集まって勉強している。

  • 資格の習得のための勉強
  • 自己啓発の勉強
  • 転職のための準備
  • 大学受験や院試受験

勉強カフェはとても混んでいて、土日はいつも満席。大繁盛している。

勉強カフェにいると、みんな社会人になっても頑張って勉強しているので、

自分も勉強を頑張ろうという気持ちになる。

なぜ社会人になっても勉強するのだろうか?

なぜ、社会人になっても勉強するのだろうか?

私の個人的な意見では、自分がもっともっと成長したいからであり、

成長することはかっこいいからだ。

仕事で成長の機会を与えられる人はラッキーだ。どんどん成長していけばよい。

しかし、自分の場合は、仕事で成長の機会を与えられたと感じたことはあまりない。

仕事をしていても、自分の成長につながらないので、

プライベートで勉強をして、成長の喜びを味わっているというわけ。

一般的なこととしては、世の中の流行や技術は絶えず進歩していて、

それに遅れをとらないためにも、勉強をしないといけない。

これは、ITエンジニアに限ったことではなく、どの業種についても言えることだ。

ITエンジニアが勉強するべき理由

技術の進歩についていく

しかし、ITエンジニアは、他の業種に比べてことさら技術の移り変わりが激しい。

なので、技術の進歩についていくためにも、勉強しないといけない。

技術は陳腐化する。流行のプログラミング言語も、10年経てばガラリと変わる。

だから、新しい言語を学んだり、新しいフレームワークを試したりする。

35歳定年説というのは、新人研修の時にならった知識で食いつないできて、

それ以上の勉強をしてこなかった人が、行き詰まることを指しているのではないか?

Hackingにワクワクする

新しい技術というのは、既存の技術の改良である。

なので、既存の技術がHackされて、効率や性能が改善されているのだ。

そこに、ワクワクする魅力を感じる。

できないことができるようになる、これには魅力を感じるだろう。

これに賛同できない人は、エンジニアに向いていない。

なんの勉強をするべきなのか

業務に応用できるかもしれない勉強をする

今の業務に役立つかもしれない勉強をする。

できれば、業務に応用することを考える。

これが自分にとっては、最もモチベーションが上がる勉強の内容。

その裏には周囲に努力が認められたいという欲求があるし、

努力が報われたいという欲求もある。

勉強したけれども、業務に応用するには転職するしかないものは、

勉強しているときは楽しいけれども、それが終わると一体なにをやっていたのかと、

後悔することが多い。

私は、MOOCを 30以上受けてコンピュータ・サイエンスの基礎から応用までをざっと

勉強したけれども、役に立ったのはほんの少し。虚しくなってしまう。

転職に役立つ勉強をする

スキルチェンジとして、転職に役立つ勉強をしてみるのもあり。

私は、機械学習の勉強を今している。ゆくゆくは、データサイエンスに絡んだ仕事を

したいと考えている。今からでは遅いのではないか?そういう不安もあるが、

決めたことなので、挫折するまで突き進む。

資格の勉強はグレーゾーン

資格は役に立つと判断したら、取得すればいい。

会社から強制されて取る資格が最もよくない。

それらは嫌なものであり、身につかないからだ。

資格は、持っていると、技術の証明になる。

日本でもっとMOOCが流行ればいいのだけれども、

5年以上立ってもMOOCは転職では生きない。結局IPAの資格が強い。

自分の職場について

勉強しないと新しい技術を取り入れることができない

昔話であるが、自分の職場は、組込み系ソフトの職場なので、C言語が重要視されていた。

そんな職場でC++の導入をしたら、オブジェクト指向を理解していないのにC++を使うものだから、

結局、C++で書かれた手続き型のコードが量産されたという話を聞いた。

今は、随分改善された。新人教育でUMLの書き方を教わりUMTPの資格取得が推奨されたりして、

現場もオブジェクト指向が浸透している。

ただし、これからは、関数型言語の時代である。オブジェクト指向になれた人たちが、

関数型のパラダイムに接した時、結局関数型言語であるにもかかわらず手続き型の書き方

をしてしまうのではないかと思う。

また、自分が配属されたとき、部署の多くの人はmuleをつかって開発をしていた。

muleってなに?という人が多いと思う。Emacsよりも低機能なエディタだ。

今はIDEがとても進化しているにもかかわらず、muleを愛用している人がたくさんいた。

テストを書くという習慣もなかった。現場はprintデバッグでテストを行っていて、

gdbを使う人すら少数だった。

アンテナを張って時代の流行についていかないと、こういう現場になる。

なぜうちの職場の人は勉強しないのだろうか

ここからは、批判になるかもしれないので、読み飛ばしてください。

うちの職場の人は勉強しない。新しい技術に目を輝かせない。

これを書くととても部署を批判していることになって、

職場の人に見られると恥ずかしいのだけれども、本質だと思うのであえて書くと、

学歴の偏差値が低い集団だからだと思う。

よくわからない理系の大卒が新入社員として入ってくる。高専生も多い。

早慶上理、MARCH以下の大学から入ってくる。

偏差値が低い大学卒ということは、勉強をあまり昔から熱心にするという習慣がないのだと思う。

能力も低く、向上心も低く、平和で平凡な生活を大切にする人たちが集まっている。

英語ができなかったら、TOEICの勉強をするはずなのだけれども、TOEICの平均点も低い。

もちろん社会人になって、勉強の必要性を感じて伸びていく人もいる。

それは少数だ。総体として、意識低い系集団の集まりなのだ。

さらに、うちの部署は、親会社の下請け企業で、

親会社に頭を下げてマンパワーでなんとか開発して納品する文化がある。

残業も多いので、余計に勉強をしようという気持ちは起こらない。

そして、稼いだお金は趣味に費やすのだ、みんな趣味やプライベートは充実している。

技術力がないのに、マネージャーになっている人もたくさんいる。

私は、そういうマネージャーをあまり尊敬していない。

もちろん技術力と管理能力はわけて考えるものだけれども、

技術力がベースにないマネージャーはなんかヤダ。

どうやって部内の文化を変えようとしたか

自分は、この文化が嫌いなので、なんとかしようとした。

研修があり、(この研修をまじめに遂行する人はいないのだけれども)、

その課題として、部内の文化を変えようとした。

まず実施したことは、アンケート調査。職

場の部員全員に直接ヒヤリングを実施して全員分の意見を集めた。

将来自分の仕事がなくなることに危機感を持ってはいるものの、

なにを勉強すればいいかわからないという人が多くを占めた。

仕事に対する危機感はみんな持っていて、部内に蔓延していた。

10年20年同じ方法で開発してきたけれども、この先やっていけるのかという危機感はある。

しかし、なにを勉強すればいいのかがわからない。

仕方がないので、会社が推奨しているLPICの勉強を頑張る人が多い。

LPICの勉強をしたところで、将来の仕事が安定するのか?

そこで次に実施したことは、

新しい技術を知ってもらうためのメルマガを週一で発行することにした。

世の中で起こっている技術革新や、開発環境、プログラミング言語について、

毎週記事を書いて、部内に配信していった。

重いテーマについては、勉強会を開いたりもした。部内集会で発表した。

また、マネージャーや部内の技術顧問にインタビューをして、

彼らが部内に対して思っていることをヒヤリングして、部内に発信した。

気になる結果は・・・

そういう活動を通じて、部内はどう変わっていったか・・・!?

ここからが面白いところなのだけれども、自分自身がここでうつ病にかかって休職した。

2年間休職したけれども、もうあと2週間で復職予定だ。

果たして部内の文化はどうなっているのだろうか?

第二幕へ続く!!

22 Aug 2017, 11:38

LPICの勉強のやる気がおきない

はじめに

LPIC L2 の勉強をしているのだけれども、どうもやる気が起きない。

なぜやる気が起きないのか分解してみた。

モチベーションが上がらない理由

会社からの強制で資格を取らされる

自分は取りたいと思っていないのに、会社から強制的に資格取得を目標にされて、

受験させられる。これがまずモチベーションが上がらない最もな理由だ。

自発的にではなく、強制的に受験の勉強をしなければいけない。

5年で資格が失効する

LIPCの資格は5年経ったら失効してしまう。

LPICの資格を保持し続けるには、5年ごとに高い受験料を払って受験しないといけない。

そういうビジネスモデルが腹立たしい。

ググればわかる

自分はLinuxが好きで、もちろん普段からUbuntuを使っている。

過去には、CentOS, Linux Mint, Arch Linuxを使って、今はUbuntuに落ち着いている。

ArchLinuxを使っていた時は、ArchWikiという素晴らしい情報源があった。

わからないことは、ほとんどそこを見れば解決方法が見つかった。

またそうでなくても、必要になったらググッてコマンドを見つけてインストールして使った。

障害でハマった時は、昼夜潰して情報をあさって解決した。

クリーンインストールもなんどもした。

そうやって、苦労してググった知識のみが結局身につくのではないかと思う。

紙面上で暗記した知識はすぐ忘れる。

LPICで問われる嫌な問題の一つは、オプションの種類についてだ。

わからなければ、zshやfishならばタブを押すだけで説明がでるし、

そうでなくてもhelpでしらべればわかることだ。

それを暗記しなければいけない。これが嫌だ。

すぐ忘れる

L2ともなると、サーバ管理系のコマンドがたくさんでてくるけれども、

サーバ管理者でもないので、使わないコマンドがほとんど。

いつになったら役に立つのかわからない。

サーバ開発やサーバ管理をしているわけでもないので、覚えた知識は使わない。

使わないと、忘れてしまう。歴史や地理の暗記と同じ。

テスト前に丸暗記した知識は忘れてしまう。

おわりに

批判ばかりなので、最後は肯定的に締めよう。

自分は井の中の蛙で、LPICの意義が見えていないだけかもしれない。

実は、将来長い目でみれば役に立つのかもしれない。

将来の自分がこの文章を読んで、過去の自分をビンタするかもしれない。

しっかりするんだ!!

資格を持っているから、Linux開発の仕事にアサインされたり、

部内のサーバ管理者に任命されたり、

自宅サーバを立てるときにやくにたてばいいなと思う。

10 Aug 2017, 16:18

会社に復職します

会社を休職していたのだけれども、今日ようやく復職の許可が降りた。

1年と8ヶ月間休職した。長かった。5回も復職判定面接をして、ようやく許可が降りた。こんなに長くなってしまったのは、いろいろな要因があるのだけれども、今までの経緯を振り返ってみたい。

以下、長文。TL;DR; 産業医との相性が悪かった。

休職に至るまでの経緯

前提として、もともと学生のころから鬱の症状があって、気分の浮き沈みを繰り返していた。精神科には、学生の頃からお世話になっていた。学生の頃は2年間通った。社会人になってからも3,4年前から精神科に通院していた。

気分は浮き沈みがあり、特に5月と11月(季節の変わり目)には周期的に鬱になっていた。具体的には、鬱になると布団からでられなくなる。布団から出ても出発の身支度に1,2時間かかり、学校や会社の遅刻を繰り返す。休日は一日中寝ていたりする。

ちょうど、11月の気分が落ち込みかけている時に、レガシーコードの調査を任された。どのくらいレガシーかというと、

  • 一つのメソッドが1000行以上
  • コピペコピペの嵐、同じようなクラスがいくつもある。作成者は継承という概念を知らない
  • 作成者不明なのでコードに疑問をもっても誰に相談すればいいのかわからない
  • 意味不明な変数名
  • 当然テストコードはない

気分は一気に落ちていって、朝起きれなくなった。遅刻を二週間連続で繰り返して休職。情けない、豆腐メンタル。今思うと、なぜそこで踏ん張れなかったのかと思う。頑張れよ自分。

休職してから3ヶ月で完治

仕事から離れると、すぐに回復した。仕事の質が鬱になった原因だったので、仕事から離れたらすぐに元気になった。

元気になって、やることもないので、TOEICの勉強をはじめた。一日10時間、2ヶ月で600時間勉強した。鬱の人がこんなに勉強できるだろうか?鬱は治ったと実感した。

主治医に、もう元気モリモリです、と相談したら、仕事にすぐに戻ると再発の可能性があるので、リワークをしてみてはどうかと言われ、3ヶ月間リワークに通うことになった。

第1回復職判定面接

リワークの終わり頃にいわゆる出合い系サイトにハマってしまい、生活リズムが乱れてしまった。お金がないので、実際に出会うまではいかないのだけれども、スマホの電池が切れるまでずっとサイトのタイムラインを眺め続けるというようなことを繰り返した。サイトをチェックすることに中毒になってしまい、夜遅くまで起きていた。

そういう状態で、会社の復職判定面接に望んだので、睡眠リズムが一定ではないということで復職不可となった。復職の条件は、

  • 生活リズムを一定にすること

これは、最もなことで、仕方がないと思った。

第2回復職判定面接

復職判定面接で復職不可となったので、落ちこんでまたひどく鬱になった。布団から出ることができず、一ヶ月ほとんど寝ていた。

このままではダメだと思い、青春18切符を購入して旅に出た。一週間かけて、神戸、大阪、京都を観光して帰ってきた。そしたら、なんだか元気になってきた。旅行によって、鬱屈した気分も晴れ、生活リズムも安定してきた。旅行によって、元気になったのだ。

また、落語にハマった。スカイプでたまたま知りあった人と新宿末広亭に行ったら、落語をやりたくなってきた。もともと大学生の時は、落語研究会に入っていた。なので、社会人の落語研究会に入会した。

生活はメキメキと安定してきた。昼間はTOEICの勉強をして、夜は落語の稽古をした。そういう生活を1,2ヶ月続け、元気になった。2度目の復職判定会議に望む。

2度目の判定会議で、産業医が1回目から変更になった。

この産業医との相性が悪く、ここから一年の間、復帰できなかったと言っても良い。

第2回目の復職判定会議は、結論としては、復職できなかった。その理由は、生活リズムではなくて、お金の使い方が粗いからだった。

どういうことかというと、月に100万つかったと言ったら、この人は精神異常者だとみなされて、復職不可となった。

どうして、100万をつかってしまったか、その内訳を説明したい。内訳は、以下の通り。

  • 学生特例で免除されていた年金の追納金 65万
  • 結婚相談所入会金 10万
  • 社会保険費 6万
  • 生活費 19万

落語研究会にはいり、お年寄りとふれあう機会が増えた。老人ホームやデイサービスの施設で落語をすることもあった。そんな折に、年金の追納金のお知らせが来たので、お年寄りのためにも、払えるものは払ってしまおうと、65万を払った。また、結婚相談所に30歳までに入会すると、入会金が6万円安くなるという割引を見つけたので、10万払った。出会い系サイトにハマるよりも、結婚相談所に登録したほうがよっぽど健全だ。次で復職できると思い込んでいたので、復職が決まったらすぐに婚活をはじめようと思っていた。

というわけで、復職の条件は

  • お金の収支を記録して、3ヶ月間分の記録を提出すること。

第3回復職判定面接

また、産業医さんには、自分を復職させようとしない、もう一つの理由があった。曰く、自分は、産業医さんからみて、発達障害者だと思われた。そのため、大学病院に行って心理検査と知能テストを受けることになった。

心理検査の結果、まったく異常なし。発達障害ではなかった。

IQテストは、89だった。IQは平均が100なので、自分はどちらかというと頭が悪いということがわかった。これには少し落ち込んだけれども、そのころGRITという言葉をしった。IQがたとえ低くても粘り強く努力すれば、実力を発揮できるというもの。これを励みに、TOEICの勉強を頑張った。

お金の収支について、無駄使いはしないものの、自分の自己啓発のための投資にお金を少し使いすぎた。具体的には、TOEICの本をたくさん買ったり、TOEICセミナーに参加したりした。このころになると、休職してからのTOEIC学習時間が1500時間に達した。そして、目標の860スコアを上回り、895スコアを獲得した。GRITが証明された瞬間である。IQが低くてバカでも、粘り強く努力すればTOEIC900も夢じゃないのだ。

そして迎えた第3回復職判定面接。結果は復職不可。理由は、お金の支出が収入よりも、多いからと、TOEICの勉強をして、仕事に向けての勉強をしていないから。

そして、復職の条件は、

  • お金の支出を収入よりも抑えること
  • Javaの資格を取ること

となった。

第4回復職判定面接

趣味はすべて禁止、飲み会参加も禁止、衣類の購入も禁止、とにかく無駄遣いは禁止になった。落語研究会もお金がそこそこかかるのと、時間が思っていた以上にかかるので、やめてしまった。趣味なし、楽しいことなし、人生はなんて虚しいものか。なんのために生きているのかわからなくなってきた。気分の落ち込みは、明らかに産業医さんの価値観に対する理不尽さからくるものだった。

TOEICで895スコアを取得したので、もう英語の勉強はやめようと思った。代わりに、流行りの機械学習の勉強をはじめた。これが面白く、また世間でも盛り上がっていて話題に尽きないので、のめり込んでしまった。

Javaの資格、Java SE Silverの勉強を始めたのだが、一日30分時間を取ることにした。これにはわけがあって、受験費が高額なので休職期間中は受験しないと決めていたのと、復職が決まったら、通勤訓練というものをやらされて、会社の図書館に閉じ込められるので、その時間に集中して勉強しようと思っていた。しかし、これが産業医さんの思いとすれ違っていて、また怒りを買うことになった。

4回目の判定会議、1日12時間勉強しているけれども、Javaの資格試験の勉強は30分しかしていないと報告したら、激怒された。

産業医さんは、自分のJavaのスキルが足りないから難しくて鬱になったと思い込んでいた。なので、自分は、そうではない、自分のJavaのスキルが足りないのではなくて、与えられたコードが汚かったので、鬱になったと弁解した。そもそも、うちの会社は組込みソフトの会社なので、Javaは正直あまりつかわれていないので、この資格は重要ではないといった。そしたら、また激怒された。汚いという表現を面談の場で使うべきではない、そういう表現を使うあなたは幼稚だ、さらに鬱になった原因について会社を責めていると言われた。鬱になった原因は全部自分にあると、自虐的におもわなければいけないのか?

ということで、今回も復職は不可。今回は、細かく復職の条件を指定された。

  • Java SE Silver の試験に合格すること
  • 反省レポートを書いて提出すること
  • お金の収支について、3万円の黒字を出すこと
  • 生活記録表を記録して、何時に何をしていたのか詳しく報告すること
  • 食べたものを記録して提出すること。レコーディング・ダイエットすること。

第5回復職判定面接

Java SE Silverの試験は楽勝だった。3日で取得した。しかし、その受験料が3万近くかかり、それに加えて3万の黒字をださなければいけないので、お金を本当に切り詰めて生活することになった。そもそも、なぜ3万の黒字をださなければいけないのかも理解していない。

ここで、運悪く睡眠リズムが崩れてしまう。これは、主治医に夜中に中途覚醒してしまうと訴えたところ、クエチアピンという睡眠薬を2錠処方された。これを飲んだら、毎日12時間眠るようになった。はじめは薬のせいではないだろうと思って、自分の意思が弱いのだろうと思い込んでいたが、医者に相談したら、薬のせいだとわかった。睡眠リズムが乱れたので、次回の復職判定会議も延期された。

休職満了期間が残り3ヶ月になってきて、このままだとクビになってしまう。

自分も焦っていたが、両親もとても焦っていた。一人暮らしをしていたのだが、母親が自分のマンションから3分のところにあるマンスリーマンションに引っ越してきた。これは、とてもありがたい。朝は起こしてくれるし、お弁当も作ってくれるし、なにより夕食に手料理が食べられる。お金も節約できる。母親の愛情を感じ、何としてでも復帰しなければいけないと思った。

そして、迎えた第5回目の復職判定会議。万が一のこともあるので、両親の同席が求められた。社会人の面談に両親が出て行くなんて恥ずかしいと思ったが、父親が一緒に参加することになった。

復職の条件は完璧にクリアしていた。文句のつけようがない。父親がいるせいか、普段とは空気が違い、受け入れようという感じを強く受けた。事前に提出した反省レポートについていくつか質問を受けたあと、復職許可が決定した。

おわりに

社会人になってから、メンタルを病んで休職することは、学生時代から想定していた。なので、就職活動では福利厚生が充実しているところを選んで受けた。幸か不幸か、その恩恵をはや数年目にしてうけることになった。傷病手当金(休職中の収入源)は国が定める決まりで、お金をもらえる権利はあるのだが、もうしわけない、早く会社に復帰したいといつも思っていた。カウンセリングも無料で2週間に一回受けることができた。これはとても支えになった。これらの福利厚生制度には、本当に感謝している。

ただ、復職するにあたって、こんなに大変だとは想定していなかった。自分は2ヶ月で復職できるものだと思っていたら、2年近く復職させてもらえなかった。

自分は運が悪かったのだろうか、それともこれが普通の対応なのだろうか?考えるとまた鬱になるので、深くは考えないことにして、とりあえず将来のことを考えたい。

28 Jun 2015, 06:12

WAN高速化プロジェクトの成果がWeb記事になった

2014年8月から2015年4月まで関わっていたプロジェクトの成果が今週Web記事になった.

2chの反応もおもしろいので、メモしとく.

3 :番組の途中ですがアフィサイトへの転載は禁止です:2015/06/22(月) 18:04:31.48 ID:v7aI4dlr0
    tar.gz で済むことを2台対向の専用ハードでやって
    そいつらが故障したら通信不可になるならまだましで
    中途半端に壊れてデータが化けても正常終了で終了

4 :番組の途中ですがアフィサイトへの転載は禁止です:2015/06/22(月) 18:27:14.44 ID:UyW+a1dH0
    研究費枯渇とネタ切れで大昔に研究員が作って放置してたのを蔵出ししたっぽい

5 :番組の途中ですがアフィサイトへの転載は禁止です:2015/06/22(月) 18:31:13.08 ID:ICXrVL6k0
    ファイルシステムをレプリケーションしてsmbも小細工してる感じか

6 :番組の途中ですがアフィサイトへの転載は禁止です:2015/06/22(月) 18:33:21.64 ID:TpQJm+a00
    糞Windows&細かいファイルのまま、という環境を止める方が効果あるだろ

7 :組の途中ですがアフィサイトへの転載は禁止です:2015/06/22(月) 18:38:27.87 ID:btTBgrkx0
    すごいしょうもない技術だってことは一目でわかった 

自分の仕事が世の中にでるのは、エンジニアの喜びですね(批判も)

28 Jun 2015, 05:49

サーバ監視のお仕事にかわりました

仕事がまた変わった.

新しい仕事についてはや2ヶ月、以下のような記事を書いたりしてはりきってた.

なにもやっていないうちに別の仕事になってしまった…

なにもやらないという辛さ

開発がスタートしていないうちに、チームに配属されたので、 正直やることがなにもなかった. コーヒーばかり飲んでいた気がした.

忙しい辛さは知っていた。 しかし、ヒマ過ぎる辛さというのをはじめて知った. 忙しい辛さと暇な辛さは、暇な辛さの方が実は辛い.

いや、一応やることはあったんだ. 開発に入る前の調査フェーズなので. しかし、調査というものは辛かった. 答えがないから.

漠然と、調べ物をしていてもまったく分からなかったので、 毎日途方にくれていた.自分は、研究者にはなれないなと思った.

派遣ギリ!

そんな日々を過ごしつつ、開発が始まるはずだったのだが、 不幸にも、予定していた仕事がなくなってしまった.

2ヶ月間開発が始まるのを待ち望んでいたのだが、これで自分はお役ご免.

サーバ監視のお仕事

新しい仕事が待っていた. 次の仕事は、サーバ監視のお仕事. 以下の製品のエンハンス.

Zabbixというサーバ監視のOSSを改造する仕事で、言語はPythonだ. 機能がたくさんあるので、激務になりそうな匂いがプンプンするのだが..

席の引越しをするときに、お世話になった上司にこんなことをいわれた.

二ヶ月間開発できなかったストレスを存分に発散してくだいさい

はい、そうします!

24 Mar 2015, 14:50

ボーイスカウトの規則に従った結果 www

仕事でミスった…

ボーイスカウトの規則とは

まずは, ポーいスカウトの規則とはなにかから. 以下のサイトの解説が詳しい.

以下, 引用.

コードを, チェックアウトしたときよりもきれいにして, チェックインしま す. これを「心構え」として常に持って, 「習慣化」します.

コードの洗練を継続して行う, ということです. それは大仰なことではなく, 変数名をよりよいものにし, 大きすぎる関数を分割し, 小さな重複を排除し, if 文の連なりをなくす, という小さな活動の積み重ねです.

背景

今回の開発は, スクラッチから Java でコードがかけるというまたとない機 会なので, 今まで学んできた TDD を今こそ発揮しようとかんがえた.いつも 以上にはりきって,レッド・グリーン・リファクタリングのサイクルを回し たつもりだった.

失敗したこと

ボーイスカウトの規則に従うと…

ボーイスカウトの原則にしたがって,

  • 変数名をよりよいものにし, マージで競合が発生しまくった.

  • 大きすぎる関数を分割し, 予定コード量が 見積りの 2,3 倍になる.

  • 小さな重複を排除し,if 文の連なりをなくす. 予定完了日が 見積りの 2w に対してさらに 1w 遅延.

    今日は上司に, せっかく動いているのになぜなおすの? と注意された.

そしてマージミス

そして最大の失敗を今日犯す.

SVN で他人のブランチに自分の開発用ブランチをマージしたら, マージミ スが発生.レベルダウンが発生して,チーム全員でマージ箇所のコードレビュー を実視.全員の一日の工数を奪ってしまった.

競合がたくさんでてしまい, 多数の手動マージが必要だった. 注意してい たが, やっぱりまちがってしまった…

もう名前変更もうかつにできない, リファクタリングも相談して許可を得 てからするようにと, 注意される.

ここから学ぶこと

なぜ発生したか?

マージミスがなぜ発生したかというと, あせっていたから.

実は, マージしたときに JUnit がグリーンからレッドになったのは知ってい た. しかし, JUnit は他人のコードをとりこむとすぐにレッドになる, これ は日常茶飯事だったので,気にすることが泣く, 実機確認を急いでしまった.

立ち止まってでも, 実機の前に JUnit をグリーンにしておくべきだった.

また, もっと JUnit をグリーンにすることをチーム内にアピールするべきだっ た. なんかいつも, 自分が壊れたテストコードをグリーンにする作業をし ている気がする.

手動マージのコツとかってなんだろう?? 今回, 自分ひとりで手動マージ作業をすることに無理があった. 他人の修正を把 握できないのに. マージ完了後にレビュー依頼をするべきだった.

リファクタリングは悪いことか

今の状況では, 悪いことだった.

工程の遅延とレベルダウンにつながってしまった. 今の自分のコーディング能力では, リファクタリングをすることのリスク のほうが大きい. くやしいけれども, 力不足を感じた.

家で, ゆっくりときれいなコードを書くのはよい. しかし, お金を対価と して働いているので, 目的を達成するために, リファクタリングが必要か どうか, かんがえることをしなかった. TDD 頑張るぞーという幼い思い込み で今回のようなことになってしまった.

実は今日, このプロジェクトを離れて別のプロジェクトへ移動する話がき た. 今のプロジェクトもあと 1 ヶ月だ. くいのないように, 自分の実力を発 揮してプロジェクトに貢献したい.

03 Oct 2014, 12:53

はじめて UML で設計を体験した

会社の話.

今週から, ソフト設計の工程に入った. UML のクラス図とコミュニケーション図を利用して, ソフトのアーキテクチャについて検討した.

実は, 仕事で UML を利用してクラス設計をするのは今週が社会人初なのだ!

Java による新規開発案件

今までの仕事は, C 言語での流用開発. switch 文に条件を追加していくだけの簡単なお仕事だったので, クラス設計やソフト構造の設計などまったく関わりがなかった.

しかし, 今回の仕事は Java の新規開発案件だ. そのため, はじめの設計で保守性の高いクラス構造を決める必要がある.

はじめての OO 設計

一応 UMTP L2 の資格を持っているし, デザインパターンについてもいろいろ調べたりしてきたけれども, 実践で利用したことがないということについて,とても歯がゆい気持ちでいた.

そのため, (ついに!) 仕事で クラス図をかけたことがとてもうれしいく感じた.

みんなでいろいろと意見を言い合ってソフト構造について議論するのだが, それがとても楽しい.

『このクラスの責務は重すぎるので, この責務は別のクラスに移譲するべきだ』

『このクラスたちは疎結合にするのがよい』

チームメンバで一人, とても OOP に詳しそうな人がいて, クラスの責務に関するコメントや, デザインパターンが言葉の端々に登場する. そういう開発に少し憧れていた.

『このクラスには状態が必要. ここはステートパターンで実装したほうがいい』

『ここには, ビジターパターンのような考えが利用できる』

TDD はやらない

ずっとやりたかった, Java での新規案件だけれども, ソフト構造を決めたらあとは黙々とつくっていくことになるのだろう.

もともと, Java をはじめた理由がケントベックの TDD の本を読むためだった ので, 実は TDD をしたいのだけれども, 今回の開発ではおそらく TDD はやらない.

今回の開発は, ネットワークの高速化をめざしいているため, 開発というよりも研究に近い. 動作するものを早くつくって性能を測ることが大事なので, テストは 2 の次なのだ. まずは性能を出すことが第一目標.

設計どおりにつくって高い品質を確保できたとしても, 性能がでなければなんの意味もない.まずは, 動かしてチューニングしたい.

そしてデスマーチへ

しかし, このプロジェクトは今の時点でデスマーチな匂いがとてもする…

か弱い下請け仕事なので, 強いられた工程を死守しないといけないのだが, 結構乱暴な工程が引かれている… 今の時点で正月がない気がするのだが. 思ったように性能がでないときに, 真の地獄が待っている…

楽しさと辛さが紙一重なのだが, なんとか頑張るつもり.