どちらも正解でどちらも不正解
仕事で開発を行っていると、時々自分の領域範囲について考えることがあります。考え方は人によって様々だと思いますが、自分の範疇に限り仕事を進めることを良しとするか、多少その枠をはみ出してしまうのを良しとするか、というものです。
元々中小企業から社会人を始めた私としては、どちらかというと枠をはみ出して行動することを良しとする思想を持っています。全体的に見てプラスに動くなら、多少は自分の範囲外のことをやってもよいと考えています。反対に規模の大きい企業となると、決められた範囲内のことのみを推し進めるのが良しとされています。これは私の仕事、ここからはあなたの仕事、と明確に責任領域を分けることが最終的に良い結果へとつながると考えているからです。
実際にどちらが正解かと言われると、それなりに社会人をやってきているのですがどちらも正解であってどちらも不正解である、そのようなずるい考え方で答えてしまいます。それぐらいに、メリットデメリットがどちらにも存在しているのです。
領域を限定して働くことは、全体を通してみると上手く動くこともあります。領域を狭くすることでそこに注力できるようにする方法ですので、それぞれが持つ能力を上手く発揮すれば結果として良い形に落ち着くことになるでしょう。反対に本来であれば領域外のことにまで足を踏み入れてしまうのは、過度な負荷を生み出すことになり本来出せるはずだったパフォーマンスを出せない状況になることが考えられます。そのような状況を避けるためにも、各々の範囲を明確にすることがよい、これが規模の大きい企業における考え方です。
反対に中小の場合だと、そのような事を言っていてはそもそも上手く着地できなくなることが多いのもあり、個々の領域に捕らわれずに多くのことをこなしていくことが求められるのも珍しくありません。実際に私も、俗にいう要件定義な上流工程から、開発試験といった下流工程まで一通り経験できたのは、そのような中小規模で働くことができていたからです。この経験がなければ、今の自分はないとも言えます。
両方を経験しているからこそ思うのですが、最も大切なのは会社がどう考えているか、ではないという点です。正直なところ、会社がどちらの考え方であろうと重要視すべきとは思えません。それは単純にユーザーという相手こそ一番に考えなくてはならないから、だと思います。ユーザーに対してじっくりしっかりとした進め方が適しているのであれば、関わる人間の領域をしっかりと定めて時間をかけてでもじっくり取り組むのが良いでしょうし、スピード感を求めるユーザーであれば、素早く動ける体制を軸として個人個人の裁量にある程度任せてしまう方が、最もベターな結果にたどり着きやすくなるでしょう。相手に合わせず自分たちの考え方を押し付ける、それが一番悪い結果を導いてしまうのだと感じます。
今でもたまにアジャイルやウォーターフォールを話題にして、どちらが優れているどちらが劣っているといった議論を見ることがありますが、そうではなく相手によって使い分けることが重要で、どの相手にも同じ手法を使うのであればそれは悪手なのではないでしょうか。どちらかが正解となるような話題であれば、この仕事はここまで難しくはなりません。様々な相手がいるからこそ難しさが常に付きまとい、様々な相手がいるからこそ毎回方法を考えていかなくてはならない、そこが私たち IT 業界が常に抱えている課題の一つだと思っています。
提供するアプリにしても、ある条件下のもとではスクラッチで起こしたアプリケーションが適しているでしょうが、別の条件になれば Excel 上にフォームを作ったものでも適していることがあります。技術者視点で言えば、Excel よりはスクラッチで起こした方がまだ良さそうに感じるでしょうが、本当にそうであるかどうかは状況次第です。最近の言語を利用しているからよい、古い言語を利用しているから悪い、というのも同様で要件や目的によっては新しい言語が適さないことも非常に多いです。趣味で扱う分には答えは明確にしやすいのですが、仕事となると同じようにはいきません。色々多くの条件や要素が絡み合いますので、これがベスト、という方法がなかなか存在しないのが実態です。
このように私としては考えているのもあり、相手に合わせて方法を変えていきたいと考えてはいるのですが、こうなると今度は会社の風土が問題になることもありものすごく悩ましい状態に陥ることも少なくありません。まあ、度が過ぎれば転職しよう、と考えてもいるのでできるだけこの考え方で生きていきたいと思っています。