「客のせいでブラックなんだけど」という記事が盛り上がってるいるようです。
https://anond.hatelabo.jp/20170707010809

プログラマが客の要求である、意味の無い仕様変更の繰り返しに嘆いてるという定期的に話題になる内容です。

気持ちは良く分かります。

受注金額や給料にも不満があるようですが、こういうケースは大抵、給料増えても不満は無くならないです。
そういう人をいっぱい見てきました。


こういった記事では必ず上位職(PM、SE等)のプロジェクト管理が問題だとコメントが寄せられます。

教科書的な開発の進め方からすればそういったコメントは正論なのですが、現実的にはそうも言ってられない場合も多いのが実情です。

こういったケースに登場する客は、そもそもプログラミングをチラシのレイアウトや色変更と同じように、簡単に並べ替えたりできるものだと思ってるので、まともに話をするには、デジタルデータと鉛筆の違いから教えないといけないといけません。

なので、せめてもの抵抗として、無理を言われる前提で開発費を交渉したり、こういうことをブラックと思って辞めちゃう人も想定して採用費に充てれるように少しでも費用を上げるように交渉することになります。


ここからが本題です。
この記事の筆者と同じような境遇の方も多いと思いますが、プログラマ(エンジニア)として理解しておかなければいけないことがあります。

それは、プログラム書く人は、作る人だけど、それだけじゃないということ。

自分が口を挟んだことでブラッシュアップされてる感(仕事してる感)を出してる人(客)を満たしてあげないといけないというのも大事な仕事なのです。(これはなんのスキルという訳でもないですが、柔軟な思考でコミュ力上がるので、待遇がよくなる場合もあります。ソーシャルハックが必要な場合に参考になる場合もあります。)
最終決定とか情報の取りまとめなんかしたら口を挟むという仕事が無くなって暇になるので、拒まれます。なので直ぐに開発の上流の流れが変わることはありません。

こういう類の欲求を満たすために、営業やPMは、意味の無い議論の打ち合わせにでたり、酔っ払いより論理矛盾するようないいがかりを、まじめな顔して聞いてる振りをします。

これもこれで大変な役回りですよね。

お金をもらうために、イミフと分かっている仕様をドキュメント化したり、エンジニアには、仕事しろ!とか、頭大丈夫?とか思われるのに堪えないといけません。

つまり、協力して客の仕事してる感を満たさないといけないということです。そういう仕事だと理解することが大事です。


これは、前述のような客が相手ではなくて、意識高い系を気取ったディレクターが相手の場合も同じです。

リテラシーの無い客と違って、それっぽい理由をつけてきますが、結局先の読めない変更を繰り返すという作業は同じです。PDCAという便利な言葉も良く使われます。


こういった、なんちゃってアジャイル開発みたいなのがストレスになるとしたら、マインドセットを変えることで楽になることも一つの選択だと思います。具体的には以下のような感じです。

1:考え方を変える

プログラミングは、構造化とか、メンテナンス性とか、軽量化とか、論理的にとか気にしないようにする。

来週にはまったく別の仕様になるのに考えるだけ無駄ですからね。それよりも、どっかに影響がでるかもしれないとしても、柔軟に、速攻で変更できることを優先する。
変数は全部日本語のローマ字にしちゃうとか、とりあえずグローバルに突っ込むとか。

教科書通りの開発をしようとすると、帰れないしストレス増えるだけです。

それよりも、割り切るとこは割り切って集中してプログラミングできるように考えた方が実はバグが少なかったりします。

後々引き継いだ人が・・とかも考えから無くします。それはそのときに作り直しを提案するとか、将来考えることです。


2:依頼過程を見ないようにする

暇だし口挟んだら仕事してる気になるからなのか、本気で考えて根拠ぽいものを創作して改修を依頼してきてるのか、違いはあれど、結局改修を繰り返すということは同じです。

割り切って目の前のタスクだけに集中するようにすれば、余計な心配がなくてハッピーです。ストレス感じないとタイピング早くなったり、タイプミス減ったりします。


3:気を紛らわす

マンガ「王様とヴァイキング」とか、「ブラッディマンデイ」とか読むと、仕様がどうとか考えずにとにかく速攻で作っちゃえ!という気持ちになるかもしれません。作ったものが動く喜びを思い出したり、テンション上がったりもします。


いかがでしたでしょうか?

上流の問題!とか、マネジメントの問題!とか言っててもなかなか解決できないので、マインド的な観点から少しでも楽になれればということで提案してみました。


これでも無理そうなら、ウオーターフォールを徹底できるところとか、直請けでなくて、コンサル会社通してる会社に転職or独立ですかね。。
よほどスキルや経験に自信がある場合は、GoogleとかFacebookで脆弱性とか不具合を見つけて報告することで報酬を稼げるかもしれません。

エンジニアは今後も不足が拡大していくことは目に見えてるので、なんとか踏ん張って欲しいものです。