【中学生でもわかる】システム設計って結局何するの?

※当サイトはアフィリエイト広告を利用しています。
名著

今回のテーマは「システム設計」だよ!

システム設計をどうすればよいかで悩んでいませんか?

この記事では、今日から使えるシステム設計をするコツをわかりやすくお伝えします。

PR

失敗しないための「3つの約束」

昔、親にスマホの操作を教えた時のことです。

何度説明しても伝わらず、私はつい強い言葉を使ってしまいました。

そのあと、ひどい自己嫌悪に陥って、思いやりのない自分にハッとしました。

実は、システム設計もこれと全く同じなんです。

失敗しないためには、何のために作るのかという目的をハッキリさせ、基本的なテクニックを知り、相手の視点に立って話し合いをすることが欠かせません。

もしあの時、私が親の視点に立って、なぜここでつまずくのか、と純粋に興味を持てば、もっと優しい教え方ができたはずです。

システムを作るという作業も、パソコンに向かう前に、まずは相手に寄り添うことから始まります。

では、実際にシステムを作るとき、具体的に何から始めればいいのでしょうか?

作業を始める前の「確認ポイント」

作業を始める前に、必ず確認すべきポイントがあります。

それは、相手の要望を確認し、いつまでに、どこまで作るかを決め、最後にどんな設計図を渡すかを約束することです。

先ほどのスマホの話でも、親が今日中に電話のかけ方だけを知りたいのか、それとも一週間かけて写真の送り方を覚えたいのか、それを最初にしっかりと確認すべきでした。

行き当たりばったりで教え始めると、お互いに疲れてイライラしてしまいますよね。

仕事でも日常生活でも、最初にゴールと期限をすり合わせるだけで、トラブルは激減します。

しかし、ここで一つ大きな壁にぶつかります。

それは、相手自身も、自分の欲しいものがわかっていないことが多い、という事実です。

その壁をどう乗り越えればいいのでしょうか?

「要件定義」ってなに?

ここで登場するのが、要件定義と呼ばれるステップです。

とても難しい言葉に聞こえますが、要するに、相手がどんな機能を欲しいのかをハッキリ決めることです。

例えば、親がスマホを教えろと言ったとき、本当は離れて暮らす孫の写真を見たいだけだったとします。

それなら、難しい設定の仕方は省いて、写真を見る手順だけを優しく教えればいいのです。

相手の本当の願いを深掘りして引き出すことが、要件定義の本当の役割です。

これが決まらないと、どれくらい時間がかかるか計算できませんし、教える側の心の準備もできません。

しっかりと相手の願いを言葉にして、整理していく作業が必要不可欠です。

でも、これだけではまだ不十分なんです。

機能のリストよりも、もっと根本的な問題が隠れています。

一番大切なのは「目的」

システム作りにおいて、一番大切なのは目的です。

なぜ、このシステムを作るのか?

この目的をしっかり分かっていないと、結局誰も使わないものが出来上がってしまいます。

親にスマホを教えるときも、便利な最新機能を自慢げに教えても、親が日常生活で使わなければ全く意味がありませんよね。

システムも同じで、いくらお金と時間をかけてすごい機能を作っても、使う人の目的とズレていたら、ただの邪魔な画面になってしまいます。

常に、これは誰のどんな悩みを解決するためのものか、と自分に問いかけ続けることが大切です。

目的さえブレなければ、途中で迷うことも、無駄な作業をして疲弊することもありません。

では、目的がしっかりと定まった後、それをどうやって目に見える形にしていくのでしょうか?

「外部設計」ってなに?

目的が決まったら、次は外から見える部分を決めていきます。

これが外部設計と呼ばれる作業です。

どんな画面にするか、どんなデータを入れるか、そしてどんな結果を出すか、といった、目に見える部分の設計のことです。

親のスマホで例えるなら、画面の文字を一番大きく設定し、よく使う連絡先を最初の画面にわかりやすく配置してあげるようなものです。

使う人が絶対に迷わずに操作できるように、徹底的に相手の使いやすさを想像して形にしていきます。

ここでも、相手との対話と、深い思いやりが試されることになります。

しかし、外見だけを綺麗に整えても、システムは正しく動いてくれません。

目に見える部分の裏側には、一体何が必要なのでしょうか?

「内部設計」ってなに?

外から見える部分が決まったら、次は外からは見えない、中身の仕組みを決めていきます。

これが内部設計と呼ばれる作業です。

データの処理方法や保存のルールなどを、作る人向けに細かく設計していく作業です。

スマホの裏側で、どうやって電波を受信して、どうやって大切な家族の写真を保存しているかという、見えない部分の交通整理をするようなイメージです。

表側がどれだけ綺麗で使いやすそうでも、裏側がぐちゃぐちゃだと、システムはすぐに壊れて使い物にならなくなります。

見えないところこそ、丁寧に、規則正しく作らなければなりません。

これは、見えないところでしっかりと準備をするという、私たちの仕事や家事の基本と全く同じですね。

でも、中身を作るときに、一番気をつけなければいけない落とし穴があるんです。

データを速く探すコツ

その落とし穴とは、スピードです。

システムは、データを速く探して、待たせることなくすぐに結果を返さなければなりません。

そのためには、無駄な読み書きを減らし、目次をつけて探しやすくし、バラバラにやらずにまとめて処理する、といったコツがあります。

これは、日々の家の片付けと全く同じことなんです。

ハサミやペンをあちこちに置きっぱなしにするのではなく、文房具の引き出しという目次をつけて整理しておけば、使いたいときに一瞬で取り出せますよね。

システムも、データという大切な道具を綺麗に整理整頓することで、驚くほど速く、快適に動くようになります。

ここまで色々なステップを順番に見てきましたが、そもそもなぜ、こんなに面倒な設計の手順を踏むのでしょうか?

【おすすめ本】はじめての設計をやり抜くための本

はじめての設計をやり抜くための本

本の概要

プログラミングは覚えた。

でも、その一歩先にある「設計」になると、急に何をすればいいかわからなくなる。

この本は、画面の作り方からデータの管理方法、外部のシステムとつなぐ方法まで、設計のすべてをはじめて担当する人のために、豊富な実例をもとにわかりやすく教えてくれる一冊です。

「なんとなくこなす」から「自信を持って設計できる」へ、あなたの仕事の幅を確実に広げてくれます。

本の口コミ

タイトル通り、設計の概念から手法まで、広く浅く、だけども具体的に書かれた本。Struts等のフレームワークの利点や、「なぜ設計が必要なのか」についてもしっかりと書かれている。特にJavaの設計・開発を行うエンジニアで、Javaやオブジェクト指向の理解を終えた程度の新人から入社数年目程度のエンジニアにはおすすめ。

<strong>くま</strong>
くま

設計の大事なところをきちんとつかめる本だなぁ。これまで入門書を読んでこなかった自分には、とても勉強になったなぁ。ただ、ある程度はコードを書いたことがないと少し難しいところもあるかもしれないなぁ。読んでいて痛感したのは、設計書そのものより「何のために書くのか」を考えることの方がよほど大事だということだなぁ。納品のためなのか、仲間との意思疎通のためなのか、その目的がはっきりしていれば書き方に正解はないんだなぁ。

なぜ「設計図」を書くの?(1)

なぜわざわざ面倒な設計図を書くのか。

一つ目の理由は、相手の要望を確実に実現し、足りない部分を穴埋めし、全体の質を高く保つためです。

頭の中だけで考えていると、必ず自分の思い込みや、手順の抜け漏れが発生してしまいます。

親にスマホを教えるときも、自分では完璧にわかっているつもりでも、いざ口に出して手順を説明しようとすると、言葉に詰まることがありますよね。

設計図として紙に書き出すことで、自分の考えが冷静に整理され、足りない部分がはっきりと浮き彫りになります。

物事の質を高く保つためには、考えを頭の外に出す作業が絶対に必要なんです。

しかし、設計図を書く本当の理由は、これだけではありません。

もっと人間らしい、温かい理由が隠されているんです。

なぜ「設計図」を書くの?(2)

設計図を書く一番の理由は、作る人みんなで同じイメージを持つため、そして後からお世話しやすくするためです。

親にスマホの操作を教えた後、その手順をわかりやすくメモに書いて渡してあげれば、親は後で一人でも見返して操作できますよね。

システムも同じで、作った人がいなくなっても、誰かがそれを見て直せるように、未来の人への思いやりとして設計図を残すんです。

設計とは、冷たいパソコンの作業ではなく、目の前の相手や未来の仲間を思いやる、とても温かいコミュニケーションの形なのです。

今日、今すぐできる極めて簡単なワンアクションとして、あなたが誰かに何かを教えるとき、まずは相手の目的を一つだけ聞いてみてください。

これからも難しい知識を世界一わかりやすく翻訳してお届けします。

くまさん動画
▼ くまさんの動画をランダム再生 ▼
タイトルとURLをコピーしました