理屈で選べない選択肢を自分の責任で決める覚悟がないと仕事にならない | それゆけ西表島

理屈で選べない選択肢を自分の責任で決める覚悟がないと仕事にならない

ソフトウェア開発で難しいのが、序盤から中盤にかけての、「無数に選択肢がある中でどれを選ぶか」の判断である。

何が難しいのかというと、ある程度取捨選択した後、残りいくつかの方法は、どれを選んでも大差ないということがある。その場合に、後で「なぜこの方法を選んだのか、理由を述べよ」と言われたときに、説明できないため選択を躊躇してしまうのだ。

いわゆる「先延ばし」である。これが1つであれば、まだがんばっていろいろ説明材料を探そうという話になるのだが、ソフトウェア開発は、このような「複数のうちどれを選んでもいいけど、決めないと次に進めない」ことが多数あるので、決められない人は誰かに決めて欲しいと思ってしまう。

仕様がなかなか決まらないのは、以前にも書いたかもしれないが、ほとんどが「どっちでもいいと思うんだけど、決めると責任を取らないといけないので言わない」というチキンレース状態に陥るからである。

この場合、顧客や開発側の責任者は「どっちがいいかわからない(わからないからどっちでもいいと言われても決められない)」状態であり、知識のあるプログラマなら「どっちでもいいけどどっちかに決めて欲しい(後で文句言われたら困る)」という心理状態である。

顧客は解らないから、開発側で決めて欲しい、というかもしれない。開発側の責任者は、その場では判断できないので持ち帰らせて欲しいとなる。その場では解らないとはとても言えないからだ。

万事この調子では、仕様スケジュールは遅延する一方である。どうすれば理想的な解決策ができるだろうか。

これは、もうプログラマが腹を括るしかないと思う。責任を取りたくないというのは、ある意味仕事の放棄だからだ。勝手に決めてもたぶん全体に影響がないと思われるところについては、どんどん勝手に決めるべきだろう。

その時に、とりえる選択肢が無数にあったって構わないのである。細かいものはいちいちレポート書くほどのこともない。後で、決めた理由を尋ねられたら「私の判断で決めました」と言えばいいのである。判断が気に入らないのなら、そこで初めて、じゃぁあなたが決めてくれという話である。

本などで知識を得て博学になると、逆に理屈では選択できない項目について、判断できなくなってしまうことがある。理屈で判断できるのであれば、それは最適解があるわけなので、覚悟はいらない。

理屈抜きで何かを選ぶ時に必要な感覚は、「俺の好み」とか、「こちらの方が美しい」とかそういう感覚である。あるいは「適当」「サイコロで決めた」でもいいのである。自分で選択して自分で責任を取ればいいのだ。

責任を取るというのは、「選択したのは私です」と宣言することぐらいである。選択を他人のせいにしないのが責任の取り方である。

それ以外は、結局やることは同じで、直すものは直さないといけないし、トラブったら徹夜で対応しないといけないのは変わらない。他人が選択して失敗するくらいなら、自分で選んでしまった方がいいと思うのだが。

責任を自分でとるようになると、言われた事だけをやる人から昇格して、自分で動く人になれる。レベルアップである。スキルアップだけではいつまで経っても昇格できない。スキルを磨くのも大事だが、レベルもあげていこう。