エンジニアにとっては、自明なんだけど、エンジニア以外にとっては見えない話。
Webサービスをやっていて、要件(やりたいこと)には、2種類に分類でき、
1.機能要件
2.非機能要件
というのがある。
「1.機能要件」は、更にざっくり2つに分解できる。
1-a.正常系
1-b.例外系
この中で、エンジニアは、1-b.例外系と、2.非機能要件を考えるのが大事だよーという話。
なぜかというと、これらを考えるの人は概ねエンジニア以外には居ないから。
順を追って説明すると、
1-a.正常系
これは、企画屋さんが「ooなことをやりたい」というものである。
「この面にxxを出したい」などなど。
これはいろんな職種の人が興味があるし、気にかける。
もちろん、エンジニアがこだわってもよい。
対し、
1-b.例外系
これは、「通常はTOPにxxモジュールが出ているのだが、ooのキャンペーンと被った時はooを出す」などの、通常処理以外のこと全般である。
なんでエンジニアがこれをちゃんと考えないといけないかというと、サービスの仕様がドキュメント化されていることは少なく、こうしたらこうなる、というのが実際のソースコードを読まないと分からないケースが多いから。
となると、この部分を考えなければいけないのは概ねエンジニアとなる。
次に、
2.非機能要件
これは、書いてるwikipediaを見てもらえればいいんだけど、要件以外の全般で、例えば、信頼性に関することであったり(xx機能はトランザクションでACIDを担保しよう)とかそういうのである。
これについても、エンジニア以外に考える人はいないので、エンジニアがきちんと考えなければいけない。
20代の頃に、例外系をきちんと設計、実装できるエンジニアがいいエンジニアだ、と言っていた人がいて、なるほどなぁと思った。
また、非機能要件の世界は極めて広く、経験などに依存する部分が大きい。
そのうち運用の話も書こう。
おしまい。
今日の漫画
あまりにも有名なゲーム(つくる)マンガ






