分かりやすい文書を作成する勉強会に参加してきました

昨日30日に文書作成ワークフロー体験会という勉強会に参加してきました。これは講師を務めたアイデアクラフト代表の開米さんが、普段から文書改善研修で使っているテキストを使って、実際に文書改善の演習を行うというものです。

イベントのタイトルに「ワークフロー」とあったので、最初は文書作成業の話なのかと思っていましたが、そうではなく、ある状況に対して行動を起こしてもらうまでの工程の流れの事を指していました。文書を書くのが苦手という人でも、そのワークフローのどこでつまずくかは人それぞれだということで、それぞれの工程での着眼点についても説明がありました。

開米さんもおっしゃっていたように、文書の改善に当たって必要な観点(ここでは打ち手と呼んでいましたが)それぞれの知識はごくごく当たり前のことばかりで、割とどんなテキストでも散見されるような内容です。ですので、話を聴いているだけだとなんとなく分かった気になります。

しかし、実際に演習で「分かりにくい文書」を読解して図示するという作業をしてみると、これがなかなか難しい。つまり、どういう場合にどんな観点でどんな知識を適用するかというのがポイントで、そこはやはり場数を踏まなければならないんだろうと感じました。同じ課題でも、人によって成果物が異なり、各人の意図が反映されていて、それらを見比べるのも面白かったです。

こういったスキルは現場の改善に大いに役立つので、自分も実践しながら周囲にも広めていけたらと思います。


アイデアクラフト
http://ideacraft.jp/

TOCの移行ツリーを体験してきました

時間切れとなったTrT

昨日24日(水)は「全体最適の行政マネジメント研究会」のフォローアップ勉強会にお誘いを受けて参加してきました。研究会本体に出てないのに(参加したかったけど予定があって叶わなかったのですが)フォローアップに突然お邪魔させていただきました。

これもTOCの勉強会の一つなのですが、私がいつも参加しているTOCfEではなく、いわゆる本家TOCの方の勉強会です。その名の通り、本来は行政に関わっている方向けの内容なのですが、私は全く関係なく参加させていただきました。

今日学んだツールは移行ツリー(TrT=Transition Tree)。本当はもう一つのツールであるミステリー分析の方に興味があったのですが、今日は残念ながら時間的にそこまでできませんでした。2時間の枠で3グループに分かれてグループワークを行いましたが、私がいたグループだけがいろいろと迷走した挙句に時間切れで完成させることができませんでした。それぞれ目的は異なっていたものの、「TOCを広めたい」っていう共通点があったように思います。

私は移行ツリーは初めてだったのですが、TOCfEでアンビシャスターゲットツリーを学んだことがあったため、最初から移行ツリーを使うというのはとても難しく感じました。やはりテキスト通りに前提条件ツリーから始めて移行ツリーにつなげていくやり方が良いんじゃないかなと(そうするとアンビシャスターゲットツリーと似たようなアプローチになりますしね)。あるいは、私のいたグループが掲げた目標が、移行ツリーを適用するには大き過ぎたのかもしれません。

ワークショップの後は会場を移して食事をしながらの反省会。ここでもYWTMというツールを使って振り返りをしました。YWTMってなんだって二日前にも質問したんですが忘れてしまってまた同じ質問をしてしまいました。で、YWTMとは、

  1. Y…やったこと
  2. W…わかったこと
  3. T…次にやること
  4. M…メリット

を順に挙げていくというものです。これをやることで単に反省するだけでなく、次の行動につなげることができ、振り返りの手法としては素晴らしいなと思いました。これだけでも参加した甲斐があったなと思います。


IC独立10年の節目

昨日23日(火)はIC協会の月例セミナーがあり、参加してきました。ちょうどIC協会が設立10周年を迎えるのにちなんで、今回は「IC独立10年の節目」でグループディスカッションを行いました。実は私も現在独立して10年目でして、途中で法人化したために勘定が変わっちゃってますが、今年の9月で10周年を迎えます。

最初は理事の久保さんと中村さん、お二人とも独立10年目なのですが、それぞれこの10年の総括を発表してくださいました。その中で取り組んできたこと、あるいはこれからの課題など、非常に具体的にわかりやすく説明してくださいました。そのお二人の発表を受けて、理事の齊藤さんがさらにまとめてくださいました。

この後ディスカッションしたのですが、私は独立した時の年齢が若かったせいもあってか、あまり何も考えずになんとなくここまでやってきてしまったところがあり、やっぱりまだまだだなあと思わずにいられませんでした。とはいってももうここまで来てしまったので前に進むしかないわけですが、皆さんの意見を聞いて私も真似してやってみようと思ったことを書いておきたいと思います。

それは、

  • 10年間の軌跡をまとめる(売上やクライアントなど環境の変化も)
  • 種蒔きはとにかく続ける(芽が出るまで3年かかるらしい)
  • 売上目標の見える化をする(定期的に眺める癖を作る)
  • 何事も3年サイクルで考える(これは不思議と共通点)

といったことです。

あとは齊藤さんの「3年後には他の人から何て紹介されたいか」という問いはブランディングのきっかけとして本質的な問いだなと思わされました。これは全員が発表するということになっていたので、いま改めてどうなんだろうと考えてみました。私はこれまで「技術者」として紹介されることが多かったのですが、これからはそれよりも「ITで困ったらアイツ」と言われるようになりたいですね。


ブランチ事例を発表させていただきました・その2

昨日22日(月)に西新宿でTOCfEの月例勉強会に参加いたしました。今回は途中からの参加となってしまいましたが、いくつかブランチとクラウドの事例発表があり、私もブランチの事例を発表させていただきました。

私が発表したブランチは3回シリーズの2回目ということで、前回のご指摘を踏まえて何度か書き直したものを発表いたしました。今回の準備に当たり気が付いた点は、一旦寝かせて忘れた頃にもう一度読み直すとおかしな点に気が付きやすいということです。やっぱり作りたてほやほやの時は気持ちも高まっているのでこれでいいと思ってしまいやすいのですが、一旦頭を冷やすことで客観的に捉えることができるのですね。ブランチ自体はもう数か月前に一度作ったものなのですが、何度も改訂に改訂を重ね、少しおいて前日にもう一度見直して最後の仕上げを行いました。

その甲斐もあってか、前回グダグダだった分、今回は割と本質的なご指摘を頂けたのではないかと思います。内容が、プロジェクトの反省会で出た意見を論理的に整理したという性格上、全体的に多少散漫なところは否めないのですが、論理的な抜け漏れは前回に比べて少なくなったかなと思っています。

なんで私がこのブランチを描いているかというところをお話しすると、経験上どう見ても普通に終わることができるはずのプロジェクトがふたを開けてみたらそうならなかった・・・という現実があって、じゃあなんでそうなってしまったんだろうというのを個人的に整理したかったからです。プロジェクトの反省会ではそれぞれの意見というか思っていることをぶつけ合ったという側面が強く、根本的な原因をみんなで探ろうというところには至らなかったんですね。私は外部の立場で関わっていますが、もしかしたら内部の方々にとっては自明のことなのかもしれませんし、今のところはその辺りを特に公の形では追究していません。

そうは言ってもこうやって自分なりに分析して発表することで、第三者の立場のご意見を伺うことができるというのは得難いことであります。一方で、同じ業界に身を置いている方々にとっては多少なりとも共感できる部分が多かったようで、そういった感想を頂けたことで私も今回準備して良かったかなと嬉しくなりました。

次回は3回シリーズの最終回ですが、その前に京都の研修がありますね。まだ1カ月先ですけど、今から楽しみにしています。


過去と今のコミュニケーション

また久しぶりにデータベースの話をしたいと思います。前回は「論理削除か物理削除か」というテーマで記事を書いたらそこそこ反響がありました。こういったテーマは実際にDB設計に関わっている方でないと刺さらないのだと思いますが、そのうち入門者向けの話題も提供したいと考えています。

IDの採番方式

さて本題ですが、今回はIDの採番において私が実際に遭遇したトラブルについての話です。そもそも採番という言葉が一般的ではないのかなと思っていますが。というのも普通にPCで「さいばん」と打っても変換されないので、新しい現場へ行ってPCが貸与されると大抵この単語を辞書登録するからです。英語で言うと numbering が近いのでしょうか。別の言い方をすると発番あるいは番号の払出しといったところでしょうか。

利用するDBMS製品によってはIDの列に自動採番の属性を付与することで済ませるケースもありますが、多少癖もあるので緻密な運用を行いたい場合は自前で実装することになります。実装と言ってもそんなに難しいことはなく、IDが連番であることを利用してその最大値に1を足したものを新しいIDとするだけなのですが、その方式によっては注意が必要です。

これは設計者の好みの問題もあるのですが、テーブルの行数を見積もった時に、まあ普通に取り扱える規模であれば毎回最大値を計算して1を加算しても大した負荷にならないので私はその方式を良く使っています。一方で最大値を計算するのが負荷となるほどの行数が見込まれる場合は、本テーブルの他に最大値を管理する採番用テーブルを作ってそこで管理するケースがあります。

ちぐはぐなロジック

ある現場でデータの移行を実施した時のことです。ファイルに用意したデータ件数と、実際に取り込まれたデータの件数が1件だけ異なるという事故が起きました。あまり細かい話をしてもしょうがないのでざっくり書くと、そのシステムはWEBアプリケーションで、移行はバッチアプリケーションでしたが、両社でIDの採番方式が異なっていたためにWEBアプリで作られたデータを1件バッチで上書きしてしまっていたということが判明しました。

具体的には、WEB側では、採番用テーブルのIDに1足した番号を新しいIDとして本テーブルのレコードを作成し、その番号で採番用テーブルのIDを更新していたのですが、一方のバッチ側では、採番用テーブルのIDを使って本テーブルのレコードを作成し、そのID+1の番号で採番用テーブルのIDを更新していたのです。つまり採番用テーブルの番号が「使っている値の最大」なのか「次に使うべき値」なのかという解釈において相違があったわけです。

例えば、WEB側でIDが1~5までのデータが作成されていたとします。そこへ移行バッチでデータを追加すると本当は次のレコードのIDは6番でなければいけないのですが、採番用テーブルのIDが5番であるために追加するレコードのIDを5番としてしまい、すると結果的に既にある5番のデータが上書きされてしまうという事象が発生してしまいました。

鍵はコミュニケーション

この話の留意点は、どっちの方式が正しいかという議論ではないというところです。よくありがちなコミュニケーション不足、検討不足の症例です。要はどちらかのやり方にもう一方が合わせていれば全く問題の無かった話です。

また、これが実際に起こった時には、移行の作業等に起因してもっと状況がややこしく、原因を突き止めるのに苦労したのですが、その移行作業の問題点というのは本題を外れるので、いずれ機会があれば書きたいと思います。データベースの話と言いながらマネジメントの話っぽくなってしまいましたね。


マネジメントは家康の精神で?

まだ私が独立したての頃、私の師匠に呼ばれてある会社の技術支援をしたときの話です。会社員時代には自分の作業をいかにスケジュール通りに行うかということが主な関心事でしたが、その時初めて他人に作業をお願いするという経験をしました。

会社員時代には部下を持ったことがありませんので、正直なところそれがどれほどの苦労を伴うかというのは知りえないのですが、独立してからのそれというのは、相手は自分にとって顧客という立場だということで一層難しく感じられました。

仮に相手が自分の部下だったとしたら、その立場を利用して尻を引っぱたき、半強制的に作業をさせるということが出来るかもしれないのですが(実際にそうするかどうかは別として)、少なくとも相手が顧客だとそうはいかないですよね。

そんな時、師匠が面白い話をしてくださいました。それは「家康の精神で取り組む」ということ。初めはさっぱり意味がわからなかったのですが、後になってどうやらこういうことらしいということが分かってきました。

  • 信長:殺してしまう → 作業を取り上げる
  • 秀吉:鳴くまで待つ → 作業が終わるまで待つ
  • 家康:鳴かせてみる → 何とかして終わらせる

つまり人に割り振った作業というのはあらゆる手段を使って作業を進捗させるべきで、その為に色々と工夫をすべきだということです。

これはまた別の現場での話ですが、マネジメントする立場の方が会議の場で作業者の進捗状況を尋ね、たとえそれが間に合いそうにないという時でも、作業者の言い分を鵜呑みにしてそれをそのまま上司に報告するだけというパターンを目撃したことがあります。しかしそれでは目的は達成されないわけで、マネジメントする立場であれば期限通りに仕上がるように手を打たなければならない。もう過去のことですがそんなことをつい最近のことのように思い出しました。