会議でしゃべらない人の巻き込み方


会議ではしゃべらない人がよく出てきます(全員意見を言う職場はとてもいい職場だと思います)。 そういった人に意見を言ってもらう方法をいくつか紹介します。 (アイスブレイクは全体的なものなので省きます。)

前提

会議の目的を明確にするなど、基本的な準備はできているものとします。 何人かは発言しているのだけど、1、2人ほど発言しない人がいる状況を想定します。

(全然まともな意見が出てこないという状況は、会議の準備含む進行に問題があることが多いです。)

なぜ意見を言ってほしいのか

意見を言わない人がいるとどんなことが起きるでしょうか。

  • 後から「本当はXXがいいと思っていたのに」と言われる。
  • 全員の合意がとれないのでどこかに歪みが出てきて最適化が進まない。

簡単にいうと、会議の存在意義が崩れるということだと私は考えています。

まずは会議の人数を適正にしましょう。 一般的に10人を超えると全員が意見を言うのは難しくなってきます。 私は過去の経験から、6人程度が最適だと考えます。 会議の形式や内容に合わせて考えてみてください。

それではここから 全員に意見を言ってもらうために、意見を言わない人を巻き込むためにどのような方法があるのかを書いていきます。

方法

役割を割り当てる

「実は次の会議で Aさんには XXXといった視点から意見を言っていただきたいのでご参加をおねがいします。」

立場によって言い方は異なりますが、上のようにして”なにをしてほしいのか”をあらかじめ伝えておきます。 このようにすると 意見の出し方、 会議の見方がわかりやすくなり、 意見を言いやすくします。

事前に考えを聞いておく

事前にそのメンバに「XXについてどう思いますか?」と個別に聞いておきます。 すると、もし会議で意見が出なくても「AさんはXYZという考えをお持ちでしたよね。」という切り口で話を広げていけます。

事前課題を与える

なにもないところで考えても拠り所がないので何も出てきません。そこで事前課題を与えます。「XXについて2つ、3つ解決法を考えてきてください。」といった課題を出しておきます。 会議の中では事前に用意した意見をもとに話を深めていくことができます。

事前に資料を読んで準備をするのは当たり前じゃないか、と思うこともありますが、言われないと一切準備をしない人もいるものです。

少人数ワークショップ

人数が多いときに特に有効です。 3人1組にして(または各個人単位で)ポストイットに意見を書いてもらいます。 こうすると、全体の中ではなかなか発言できない人でも意外と意見を書いたりします。 書いてもらったポストイットはホワイトボードに貼るなどして 議論を深めていきます。 ツールの名前でいうと、親和図というのにつながっていきます。

それぞれの意見(または選抜もしくはカテゴライズされた意見)について議論を深めることができるので、なかなか話さない人からも「これってどういうことですか?」というように話を引き出すきっかけを作れます。

ポストイットに書く方法は 3人1組 で話しながら意見を書いていくスタイルもありますし、 各個人で書く時間を作るスタイルもあります。

専門領域のことを聞いてみる

いろんな部署の人が集まっているとします。 そういった場合に「Aさん これはXXXの観点からみるとどうでしょうか。」と聞いてみます。 答えが得られたら「ありがとうございます。なかなかこの専門知識のある人がいないので助かりました」と伝えます。 こうやって参加しない人を巻き込んでいきます。

使える会議の種類は限られてくるかもしれません。

ルールにする

「全員発言する」というルールを作ります。 言えと言われて言えるものではないので効果は薄いと思っているのですが、 ルールにすることで「自分も言わなきゃ」という意識を持たせることができます。

次回に期待

手を尽くしても発言が出てこなかった場合、その人に対して「ちょっと会議での様子が変だったのですが何かありましたか?」と聞いてみます。 言い方に気をつけないと危ないのですが、このようにして会議で発言してほしいという気持ちをソフトに伝える方法です。


「やりがいのある仕事」という幻想


「やりがいのある仕事」という幻想

「やりがいのある仕事」という幻想を読みました。仕事に悩んだときにおすすめの本です。

あたりまえのことを 極限まで客観視して書かれた本です。

今の仕事は天職か?

楽しいことを仕事にしたり、仕事をがんばることに意味を見出したり、そういうやり方もあります。 しかし著者はもっと広く考えていました。

仕事が楽しくなければ一体なにが楽しいのか?

ひとつ本書の記述を紹介します。 もっと楽しいことを探してそれを「やる」時間を持つ、 それもひとつのやり方だと書かれています。

これを読んだからといって、明日から大きく考え方が変わるということもないし、どの職業がいいといったことも書かれていない。 だけれども、 転職したい、 仕事やりたくない、 やりがいのある仕事につきたい、 と思い悩んでいる人には 別の考え方で自分を見直す機会を作るという意味で、 とてもいい本だと思う。


FuelPHP 複数データベースへの migration


FuelPHP で複数データベースへ migration を行うやり方を説明します。 FuelPHP 1.7.2 を想定しています。

FuelPHP では php oil g model item name:string などのようにすると、 model と migration のためのコードが生成されます。 php oil g scaffold ... とやった場合にも migration のコードが生成されます。 ここで生成される migration コード に手を加えることで 複数データベースに対応させることができます。

変更前のコード

変更後のコード

db_config_key というのを付け加えました。 このパラメータでデータベースを指定できます。 具体的には config/db.php 内 のキーになります。 たとえば 'default' なんてのが入ります。 何も指定がなければ 'default' が採用されます。

このようにして複数データベースに対応させることができます。 migration の コードごとに データベースを書き換えればいいですからね。

Model の コードを活用した書き方

Model を利用してやってみましょう。

Model_ItemOrm を使っているという前提の話ですが、 データベースの指定に Model_Item::connection() を、 テーブルの指定に Model_Item::table() を、 主キーの指定に Model_Item::primary_key() を使っています。 このようにすると、 model の中に書いておけば migration のコードを変更しなくても済みます。 (ただし 既存テーブルについて model の テーブル名や $_connection を変更する場合には注意が必要になります。)


DIxAOP の Java Framework, Spring


Spring3 入門 (技術評論社)
Spring3入門 を Amazonで買う

DIxAOP ってなんだ? と思っていたら、 ある人が紹介してくれました。 DIxAOPについてはわかりやすく書かれているそうです。 パラパラっと見てみましたが、 EAADDD などのアーキテクチャを一通り知っている人が書いた本に見えます。 今回は第1章をじっくり読んでみました。 Spring フレームワーク の前書きみたいな内容で、 Spring を使ったことのない私にはちょうどいいです。

Spring の特徴

Spring の特徴として 際立っているのが DIxAOP だ。 第1章では紹介程度になっているのだが DIxAOP なくして Spring は成り立たないといっても過言ではなさそうだ。

Spring の DIxAOP 設計 は Webアプリケーション が抱える 3つの問題点 を解決する。 以下、簡単にまとめた。

オブジェクトのライフサイクルの問題
オブジェクトの生存期間をコントロールする作りこみが困難
部品化の問題
部品化をするためには実装非依存にする必要があるが、それなりにコストがかかる。 (注: 単にインターフェースを使えばいいという問題ではない。)
技術隠蔽や不適切な技術隠蔽
高レベルの技術を初級レベルの開発者に利用させて不具合を引き起こしてしまったり、不適切な技術隠蔽をしてその技術の利用が困難になってしまったりすることが開発現場でよく起こる。

Spring では、 上2つの問題を DIコンテナ が、 最後の問題を AOP が解決する。

Webフレームワーク というと Rails や FuelPHP, CakePHP などがあり、 「(アクティブレコードパターンの) 簡単にデータベースが使えるもの」という印象を受けてしまいがちですが、 Spring3 入門 では アーキテクチャ の考え方からしっかりと書かれていて EAAに見られるパターンの説明も(第1章では)随所で行われています。 第1章では特にレイヤの分離の説明が重点的に行われています(フレームワークを使う人には是非ともわかるようになっていてほしい内容です!)。 コードの例もあり、全体的にしっかりした印象を受けます。

以下、第1章の中で私が(個人的に)重要だと思った内容を簡単に書き留めました。

アプリケーションアーキテクチャ

プログラムを作る際には 最低でも 2つの方面からの要件・目標がある。

  • ユーザの要件: ユースケースなどで表される機能要求やレスポンスタイムなどの非機能要求
  • 開発者・運用者の目標: 開発期間の厳守、変更・機能追加のしやすさ、テストのやりやすさ

この本では 2つ目の 開発者・運用者の目標 からアーキテクチャの重要性が説かれている。

アーキテクチャに求められるもの

  • 開発効率
    • 意図を把握しやすく、理解しやすい構造
    • テストが容易に行える構造
  • 柔軟性
    • 変更しやすく、機能追加しやすい構造
    • 将来の環境の変動に耐えられる頑健な構造

ティアとレイヤ

Web アプリケーション の アーキテクチャ は ティア と レイヤ に分かれている。 ティア は 物理層 を表し、 レイヤ は 論理層 を表す。

ティア

クライアント層、中間層、 EIS(Enterprise Information System)層 の 3つに分かれるのが基本となっている。

各ティアの例
クライアント層 パソコン、スマートフォン
中間層 アプリケーションサーバ
EIS層 DB、レガシシステム

レイヤ

EAA の冒頭あたりにある分類と同じ分け方でレイヤが書かれている(プレゼンテーション層、ビジネスロジック層、データアクセス層 の3層)。 (もちろん異なる分け方もある。) 互いに隣接するレイヤ間では一方向のアクセスのみ許す。

トランザクション処理がどのレイヤに属するのかは迷うところだが、本書ではプレゼンテーション層とビジネスロジック層の境界と説明されている。

Spring3 入門 (技術評論社)
Spring3入門 を Amazonで買う

A Life Summary of an Gypsy