別にしんどくないブログ

技術のことや読書メモを書いています

チームに必要な「5つの法則」とチェックリスト / 『THE TEAM 5つの法則』を読んだ

GWは実家に帰省していました。同様に帰省していた弟が『THE TEAM 5つの法則』という本を持ってきていました。書店でも見かけたことがある表紙だったのでパラパラと読み始めると面白かったので一気に全部読んでしまいました。

この本はよく言われる「良いチーム」への誤解を主張するところから始まります。  

例えば「目標を確実に達成するのが良いチームだ」「チームはコミュニケーションが多ければ多い方が良い」「みんなで話し合って決めるのが良いチームだ」といった当たり前のように良いと思われていることに対して、実は時にチームが十分にパフォーマンスを出せない原因になり得ると主張しています。著者は「チームの法則」を用いることで、こういった誰もが持つ誤った認識を解消し、本来あるべきチームの姿をつくることができると主張しています。

その法則は「5つの法則」に分類することができます。

  • Aim(目標設定)
    • チェックリスト
    • メモ
  • Boarding(人員選定)
    • チェックリスト
    • メモ
  • Communication(意思疎通)
    • チェックリスト
    • メモ
  • Decision(意思決定)
    • チェックリスト
    • メモ
  • Engagement(共感創造)
    • チェックリスト
    • メモ
続きを読む

v-kansai Vue.js/Nuxt.js meetup #5でamp-scriptについて話します。 #v_kansai

AMP Conf 2019から気になっていたamp-scriptについてVue.jsを交えて話をします。 本番までに修正するかもしれませんが、以下資料です。

speakerdeck.com

もし不備や質問があれば、ブコメTwitterで教えていただけると幸いです。

参考

Node.js v12で使えるJavaScriptの新機能

Node.js v12が4/23にリリースされました 🚀

Node.jsのCoreにも新しい機能が入りました。 また、APIの追加以外にもTLS1.3のサポートやhttp_parserがllhttpに代わったりしています。 詳しくは以下をご覧ください!

github.com

JavaScriptエンジンであるV8もバージョンアップしています。
Node.js v10のV8のバージョンは6.8でしたが、Node.js v12では7.4に大幅アップデートしています。
V8のバージョンが上がることによりJavaScriptの使える機能や構文が増えます。
今回はMathias氏のツイートをもとにNode.js v12から使えるJavaScript(ECMAScript)の新機能について紹介したいと思います。

続きを読む

『徳丸浩のWebセキュリティ教室』を読んだ

徳丸浩のWebセキュリティ教室

徳丸浩のWebセキュリティ教室

セキュリティの専門家として著名な徳丸先生が2015年に出版された本である。
170ページほどで薄めの本ながらWebのセキュリティに関して様々な事例や解説が紹介されている。
いくつか例を挙げると、XSSSQLインジェクションCSRFなどの説明やさくらVPSへの不正ログイン事件やGHOSTなどの事例をが書かれている。
本書序盤から度々出てくる「脆弱性はバグという意識を持つ」は開発者全員が意識しなければいけないと感じた。
あと発注者も意識が必要と書かれており、セキュリティ要件の提案と見積をRFPに盛り込んでおくことが勧められていた。
これにより発注側にもセキュリティ対策の責任を持つと開発者との責任のなすりつけ合いや逐一確認するといった無駄も省けて良さそうだと感じた。
またIPAの「安全なウェブサイトの作り方」や「セキュリティ実装チェックリスト」に沿って確認するのも勧められている。

www.ipa.go.jp

また「安全なウェブサイトの作り方」は2015年に改訂され、以下の脆弱性について詳細や対策を解説している。無料で公開されているので、セキュリティへの関心の第一歩として一読するのは良さそうである。

  1. SQLインジェクション
  2. 0Sコマンドインジェクション
  3. パス名パラメータの未チェック/ディレクトリトラバーサル
  4. セッション管理の不備
  5. XSS(クロスサイトスクリプティング)
  6. CSRF(クロスサイトリクエストフォージェリ)
  7. HTTPヘッダーインジェクション 8.メールヘッダーインジェクション
  8. クリックジャッキング
  9. バッファオーバーフロー
  10. アクセス制御や認可制御の欠落

1日は1440分しかない / 『1440分の使い方 ──成功者たちの時間管理15の秘訣』を読んだ

1440分の使い方 ──成功者たちの時間管理15の秘訣

1440分の使い方 ──成功者たちの時間管理15の秘訣

最近無限に時間が足りないと感じています。
時間は有限なので取捨選択していかなければいけないと感じたときにPrime Readingで本書があったので読みました。

以下読書メモです。

1440の威力

  • 一日は1440分しかない
  • 1分がどれだけ重要か意識し、自分にとって何が最も重要か考える
  • その目標につながることに集中する。

適切な優先順位の重要性

-目標は具体的にする - 例えば2ヶ月で5キロ痩せるなど具体的な数値を設定するのが重要 - 具体的な目標に向けて必要なことなすべて洗い出す - 自分の成功体験を例にすると、Node.jsのコラボレーターになると決めたときも半年という期限を設けて、それまでに必要なコミットの数を考えて進めることで達成できた - MIT(目標に対して最も重要なタスク)に注力する - 目覚めてから2時間が脳のゴールデンタイムなので、この時間に最も重要なタスクに注力する - 最も重要なタスク(MIT)を特定し、毎日、何よりも先に取り組む

ToDoはいらない

  • 重要なことはすべて、やる時間を決め、15分単位でスケジュール表に入れておく
  • 30〜90分の何も無いバッファタイムをスケジュールしておく
  • タイムブロッキングする
    • 重要なことに集中するときはカレンダーに登録してMTGなどを入れられないようにしておくとよいかも

先延ばしを克服する

  • 未来の自分は、今この瞬間の私たちを妨害しようとする
  • 人間は利益を望むよりも損失を恐れるようにできているので、目標達成時のアメを与える代わりに、目標未達成時の罰則を科せばいい
  • 理想的な自分になったつもりで自分に語りかける。例えば、「私はジョギングを習慣にしている」「私はベストセラー作家だ」と。
  • 理想的な自分になりきることで、先延ばしにしがちな問題もやらないと気持ちが悪く感じる

ノート術

  • 常にノートを持ち歩く
  • キーボード入力より手書きの方が記憶に定着しやすい
  • 日記をつけて毎年元旦に昨年分を読み返すことで自分の進捗を振り返る

メール術

  • メール購読を解除する
  • メール通知をOFFにする
  • メールは1日に3回、21分ずつ時間を制限する
  • メールは常に短く簡潔に

会議術

  • 会議前にアジェンダを共有し意見を求める
  • 会議の目的を明記する
  • 進行役を明記する
  • 議題はなるべく疑問文で書く
  • 会議の時間の目安を明記する
  • 日時の小会議は15分に留める

大成功に導く小さな一言

  • 当面の目標達成に役立たない誘いは断る

読書と勉強の80対20

  • 各章の最初と最後の段落、段落後の1文を読むだけで8割がた理解できる
  • 重要なことに注力して、それ以外は妥協するか一切やらない

外部委託する

  • 1年ごとに時間の使い方を振り返り、少なくとも15%は外部委託する

1日のテーマを決める

  • 1週間を3種類に分ける
    • 集中日: 自分が得意なことに集中する
    • 予備日: メール対応や会議、書類仕事を行う
    • 休日: 仕事を一切しない。仕事以外のことに集中する
  • 休暇は予備日で挟む。金曜日と月曜日を予備日にする

一度しか触らない

  • 5分間で終わるタスクは一度しか触らない
  • 返信しなければいけないメールはすぐに返信する
  • 先送りしない

朝を変えて、人生を変える

  • 家族より15分早く起きる。みんなより15分早く出社する。朝の15分に集中すべきことを行う

その他時間管理の秘訣

  • ベストコンディションであるためには、ダウンタイムも少しは必要

「富を失ったら懸命に働けばいい。知識を失ったら勉強すればいい。健康を失ったら禁酒するか薬を飲めばいい。しかし時間は、一度失ったら永遠に戻ってこない」――サミュエル・スマイルズ(イギリスの作家、『自助論』著者)

読後感想

1440分しかないという風には考えていなかったので、この数字を意識するだけでも日々の時間の使い方の決定に影響はありそうだと感じました。
冒頭に書いた通り、取捨選択しなければいけないことはわかりきっているので本書に背中を押してもらった気分です。

以上、最後までお読みいただきありがとうございました。
関連本やオススメ本がありましたらブコメTwitterで教えていただけると幸いです。

総関西サイバーセキュリティLT大会で脆弱性のあるJSライブラリの話をします #sec_kansai

2019-04-10に行われる『総関西サイバーセキュリティLT大会(第14回)』でJavaScriptのライブラリの脆弱性に関する発表をします。 sec-kansai.connpass.com

speakerdeck.com

5分の発表なので、あまり踏み込んだ内容にはなっていませんが参考になれば幸いです。
不備や不明確なところがありましたら、ブコメTwitter(@shisama_)にて教えていただけると助かります。

脆弱性に関してはNode.jsもnpmも尽力しています。もし使っているnpmパッケージで脆弱性があった場合は https://npmjs.com のパッケージのページから報告お願いいたします。

ライブラリではないですが、Node.jsに関する脆弱性の報告も以下のリンク先で受け付けているのでよろしくお願いいたします。

nodejs.org

『Team Geek』を読んだ。

本書は定評があり、以前から勧められていたのですが積読が多く読めていませんでした。
最近、チームで働くこと、特にチームメンバーとの協調や生産性向上がうまくいってないように感じているので読んでみました。

以下は各章ごとに気になったことのメモです。

1章 天才プログラマの神話

  • チームで働くための三本柱
    • Humility (謙虚)
    • Respect (尊敬)
    • Trusty (信頼)
    • HRTなのでハート(Heart)と呼ぶみたい
    • 本書の中心にどうすれば良いチームを築くことができるのかを網羅的に解説している
  • エゴをなくす
  • チームメンバーを信頼して仕事を任せる
  • 批判は個人的なものではなく優れたプロダクトを開発するための必要なプロセスであるか、そこに尊敬が含まれていなければならない
  • 建設的な批判の仕方を学ぶ必要がある。そのために気の利いたフレーズを使えるようにする

2章 素晴しいチーム文化を作る

  • ミッション・ステートメントを明確に定める
    • プロダクトのスコープを制限する
    • やること/やらないことを明確にしておくと年単位で仕事の節約になる
  • MTGは必要な人だけで行う
  • MTG前はアジェンダを用意する
  • MTGのゴールに早くたどり着けば時間内でも終わる

3章船にはキャプテンが必要

アンチパターン

  • 自分の言いなりになる人を採用する
  • パフォーマンスの低い人を無視する
  • 人間の問題を無視する
  • みんなの友達になる
  • 採用を妥協する
    • エンジニアを5人雇う計画のとき大量募集して上位5人を雇うことがあるが、このやり方はダメなやり方。ジョブズいわく「Aランクの人はAランクの人を採用する。Bランクの人はCランクの人を採用する」
    • 採用に口を挟めなくても腕のいいエンジニアが必要だと主張する。それでも標準的なエンジニアしか雇わないのであれば職場を変えた方がいい
  • チームを子どもとして扱う

リーダーシップパターン

  • エゴをなくす
  • 禅マスタになる
    • 常に平静を保つ
    • 質問は禅マネジメントの秘密である。チームメンバーがアドバイスを求めてきたら、自分で解決しようとするのではなく、解決することを手伝うようにする。自分が答えを持っているかどうかにかかわらず、相談相手には印象が残る
  • 触媒になる
  • 先生やメンターになる
  • 目標を明確にする
  • 正直になる
  • 幸せを追い求める
    • 時間を作ってチームの幸せを計測する
    • チームの幸せを追い求めるには1on1のあとに他に必要なものがあるかを質問する
    • チームの外の幸せを考える

4章 有害な人に対処する

  • 有害な人ではなく、有害な振る舞いを排除する
  • 他人の時間を尊重する
  • 完璧主義者にならない
    • 設計に時間をかけすぎてコーディングがなかなか始められない。結果として、チームとしての生産性を下げている。
  • 優しく追い出す
    • 文句言いたいだけの人に対して優しい口調で優しく接する

5章 組織的操作の技法

  • リスクをとる
    • 年に1回でも失敗していないようなら、それはリスクを取っていないということ
  • 「攻撃的」な仕事と「防御的」な仕事
    • 攻撃的な仕事は、ユーザに見えるもの。UIの改善とかパフォーマンス改善など
    • 防御的な仕事は、プロダクトの健全性を維持するもの。リファクタリング、モニタリングなど
    • 防御的な仕事にかける時間は1/3〜2/3に収める

6章 ユーザーも人間

  • ユーザーに集中すれば、他のことはすべてついてくる
  • 成功しているソフトウェアというのは、問題を限定してそれをうまく解決している
  • Less is more

感想

定評通りの良い内容でした。読んでいて感じたのは最近勉強会やカンファレンスなどで聞くようなチームビルディングの例はこの本に影響受けているものも多いのではないのかなということです。
この本を読みながら「これ最近よく聞くよな」とか「これ何かで読んで実践してみて良かったな」とか他で得た知識が載っていたのですが、もしかすると誰かがこの本から得た知識を実践してアウトプットしていたのかもしれないです。そう考えるとこの本は多くの人に影響を与えた本だと思います。
また、この本は発売が2013年ですが、今読んでも勉強になることが多いので内容はある程度普遍的なものなのではないでしょうか。
この本も時代を超えて読まれていく本になる可能性はあります。願わくば、本書に書かれていることが当たり前の世の中になっていて読まれなくなると良いかと思います。   チームで働くことに悩んでいたり、これからチームで働く人には積極的に勧めていきたいと思います。