Office 開発の体制について
サイボウズ本社の田中と申します。
今回はサイボウズ Office の開発体制をご紹介いたします。
現行製品であるサイボウズ Office 7 の開発と、そのメンテナンス、後継バージョンの開発については私のチームで行っております。サイボウズ・ラボには現行ラインの各種の制限を解消する目的で、抜本的な研究開発(=Office X)を依頼しております。
それぞれのチームの取り組みは今後少しずつお知らせできると思います。
どうぞよろしくお願いいたします。
サイボウズ本社の田中と申します。
今回はサイボウズ Office の開発体制をご紹介いたします。
現行製品であるサイボウズ Office 7 の開発と、そのメンテナンス、後継バージョンの開発については私のチームで行っております。サイボウズ・ラボには現行ラインの各種の制限を解消する目的で、抜本的な研究開発(=Office X)を依頼しております。
それぞれのチームの取り組みは今後少しずつお知らせできると思います。
どうぞよろしくお願いいたします。
田中です。
Office7の開発責任者を務めて早1年になります。今回はその開発項目のなかから、Office7(やデヂエなど)の高速化について、説明します。
実は Office7 は Office6 と比較して2~5倍応答速度が向上しています。パターンに依りますが、開発中の計測では10倍以上速いケースもありました。
このチューニングの成果は Office のデータをガルーンに変換するコンバータにも応用されて、なんと24倍も高速化した社内検証結果がでています。
その秘密は... 簡単に説明しますと、ディスクへのアクセス数を大幅に削減することに成功したのです。Office6/7やデヂエ、メールワイズは CyDE1 という、弊社独自のオブジェクトデータベースを使用しています。オブジェクト単位に取り扱えて便利なのですが、ディスクアクセスが細粒度になってしまっていたのです。
このチューニングは今後デヂエ等の製品にも適用されますので、私自身、結果が楽しみです。
成熟した製品を発展する際は機能改善が中心になりますが、パフォーマンスの低下で断念することもしばしばありました。Office7ではまずその懸念が解消されましたので、次は ガッツン と機能改善するつもりです!
田中です。
Office 7でトップページのスケジュール週表示、個人のスケジュール月表示で表示の部分更新を取り入れたのですが、こうした部分的な表示の更新は今後も積極的に取り入れていきたいと考えています。
ただ、製品の画面については機能とデザイン的な要素のバランスが重要になるので開発の中でも賛否両論分かれて熱のこもった議論になることが多いところです。
そこで現在の開発ではUI評価版として新規の画面や変更の大きな画面を先に実装して、社内から自由にアクセスできる環境へ公開し意見を募るということを行っています。
目的は実装した機能、画面が意図したように使われるか、理解されるかどうかを確認するということとして、公開当初は敢えて機能の詳細を明かさずにユーザービリティテストを実施して、ブラッシュアップしていくというやり方をとっています。
まだ画面をお見せできないのが残念ですが、「これまでよりも1日30分、自分の時間が増える」ということを目標にして、より簡単に、より効率的に毎日使えるソフトウェアを目指して開発を進め、考えるものに日々近づいていっていると感じます。
また、効率を上げるだけでなく
「せっかく入力したのに、エラーで消えたー!!!」
なんていうイライラからも解放されるようにPOST処理をAjax化したり、ブラウザのストレージを使ったりして対応を検討しています。なかなか気付かれない機能ではあるのですが、こうした機能の積み重ねがあって初めて心地よさって感じるものなんだと思います。
直感的に使える、というところからもう一歩進んで、直感的に使ってみたいと感じる、というものなるよう日々精進していますので、皆さんお楽しみに!
魂まで Office 7 に売り渡している新卒2年目の岡田です。
昨年夏にOffice開発チームに配属されてまもなく、Office 7 のリリースを迎えました。
新しい製品がリリースされると、お客様向けに記念品を作ったりすることはよくあると思いますが、Office 7 のリリースでは開発メンバー向けにも記念品を作ってみました。
サイボウズ Office 7 記念Tシャツ

正直なところ、社名がドドーンと入ったTシャツなんかいつ着るの・・・?と思ったのですが、google とのマリオカート対決に着ていく者もいれば、リリース当日の朝これを着て出社するつわものもいました。
なんだかんだで私自身も自宅付近の飲み屋で着用したりしています。
リリース後の打ち上げもそれはそれで楽しいのですが、数少ない開発メンバーだけが手に入れることのできる記念品があるというのも嬉しいものです。
たとえパジャマになる運命だとしても…。
新卒3年目の梶田です。
Office 7 の開発に携わること早1年、今回は私がOffice 7 開発で最初に携わったインストーラーにまつわるちょっとした小ネタを紹介させていただきます。頭の片隅にとどめておくとふとした時に役立つかもしれません(ごく稀に)。
インストール時にオプション製品を選択しなくても大丈夫!?
Officeシリーズではイントールの最後の設定画面で、インストールするオプション製品を選択することができます。これを選択せずにインストールしてしまった場合、再度インストールし直さなければいけないのかという質問を受けることがあります。そんなことはありません!
「システム設定」 → 「アプリケーションメニュー」から、いつでもオプション製品の追加を行えます。
Linux版でWebサーバなしインストール!
インストールの起動後にWebサーバーが起動されているかどうかのチェックを行い、インストールされていない場合、同梱されているWebサーバのインストールを促すメッセージを出力しています。この時、どうしても同梱されているWebサーバをインストールしないで製品だけをインストールしたいと思ってもエラーで弾かれてしまい、前に進めません。こんな時、インストール実行ファイルに
-force
という引数をつけてやることでWebサーバーのチェックをスッ飛ばして製品だけのインストールが可能になっちゃいます。つまり、以下のようにコマンドラインで入力すればOKです。
sh ./cbof70ja.bin -force
いかがでしょうか。今後も、ちょっとした裏技を紹介していければと思います。
Tシャツ担当の岡田です。
先日の記事「Office 7 記念Tシャツ」に、「このTシャツほしい」というコメントをいただきました。
在庫を確認したところ、なんと白色が1枚だけ余っていました。
そこで!
限定1名の方に抽選でプレゼントしたいと思います!!
ご希望の方は件名に「Tシャツ希望」と記載して、下記のメールアドレス宛にメールをお送りください。(名前、住所等は一切不要です。)
| 宛先メールアドレス: | (お間違えのないようお気をつけください) |
当選した方には、お送りいただいたメールアドレス宛に後日メールでご連絡させていただきます。
※いただいたメールアドレスは抽選と当選のご連絡のためにのみ使用します。
たくさんのご応募をお待ちしております!
サイボウズ Office の PM を務めている山田と申します。初めまして。
PMとはプロダクトマネージャーの略で、サイボウズの各製品・サービスのコンセプトやビジネスプラン、そして製品要件を決める責任者です。今回は私が決めている「サイボウズ Office」の要件定義について、少々解説いたします。
「サイボウズ Office」の要件を考える上で、登場人物(「~が~できる」の「~が」の部分)を考えるわけですが大まかに以下のように考えています。
個人に提供するサービスであれば「ユーザー」を中心に考えるところですが「サイボウズ Office」の場合には、「システム管理者」を中心に考えています。
(もちろん「ユーザー」は、「システム管理者」「運用管理者」も含みます。)
「サイボウズ Office」は、「誰でも使いやすい」という評価をいただいていますがそれは、サイボウズの代わりに社内で「サイボウズ Office サービス」を展開している「システム管理者」の方々のおかげだと考えています。
そういう方々が、苦労しないように。
そういう方々が、使っているユーザーから感謝されるように。
そういう方々が、「情報を管理する」能力が向上するように。
そんなことを考えながら、要件を決めております。
田中です、お久しぶりです。
Webアプリケーションを開発していると仕様としてRFCを参照することが頻繁にあるのですが、実際の開発の中ではRFCに準拠しつつ個別にブラウザの癖を吸収しつつ進めることになって、なかなかRFCに準拠すればそれで問題なく動作するということにはなってくれません。
その中でも長い間悩まされているのが、ファイルダウンロード時の日本語ファイル名の付け方です。問題の元にあるのはファイル名に使われる文字列のエンコード形式を指定する方法がRFCで定義されていなかった、というところにあると思いますが、これがなかなかの曲者です。
ファイルダウンロード時の保存ファイル名を決める方法は、
少し上に「ファイル名文字列のエンコード形式を指定する仕様がない」と書きましたが、現在はRFC2231という仕様がありFireFoxはこれを正しく解釈してくれるので、FireFoxからのアクセスの場合にはこの形式でファイル名をしているサービス、アプリケーションも現在は多いようです。
私たち開発者が頭を悩ますのは、上のようにIEはファイル名の解釈で独自の挙動を持っており、IEでもFireFoxでも正しく日本語ファイル名を解釈させようとするとContent-Dispositionヘッダのfilenameに生のShift_JISで指定するということになってしまうからです。RFCでは非ASCII文字をそのまま送信する仕様などありませんので違反といわれてしまっても止む無しという感じにもなります。
さらに困ったことには、Excel や Word には解釈できるURLの長さや、開く際のファイルパスの長さに制限を持っていて、日本語ファイル名をUTF-8でURLエンコードした場合にはURLやファイル名が長すぎてしまって Excel や Word などで開けなくなるということが発生します。このためにファイル名を切らざるを得ない場合なども出てきてしまい日本語に限定すると1文字を2バイトで表せるShift_JISの方がファイル名が切れにくくなるのです。
利用する立場からすると、保存したファイルがそのままダウンロードできるということはごく当たり前のことなのですが、こんなちょっとしたことですごく頭を悩ませたりすることになるのです。
いつかRFC2231で統一されるときが来るとは思うのですが、まだまだしばらくは悩ましい対応していくことになるのだと思います。
参考
はじめまして、 8月1日より、Office開発チームに配属された新人の梅田と申します。
まだ配属されたばかりで、実際の開発にはこれから少しづつ参加していくことになりますので、
皆様にOffice開発の話題をお伝えするにはもっと多くのことを先輩方から吸収していかなければなりません。
そこで、今回はOfficeの開発に飛び込んできた私の意気込みをお伝えさせていただきたいと思います。
私が以前アルバイトをしていた某IT会社では、Office6を導入していました。
その会社では、Officeのスケジュール機能を使い、休みの申請をするようになっていました。
しかし、社内でのコミュニケーションは通常のWebメールで行っており、Officeの他の機能は一切使われていませんでした。
この時の私はグループウェアでどんなことができるのかを全く知らず、Webメールを使ってコミュニケーションするスタイルが当たり前だと思っていました。
実際にグループウェアの良さや便利さを知ったのはサイボウズに入社してからです。
グループウェアにはたくさんの機能があり、一から一つ一つ学んでいかないといけないため、使い始める前は少し抵抗がありました。
しかし、実際に使ってみると自分のスケジュールがすぐに確認できたり、空いている会議室を簡単に押さえることができたりと、
非常に便利なツールだということに気づきました。Webメールで行うよりも円滑に社内の人とコミュニケーションを行うことができ、
今まで自分が当たり前だと思っていた会社のコミュニケーションスタイルを覆すツールでした。
既にOfficeを導入いただいているユーザー様も多くいらっしゃいますが
まだ、Officeに触れる機会がなかったり、知っていただくチャンスがなかったりして
私の感じる便利さをお伝えできていない方々も多くいると思います。
そこで私がOffice開発でやっていきたいと思っているのは、ユーザー様に便利さやメリットが伝わりやすく、
今よりももっと「使ってみたい」「使ってみよう」と思っていただけるような製品へとOfficeを進化させていくことです。
お客様に便利に使っていただくのはもちろんのことですが、
使うという第一のステップをより多くの方に踏んでいただけるように励んでいきたいと思います。
次にこのブログを書く機会がありましたら、皆様の希望に応えることができるような
Office開発のお話をお伝えしたいと思います。
これからも宜しくお願いします m__m
岡田です。
現在サイボウズでは 「8」にちなんだキャンペーンを計画中 なのですが、せっかくなのでこのブログでも「8」にちなんで UTF-8 に関するお話をさせていただこうと思います。
昨年 Office 開発グループに配属され、自由課題で Office に Ajax アプリケーションを実装していた時の話ですが、Ajax で日本語のデータを送信すると文字化けが発生しました。
Ajax で日本語のデータを送信する場合、EncodeURIComponent() 関数などでURL エンコードする必要がありますが、この関数では自動的に UTF-8 でエンコードされます。
しかし、Office のデータベースの文字エンコーディングは Shift JIS ですので、そのまま保存して、そのまま取り出して表示すると文字化けが発生する、というわけです。
文字化けを発生させないためには、JavaScript で Shift JIS に URL エンコードできるようにするか、CGI で UTF-8 から Shift JIS に文字エンコーディングを変換(もしくはその逆を)できるようにするしかないのですが、どちらもなかなか大変な処理になってしまいます。
結局のところ、文字エンコーディングの変換は C++ でコツコツ書くのが一番かなぁという結論です。