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

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

人生ドラクエ化マニュアル実践記-セーブデータ19-非常識なコマンドを試せ!

人ドラ

alt

人生ドラクエ化マニュアルを実施することで、本当に人生が変わるのか?楽しくなるのか?
まずは行動してみよう、ということで週に1回を目安に行動し、その結果をログとして残そうと思います。
今回は「非常識なコマンドを試せ!」です。

人生ドラクエ化マニュアルとは?

人生ドラクエ化マニュアル、略して人ドラ(ジンドラ)。
「人生をドラゴンクエストに置き換えて楽しむ方法を考えてみよう!」
そんな考え方をまとめた書籍です。
エニックス社員のJUNZOさんの著書で、すでにパート1・パート2がでています。

運命のクエストカード

書籍「人生ドラクエ化マニュアルⅡ」には付録として「運命のクエストカード」がついています。

f:id:tbpg:20160423225254j:plain

クエストカードは全部で32あります。
1日1枚引くことを推奨していますが、他にも色々とやることがあるので週1を目安にしてみました。
週に1つを目安に実際に行動していきます。
そして、その結果を記事化します。

書籍「人生ドラクエ化マニュアル」「人生ドラクエ化マニュアルⅡ」に関する書評は以下にまとめてあります。

http://tbpgr.hatenablog.com/entry/2016/03/21/022124tbpgr.hatenablog.com

背景

私は30台後半のプログラマーです。
プログラマーという響きが好きなので使っていますが、実際はプログラミング以外にも
チーム全体のことや、優秀な人材の採用、 CodeIQ の出題者をやっています。

クエスト19 非常識なコマンドを試せ!

f:id:tbpg:20160828000404j:plain

人生ドラクエ化マニュアルの著者JUNZO氏は

事態を一気に打開したい時は非常識なコマンドを使ってみよう。
たとえば1日がかりの仕事を1時間で済ませ、敵をびっくりさせてみる等。
敵が非常識なコマンドに感動した時、事態は一気に動き出す。

といっています。

それが今回のクエストです。

クエスト

非常識なコマンドを試せ!

私は2013年の年末からCodeIQの出題者をしています。

きっかけですが、当時私はCodeIQの回答者としてサービスを利用していました。
とある問題に関して運営に問い合わせをした際に、出題案を出しました。
私がブログに「 非常識なくらい 」大量のアウトプットをしており、
出題案をみた運営担当者さんが私のブログをチェックしたことがきっかけで出題依頼をいただくことになりました。

f:id:tbpg:20160828005034j:plain

CodeIQの出題者さんは当時かなりたくさんいて、どの方も様々な分野で名のしれた実績のある方が多く、
専門分野を活かしたその方ならではの解きごたえのある問題が多くありました。
私はといえば、技術力が突出しているわけでもなく、一度システム開発の業界を離れ30を過ぎてから戻ってきたという
経緯もあり年齢のわりにはキャリアはありません。
多重請負の下請け開発のブラックな現場からようやく転職してぬけ出すことができたばかりの頃であり、
特別な専門分野があるわけでもありません。

CodeIQでは全体的な傾向としてアルゴリズム関連問題や、数学的な知識を活用する問題が多かったのですが、
他の出題者さんと同じ土俵で戦っても勝ち目はないですし、挑戦者視点でみても似たような分野・方向性の
問題ばかりあるよりは異なるものがあったほうが楽しめるだろう、ということで当時の出題内容の「常識」から
できるだけ離れるように出題してきました。

その中でも特別に「 非常識 」だった問題を2問抜粋してみます。

ひとつ目はRubyの静的解析ツールRuboCopでわざと警告を出す

Ruby警官から警告を受けろ 問題

codeiq.jp

です。
静的解析ツールのRuboCopは「プログラムの保守性を高める」ことを目的としたツールであり、
警告をうけないようにするのが正しい使い方です。
そこで逆に「いかに数多くの警告を受けるか?」を問題にしてみました。
この問題は挑戦者こそ少なかったのですが、結果記事の反響は多く一部の参加者の方には
とても喜んで参加してもらえました。
またこの問題があったからこそ今関わることができているかもしれない方もいた、
という事実があとから発覚し、何がきっかけで何が起こるかほんとにわからないものだな、と感じました。

ふたつ目はプログラムをあえて汚くする

コードを汚く逆リファクタリング 問題

です。
リファクタリングは外部から見た振る舞いを変えずに内部構造の保守性、可読性、拡張性などを改良する手法です。
リファクタリング問題では外部から見た目の振る舞いを変えずに、内部構造を挑戦者さんの考える
汚いコードに逆リファクタリングしてもらいます。

以下は CodeIQ MAGAZINE に掲載した結果発表記事です。

codeiq.jp

元々CodeIQでこの類の色物問題を好んで解いてくださる方の中には
ものすごくレベルの高い方が多く、毎回様々な良回答がきます。
それがわかっていたからこそ、結果記事込で良い企画になろうだろうと思って出題してみたところ、
多くの方に楽しんでいただき、その結果記事も多くの方に楽しんでいただけました。

f:id:tbpg:20160828005116j:plain

ぼそっとコメント

「コードを汚く逆リファクタリング問題」は「リファクタリング奉行問題」とセットで出題していました。

リファクタリング奉行」は rebuild.fm #70 で話題にでていたキーワードです。
リファクタリングの問題を出すなら、正解者に付与する電子バッジも「リファクタリング奉行バッジ」にしよう!
ということで、

Twitterで呟いたところ、

物理バッジを作ったという誤解を生んでしまい、なんだか申し訳ない展開に。
それなら現実にしてしまえばいい、ということでバッジを作りました。

リファクタリング奉行バッジ

そしてこのバッジを作ったからこその出会いがあり、それが現在の環境に大きく影響しています。

今回紹介した2問の問題は私の人生に大きく影響を与えた2問ということになるのです。

関連書籍

人生ドラクエ化マニュアルII

人生ドラクエ化マニュアルII

関連情報