ER図を楽して書こう

この投稿はドキュメント作成技術 Advent Calendar 2014の18日目の記事です。

皆さん、ER図やテーブル定義書は何で管理されていますか? まさかExcelでちまちま書いていたりしませんか?

ER図を書いてから、手動でテーブル定義書を作る。 もうそんな不毛なことは止めましょう。 それを解決するのが、皆さんご存知【A5:SQL Mk-2】です。

(え、ご存知ない?そんな方はググってください!w)

ここではそんなA5:SQL Mk-2の便利さを語って行きたいと思います。


1, ER図を書いてみよう

メニューから【ファイル→新規】を選択後、【ER図】を選択。

そうするとプロジェクト名と対象DBを選択して完了を選択。

これでER図が書けるように様になります。

2, エンティティを書いてみよう!

ER図のメニューから【エンティティの追加】を選択。

適当な場所をクリックして、エンティティを配置。

出来たエンティティをダブルクリックして、プロパティを表示。ここにテーブルの情報を記述していく形になります。

タブで[エンティティ]、[属性(列)][インデックスとユニーク制約]それぞれの役割は、

  • エンティティ:テーブル名等のテーブルの属性を記述する箇所
  • 属性(列):テーブルのカラム情報等を記述する箇所
  • インデックスとユニーク制約:名前の通り、インデックス等を記述する箇所

になります。

次に各項目で重要そうな設定を説明します。

エンティティ

  • 論理名:テーブルの論理名になります。よく分からない人は日本語名で書く事が出来る位の認識でいいと思います。
  • 物理名:テーブルの物理名になります。よく分からない人はプログラムで指定する名前位の認識でいいと思います。
  • コメント:その名の通りコメントです。備考的な扱いとして記述される事をおすすめします。ドキュメントの価値が高くなります。

属性(列)

  • 論理名:エンティティと一緒。
  • 物理名:エンティティと一緒。
  • コメント:エンティティと一緒。
  • DDLオプション:複雑なカラム定義をここで記述。SQL SERVERのIDENTITY(1,1)等はここで記述。

属性(列)

  • 物理名:エンティティと一緒
  • タイプ:インデックスなのかユニークインデックスなのかを選択。
  • 列定義:実際のインデックス対象カラムを指定。

3, リレーションを書いてみよう!

ER図のメニューから【リレーションシップの追加】を選択。

親エンティティを選択後、子エンティティを選択。

依存リレーションにするか、非依存リレーションにするか聞かれるので、その時に応じたリレーションを選択。

その後、リレーションシップにどのカラムをリレーションするか設定して完了。

これで基本的なER図が書けたと思います。次からはドキュメント出力能力も優れているので、そちらの説明をしていきます。

ER図からDDL作成をしてみよう!

メニューから【ER図→DDLを作成】を選択。

デフォルトのまま【DDL作成】をクリックして、簡単にDDLを作成することができます。

ER図からテーブル定義書を出力してみよう!

メニューから【ER図→エンティティ定義を出力】を選択。

デフォルトのまま【エンティティ定義作成】をクリックして、簡単にHTML形式の定義書を作成することができます。

ER図を出力してみよう!

メニューから【ファイル→印刷】を選択。

ER図の印刷はデフォルトのまま、【印刷】をクリック。

プリンター名を【CubePDF】を選択、保存先を選び【OK】を押す事で、PDF出力ができます。

ER図をDBから抽出してみよう!

メニューから【データベース→データベースの追加と削除】を選択。

【追加】からER図を作りたいデータベースコネクションを作成。

メニューから【データベース→ER図→ER図のリバース生成】を選択。

ER図化したいテーブルを選択し、リバースER生成をクリック。

これで既存のER図, カラム情報, index情報を簡単に作成することができます!

最後に

【A5:SQL Mk-2】は、ここで紹介したもの以外にも便利な機能があります。

興味がありましたら、ご自身でも調べてみてください。

チームにアジャイルを導入する為にやった事

この投稿はアジャイルCasual Advent Calendar 2014の17日目の記事です。

失敗編◦成功編とは全然関係ありません! ただ、見ていない方は前回前々回もみていただけると嬉しいです。


1, アジャイルを知る

アジャイルの基本的な概念をアジャイルサムライを読み学びました。

2, スクラムを知る

カンバン + 朝会 + タスクだし + 振返りを学びました。 スクラムの本もいくつか出ているので、そちらを読みました。

3, 一人でやってみる(一人振返り 兼 KPT

KPTを使用した一人振返りを実施。 KPTがシンプルで使いやすいツールだと実感しました。

スクラムの導入を躊躇っている方がいたら、ひとまずは短い期間での振返りから導入してみるのもいいかもしれません。

4, 周囲の人へのアジャイル啓蒙活動

一緒に仕事する人ととの、飲みの場で「スクラムを導入したいんですよね!」等々、やりたい旨を要所要所で発信。 興味を持ってくれた人へのアジャイルサムライ貸し出しを実施。

アジャイル導入は一人では出来ないので、徐々に仲間を増やしていきました。

5, 上司への交渉

この辺が皆さん一番苦労するところかなと思いますが、 僕の場合はすんなり了承がとれました。 了承が取れない場合は、項目4と同じ様に啓蒙活動をしていくしかないのかな。

6, +α 一緒に仕事する人と良く会話する

いきなり知らない人から「アジャイルを導入しましょう!」みたいな事を言われても、 相手に余計な警戒心を持たせるだけなので、導入するチームとよくコミニュケーションをとって、 余計な警戒心を持たせないようにしました。

7, 最後に

全部重要かと思いますが、後から考えて特に効果があったのは、下の二つだったと感じています。

5, 周囲の人へのアジャイル啓蒙活動

7, +α 一緒に仕事する人と良く会話する

アジャイル導入に限らず、何か新しい事を始める際は警戒心を持たせないようにするのが重要なんだと感じました。 アジャイルソフトウェア開発宣言のアジャイル宣言の背後にある原則の中にある、

情報を伝えるもっとも効率的で効果的な方法は フェイス・トゥ・フェイスで話をすることです。

これは本当にそうなんだと思います。

仕様や何か決めごとをする際は、メールやRedmineのチケットだけでやり取りをするのは勿体無いと思いますので、顔を合わせて話し合いをするのが一番です。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK

会社でアジャイルを導入した話。成功編

この投稿はアジャイルCasual Advent Calendar 2014の16日目の記事です。

失敗編からの続きになります。 見ていない方は前回もみていただけると、すんなり記事が読めると思います。


前回KPTのTry

  1. アジャイルを勉強する。
  2. 開発以外の人に、アジャイルを勧める。
  3. 朝会を毎日行う。
  4. カンバンの導入。
  5. KPTを使用した振り返りの導入。

アジャイルを勉強する。

本を読む事による勉強は継続。 他者からのインプットを受ける為に、アジャイルサムライ横浜道場に参加。


開発以外の人に、アジャイルを勧める。

一人で、アジャイルを推し進めるのには限界があったので、前回失敗プロジェクトで一緒に仕事をしていたUさんへ、アジャイルサムライを貸し出す。


朝会を毎日行う。

企画◦開発◦デザインで大きな溝があり、細かいコミュニケーションが上手く取れていなかった。 少しでも接点を持たせる為に、各部署全員が毎朝15分の朝会を行うようにする。


カンバンの導入

朝会を導入した際に一緒にかんばんも導入。 各個人のタスクを視覚化する事により、誰がどの作業を行い滞りなく作業が出来ているか把握する事が出来た。

また作業に行き詰まっている場合は、企画◦開発◦デザインの三点から改善策を探す事が出来る為、一人で作業する場合よりも解決策を模索しやすかった。


朝会とカンバンの導入した所感

最初は、ぎこちなかったが徐々にスームズに朝会が回るようになり、導入後少し期間が経ったあたりから企画◦開発◦デザイン間での相談が増えた様に感じた。

気軽に相談出来るような雰囲気が出来てきた。

また、朝会は15分までとしていた為、朝会で話し合う事ができなかった内容は、朝会後に各々が相談するようになった。 これにより、コミュニケーションレスによる発生してた無駄な会議が減った。


KPTを使用した振り返りの導入。

気軽に相談できる雰囲気は出来つつあったが、小さな不満が溜まっていき部署間で大きな蟠りが出来そうになっていた。

その解決策として、二週間に一回、KPTによる振り返りを導入し、部署間の不満を吐き出せるようにした。小さな不満を溜め込んでいくと、修復できなくなるような溝につながる事があるので、細かい単位でのガス抜きは非常に効果的だった。


最後に

カンバン◦朝会◦振返りは強力なツールでした。悩んでいる人がいたら、導入をお勧めます。 アジャイルの良いところを失敗編◦成功編を通じて、お伝え出来ていたら嬉しいです。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK

会社でアジャイルを導入した話。失敗編

この投稿はアジャイルCasual Advent Calendar 2014の15日目の記事です。

導入開始

転職後、間もなくあるプロジェクトに配属される。 一部、企画とのコミュニケーションが上手くいっていなかった為、朝会とカンバンの導入を検討。 結局、かんばんの導入を見送り、火曜日と木曜日の定期的な朝会の実施だけにとどまる。


導入するにあたって、当初感じていた不足部分。

  1. アジャイルの経験はあったが、知識の不足。(前職では、言われたままにアジャイルを実施していた。)
  2. チーム内の信頼関係。(出来たばかりのチームなので当たり前ですが・・・。)

導入にあたってやった事

  • アジャイルサムライの読み込み。(知識強化)
  • アジャイルサムライ読書後の社内勉強会開催。(人に教える事による知識の落とし込み)
  • 初めて仕事をする人達ばかりなので、メールやRedmineだけのやり取りをしないように心がける。(信頼関係強化)

結果

これがものの見事に導入失敗。 企画の人に言われた決定的な一言がこれ。

「朝会で情報共有されるが、日々進捗が遅れているのが分かって心臓が痛くなりますね。」

冗談混じりに言われたが、この一言でチームビルディング + 信頼関係構築に失敗している事を理解しました。


失敗原因

  1. 信頼関係構築失敗。
  2. 自分自身がアジャイルを理解出来ていなかった。
  3. 自分以外のアジャイル理解者がいなかった。
  4. 定期的な朝会(火曜日と木曜日)は実施できたが、毎日の朝会が実施出来なかった。
  5. カンバン導入失敗。
  6. 漠然と作業をしていた。

KPTでまとめ

KPTを知らない方はググってみてください。 シンプルかつ効果的なツールなので、自分で調べて是非自分のものにしてください。


Keep

  1. 失敗を経て、アジャイルへの知識の落とし込みができた。このまま失敗を恐れず、挑戦していきたい。
  2. メールやRedmineだけのやり取りではなく、きちんと面と向かって話す事で文面以上の情報を伝える事が出来た。

Problem

  1. 一部の企画の人とはコミュニケーションをとれたが、巻き込みきれない人がいた。
  2. 朝会の意図を伝えきれなかった。
  3. 仕事の進み具合を、誤解なく上手く伝えきれなかった。
  4. アジャイルに関して、開発以外の味方がいなかった。
  5. プロジェクトを行っている際の細かい改善が出来なかった。

Try

  1. アジャイルを勉強する。(Problem①に対応)
  2. 開発以外の人に、アジャイルを進める。(Problem①、②、③、④に対応)
  3. 朝会を毎日行う。(Problem③に対応)
  4. カンバンの導入。(Problem③に対応)
  5. KPTを使用した振り返りの導入。(Problem⑤に対応)

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK