$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

YAPC::Hiroshima 2024にクラスター株式会社としてスポンサー参加しました #yapcjapan

毎年恒例YAPCに行ってきました!いやー今回も楽しかったですね。いろんな種類の発表もあり、久しぶりの人や名前は知っているけど話したことない人ともたくさん関われました。スタッフの皆さん、こんな楽しいカンファレンスを開催してくれてありがとうございます。

発表としてはy_matsuwitterさんの「経営・意思・エンジニアリング」がもっとも印象に残っています。自分はエンジニアの立場でもちゃんと経営のことを知っておいた方が良いと思い、最近少しずつ学習しています。なぜなら知っておくことで自分の課題意識を自分の視点からだけでなく、経営に関わるメンバーのメリットを意識して伝えられ、その結果目線を合わせて改善に取り組めるからです。そういう気持ちがあったため、この発表の中で説明されていた経営の3つの変数と4つの制約の話は非常に参考になりました。

懇親会や二次会では、ar_tamaさんに着いて行ったらakiroomさん/川口さん/y_matsuwitterさんと話ができたり、zoncoenさんに誘ってもらって着いて行ったらupamuneさん/itkqさん/sugamasaoさんと話ができたりと、今まであまり話してこなかった人と関われたことが嬉しかったです。今回のYAPCでは今まで関わったことない人にもちゃんと話しかけようと思っていたため、その目標を達成できて良かったです。 他にも久々にはてな&はてなOBと話せたり、YAPCでよく会う人と再会したりと、いつも通りの同窓会的楽しさもありました。

また僕は企業スポンサーとして学生座談会に参加しました。学生の人が事前に質問を作ってくれていたのに答えていく形式でした。いくつかの回答についてはserimaさんがまとめてくれていました。ありがとうございます。 僕も学生時代に京都にGREEの藤本さんが来た会があり、そのきっかけではてなに入社できて人生変わったという経験がありました。僕も何か少しでも学生さんに役立つ答えを返せてたらいいなと感じています。 学生座談会では質問ビンゴでAmazonギフト券が当たるという催しだったのですが、そのギフト券は懇親会中に指定した企業に受け取りに行くという仕組みでした。この仕組みのおかげで自分のところに来た学生さんを、その人が興味を持った発表の発表者のところに連れていくことが出来ました。昔自分もYAPCで先輩エンジニアにPerlハッカーの集団のところに連れて行ってもらうみたいな良い経験を出来たので、同じようなことをサポート出来て良かったなと思います。

さらに本編翌日にはYAYAPC::Hiroshimaにも行ってきました。こちらも最高でした。何が最高かはルール上言えないのですが、これぞオフライン開催の醍醐味というイベントだったと思います。いろんな裏話には大事な知見が隠れてますね。あと有料イベントにしてくれていいんやで...

YAPCは毎回刺激をもらえて本当に楽しいです。スタッフの皆さん、毎年開催してくれてありがとうございます。来年開催されたらぜひ行きたいと思います!

文化による知覚・認識・行動への影響を知る - 異文化理解力を読んだ

異文化理解力という本がおもしろいと聞いたことがあり、興味があったので読んだ。想像以上に面白く夢中になって一気に読んでしまった。

この本は、国ごとの文化が、そこに属する人々の知覚・認識・行動へどれほど影響を与えているかを教えてくれる。指標として8つを提示し、それぞれの中で各国がどのような位置にいるかを相対的に示してくれる。8つの指標とは次のようなものだ。

  • コミュニケーション:ローコンテキストvsハイコンテキスト
  • 評価:直接的なネガティブ・フィードバックvs間接的なネガティブ・フィードバック
  • 説得:原理優先vs応用優先
  • リード:平等主義vs階層主義
  • 決断:合意志向vsトップダウン式
  • 信頼:タスクベースvs関係ベース
  • 見解の相違:対立型vs対立回避型
  • スケジューリング:直線的な時間vs柔軟な時間

個人差はあるものの、国によって知覚・認識・行動のベースラインが相当異なると知れたのは良かった。とくに日本は極端な位置に配置されることが多く、グローバルなコミュニケーションを取る時は気をつける必要がある。たとえば日本は超ハイコンテキストであり、ネガティブ・フィードバックはもっとも間接的に伝え、階層主義的なのに合意志向が極端に強い。この考えのままグローバルなコミュニケーションをすると、別の国の人には何も伝わらないし、別の国の人からは日本人は行動が遅いと言われる可能性がある。自分たちがどの位置にいるかを知った上でコミュニケーションを取るとより円滑にものごとを進められそうだ。

また、特定のベストプラクティスを取り入れるときに、そのベストプラクティスがどの国の文化をベースにしているかも大事そうだ。たとえばスクラムに関連するプラクティスを導入しようと考えた時、日本とは全然違う文化のもとで作られたものをそのまま日本企業に導入しようとすると、そのベースとなる考え方が違いすぎてうまく行かないということがありそうだ。ベストプラクティスはいろんな文脈でもうまくいくことが多いように作られている傾向にあるが、いきなりそこに向かわずに文化に浸透する形で改変しつつ、徐々に良い方向に向かわせるのが大事と感じた。

示唆に富む内容だったので非常にオススメな本だった。とくにいろんな国の人がいる企業で働いている場合にはかなり参考になることが多いと思う。

Googleスプレッドシートで特定の列ヘッダー名を持つ1列を読み込む

別シートからQUERYなどの関数を用いて読み込みたいことがある。この時 =QUERY(..., "select A, C", 1)のようにAやCのような識別子を用いて読み込める。この方式は簡単に別の場所から読み込めるため非常に便利に使える。

一方でマスターとなっているシートで列の増減があった場合に、この手法は壊れやすいという問題がある。そこで対処法を考えてみたのでメモしておく。

列の増減に対応できるようにするには、列ヘッダー名指定で読み込めれば良い。自分だとINDEXMATCHを組み合わせて達成した。サンプルとして https://docs.google.com/spreadsheets/d/1YH8dxBUCpuy9EcAN9PW4kUKeVWne3qCBTQMgV9dfvE4/edit#gid=0 を用意した。

たとえばmasterdataシートから「名前」という列ヘッダー名を持つ1列をすべて読み込むには次のような関数を使う。

=INDEX(masterdata!A:AA, 0, MATCH("名前", masterdata!1:1, 0))
  • (1) MATCHの利用によって1行目の中で「名前」という値が何列目にあるかを返せる
  • (2) INDEXで行に0(=全行返す)+ (1)で返ってきた列番号を与えることで、「名前」が列ヘッダーとなっている列をすべて取れる

こんな感じでやりたいことができました。他に良いやり方があれば募集。