やっぱり外注しよう。餅屋は餅屋で。(WEBアプリ開発)

こういう風にした方がいいなーと考えながらUI設計を考える、その際に同時にプログラムのしやすさも考える。プログラミングするときに「これはどういうことだ?」という迷いがないように作る。一見、利用者側と作り手側の療法を考えながら作ると混乱するように思える。だけど、そうじゃない。

StockSnap / Pixabay

プログラミングしやすい設計というのは、結果的に利用者にとって理解しやすい使用ということだ。多くの仕様では「例外処理」が大量に盛り込まれたりする。「基本的にはこの流れ。しかしAの場合は、別処理を実行する。AであってもBの経由の場合は基本の流れのみ」という感じ。そうやって例外が増えるたびにプログラムは複雑化していく。利用者にとっても例外というのは目に見えて、操作に影響してくる。

例外が少なければ少ないほど、理解しなければならない要素は少ない。プログラマーとしても利用者としても、それはとても良いことなのだ。じゃー、単純に仕様を単純すればいいというわけではない。そこは「やりたいこと」がかならずあるのだから、「やりたいこと」を実現させながら、シンプル化に取り込む。

まるでパズルような感じになってくる。名前を変えたり、配置を変えたり、データ構造を変えたり、まさにパズルという表現がぴったりなのだ。ここに一番時間を割くところかもしれない。山登りで言えば、どのルートから進み、どのベースキャンプで休み、どこで補給して、いつベースキャンプを出るか、なんてことを「山登りの前に」設計するのと同じこと。

この二日間ほど、仕様固め作業に費やしていた。この時間で作っちゃっても良いんじゃないかと思ったけどね。実は、久しぶりパソコンでサーバー環境を構築しようとしたら思いの外苦労した。サーバーを起動するだけで、こんなに苦労するということは開発なんてままならないぞ。というわけで外注することにしました。^^

クラウドソーシングサービスが充実してきたので、依頼しやすくなった。とはいえ、開発がしやすいように「仕様」をキッチリと考えて、わかりやすく、そして何より作りやすくできるように考える。自分の頭の中を文章化するというのは、けっこう大変なことだよね。だけど、文章化出来ないということは、仕様が曖昧ということだよね。「外注する」と決意することは仕様の曖昧さを発見するのにも役立つ。

かなり細かいモックアップを作る。どのように動くのか、どのように配置するのか、そのUI設計によって発注者(今回の場合は私ね)の意図が伝わりやすくなる。ここは文書よりも強い。その上で、データ構造、処理の流れなどを確立する。後はエラーが出た場合どうするか、というような部分まで漏れなくね。

ということで、今日依頼を出してみたところ。数時間で4件ほど問い合わせがあった。いいペースだ。どこを選ぶかはこれから。みんなアピール上手だと良いな。