[IM] 2015年に向けての組織化を考える

INTER-Mediatorの開発を始めてから、ちょうど丸5年くらいが経過しました。いろいろあったものの、一貫して、新居雅行個人のプロジェクトのような形態だったのですが、エミックさんをはじめとしていろいろな展開が始まっており、そろそろ個人プロジェクトではなくそうかと思っています。かといって会社作るということではありません。こうしたプロジェクトは組織そのものも、プロダクツに見合ったものをコミュニティプロセスで発見的に開発しないといけないと考えています。

まず、INTER-MediatorがMIT Licenseであり、オープンソースである点はそのままにしますが、クレジットは「INTER-Mediator Development Project」にしようと考えています。加えて、その開発そのものをマネージメントしている「INTER-Mediator Directive Committee」が存在するという形態にしたいと思います。人数少ない中、組織ばっかり作るかという話もありますが(笑)、先々の方向性を決めるINTER-Mediator Directive Committeeがあって、実際の開発はINTER-Mediator Development Projectがやっているという状況とみなすのです。本来は、さらにINTER-Mediator利用者としての開発者やシステム開発を行うエンドユーザもいるのですが、今のところはこれらのみなさんに対する「組織」は作らないで、時機が来るのを待ちたいと思っています。

「INTER-Mediator Development Project」のミッションは、INTER-Mediatorの継続的な開発を進めることです。これは明確ですね。コードに書くクレジットはこれになります。また、GitHubの主体も「INTER-Mediator Development Project」にするつもりです。GitHubは現在新居のアカウント上にありますが、「組織」という仕組みがあるので、それに移行するつもりです。「INTER-Mediator Development Project」のメンバーは、Contributor、Special Thanks、そしてcloneやforkした皆さんというゆるい定義にしたいと思います。つまり、集まっている方々はプロジェクトに関わっているというみなしをするという組織であり、言い方を変えれば求心力はないものの影響力はあるというところでしょうか。今の所、動いている唯一のコミュニティであるFacebookのグループは、「INTER-Mediator Development Project」の活動の一貫であるということにします。

「INTER-Mediator Directive Committee」のミッションは、INTER-Mediatorの継続的な発展を促す活動を行うということです。こちらは、立候補や推薦と同意などを含めて、メンバーが誰であるのかということを明確にします。したがって、入会と退会を明確にする必要があります。「INTER-Mediator Directive Committee」は役割を明確に定めることと、必要に応じて担当者を設定するものとします。役割は、次のようなものです。

  1. INTER-Mediatorの今後の開発計画を立てて、方針を示す(例えば、半年に1度、ドキュメントをリリースする)
  2. Webサイトを運用する
  3. GitHubでのpull requestに対処する
  4. 普及のための活動(勉強会やもくもく会など)を主催、あるいはリードする
  5. トレーニングマテリアルを整備し、提供する

5についてはすでに私自身がお金をいただきながらやっていることですが、位置付けは普及活動になるかと思います。2についても私がやっていますね。1については、Project側の意見も吸い上げないといけませんが、決定して声明を出すのはCommiteeの役目と考えています。

現在のWebサイトは3つのドメインで同じものを表示していますが、以前に松尾さんから想定されていたように、.orgはCommitee、.infoはマニュアル、.comは総合的な紹介サイトということにしようと考えています。人や作業が増えた時に、分割されていると、作業分担がしやすいのではないかと思っています。この作業は、さっそく、2015年前半の作業プランに入れるべきかもしれません。

そういうことで、大きな意味では「Committeeを作り、名乗ります」ということになりますし、それだけといえばそれだけですね。会則とかややこしいことは初期段階では不要かと思います。私がChairmanですということでもいいのですが、役割分担ではないroleの割り当ては、Committeeの人数が増えてからにしようと思います。

Committeeメンバーについては、松尾さんには入ってもらいたいと思っています。エミックさんではFM Publisherを開発して提供しており、INTER-Mediatorの動向は自社ビジネスに少なからず影響するわけですから、言い換えればコントロールする側に立つ意味もあるかと思います。また、立候補、推薦等も受け付けますが、本人が嫌がった場合には当然ながらメンバーとは言えないかと思います。みなさんの中でも立候補される方はご連絡ください。もちろん、開発関係の方の参加が想定されますが、開発に関係ないもののこうしたコミュニティにより深く関わってみたいという方の参加も歓迎します。

言語ごとのiOSシミュレータを用意する

Xcodeでシミュレータが見えなくなるトラブルが発生しましたが、復旧過程で「機種ごとだけでなく、言語ごとにデバイスを用意する」ということができることに気づきました。その方法を紹介しましょう。

いろんなバージョンのXcodeを行き来しつつ、ユーザも切り替えながら使っていることもあるせいなのか、ある日、XcodeでiOS向けのプロジェクトで、iOSシミュレータがまったく選択できなくなりました。現在は、Ver.6.1.1が公開されている中で最新ですね。

shot9502

ここで見えるシミュレータは、WindowsメニューのDevicesで確認できます。やっぱりみんな消えています。なぜかはわかりません。

shot9503

シミュレータを追加するには、左下の+部分をクリックします。すると、次のようにシートが表示されて、名前や機種、iOSのバージョンなどを指定してシミュレータを追加できます。全部消えてしまっても、もちろん、こうして追加すればOKです。

shot9504

ここで、ふと「同一の機種は追加できるのか」と思ってやってみたらできました。そこで、さらに思いつきました。たとえば、iPhone 4sを2つ登録して、それぞれで、シミュレータの言語を「日本語」と「英語」にしておけば、言語の切り替えがポップアップからできるようなものではないだろうかということです。

以下のように、iPhone 4s-EnとiPhone 4s-Jaの2つのシミュレータを追加登録します。どちらもDevice TypeはiPhone 4sを選択しています。

shot9509

Xcodeでは、このように、指定した名前(Simulator Name)のポップアップメニュー項目が出てきます。

shot9506

それぞれのシミュレータでアプリケーションを起動するなどして起動し、「設定」アプリケーションで言語を日本語と英語に設定しました。そうすれば、以下のように、もちろん、それぞれの言語でシミュレータが即座に立ち上がります。シミュレータ側でのHardwareメニューのDeviceでは、名前でなくデバイスタイプが出るようで、ちょっと不便ですが、まあ、Xcode側で選択できさえすればいいので、これで、Xcode側から言語を指定したシミュレータの呼び出しができるということです。

shot9508 shot9507

ちなみに、XocdeからプロジェクトのRun等をしないでシミュレータを起動するには、Xcodeで、XcodeメニューからOpen Developer ToolのiOS Simulatorを選択すれば良いでしょう。

shot9505

以下の書籍ではこの話題は入れられませんでした。こちらの書籍もよろしくお願いします。

ios_programming_cover1