photo credit: dumbledad via photopin cc
基本的にネガティブです
本記事ではエンジニア=プログラマーとして話を進めさせて頂きます。
エンジニアはネガティブです。
- 出来ない
- 間に合わない
- やめたほうが良い
- 無理
- …
ネガティブ発言は枚挙に暇がありません。
ですが、少し考えてみて下さい。
何の根拠も無しにそんな事を言うでしょうか?
僕自身もエンジニアの端くれですが、上記の発言をするのは大体3つのパターンがあります。
エンジニアは多くを語りません。
ですので、ここに僕のパターンを挙げることで、少しでもエンジニアの考えていることを理解して頂ければ幸いです。
1.単純に面倒だから
最悪のパターンですね。
しかしエンジニアも人間ですから、こういうこともあります。
これについては多くを語る必要は無いでしょう。
2.リスクが大きいから
バグの無いシステムは存在しません。
例えば新機能の実装を提案したとしましょう。
大体のエンジニアは以下のフローを瞬時に考えることでしょう。
- 実装は難しいかどうか、時間はどれだけかかるか
- 実装によって既存のプログラムに影響が出るかどうか(影響範囲)
- 新機能には、その時間に見合うだけの価値があるか
といった感じです。
エンジニアは特に2番を気にします。
新機能のためにコードを追加するということは、同時に新たなバグを産み出すということでもあります。
それがどれくらいの範囲に影響が出るものなのかどうかをすごく気にします。
影響があまりに大きい場合は”やらない方が良い”という判断になります。
ここで大きな問題が生じます。
2番は本当にプログラムの中身の話なので、営業の方など、非エンジニアの方には詳しくは説明しません。
そうするとうまく意図が伝わらずに、”なぜ出来ないんだ!!”という話になってしまいます。
これはもうどうしたら良いのでしょうかねぇ…。
これについては、DeNAの創業者である南場智子さんがすばらしい提案をされています。
これからは日本語、英語に加えてプログラミング言語が必要だ。
全文はこちらでどうぞ。
皆がプログラムのプの字でも知っていれば、こういったいざこざも解決されると思うのですよね。
リリーススピードを優先したいから
昨今、これが一番重要な点ではないかと思われます。
従来は時間がかかっても、完璧なシステムこそが重宝されたと思います。
ですが今は違ってきています。
機能を落としてでも、早く世の中に出すことが重要になってきています。
特にWebサービスやスマホアプリの世界では顕著ですね。
全ての機能を実装して、テストも完璧に行って、バグも修正して…とやっていると、その間に世の中は3週ぐらい先に行ってしまっているかもしれません。
僕も現在スタートアップで働いていて、それをひしひしと感じています。
まとめ
色々考えているんです。口には出さないけど。
ただ今の時代、口に出さないのはダメですねw
寡黙な職人肌ではなく、エンジニアもどんどん自分から発信して行かなくてはいけない時代になっていると思います。
そんなわけで僕もこんな記事を書いているわけですw
エンジニアの頭の中が少しは理解できたでしょうか?
今回は以上です!
dah!!