『HBR 2016/12 「チームの力」』『リーダブルコード』を読んだ

Harvard Business Review 2016年12月号 「チームの力」

『チームワークは4つの要素で決まる』『多様なメンバーの「違い」に気づく技術』『メンバーを変えずにチームで変革を進める法』が良い章でした。 特に『多様なメンバーの「違い」に気づく技術』は実践的な内容となっており、チーム内の信頼・理解の基礎を築く上でメンバーについて知っておくべき5つのことを挙げている。

  • 人物の見方 - 見た目などの違いに囚われる
    • 人間はごく短期間の接触で仲間の性格や能力、地位を即座に判断する(とくにネガティブな面)。
      • 見た目や動き、服装、声のトーン、発言内容などを元に判断している。
    • また人によって、重視する要素は異なり、経験など仕事に直接関わる特徴を重視する人もいれば、年齢・性別・学歴などの属性を重視する人もいる。
  • 行動の仕方 - 言動を誤解する
    • 他人に対して許容する物理的な距離や境界線、時間に対する考え方、仕事に対する自己主張の強さ、個人で仕事を行うか助け会って行うか、といった面がある。
  • 話し方 - 言葉で行き違いが生じる
    • 自己表現のために選ぶ言葉、率直な物言いやユーモア、話の中断、横槍に対する許容度など、数多くの側面がある。
  • 考え方 - 異なる思考法に支配される
    • 個性や経験が異なるために、問題解決や意思決定に対するアプローチが異なる。
      • 特に行動してから考えるタイプの人と分析を重視する人の間に対立が生じやすい。
  • 感じ方 - 感情表現の仕方が異なる
    • 気持ちの強さや熱意の伝え方、意見が対立した時の感情のコントロールの仕方が大きく異ることがある。

各それぞれの項目に対して具体的な質問例も載っており、チームをまとめるとなった際にはすぐに活用できる内容でした。

リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

名著と言われるだけのことはあって非常に役立つ本でした。

理解しやすいコードについて、変数名からコメント、制御フロー、全体の構造まで、一通り網羅して解説しています。 1つ1つサンプルコードを提示してくれているので、理解しやすい本でした。

コードレビューをしていると、名前と実行内容が異なっていたり、変数名が何を表しているのかわからず、レビューに時間がかかってしまうことがあります。 自分がそういったPRを出してしまわないためにも読んでおくべき本と感じます。

『経済は「予想外のつながり」で動く』『How Google Works』を読んだ

経済は「予想外のつながり」で動く

経済は「予想外のつながり」で動く

経済は「予想外のつながり」で動く

著者はハーバード・サイモンが述べた人間の限定合理性を根拠にして、従来の経済学で想定されている合理的な人をベースにした経済理論に対して懐疑的な意見を述べています。

現実の人間の行動は、周りの意見等に左右されており、従来の経済学で想定されている個々の判断は独立して行われるということを幾つかの実験を引用して批判しています。

その上で、ネットワーク理論から新しいモデルの構築を試みているようでした。

ただ、全体的にマクロとミクロの例が入り混じっており、モデルもあまりはっきりしたものが示されておらず、消化不良の感のある本でした。

How Google Works

How Google Works (ハウ・グーグル・ワークス)  ―私たちの働き方とマネジメント

How Google Works (ハウ・グーグル・ワークス) ―私たちの働き方とマネジメント

グーグル社内で行われいるマネジメントについて記された本です。「スマートクリエイティブ」と呼ばれる高度な専門知識と実行力を兼ね揃えた人材をマネジメントするにあたり、どのような点に着目しているかが網羅されています。

個人的には、人材の「採用」について重視していると感じました。それが端的にまとまっていると思うのは以下の部分です。

グーグルの「採用のおきて」

・自分より優秀で博識な人物を採用せよ。学ぶもののない、あるいは手強いと感じない人物は採用してはならない。

・プロダクトと企業文化に付加価値をもたらしそうな人物を採用せよ。両方に貢献が見込めない人物は採用してはならない。

・仕事を成し遂げる人物を採用せよ。問題について考えるだけの人物は採用してはならない。

・熱意があり、自発的で、情熱的な人物を採用せよ。仕事がほしいだけの人物は採用してはならない。

・周囲に刺激を与え、協力できる人物を採用せよ。ひとりで仕事をしたがる人物は採用してはならない。

・チームや会社とともに成長しそうな人物を採用せよ。スキルセットや興味の幅が狭い人物は採用してはならない。

・多才でユニークな興味や才能を持っている人物を採用せよ。仕事しか能がない人物は採用してはならない。

・倫理観があり、率直に意思を伝える人物を採用せよ。駆け引きをしたり、他人を操ろうとする人物を採用してはならない。

・最高の候補者を見つけた場合のみ採用せよ。一切の妥協は許されない。

「採用の質を犠牲にしてまで埋めるべきポストはない」とも書かれており、並々ならぬ力の入れ具合を感じた次第です。

mbed CLIでのコンパイルを楽にするシェルスクリプト

はじめに

この記事はmbed Advent Calendar 2016の6日目の記事です。

mbed CLIがリリースされ、ローカル環境でのコンパイルが楽になりました。 しかし、コンパイルするときにボードを設定したり、コンパイルされたファイルが結構深い階層にあったりと、何度も手作業で繰り返すのは結構面倒です。 そこで一発でボードを自動的に判定し、mbedへのコピーまでやってくれるスクリプトを作ったので紹介します。

mbed CLI自体のインストールについては、既に日本語の記事がまとまっていますので、以下をご覧ください。

mbed CLI (コマンドライン・インタフェース)を Mac OS X で使ってみる | mbed

作ったスクリプト

#!/bin/bash

set -eu

PROGRAM_NAME=$(basename `pwd`)
MBED_DETECT=$(mbed detect | grep Detected | sed 's/,//g' | head -n 1)

if [ -z "${MBED_DETECT}" ];then
    echo "[info] No mbed boards are found."
    exit 1;
fi

TARGET=$(echo ${MBED_DETECT} | cut -d' ' -f3)
MBED_VOLUME=$(echo ${MBED_DETECT} | cut -d' ' -f7)

echo "[info] Target:"${TARGET}", Volume:"${MBED_VOLUME}

TOOL_CHAIN="GCC_ARM"

mbed compile --toolchain ${TOOL_CHAIN} --target ${TARGET}

BUILD_PATH=$(echo "BUILD/"${TARGET}"/"${TOOL_CHAIN}"/"${PROGRAM_NAME}".bin")
cp ${BUILD_PATH} ${MBED_VOLUME}/
echo "[info] Success to copy from "${BUILD_PATH}" to "${MBED_VOLUME}

適当な名前(compile.shなど)で保存し、$ bash compile.shとするか実行権限をつけて直接スクリプトを叩けば実行されます。

手元のLPC1768で試して動くことを確認しましたが、それ以外のボードでは未検証です。動かない場合は教えてください。

なおMacでしか動かないと思います(Linuxは動くかもですが)。

やっていること

mbed detectでターゲットとコピー先のボリュームを取得し、mbed compileで生成されたbinファイルをコピーしています。

mbed newmbed importするとディレクトリ名がbinファイルのファイル名となるので、それも利用しています。

複数のmbedがPCに接続されている場合はmbed detectで先頭になる1台に対してコピーが行われます。