やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

気づいたらプロダクト指向な開発者になっていた

仕事の内容が変わって考え方が変わった

数ヶ月程前から、既存の受託案件の開発チームから自社開発チームに移籍して、継続的な開発をしている。 受託案件をゴリゴリ作っていた時は、作って終わりの考えでとにかく速さを重視していた。gitを使ってコードの品質管理はしていたものの今、改めて考えてみれば変更に弱く、品質が担保されていかないコードを書いていたと思う。

(なぜ、そう思うのかについては後述)

最近の開発における考え方は既存のアーキテクチャを保守し、危険性の低いかつ、変更に強く、使い回しの良いコードを書くように意識している。「そんなの受託の時もそうでしょうが」と言われれば、意識としては可能だと思うが、やはり明確に納期があり、交渉不可能という現実があるのとないのとでは心理状態は異なってくる。

そうなると、長い目で見た時にここはどう実装しておくのが良いだろうかという考えを自然としていることに気づいた。

自分が考えているプロダクト思考について

記事のタイトルにも用いた「プロダクト指向」という言葉が自分の造語なのではないか?と思い、軽くググってみたところ、造語ではないよう。製品を顧客の声元に、より良いものにアップデートしていくというのがプロダクト指向だとある。

自分が考えてるプロダクト指向と非常に近い意味合いだったので良かった。もう少しだけ開発者視点でのプロダクト指向という意味を加えて、自分の言葉でプロダクト指向という言葉を説明すると以下のような感じになる。

プロダクト指向

製品(アプリケーション)の品質を高く保ち、改修に強く、長い期間の運用を可能にするための継続的な開発を行うこと

大勢のユーザーがいるという責任感

上記のような考え方に至った上で一番、大きな要因はやはり「現在進行形で使ってくれるユーザーが大勢いる」ということ。しょうもないバグを出せば、直ぐにクレームになり、サービスを解約されてしまうだろう。グローバルに公開されているアプリなので、すぐに口コミも広まってしまう。 加えて、他社競合などに負けぬように新たな機能を追加、既存機能の改修していく必要がある。運用していく中で、「こうしたい、あれもほしい、これはいらなかった」という事が分かってくる。

こういったリクエストにも答えつつ、1行の変更が大きなバグを生み出すかもしれないという責任感を乗り越えていく必要がある。そうなる自然と既存のアーキテクチャを保守し、危険性の低いかつ、変更に強く、使い回しの良いコードを書くようになる。

何よりも大切なのはユーザーに高品質な製品を継続的に提供することだ。

プロダクトコードを書いていることの価値

少し前に社内のベテランパイセンエンジニアに「大勢のユーザーがいるプロダクトコードを書いたことがあるやつと書いたことがないやつでは雲泥の差がある」という話を自分にしてくれたことがある。その時は受託開発をゴリゴリやっていた時で、その意味、価値がよく分からなかった。

しかし、今になって思うと確かになと思うことがある。先ほども記述したように、時に1行のコードが大きな問題を発生させることがある。そういった危機感のある視点を持つように訓練するには大勢のユーザーがいるプロダクトコードを書くというのが一番、手っ取り早い。

あ、この人はプロだなと感じる時

先日、エンジニアになりたかったが挫折して、技術営業になった方とお話する機会があった。その際にふと、「エンジニアが駆け出しから抜け出すのってどのぐらいのタイミングなんですか」という質問をされた。 少し前の自分なら、基本的な文法が書けて...データ構造に理解があって...アルゴリズムを知ってて...というような回答をしていたと思う(もちろん3つともどれも重要)。自然と口が動き「プロダクトコードを書き始めた時じゃないですかね」と答えた。 理由については上記ですでに記述してきたので、省略する。
その後に「ならOKBさんとベテランのAさんとの違いって何かあるんですか」と質問をされて「ぐぬぬ(心の声)」となったが、少し考えて直ぐに答えが出た。

「なんていうか、ベテランの人は嗅覚が鋭い。このコードが将来的にどういう危険性を孕んでいる、こういう場合にヤバイってのが直感的か経験的に分かってコードレビューの時に指摘されることが多い」

あとは単純に知識量も。

反省点

こんな感じでプロダクト指向になれたのはプロに一歩近づくことが出来たなと感じる一方で反省している点もある。それはトレンドな技術や興味関心のある技術に対するハングリーな気持ちがすり減ってしまったことでだ。少し前は東海で誰も使わないようなプログラミン言語Elixirの情報収集に熱を出したものだが、今はどうか。何ともつまらない開発者になってしまっている気もしている。 時間がなかったというのは言い訳にはならない、と以前の最強の同僚にも言われたので「なんでやらなくなったの」に対して弁明が出来ない。あんなに書いていたブログも月に1本でるかどうかだ。

三井寿が暴力沙汰を起こしてまでバスケットに復帰したようなハングリーなマインドを徐々に取り戻していきたいと思う。