システム開発・ソフトウェア開発の設計に関する書籍をいくつか読んだりします。
いろんな書籍を読んでいるなかで、よくわかんないなあと思うことがあります。
わかんないこと
それは、「機能」という言葉の意味です。
「機能」という言葉が出て来た時に、「この本は、今、どういう意味というかどういう粒度で話をしているんだろう」という疑問が出てきます。
そして、なんの話をしているかを間違えると、全然理解が進まないです。
で、それを解消するために、機能って言葉について、もう少し詳しく考えてみたいと思ってます。なんか近い話がどこかに書いてないのかなあ。と思ってインターネットを検索しました。
インターネットで検索しながら、自分が学んだことを書きます。
機能という言葉の定義
機能という言葉について調べていると、以下のことが個人的に重要でした。
- 機能は、ある物が本来備えている働きのこと
- 機能は、全体を構成する個々の部分が果たしている固有の役割のこと
このあたりに書いています。
とりあえず、以下の理解が進みました。
- 単体では機能と言わない。
- 複数で全体を構成するから、機能という。
- 誰かがどう動くかを期待している働きを機能と言っている。
機能の単位
機能という言葉で検索していると、いろんな機能が出て来ました。 その機能をどんな単位で決めるかを考えてまとめてみました。
- 国単位で考える機能(お金の機能、法律の機能、とか。)
- 組織単位で考える機能(人事の機能、営業の機能、研究の機能とか。)
- チーム単位で考える機能(予算管理の機能、時間管理の機能とか。)
- 仕事単位で考える機能(在庫引当機能、レビュー機能、とか。)
- 行動単位で考える機能(受注を確認する機能、在庫を確認する機能、受注に対して、在庫を引き当てる機能、とか。)
機能にはいろんな単位があるんだなあと思いました。
個人的には、「これ、どういう意味があるんだろう?なんのためにあるんだろう?」とかを考えたり、それを知ったりするのが好きです。
だから、色々考えたりします。それって、機能を自分なりに考えてたんだなあ、と思いました。
機能の階層
システムの機能の粒度の話を検索してたら、機能の階層という話が出て来た。
階層があるのかあ、なるほど。と思いながら、ぼんやり考えていました。
すると、ここに書いてあるシステム開発って、仕事の単位でシステムを開発しようとしているケースが多いなあ。と思いました。
そして、仕事の単位を一つのプロジェクトにして、システムを開発していくことが多いのかもなあ。そして、その一つ一つを実現する小さい何かを、ソフトウェアで実装していくのかなあ、とか思ったりしました。
参考:見てたページ
- 機能要件は3階層で整理 | 日経クロステック(xTECH)
- 第9回 SOAによる情報システム構築のポイント②サービスの抽出と階層化:機能と技術からわかる!システム基盤の実力|gihyo.jp … 技術評論社
- 機能一覧表とI/O関連図 | Think IT(シンクイット)
- 第361回 「業務機能粒度のとらえ方」|17.見える化コーチング|メルマガバックナンバー|情報戦略モデル研究所(ISMリサーチ)メルマガ・バックナンバー
で?
ちょっと脱線しました。
結局のところ、機能という言葉の意味は、定義のところに書いたとおりです。
そして、モヤモヤ色々考えた結果、話をしている目的によって、機能という言葉の意味は変わるのかな、というのが今の僕の理解です。
例えば、「ソフトウェアをどう作るか?」を考えていて、機能の話が出て来たら、それは、ソフトウェアで作るものに何が必要かの話だと思います。
「ソフトウェアをどう使うか?」の話をしていたら、「ソフトウェアでどんな仕事をしようとしているか」が機能なのかなあ、とも思いました。
あと、「ソフトウェアで何がしたいのか?」の話をしていたら、「ソフトウェアで解決したい問題」が機能なのかなあ、とも思いました。
二つ目は、シナリオ。 三つ目は、ストーリー。とか書いた方がわかりやすいんじゃないかな、とか思いました。 一つ目は、、、、なんだろう。モジュール?なんか違うような。 機能かなー、うーん。って思ったのが僕の今のところの話です。