kintoneでの開発を考える・その1/あえてウォーターフォールで考えてみる・Vモデルの解説
プロ雑用です!
最近ぜんぜんkintoneを話題にしてなかったので久しぶりに。
このnoteは↓のシリーズの第一回目です。
現場主導のアプリ開発、その先に見える壁
kintoneについては、以前こんなnoteを書きました。
このnoteでは、アジャイルマニュフェストにある4つの価値をベースに、kintoneの開発における一つのパターンを解説しています。ですが、一方でアジャイルの考え方をもって現場主導で開発を続けている、大きな壁にぶち上がることがあります。必ずしもその壁に当たるわけではないのですが、私が見てきた組織では多くの場合、この壁にぶち当たりました。
それは「システムの統合」という壁です。この壁の大きさは、組織によって異なりますが、それまでお互い不干渉でやってきた仕組み同士を統合するという意味では、どの組織にとってもなかなかハードルは高いものです。
以下のようなパターンが例として考えられます。
・売上管理や顧客管理をリアルタイムで把握し、顧客データの重複を防ぐために営業とサービス部門で別々のシステムを統合する
・店舗ごとにバラバラの仕組みや運用になっている従業員のシフト管理を全店舗で統一する
類例は他に上げればキリはないのですが、では、こういった壁が出現する、あるいはこれらが高い壁になる理由はなんなのか?
この違いを考えるにあたって、まずは、あるモデルを解説します。
Vモデル
皆さんはVモデル(あるいはV字モデル、V字プロセス)をご存じですか?
ドイツ生まれのプロジェクトマネジメント手法で、いわゆるウォーターフォールの発展系モデルのひとつです。
Vモデルについてはより理解を深めやすくるために、以降は以下の図を用いいますが、こちらの図の経緯はこちらのnoteに詳しく記してあるので興味のある方はそちらをご参照ください。
とりあえずここから先はこの図をベースに進めていきます。
モデル解説:実装
Vの字の折り返し地点にあるのは実装作業です。これは一般的にコーディングによって実稼働するプログラムを作る、という工程です。
建築で例えるならコードは建物を作るのに必要な建築材料や構造部材、コーディングは建物の実際の構築作業に相当し、出来上がったものがソフトウェア(の一部分はアプリケーション)となります。
建築は一般的に設計書が存在します。一つの棚を設置するには設計書は不要かもしれませんが、ビルを建てるのに設計書が無い、ということは考えられません。プログラムのコーディングもそれと同様に、複雑で規模が大きなものを大勢で作ろうとすれば、やはり設計書は必要でしょう。
モデル解説:設計
設計は実装作業の前に行うのが一般的です。
図では左側のファネルがそれにあたります。
では設計とはなにか?
辞書を引くと以下のように出ます。
これを踏まえて赤線で囲まれた工程を、建築で例えると
建物のコンセプトやデザインを決める
建物の構造を設計
細かい部分の機能を設計する
ということになります。
この粒度は開発の規模によって変わりますが、概ね大中小の三段階で決めていくのがイメージしやすいのでこの図ではそうしています。(図によっては2段階だったり、4段階だったりします)
設計は、意味としては頭の中にあるだけ設計とは言えません。特に大きなシステムの開発は複数人数で行われるのが一般的ですから、その設計を共有する必要があります。ER図をはじめとしたドキュメントは、共有や説明のためにも必要になります。
モデル解説:テスト(検証)
Vモデルの右ファネルは、実装作業を経て動くアプリができたあとに行う、テスト・検証のフェーズです。
ここでは、Test、Verification、Validationと3つの単語が登場します。これらは似てるようでかなり意味するところが違うので詳しく解説しましょう。
テスト・検証作業は、上記のとおり設計や仕様書の意図している通りかどうかを確認するということですから、設計がなければ実行することができませんが、確認する内容が機能、データの動き、人間の動きという違いがフェーズによって分かれます。
というところで、今回はここまで。
次回は、Vモデルにkintoneを当てはめて考えてみます。
それじゃ、また👋