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

平成の坂本龍馬を目指して

すべての人にリモートワークを。codeal.work を開発・運営中。CODEAL(コデアル)株式会社社長のブログです。連絡先は shota.atago@codeal.asia まで。

コードを書きながらユーザー目線でいることはパワポの見栄えを考えながら話すスライドの内容を考えるのと同じくらい難しい

これは僭越ながら自分のコードを書いていたときからの実感です。

これだけ書き換えることになるから、この程度に留めておこうという思考は間違いなく働きます。

正しいコードを書くという行為は非常に知的な行為です。

なので、どうやって実装するか?を考えながら、そもそもその機能が本当に必要か?を考えるというのは、極めて難しいですし、完全に切り分けて考えるべきです。

切り分けて考えていないとき、それはパワポの見た目を考えながら、同時にパワポの内容を考えているようなものです。

そういうとき、重複があるスライドが多数できたり、無駄な冗長な表現を使ってしまっているということになりがちです。

これと非常に似ていると思います。

なので、そもそもその機能そのものがユーザーにとってどれだけの価値を持っているのか?はプロダクトオーナーがしっかり、ユーザーの声をきいて、考える責任があります。

そうでなければ、開発しているチームに対して、パワポの見た目考えながら、スライドの内容を考えてと言っているような状態になります。

正しいものを作ること


正しく作ること

は全く別の問題です。

プロダクトオーナーは、正しいものを作ることの責任を持つべきですし、スクラムマスターは正しく作ることの責任を持つべきです。

またソフトウェアの開発においては、エンジニアではない人間の直感的な開発工数と実際の開発工数が一致しないことは多々あります。

これがこんなの簡単にできるでしょとか言ってしまう諸悪の根源になっているように思います。

そして見た目上は同じように見えても、継続的な改善ができる製品コードであるかどうか?は全く異なってきます。それをしっかりと理解しておくべきだと思います。

継続的な改善のできる製品コードになっていなければ、生産的な状態で改善を続けることが極めて難しくなるからです。

継続的な改善のできるコードにしようという意識は、納品までが仕事になってしまう形の受託開発では、難しいと思います。納品する側に継続的な改善ができるようにしておくことへのメリットが薄くなってしまうからです。

それを避ける受託開発にするためには、納品後にも納品された側が継続的な改善のため、事前に費用負担を提示するだったりが必要でしょう。

そうすれば、継続的な改善の際に、より生産的、短時間で修正がしやすい製品コードにしようという気持ちが納品する側にも働くからです。

しかし、それがなければ継続的な改善がしやすいような作り方に配慮されることは極めて起こりにくいはずです。構造上の問題です。

また受託開発においては、ユーザーの声を直接きくのではなく、発注者の求めるものを作るということになります。

なので、この機能は無駄ではないか?という話はなかなか出にくい。

金を払ってくれている発注者に対して、これはユーザーが使わないから作りませんというのは難しいでしょうし、ユーザーのことを受託開発をしている側の人が理解できているケースは稀です。なので、無駄な機能そのものを考えつくこと自体難しいとおもいます。

人月計算をするSIビジネスであれば、大きな工数を出してできるだけ開発したい力が働くのでなおさらです。

なので、もしうまくいったサービスがあれば、一から全て作り直すことになることが多くあります。継続的な改善のできる製品コードになっていないから、作り直すとなるのです。

うまくいっているサービスであれば、すでにそのサービスを使っているユーザーが多数いるので、一気に作り直すことごできないことも多々あります。なので、その場合は飛行機を飛ばしながら、飛行中に同時並行で飛行機を改修するという、離れ業をやってのけることになります。

上記のような理由から、その分野におけるエキスパートがプロダクトオーナーとしていたとして、なにかしらその分野に革新を起こすようなソフトウェアを開発しようとするのであれば、最初から継続的な改善ができることを考えておくことのほうがメリットが大きいと思います。

なぜなら、最初から正しい製品をつくれる可能性が最初から高いからです。

しかし、最初無謀にも、プロダクトオーナーにもその分野における知見が全くなく、製品を提供する場合、継続的な改善ができるコードだったとしても、間違ったものを正しく作る状態になります。

なので、どんなに継続的な改善のできるコードになっていたとしても、その価値は発揮されません。

また正しくない製品を提供するなかで、学びを得て、徐々に正しい方向性を見出すようになるケースが多くあります。ピボットするというのは、正しくこの状態だと言えるでしょう。

正しいものを正しく作ることこそが最も大切なことであり、そのためには、チームとしての力が必要だと思っています。