« 本サイトで配布している CGI のネーミング | 本コーナートップ | RSS の行方 »

 私が、どのように新規 CGI を企画し、どのような機能を追加していくのかをご紹介します。当サイトで配布する CGI の生い立ちをご理解頂けると幸いです。

 新規 CGI を企画する上で、最初に行うのがテーマ決めです。アクセス解析、掲示板、チャット、フォームメール、アクセスカウンター等、さまざまなテーマが考えられます。その中から何を選ぶべきかといえば、"ニーズをつかみ、それを満たすもの" が模範解答なのでしょう。いずれのマーケティング系の書籍にうたわれているのは、みなさまもご存知の通りです。しかし、私の場合、正直申し上げると、基本的に自分で使いたいと思うことが大前提です。企画段階では本当のニーズがなかなかつかめません。私は CGI プログラマーですが、同時に当サイトのウェブマスターでもあります。そして、シェアウェア販売というビジネスを行っています。私が欲しいと思う機能は、恐らく、私と同様に、ウェブでビジネスを営んでいる方も望んでくれるだろうという前提で企画します。私が勝手に "こんなニーズがあるだろう" と思って、自分では欲しくもないものを作ったとしても、いい物はできません。自分が欲しいと思え、こだわれるからこそ、いいものができると考えています。そして、ウェブマスターの当事者でもある自分が欲しいと正直に思う CGI を作ることが、結果的に多くのウェブマスターの方に喜んでいただけるだろうと信じて、テーマを決めます。

 テーマが決まったら、次に、「誰でも、どんなサイトでも、どのサーバでも簡単で便利に使える」ことを念頭において CGI のコンセプトを決めていきます。コンセプトというと難しい感じがしますが、要は、その CGI の特徴を列挙します。コンセプトまで決まれば、あとは、それを機能という具体的な形に落とし込んでいきます。実装する機能の選定基準は、はやり自分が必要と思うもの、そして、多くの方も欲しいと(勝手に私が)思うものです。アイデアはいくつも出てきますが、殆どがボツになります。ボツになる機能は、概ね、技術的に難しいものや、殆どの方が望まないだろうと思うものです。そして、"誰でも、どんなサイトでも、どのサーバでも簡単で便利" という大前提に反するものがボツになっていきます。実はこの大前提が厄介なのです。多くの方に使っていただきたいとの思いからこの大前提を守ろうとするのですが、逆に多くの方に使っていただこうと考えたさまざまな機能を実現しようとすると、この大前提が守れなくなるという矛盾が生じるのです。さまざまなオプション機能を設けることにより汎用性や機能性は向上しますが、その分、設置が難しくなってきます。つまり、豊富な機能を設けることと、「誰でも、どんなサイトでも、どのサーバでも簡単に便利に使える」ということとは、トレードオフの関係になるということなのです。どのあたりを落としどころにするのかを悩み、いくつかのアイデアから本当に望まれる機能に限定して、CGI の製作が開始されます。

 実は、CGI の製作よりも、これまでの企画・設計のほうに多くの時間が割かれます。とはいっても、パソコンの前で時間を割いているわけではなく、頭の中だけでの作業となります。歩いている時、電車に座っている時(殆ど寝てしまいますが…)、寝る前の布団の中にいる時、入浴中等、空いている時間を使って、アイデアを熟成していきます。頭の中である程度まとまってから、初めてパソコンの前で、Perl スクリプトの製作が開始されます。Perl スクリプト製作が開始されてからは、一気に作り上げてしまいます。

 やっとの思いで作り上げた CGI をリリースして、ひとだんらくです。しかし、リリースしてからが、本当の意味で、みなさまに喜んで頂く CGI の企画・製作が始まるのです。新規に CGI を企画する際には、自分が欲しいものが基準となっていることは前述の通りです。自分が欲しいものは、皆様にも喜んで頂けるだろうという前提であったことは事実なのですが、やはり、基準はあくまでも自分です。多くの方のニーズから外れていることが多々あります。CGI をリリースしてから、それをお試し頂いた方から寄せられるリクエストを漏れなく記録していきます。人気のある CGI にいたっては、バグ改修も含め、短期間に ToDoList が一杯になってしまいます。すべての方に、なかなかご返信できていないのですが、必ずリクエストは拝見させて頂いております。寄せられるリクエストが本当のニーズなのですから、これほど貴重な情報源はないのです。リクエストが頂けるようになってからは、機能追加の基準は "私" ではなく、その CGI をご利用頂ける "ご利用者" に変わります。いくつか寄せられたリクエストにプライオリティーを付けて、バージョンアップという形で実現していきます。当サイトで配布しているバージョンをご覧頂くと分かるかと思いますが、バージョンが高いものほど、リクエストが多かった証です。そのような CGI は、ご利用されている方々からのリクエストの塊みたいなものです。追加したい機能によっては、ロジックから見直さなければいけない場合があります。その場合には、再度、一から仕様を練り直し、作り直すこともあります。メジャーバージョンアップ(バージョン番号の最初の数字が上がる時がメジャーバージョンアップです。)の時には、かなりのソースコードが作り直されているのが実情です。

もし私が作成した CGI をお試し頂けるようでしたら、リクエストを頂けると幸いです。なかなかご返信は出来ないかもしれませんが、必ず拝見させて頂きます。

最後に、今後作っていこうと考えているテーマをご紹介します。いつになることやら(^^; 。もしその他に、欲しい CGI がありましたら、どしどしリクエストを下さい。

▼ ショッピングカート

実は過去に何度もチャレンジした経緯があります。しかし、ご利用シーンはさまざまで、なかなか汎用的に作れず、いまだに実現に至っておりません。3 度ほど作り直しましたが、自分自身、満足いくものではなく、すべて捨ててしまいました。いつかは必ず実現したいと思っているテーマです。

▼ スレッド型掲示板

すでに数多く世に出ているテーマなので、なかなか特徴を出すのが難しいテーマです。個人サイトで利用するというよりは、企業がナレッジとして活用できるような掲示板にしたいと思っています。その他、気の利いた特徴を思いつけば、ぜひ取り組みたいテーマです。

▼ Amazon Web サービス

Amazon が提供している Web サービスを使った プチ・Amazon サイトが作れるような CGI に興味があります。XML, UTF-8, HTTP 通信などの壁があるのですが、どこまで作れるか試してみたい。。。各種 Perl モジュールを使えば、さほど難しくないのですが、それを多用しすぎると、使えるサーバが限られてしまうという問題が。。。

▼ PC 向け Web メーラー

すでに携帯電話向け Web メーラー "Kmail CGI" はリリースしましたが、PC 向けのリクエストがちらほら。。。実は、過去に作ったことがあるのですが、あれこれ機能を盛り込みすぎて、わけが分からなくなり、結局ボツにした経緯が。。。再度、チャレンジしてみようかなぁとも思ってます。


関連リンク

投稿者 futomi : 2004年01月12日 00:00

会社案内 | 特定商取引法に基づく表示 | プライバシーポリシー | 当サイトへのリンクについて | お問い合わせ