1
1

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

20%ルールは何分に該当するのか計算してみた

Posted at

環境

Ubuntu 20.4
Ruby 2.6

はじめに

Googleに20%ルールというものがあります。業務時間の20%を自分の好きなことに充ててもいいというものです。Googleのような大手が、こうしたエッジの効いたルールを導入して成果を上げているとのことで、日本でもわりと話題になりました。そして、Web業界の中にも、同じようなルールを導入し出している会社がちらほらとあるようです。

自分が所属する組織はSIerですが、社内にこのようなルールはありません。しかし、個人的に何%でも、わりと自由に設定できる、暗黙のカルチャーのようなもはあったりします。

自分の組織に20%ルールがあった場合、業務時間の何分を割り当てることになるのだろうか、気になったため、計算するプログラムを作ってみました。

コード

rule.rb
def calc_time(rule)

    require 'time'

    str_tm = Time.parse("09:00")    # 業務開始時間
    end_tm = Time.parse("17:30")    # 業務終了時間
    lnc_tm = Time.parse("00:45")    # 休憩時間

    # 標準業務時間(分)
    gyomu =((end_tm - str_tm) / 60) - (lnc_tm.hour * 60 + lnc_tm.min)

    # 標準業務時間(時:分)
    gyomu_hh, gyomu_mm = gyomu.divmod(60)
    gyomu_mm = gyomu_mm.to_i

    # ルール時間(分)
    rulet = gyomu * (rule.to_f / 100)
    
    # ルール時間(時間:分)
    rule_h, rule_m = rulet.divmod(60)
    rule_m = rule_m.to_i
    
    puts "標準業務時間:#{gyomu_hh}#{gyomu_mm}分の#{rule}%は、#{rule_h}時間#{rule_m}分です"
end

calc_time(20)       # 引数:ルール(%)

解説

自分の所属する会社の業務時間は、9時から17時30分です。そして、昼休みが12時から12時45分の45分間あります。
端数処理の関係で、1分単位で誤差が生じる場合があります。ご了承ください。

  • str_tm変数:業務開始時間をセットします
  • end_tm変数:業務終了時間をセットします
  • lnc_tm変数:休憩時間をセットします
  • rule変数:メソッドの引数に適用するルール(%)をセットします

動作結果

標準業務時間:7時45分の20%は、1時間33分です

ルール(%)を変更しての動作結果

標準業務時間:7時45分の1%は、0時間4分です
標準業務時間:7時45分の10%は、0時間46分です
標準業務時間:7時45分の30%は、2時間19分です
標準業務時間:7時45分の60%は、4時間39分です
標準業務時間:7時45分の100%は、7時間45分です

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1