ソフトウェア開発の会社で働き終わって思ったこと

8月7日付けで退職した。

アルバイトの子から「退職エントリ待ってます」的なフリがあったし、思うことを書いとく。

ただの自戒を込めた反省なので、他人をディスる意図は全くない。

ビジネスモデル

人月商売について

  • このシステムは作るのに何時間かかるからウン万円という人月単価×工数=請求金額のビジネスモデルを人月商売とする
  • 作業効率が上がって作るのに時間がかからなくなればなるほど儲からない
  • 作業効率は技術力と比例する
  • 低い技術力でなんとか実現することで稼げる
  • 経営レイヤーでは(短期的に)見ると技術力を上げないインセンティブが働く

    • 単価はできるだけ低く抑えて利益を上げたくなる
    • 単価を上げる(技術力の高い人を雇う)と回収できるかわからないリスクがある
  • この機能はこれくらいの価値があるという観点から請求金額が導けると顧客も開発会社もハッピーになれそうな気がしてる

    • 実装に時間がかかろうがかからなかろうが、機能の持つ価値が請求金額に反映される世界観
    • おそらく顧客は納得しにくいから実現が難しい

他社との差別化

  • 技術力が他社と変わらないか他社よりも低いと価格で競争するしかなくなる
  • 景気が悪くなって需要がなくなったら死ねそう
  • 「技術」を拠り所にしないとサステナビリティはなさそう

    • ここで言う「技術」は、価値あるソフトウェアを実現するための非常に広い範囲を含んだ技術(高い価値をもつデザイン・ユーザービリティetc.を実現する技術)
    • 価値が(安い)価格にしかないのであればリピーターがつきにくいし、リピーターも価格で劣ればリピートしなくなりそう

経験がある人は(少なくともすぐには)変われないし変わらない

勉強会

  • デザインパターン・ソフトウェアテストの社内勉強会(読書会)を行った
  • 業務に活かされることは(少なくとも1年の期間では)ないように見えた
  • 心の底から本当に必要だと思わなければ技術は習得されない

コードレビュー

  • Bitbucketでプルリクエストベースのコードレビューを行った
  • レビューで何回もリーダブルコードに書いてあるような同じことを指摘した
  • 心の底から本当に必要だと思わなければコードの書き方は変わらない

つまり

  • 技術に対する価値観は年齢を重ねると変わらない
  • 知識をアップデートする必要性を感じないまま年齢を重ねたらヤバい

    • 必要性を感じる事自体がある意味技術かもしれない(哲学)

レベル3を超えることなく、10年過ぎてしまった人の意識を変えさせるのは、私自身の経験から、私はほとんど不可能だと思っています。

  • 年齢を重ねた人の考え方を変えれるなどというのはおこがましい考え

    • 年齢を重ねる前に洗脳するしかない
  • 採用の段階で選別するのが一番効率が良いという身も蓋もない結論に至らざるをえない

コミュニケーション

  • コミュニケーションは伝える側が自分の考えを伝える責任と、受け取る側が伝える側の考えを受け取る責任の2つがあり、どちらが欠けても目的を果たせない
  • 受け取る責任は、伝える側に質問する能力を持たないと果たすことができない

    • 日常会話では、言葉の定義に揺れや曖昧さがある場合が多い
    • ex. 「『(伝える側の言った単語)』はこういう意味ですか?」
  • 伝える責任は、受け取る側に質問する能力を持たないと果たすことができない

    • ex. 「あなたが次に行う作業はなんですか?」
  • コミュニケーションの失敗が起きた時、両者に同等の責任が発生すると両者が考えられなければ改善は不可能で、再びコミュニケーションの失敗は発生する
  • よって立場の高低がある人間たちがコミュニケーションを取って失敗があったとき、立場が上の人間が責任を感じなければコミュニケーションは絶対に改善されない

    • しかし全ての責任は立場が下の人間にあると考える半沢直樹的な世界観の上の立場の人間は多い

クリエイターとロジック

  • 「ぼくがかんがえたさいきょうのソフトウェア」を脱するには他者からの指摘を受け入れる必要がある

    • 改善の提案を受け入れる場合も受け入れない場合もロジカルに対応できるべき
  • 好き嫌いでしか何がいいか判断できないときもある

    • そのときにロジカルになるためのツールがペルソナなので、ペルソナがなければロジカルな議論は不可能
    • 逆にディレクターの一存で全て決めるという方法もあるが、全てにおいて責任をとれない(意思決定ができない)ならロジカルにあるべき
  • ロジックが存在しても「顧客が本当に必要だったもの」を導けるとは限らない
  • ソフトウェアはユーザーに使われて初めて価値がわかる
  • ユーザーにとって良くないソフトウェアを作ったという事実は受け入れられなければサステナビリティはない
  • 受け入れるためには自己批判が必要であるが、それが苦手な人は多い
  • 年齢を重ねると「ぼくがかんがえたさいきょうのソフトウェア」を作るスタイルから脱することは難しそう

    • 目的意識を変えることが難しいのではないかと思われる

まとめ

  • ユーザーにとって価値のあるものをつくるためには広範な「技術」が必要
  • 「技術」を持たない年齢を重ねた人の勢力が強い環境で、ユーザーにとって価値のあるものを実現するのは非常に難しい
Michiaki Mizoguchi

    Michiaki Mizoguchi

    WebフロントエンドでReactを触りがちだがバックエンドサーバーをイジったりUnity使ってゲームつくったりもする。

    @mizoguche