「なぜ,仕事が予定どおりに終わらないのか?~「時間ない病」の特効薬!タスクシュート時間術」を読んだ

2018年2冊目

2年前くらいから名前は聞いていたが実践した事がないタスクシュートを今年は導入してみようと思い、実践している方の本を読んでみた。
全体を通して精神的に頑張る、気合を入れるという事と対極の方向で進み、具体的、現実的にどうやってタスクを消化していくか?という内容に文字を割いているのでわかりやすい。早速仕事にも取り入れて見ている。

時間を徹底的に失っている典型が「抱え込み型」というタイプの人たちです。 人は「緊張が高まりすぎると、行動を起こせなくなる」 不安を鎮めるには、仕事をするしかありません。

こういう内容は頭ではわかっているが、そうだようなーと共感しかなかった。実際は少しでも仕事をしないと進まないが、進まない理由をあーだこーだ考えて、結局仕事を進めていない状態が実際にある。

タスクシュート式では「優先順位づけ」というものをやりません。 「仕事は、やった順にしか終わらない」からです。 どんなに厳密に優先順位をつけても、その順番でやらなければ(できなければ)、 結局優先順位を裏切っていることにしかなりません。

これは目からウロコだった。やった順にしか終わらない。優先順位というよりは、何から何まで今日という時間で終わらせるか?という事にフォーカスをあてる必要がある。今までは優先順位付けをして終わっていたが、実際は全てのタスクに予定工数を入れ、今日どこまで進められるのかを逆算する必要がある。

ではどうしたらいいか? 1日の時間のシミュレートをすることです。 そして、そのシミュレーションの記録を残すことです。 事前にできることと言えば、それしかありません。 「ムダなく、残業しないように時間を使うとすれば、こうだ」というプランをまず持つことです。 これなくして「何がムダに当たるのか?」を事前に知ることは不可能です。 「ムダがないと自分が思うプラン」を見てはじめて、「同僚からの頼みごとを聞くのは、 たとえ必要であっても、ものすごい残業時間につながる」ということを思い知るのです。```

年末に読んだ、「なぜ、あなたの仕事は終わらないのか スピードは最強の武器である」にも同様の事が書いてあり、 タスク管理、時間管理の人たちは仕事のリズムをとても大事にしているように思う。

なぜ、あなたの仕事は終わらないのか

共通しているのは、のっている状態を作るために、中断の少ない時間(両者とも朝)に、何よりも先に仕事を進める。という方法。 会社に来てからではなく、仕事を始まる前から電車でも頭の中で段取りを行い、会社に到着した瞬間から勝負をかけるという内容。
(メールや他作業はしないで、進めるべきものだけを朝の集中出来る時間帯に進めてしまう)

この流れは早速年明けから実践していて、自分にはあっているスタイルだと思うので続けていきたい。

とても面白く実践できそうな知恵が多くあるので、2018年はTaskChouteを使っていく。

なぜ,仕事が予定どおりに終わらないのか?

縮小ニッポンの衝撃を読んだ

2018年1冊目

NHKで放送された頃に Twitter でも話題になっていた内容だったので本で読んでみた。
今後起こる豊島区の人口減には驚いた。確かに池袋に通勤で通う事はあったけど、家族で住みたいと考えた事はなかった。
同じような結果がデータとしても出ており、単身者の移住は増えるが子育て世帯の流入はなく、今後の福祉関連の費用が増えるという予想にも納得がいく。

豊島区、夕張市、島根、東京全体という話の流れも読みやすく、東京圏一極集中の今後の話には暗くなる場面も多かったが、 2025年以降の話がより現実的に知る事が出来た。
日本の田舎に行った時に感じるインフラが整備されすぎている状況がいつも不思議だなと思っていたけど、
感覚に間違いはなかったみたい。フィリピンでは田舎の方に行くとアスファルトすらない場所が多く、バスが砂埃を上げて 走っていた。そういう状況が日本で起こるのは時間の問題だ。だけどその場所に住む人が縮小化を受け入れるかは別の問題のように思える。

人口の問題は興味が強く、人口とまちづくり、人口と不動産というようなテーマはとても好き

縮小ニッポンの衝撃

以前読んだ同様の本
未来の年表 人口減少日本でこれから起きること

2017年末から2018にかけて

2018年について目標とか、2017の結果を書きたい所だけど、体調が良くない
1/4に旅行から帰ってきたあたりからおかしい。そして、昨日は仕事を早退。
休みの後に休みを取ることは意識的に避けているが、昨日はどうしようもなく体調が悪かった。
これは反省なので、2018は体力増強を目標の一つにしたいところ。

書きたい事は多いけど、一旦、年末年始に買ったガジェットだけでもアップしとく。

買ったガジェット

  • Amazon Echo
    • イマイチ使いこなせていない。Amazon Prime 再生機という感じ
  • amazfit (スマートウォッチ)
    • 45日のバッテリーライフは本当か?と思って買ったけど、1日で1%しか減っていいないところを見ると、本当かも。
    • 1ヶ月くらい使った上で再度レビュー記事を投稿する
    • 12/8にオーダーして届いたのが1/5なので約1ヶ月というところか。 f:id:tbrhdys:20180106145302j:plain

買った仮想通貨

  • BitCoin
  • Ethereum
  • Ripple
  • Dogecoin (アルトコイン用)
  • XP
  • Paccoin

DDDに関する言葉

DDD で出てくる言葉たち(超意訳)

  • Entity
    • DB の1レコードというイメージ
    • DBのレコードをオンメモリで持ち、DB <-> Entity <-> 実処理 というデータの持ち方もある (CakePHP Entity)
  • Service
    • Domain Logic を書く
  • Repository
    • DB、各データストアとのやり取り。Service からコールされる
  • Domain Object
    • ドメイン(アプリが対象とする業務領域)の問題解決、サービスクラス、VO、Entityを指す
  • Value Object
    • ◯◯日付、◯◯請求月とか
    • $xxdate = new Date();
    • この xxdate が何を指すかわからない。そんな時にVOを見れば詳細が分かる。という仕組みが最適

参考

Laravel5.4 で 301 Redirect した時の挙動

目的

  • ある特定のページを301 redirect させて、UnitTest を Pass させる
  • Test をしているのは、Redirect ページであるため、実際に遷移したかどうかまで確認出来ていない
    • Redirect ページから、正しくページ遷移されたかどうか Test を書きたいが、今はこれで必要十分

routes/web.php

<?php

Route::get('/sample', function() {
    return redirect('/memo', 301);
});

tests/Unit/MemoControllerTest.php

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class MemoControllerTest extends TestCase
{
    public function testMemoIndex()
    {
        $response = $this->get('/sample');

        $response->assertStatus(301);

        $response->assertSee('<meta http-equiv="refresh" content="0;url=http://localhost/memo" />');

    }
}

redirect(‘/memo’, 301) と書いた時の内部的な動き

  • 下のような redirect 用のページが生成される(Laravelが自動的に生成)
  • page の中には 0秒で対象ページ(memo) にリダイレクトするよう、meta属性で定義
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url=http://localhost/memo" />

        <title>Redirecting to http://localhost/memo</title>
    </head>
    <body>
        Redirecting to <a href="http://localhost/memo">http://localhost/memo</a>.
    </body>
</html>

疑問点

  • 環境によって、meta タグ内の content=x が 0秒 / 1秒 と異なる。これが異なる理由が不明。

所感

  • できればページ遷移した後の content をチェックして true を返すような Test に書き換えたい
  • まさか内部的に Redirect 用のページを挟んでいるとは思ってもいなかったので、Test によって Framework の理解が少し深まった。

全然関係ないけど

Hatena の Markdown で言語を引用する場合、<?php ってかかないとPHPと認識されないみたい。
たしかに class だけ書いてたらわからないよね。

builderscon tokyo 2017 へ行ってきた!

builderscon tokyo 2017 に参戦。
テーマ通り、「知らないを聞く」を楽しめた。
とにかく運営の方々、オーガナイザーの方々の楽しい雰囲気が伝わってきて、
最高の時間をすごせた。なんだろう。夏祭りみたいな。
運営の皆さん、本当にありがとうございました。

普段触っているPHP以外も見たかったが、見たいPHPセッションと重なり
いくつかはスライドを楽しみに待つ。

参加したトークは以下
スライドやリンクは追記予定

8/3 前夜祭

  • 不参加
    • 悔やまれる。次回はフルで参加したい

8/4 Day1

PHPで支える大規模アーキテクチャ

PHP / Lambda/ Kappa Architecture / Cassandra / Kafka / Presto / Spark

PHP でも Kafka / Spark あたりとの接続が出来る事を知らなかったし、
どういうライブラリを間に使っているのか、メモれなかったので発表資料の公開を楽しみに待つ。
一部は Scala の実装が必要だとか。Spark起動とかだったかな。

PHPで作っていき、スケールし Message Queue 使う運用のイメージがつかなったが
実際に億レコードのRDBMSの限界の話など、リアルな運用の苦労を知った。
Kappa Architecture は初めて聞いて面白いと思った
(Kafka / Spark / Cassandra の中で、Cassandra は使った事ないので仕事で使いたいなー)

ランチセッション A 株式会社VOYAGE GROUP

  • ajito.fm の存在を初めてしったので watch したい

ランチセッションB Momentum株式会社

  • 追記予定

マイクロチームでの高速な新規開発を支える開発・分析基盤

データは神よりも正しいというような社内文化がとても素敵だった。
お昼休みに論文を読みながら話したり、チームから改善のような温度を感じた。

質疑応答のスペックの話しは、素直にチームのスペックはかなり高いように感じたが
他の人はどう感じたのか。
あと、社内に流用可能なライブラリが豊富にあるようで
近しいアプリを作る時のスピード、解析のノウハウは圧倒的に多そうという感じ。
なにより、分析にユーザのログをかなり集めている所に感動した。
スワイプの数まで取っているとは。。

複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ

しんぺーさんはbuilderscon tokyo 2016 でも一度トークを見て、
スピードと間にはさむ子どもの写真がとても気になってたので今回も参加。
何よりアーキテクチャの話しが多そうだったので。
実際には、ドメインの切り分けを行うアーキテクチャを幾つか紹介していて
特に図で PDS / Layerd Architecture / CQRS は本当に知りたかった情報で
これからも見返す資料になりそう。
このサンプルを見るために Vue.js を読み解きたい。 コマンドとクエリの図はソースみないと理解出来なさそう。

RDBアンチパターン リファクタリング

上がってくるアンチパターンが、今の業務システムにハマりすぎてかなり笑った。
データベースの設計が積み木を積むイメージという考え方はとてもわかり易く、
三角の上に丸いオブジェクトを載せる天才は存在する例えなど、
資料とトークの上手さもあり、最高だった。

LT

QRコードを16分割に出来るトークは、かなり面白く、何か応用出来ないかと思い
LT以外でも聞いてみたかった。

8/4 Day2

まさかの寝過ごして、5分くらい遅れ
今日こそは朝ごはんを頂きたかった。

知られざる世界 〜WEB以外のPHP

PHPで IoT / DesktopApp / Daemon / パケットキャプチャ で遊びましょうというトーク
Webではまったく使わない情報をどうやって知っているのかという会場からの質問に
GitHubPHP xxx で 調べるというハックを聞いた

PHP で書いて Electron で動かすのは結構良さそうと思ったので
何かDesktopアプリを作るときは参考にしたい(メーラは便利そうだった)

小さく始めて育てるコンパイラ

俺言語を作る流れの紹介
言語を作るのは時間がかかるが、MinCaml をベースに実装を進めている話し
そもそも関数型言語に慣れていないせいか、DEMOのサンプルプログラムでも
結構ついていくのに必死だった。
でもこれぞ普段自分では触らない領域を知るって事もあり、ワクワク感があった。
あ。こういう遊び、こういう追求っていいなって純粋に。

Make you a React: How to build your own JavaScript framework.

VirtualDOM の話し。
細かくクラスとメソッド切って、実装を進めるDEMOだったが、
途中から実装の意味と内容がついていけず。。。

Factory Class

Kickstarter でつのったオリジナルキーボードが400くらい売れればって思ったけど
2000の back があった話しだった。
実際に中国、台湾、日本のパートナー探しがいかに大変かを聞けた。
話しを聞いてて、受託の時の事が思い浮かんだ。結構悩んで見積りを考えたり、
見積りでストーリーを考えたり。
(見積りはシナリオなんだよという昔の営業の先輩の事を思い出した)

型を意識した PHP アプリケーション開発

裏で Slack の方のトークがあったのでギリギリまで悩んだが、「PHPの現場」の
Podcast も楽しんで聞いているので、一度は shin1x1 さんを見てみたかったという
ファンのような感じ かつ、今学んでいる DDD 関連の話しが聞けそうという事で選択。
結果として、Value Object の実装をライブコーディングで見れたのは大きい。
DateOfBirth Class を carbon\chronos を継承するだけでなく、
必要なメソッドだけを生やして移譲に持っていく方法は今後の参考にする。

PhpStorm のショートカットとたぶん IdeaVim の併せ技で、かなり高速に
画面内移動してたのは真似したい。
地味に右クリックメニューから UnitTest まわせるの知らなかった。

Closing

  • つながり
  • 「安全地帯」の外に飛び出そう!
    なぜイベントを企画している、を聞けたのは良かった。
    週明けは会社のブログに投稿して、同僚に共有しようと思う。
    ほんと最高の2日間だった。(初日行けなかったの悔しい。。。)

Laravel ServiceProviderの bind / singleton の使い分け

使い分け

// singleton を利用すると内容が cache される
$this->app->singleton(MemoServiceInterface::class, MemoService::class);
// bind でも同様に動作するが、 cache されない
$this->app->bind(MemoServiceInterface::class, MemoService::class);

余談

ぐるぐるまわって、今更だけどサービスコンテナに感動してる。
なんなのこれ。魔法すぎる。