2014年4月13日日曜日

Gitを利用しているときのあるある?

ファイルの更新で・・・あるある?

ファイルの更新を行う必要があって頂いたファイルをローカルで確認すると
必要ないだろうと思うところまで変更があったんです。
(ファイルの管理をGitで行っていて、コミットする前のdiffを見て気づきました)

もうこうなっちゃうと、頂いた本人に連絡して確認してもらって更新するファイルを
送ってもらうんですが、いかんせんバージョン管理を取り入れてないので、今度返ってくる
内容はホントに正しいの?って疑ってしまうんです。
(サイトのファイル構成が悪いとか、ややこしいとか以前からそれはそれで対処して
 いかないといけないことはあるんですけどね)
それでもバージョン管理を取り入れておけば気付けたのでは?と思っちゃったり。

git diff したりGUIのツールなら変更箇所をもっと簡単に早く特定できるのに。

更新した内容で・・・あるある?

サイトとかシステムでは何か変更とか作業をして、責任者や関係者に確認してもらった後
やっぱり元に戻してとか、 あると思うんです。

そんなときに限って元に戻す部分が、別のところで進んでいた内容だったんです。
こんなときは担当していた方に連絡して、やってもらうのが普通かもしれないんですが
諸々事情で対応できない状況に陥ったのです。

担当していた方はバージョン管理を取り入れていなかったので、私が作業するとき
ローカルのリポジトリとdiffをとって内容を確認しながら「この部分は今回更新した部分だから
元に戻して」という感じに進めました・・・
間違って不必要なところまで戻したり変更したりしてはダメなので時間と精神力を結構
費やしました。
フラストレーションも溜まるんですよね。

バージョン管理していればGitなら git revert を行うことで変更箇所を無かったことにできるのに。
(そうバージョン管理ならね)

バージョン管理という仕組みを取り入れていれば予防できたのでは?今よりも別の方法で対処
できたのでは?と感じる場面が何回もあります。
「本来のバージョン管理の使い方とは違うよ」と思う方もいるかもしれませんが、使い方の一例と
思ってください。


もうすでに愚痴になっていますが、利用していない周りは「コストがかかる」、「今までの作業
フローとは違うので想定していないデメリットが発生する可能性がある」、「利用しなくても
作業自体は出来る」、「会社は利益を追求するのが目的だから、導入するには検討・・・」と
理由や意見を述べています。

だけど、だけどね利用していると、何か対応しなくちゃならないときがあったときに利用して
いないことが要因で対応に余計に時間がかかったり、担当した人のモチベーションを余計に
下げると思います。
人間だから。
ファイルの反映漏れとか更新漏れとかも、もしかしたら発生する前に気付けるかもしれない。
私はもうすでに何回も経験しています。
そのときに必要以上に時間を費やしたことも経験しています。

私の周りだけかもしれないですが、利用していたら予防できるトラブルは利用しないことで
問題が膨らむばかりで押さえることはできない。
それなのに・・・それなのに・・・
前に声を大にして発信したけど、周りは反応せず、ずぅーっとこんな状況が続いています。
説明する機会を設けたりして、細々続けていますがドコまで保ち続けることが出来るやら。

トラブルや火種に気付いたときは連絡してその場は対処されるんですが、それっきり。

やることやっても周りと連携が取れないことをしていると会社全体から見ればそれは
利益を減少させているのでは?と思いますし、複数人で作業をするとなったときに連携が
取りづらいので、複数人による作業で発生するデメリットが顕著に現れています。

バージョン管理に似たような仕組みをすでに取り入れているならまだしも、いまだに個人に
よる管理が行われていて、良くなる事は無いのに、むしろ酷い環境なのに。
酷い環境はより酷くなることはあっても、良くなる事は難しいと思うのに。
何もしていないからこそ、導入したときの効果は大きいと思うのに。

感謝や謝罪の言葉を述べるなら口だけじゃなく、少し時間をとって実際に使ってみてくださいよ。
魔法にかかったかのように周りが明るくなるかもしれない。

そんな日々利用していて感じることや疑念を抱えながら、また仕事に行かなくちゃならない。
頑張れるかな、踏ん張れるかな。

必要に迫られて使い出した人から「今まで使った事が無いから」とか聞いちゃうと
内心では、前から発信しているのに・・・アンパーンチ!!と思いながら笑顔で対処しよう。

2014年4月11日金曜日

Gitを知らない人に説明する機会を設けることが出来ました

仕事で日々利用させてもらっているGitについて、使ったことの無い人にも
知っていただいて使ってもらおうと(布教?)説明を行う機会を設けることが出来たのですが
参加する人はエンジニアではない方なので、どうすれば上手く説明(良い例え)できるか
悩み中です。

今まで使ってない人と作業を行うと発生していた諸々のトラブルや、ファイルの整合性を
保つために発生していた作業が少しでも軽減できるかなと内心思ったりしています。
(本当は皆が使ってくれれば効果はもっと出る気はするのですが、Gitを使い始めたころは
 誰も見向きをしてくれませんでした(泣))

Gitで必須なコミット、ブランチ、マージ、プッシュ、プル
たぶんこれらの用語を出しただけで拒否反応を起こされそうです。

Gitでこんなことが出来るということをひたすら説明しても混乱するだけだと思うので
まずは普段の作業フローでGitを含めると「こうなるんです」とか説明しようと思います。

以前、同僚のエンジニアに説明をしたときは、懸念点(デメリット)として
「今の作業フローに適用できないのではないか」とか「覚えるのにコストがかかる」とか
他にもあったのですが色々と出てきました。

そのときは良い回答が出来なかったのですが、後々考えると

「今の作業フローに適用できないのではないか」
→ファイル編集後+「履歴を残す」だけなのにそれが難しいとはその作業フローを
 見直す必要があるのではと思ったり。

「覚えるのにコストがかかる」
→バージョン管理されていない状態で作業するほうがコスト云々以前の問題では?と思ったり。
(バージョン管理を利用していない人と作業をしたときにファイルの反映漏れとかあると
利用していれば防げたのでは?と思った場面が何回もあります
そんなとき内心イライラが溜まってしかたがないです)

2014年4月7日月曜日

PHPで作られているWebサイトに携わるときに思うこと

たまに仕事でWebサイトを担当することがあるんですが、最近は外注を利用していて
ページ数が多いためか静的なページでもPHPで作られています。

でも、フォームは諸々の事情で自社で作るのですが、作成されたPHPのサイトは
フレームワークやらライブラリを利用していないので、何かに乗っかって作るということが
出来ないのです。

大抵納期までが短いので、むかーしのフォームのソースとかを流用しているのですが
いかんせん、PHPやプログラミングということ自体が初心者だった時期に作ったものが
多いので昔の自分のソースを目にすると色々と悲しくなっていきます。
(しかもそれを後輩が担当することになったりしたら、それが正しいものだと思う可能性も
 あるので、あまり良いことではないよねと思ったり。
 ピヨコードを体験できると思えばそれはそれで・・・良いかも知れませんが・・・(言い訳です))

フレームワークやらライブラリを入れることが出来れば少しは幸せになるかなと思うのですが
これまた、諸々の事情で入れることもできていないです。
(入れるとなると環境やらで引っ掛かってきます)

いろんなバージョンで利用できて、なるべく既存の環境に影響を与えない小さなライブラリ
でも作ったほうがいいのかなと思うこのごろです。