2019
昨年はお世話になりました。今年もよろしくお願いします。
年末年始
今年の年末年始はいろんな計画外に見舞われまして、家のトイレは詰まり、長男がインフルにかかり、年をまたいでそれが私にもうつり、と久々に家にこもりっきりでした(さらにこのブログを書いてる瞬間次男も発熱)。計画外でしたが、インフルについては予防接種のおかげで重症化せずにすみ、トイレについては昨年引っ越した結果トイレ二つあるのでクリティカルな問題は起きず、ということで、予期できるリスクにあらかじめ備えておくことと、予期できないリスクに負けないように大事なものを冗長化しておくことの重要さを再認識できました。
とはいえずっと寝ていたかというとそうではなく、長男と私は回復期にポケモンをやっておりました。長男がピカチュウ で私がイーブイで遊んでおりました。ポケモン久々でしたが、ストーリーがゲームボーイ版ベースだったので、自分としては懐かしさ、そして長男としては真新しさがあったのでよかったです。親子でゲームできるようになったのかと思うと考え深いですね。
そんな折、暇を持て余していた次男は嫁とせっせとレゴシティのPS4版 をやっており、気づけば全クリしていました。すげー。
2019のやっていき
今年のテーマは Make People Awesomeでいきます。Modern Agileの原則の一つですが、お正月にこの動画を見直していて、あー去年は大事にしていたはずなのに振り返ってみるとでもっとできたなと思ったので、改めて大事にしていければな、と。 何を成し遂げるかにこれを据えるモダンアジャイルほんと好きだなー。
YOW! 2017 Joshua Kerievsky - Modern Agile #YOW
年末年始は看病+自分が寝込んだわけですが、それに限らず自分のいろんな意味で人生のステージが上がってきたかな、という気がしています。自分よりも子どもだったり、自分より優先度が高いものが思い浮かんでくるようになったここ数年です。なのでまずは健康。後に引きずるようなムチャはしないよう心がけつつ、なるべくチャレンジして行きたいと思っています。
特に、昨年に引き続き今年もいろんなやっていきやのっていきがあると思うので、環境や時流をうまく味方につけて、自分をより伸ばしていけばな、と思っています。 登壇も頑張っていくぞ!
というわけで今年もよろしくお願いします。
【翻訳】ソフトウェア見積もりのパラドックス
はじめに
このエントリーは、Chris Lucianさんの Software Estimation Paradoxを許可を得て翻訳したものです。また、 Recruit Engineers Advent Calendar 2018 の20日目のエントリーでした。盛大に遅れましたごめんなさい。 誤訳等の指摘歓迎です。
ソフトウェア見積もりのパラドックス
人は以前に何度も完了したものの見積もりは上手にできる。
ソフトウェア開発者は、繰り返せるものや、時間のかかることは自動化する。
上手に見積れるものは、以前になんども繰り返して、自動化していないものである。
なぜソフトウェア開発者は、以前になんども繰り返したことを自動化しなかったのだろうか?
見積もりはムダだろうか?
ソフトウェア見積もりのパラドックスからすると、簡単に自動化できたソフトウェアは自動化できたかもしれない、といえます。また、見積もりが締め切りになってしまう環境下では、作りこまれるムダの量が増加するとも言えるでしょう。これはリーンソフトウェア開発の中核的なコンセプトに本質的に反しています。
どうやってムダを減らす?
ムダを減らすには、インセンティブの構造を変える必要があります。良い設計、継続的デリバリー、継続的インテグレーション、垂直的な区切り、遅延コストに基づく小さな機能の優先順位づけを組み込むことで、価値を素早く実現し、劇的にムダを減らすことができるようになり始めます。
次に何をすべきか?
※元記事からそのまま転載しています。そのうち訳します。
もし、次にやるべき機能を全てやろうとしていたら、継続的デリバリーと、垂直的なスライスを利用することで、その機能の遅延コストに基づいて機能を選ぶことが可能になります。機能を選んだ後は、今までに利用したことがない技術を含んでいたり、未知の設計を選択した機能を検証します。我々はこれを「既知の未知(known unknowns)」と呼びます。従来の見積もりのプロセスでは、これらの見積もりをするための調査期間を設けていただろうということに注意してください。もし、既知の未知が見つかった場合は、もし、既知の未知が見つかった場合は、コンセプトの証明のために時間をとるか、現状の我々の知識ではその機能の作成は不可能だと結論づけます。ひとたび、全ての既知の道がなくなったら、新たな未知の未知が見つかるまで機能のデプロイを進めます。もし何か未知の未知が見つかった場合は、再びその未知が消えるまでコンセプトの証明を行います。この時点で、デプロイし、次の機能に取り掛かります。このプロセスを、基本となる開発プロセスに組み込みむことで、コードはより高品質であることを維持し、途中でも効果を出し続けられるようになるでしょう。
※元記事からそのまま転載しています。そのうち訳します。
どうやって安全にムダを削減する?
この方向性をサポートするプロセスや技術はたくさんあります。下記のプロセスをゆっくりと組み込めば、徐々に変化していくことに気づき始めるでしょう。
- アジャイルなふりかえり
- ラーニングセッション
- カンバン
- WIP制限1
- ユニットテスト
- 超最小のMVP
- 継続的インテグレーション
- Zaroboogz1
- 自動化された受入テスト
- 継続的デリバリー
- 遅延コストに基づいたイテレーション
フィードバックがありますか? コメントでディスカッションに参加してください! そしてtwitterの #NoEstimates ハッシュタグもチェックしてください。
-
[訳注]すいませんこれ何かわかっておらず質問中です。わかる人いらしたら教えてください。↩
「パパ、ぼくコンピュータが欲しい」
そう長男に言われたので、あぁ子どももこういう年になったんだなぁ。というわけで、その時のエピソードです。
エンジニア父としては、せっかくコンピューターに触れるのであれば、仕組みとかにも興味持てる形にしたいな、と思うわけです。
そこでRaspberry Piですよ!
というわけで、やっぱりラズパイがいいな、と思って購入しようかと思ったら、なんと同僚のRYoMa@牛勢(@RyoMa_0923)さん | Twitter さんがRaspberry Pi 2 Model Bを譲ってくださるとのこと。というわけでありがたくいただいてしまいました。感謝!
とりあえず見せてみる
父「この前コンピューター欲しいって言ってたじゃん?」
長男「うん」
父「これ、なんだかわかる?」
長男「わかんない」
父「これがコンピューターなんだよ」
長男「えええっ!」
というわけでなかなか反応は上々。ちなみに各パーツの話をしようとしたらつまんなそうにしたんでまだその時じゃないんだな、と思って次回としました。
セットアップ
実は私自身がラズパイを触るの初めてだったので、ググりながら。
順調にRaspbianが入りました。(本当は起動直後に電源落ちて入れ直した)子どもたちにはOSの説明とか軽くしてみました。直後に外に遊びに言ってました。
インストールが終わる頃、「そういえばなんでコンピューター欲しかったの?」と聞いてみることに(今更)
そしたら「マイクラがやりたい」とのこと。
え、マイクラってRaspbianに入るのかな....
マイクラ入ってた!!
そわそわしてググってみたら、なんと
Pi Edition | MinecraftがRaspbianで動作する、ってかデフォルトで入ってるというではありませんか!
起動
というわけで早速起動します。このあたりで長男に加え次男も混じり大歓喜。
父はコマンドでチートを教えてみる
Pi Editionのマイクラは、教育目的で作られているようでPythonコードで色々動かせるとのこと。
というわけで素手でやったら数時間かかるであろう処理(100立法のブロック積んでみる、とか)をコマンド書いて実行してみました。
父、長男、次男「おおおおおおおおおお!!!!」
大歓喜です、本当にありがとうございます。その他、歩いたところに花を植えるなどして楽しみました。
子どもたちもやってみる
コードをちょろっと教えてみたところ、早速カンバンの塔を作成していました。好奇心すごいなぁ。
さいごに
というわけで我が家で長男が初めてコンピューターと戯れた日のエピソードでした。
これをいい機会にしてコンピューターに興味持ってくれるといいなぁ。
最後に、このエントリーは子育てエンジニア Advent Calendar 2018 - Adventarの10日目の記事でした。
前日のエントリーはすくすく!子育てエンジニアMeetUpが自分を救ってくれた話 – 株式会社GEEKクリエイターズブログで、明日はirotoris - Adventarさんのターンです。よろしくお願いします。