読者です 読者をやめる 読者になる 読者になる

とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

プログラマがプロジェクトに関わる上で大切な事

自分もこの業界に入ってもう6年目、
やっと新人から抜け出せたと思う今日この頃。

今までいくつかの案件をこなしその度に沢山の人たちとプロジェクト(以下PJ)をこなしてきたが、
僕らPGがPJを進めるに当たって、大切だなーと思うことを少し書いてみようと思う。

前もって行っておきますが、これは別に自己啓発でもお勧めでも何でもない。
自分がこの6年間で思ったことを書いているだけなのであしからず。


ソースを見る

最初からPJに関わることが出来るとは限らないこの業界。
どんな時期にPJに入っても、ほかの人のソースを見ることを怠ってはいけない。
とにかく見る、読む、動かす
これをいかにしているかで後々の自分のソースがだいぶ変わる。
PJごとに
基幹ファイルの設置、
レコードの扱い方、
MVCのあり方、
DB参照先(マスタ・スレーブ)など癖が違う、

同じメンバーで同じような仕事をしてればそんなことはないんだろうけど、きっとそんな現場は少ないはず。


自分勝手に作っても後でレビューしてもらったときにやり直しでは意味がないし、工数が無駄にかかってしまう。
また既にデバックが完了しているソースに乗っけることである程度の信頼度があがるのも事実。
効率よく、そしてバグの少ないソースを書くには先人たちのロジックを沢山読むことが大切だなーと思いました。


(まぁ元々のロジックがバグってた。なんて話も沢山あるけどね。。)


期限にバッファ(余裕)を持つ

これはPGだけのことではないですね。
でもPJのマスタースケジュールに記載された自分のスケジュールを守ることはとても大切。
ある仕様書を渡されて、
「この仕様を組み込むのにどのくらいかかりますか?」
と聞かれるのは良くあること。


このときに必ず少し余裕を持った時間を相手に告げることが大切。
自分が思った工数*1.2位を告げて、この0.2はもしも問題が発生した場合のバッファに当てる。
もしも問題が発生せずに、うまく事が運んだ場合はこの0.2はUT(自分の環境での確認)に当てる
急いで書いたソースがバグだらけだと、次のデバッカさんが困るし、期限を押してしまうのもほかの人に迷惑をかけかねない。


工数を測るのは最初とても難しかったけど、これが出来ると企画、デザイナ、デバッカの信頼も得られる。

人のソースをバカにしない

これ自分もまだ出来てるわけじゃないけど、
この5年間、こんな人が沢山いた。
「このソース本当にう●こだなwww」
「あいつはのソースは本当に最悪wwwカオス過ぎるww」


でも気持ちはわかる。世の中にう●こソースがあること事態は事実だし、
自己満足の結晶みたいなソースも沢山ある
(自分のソースがそうな可能性だって全然ある)


でも人のソースを事ある毎に、バカにしている人のソースは以外とたいしたことなかったりする。
こんな人を見ると人のソースをバカにして自分がいかに優秀かをアピールしているような滑稽な姿にしか見えないし、
人のソースを読んでもその意味とか、理由を探さない怠惰な人間に見える。


だから人のソースは
なぜこういう書き方にしたのか?このソースに意味はあるのか?を一度じっくり読むようにしている。


それでも納得がいかない場合
(あまりに非効率的な書き方をしている)
(ほかの機能を考えていない)
(考慮不足)


なんて場合は直すべき。そこでバカにしても決してPJは何も良くならない。

出来ない事はできません!

企画や、デザイナーさんの観点から出来ることと
PGの観点から出来ることは違う。


出来ないことを安請け合いして、あとから「やっぱこれできませんでした」
なんて事になるほど悲惨なことはない。


これは技術的な部分はもちろんのこと、期限もそうだし、負荷的な問題もそう。


「技術的には可能だけど、負荷に耐えられない」とか
「徹夜してもこの工数じゃ無理」とか
「どうしても実装したくない機能」というものが存在すると思う。
僕らは魔法使いではない。
無理なものは無理とはっきり言う必要も時にはある。
そのときにはちゃんと無理な理由、なぜこの機能が実装できないのか?
をしっかり伝えて相手に納得してもらうことが一番大切だと思います。


人に聞く

PGってプログラムをただ書くだけの仕事じゃないですよね?
もちろんプログラムを書くことは大前提だけど、環境作成、DB、APILINUX、シェル、その他ソフトとかとか沢山覚えることがあって、大変だと思う。


よく本屋に行くと「いまさら聞けない○○」見たいな本見るけど、それは見栄を張っているだけのような気がする。


わからないことがある場合は
・自分で調べる
・やってみる
・また調べる
・やってみる


それでもだめならもう人に聞こう!と思う。
そのとき大切なのは自分はこのわからないことについてどういうアプローチをしたのか?
自分のこのわからないことに対する見解を質問するときにしっかり伝えること。


「これがわかりません」
だけでは誰も力になってくれない、自分はこうだと思ってこういう事をしてきた、
でも期待通りの結果にならなかったんです(´;ω;`)
というのは質問をするときのマナーみたいなもんだと思う。


以上だらだらと書いてきたましたが、
職業は違えど、みんな同じ人間そこを忘れないことが一番大切なことかもしれませんね。