みなさん、コウタロウです!!
今日は、タイトルについて。
【目次】
再現性とは何か?
いきなり再現性と言われてもピンと来ないですよね。
例えばIT系の話になりますが、Webシステムを構築するとします。
その時に下記の作業が発生します。
①データベースに接続
②データベースから値を取得
③取得したデータを画面に表示
システムの要件、規模の大小によりますが根本的にはこんな感じです。
私は15年、IT業界にいて、さまざまなプロジェクトに参加しましWebシステムも数多く作ってきましたが、この①〜③の作業を何度となく繰り返しました。
つまり、Webシステムを作成するにあたり、データベースに接続し、値を取得、画面に表示するというプログラムを何度となく書きました。
この何度となく同じような作業をすることを再現性といいます。
再現性が低いと
何度となく、同じようなプログラムを書きますが、一度プログラムを書いて、次に同じようなプログラムを書くまでは数ヶ月の時間が空くので、またプログラムを書くときには、書き方を忘れてしまうためネットで調べてプログラムを書きます。
仮に初めてプログラムを書いた時、①〜③が10日かかったと仮定します。
次に同じようなプログラムを書くと、前回の経験があるため8日程度で終わります。
3回目は7日、4回目は6日と回数を重ねると経験も増えるため作業の時間は少しずつ減りますがその後は何回経験を重ねても作業時間は5日から減ることはありません。
原因は、過去を思い出したり、忘れてしまったことをネットで調べながらプログラムを書くためです。
5回目以降もこの調べる、思い出すを毎度繰り返すためどうしても作業のコストはこれ以上減らないのです。
この何回もやる作業に対していつも同じ不要なコスト(思い出す、調べる)が発生することを再現性が低いと言います。
再現性を高める
では、どうすれば再現性を高めることができるのでしょうか?
それは手順化する!!
例えば①の「データベースに接続する」はネットにサンプルが沢山あり、私はプログラムを書く都度、ネットで「データベース 接続」みたいに調べます。
きっと1日(8時間)くらいかかります。
でもこのデータベースに接続するプログラムを自分のブログやEvernoteなどに書いておけば、ネットで探す手間がなくなります。
ブログやEvernoteから書き写すだけなのでせいぜい1時間程度。
ぜんぜん違いますね。
これが手順化です。
実際には、環境、使うフレームワーク等が違うためいつも1時間で完了するわけではないですが、この環境、フレームワークの違いも含めた手順を確立できれば、いつも1時間で完了するようになります。
この辺の手順をしっかりしていつも同じ時間で仕事を終らせることを再現性を高めるといいます。
最後に
今回は、プログラムを例にしましたが仕事はどんなことも手順化できるはずです。
どんな作業でも手順化できないか考え、少しずつでも手順化すれば再現性が高くなり、仕事時間は激減します!!
コメント