OutSystems Platformでは、どのようにチーム開発を行いますか?その1

OutSystems Platformを用いて開発したアプリケーションはモジュールで構成されており、それがチームの共同作業を容易にしています。これは、大規模プロジェクトの場合も含みます。モジュール型システムでは、複数の開発者が一つのアプリケーションに取り組むこともありますが、モジュールで構成されているため、ほとんどの場合は個別のモジュールに対して作業を行います。しかしながら、必要な場合には、チームで同一のモジュールに対する共同作業を行うことができます。  

モジュール型アーキテクチャ

開発者は、組織内で開発者の作業対象となる領域を分離することができるモジュール型アプリケーションアーキテクチャを、OutSystems Platformを用いて作成します。この「マルチモジュールソリューション」により、開発者または開発ライフサイクルにおける多くのコンフリクトを取り除くことができます。複数の開発者は、「自分の作業が他のモジュールに影響を与えるのではないか」という不安を持つことなく、個別のモジュールに対する作業を行うことができます。アプリケーションとモジュールのすべてのバージョンは、発行される度に集中リポジトリに自動保存されます。関連するアプリケーションとモジュールのマイルストーンをタグ付けすることができ、「だれが」「いつ」を含むバージョン履歴をチェックして、以前の好きなバージョンに簡単にロールバックすることができます。

大規模な組織に複数のチーム

大規模な組織で複数のチームが共同作業を行い、開発サイクルで生じるコンフリクトの数を大幅に減らすため、OutSystems Platformでは異なる開発者が同時に別々のモジュールの作業を行えるように、次のような仕組みを用いています。

  • アイソレーション
  • デプロイ計画
  • ステージング管理
  • フェデレーションユーザー管理
  • 業務監査
  • スターターテンプレート


アイソレーション

開発者は、OutSystemsのモジュール型アプリケーションアーキテクチャを用いて、アプリケーションを作成します。これにより、アプリケーションに特定の変更を行うために開発者が作業を行わなければならない領域を、組織内で分離することができます。

加えて、チームはさまざまなコンポーネントを利用して、自分たちのアプリケーションポートフォリオを良好な状態に保つのに役立てることができます。

  • OutDoc: アプリケーションのドキュメントと基本アーキテクチャダイアグラムを生成します。
  • Discovery: ポートフォリオ全体が良好な状態であるかを評価する際の支援を行います。

デプロイ計画におけるチームコラボレーション

複数のチームがOutSystems Platformによる開発スピードで作業を行い、すべてのチームが変更を本稼働環境に反映させていく場合、複数のチームが毎日のように異なる変更内容をデプロイする状況が発生します。

ここでデプロイ計画を共有すれば、各チームがアプリケーションを追加し、別環境への変更のデプロイを一回のオペレーションに同期することが可能となるため、このような込み入ったデプロイ作業を改善することができます。

デプロイ作業はすべて、権限レベルで管理されます。適切な権限を持つユーザーなら、誰でもアプリケーションをデプロイ計画に加えることができます。ただし、デプロイ計画の実施には、計画に含まれるすべてのアプリケーションに対する権限の付与が必要となります。 

複雑なデプロイ手順の場合のステージング管理

ポートフォリオが拡大し、アプリケーションとモジュールの数が増加するに従い、アプリケーションとモジュールの開発および運用ライフサイクルに変化が生じることは自然の成り行きです。ポートフォリオの中に何百というアプリケーションやモジュールがある場合、アプリケーションやモジュールのどのバージョンが本稼働環境に配信されたのかについて、より具体的な管理が必要となるでしょう。さらに言えば、デプロイによる影響とそれに必要なタイムフレームを完全に見通せる状態にしておくことが極めて重要です。

OutSystems Platformは、デプロイ業務に関するきめ細かな管理機能を提供します。デプロイの基本的な方法は、アプリケーションバージョン全体を1クリックで本稼働環境に配信するやり方ですが、配信するモジュールを個別に選択することもできます。この方法により、アプリケーション全体をデプロイするのではなく、小さな修正をすぐに配信するという手順が可能になります。また、デプロイ計画に関して、すべての依存関係に不一致がなく、アプリケーションの一貫性が確保されていることの検証が行われます。

フェデレーションユーザー管理

OutSystems Platformでは、各ユーザは各チーム内で一つのロールを持つよう設定され、そのロールはチームに属するすべてのアプリケーションに自動的に適用されます。ユーザやアプリケーションをチームに追加、または削除するのも簡単です。

また、統括管理者が各チームの管理者に対して各自のチームを管理するための権限を付与し、プロジェクト全体をコントロールするという管理形態を取るチーム開発モデルをサポートするために、「Team and Application Manager」(チームとアプリケーションの管理者)というコンセプトの権限もあります。あるアプリケーションに関してこの権限を持つユーザーは、そのアプリケーションに関して他のユーザーに付与する権限を管理することができます。 

同様に、あるユーザーがチームに対してこの権限を持っている場合、そのユーザーは統括管理者に要求しなくても他のユーザーをチームに追加またはチームから削除することができます。

業務監査

多くの場合、企業は、システムオペレーターがトラブルに対処したり、システムの利用状況を追跡したり、ユーザーアクションを記録したりすることで、不正行為を調査するために有用なデータを提供しやすくしています。そのために、多くの場合、自社のシステムやネットワークで生じるイベントに関する情報を保持しています。

OutSystems Platformは、ユーザー管理、ロール管理、チーム管理、インフラ管理、およびライフサイクルにわたるアプリケーション運用など、インフラの状態を変化させるすべての活動をログに記録します。このログ機能は、ユーザーロール、チーム、アプリケーション、環境、およびインフラなど、上位レベルのすべてのオブジェクトで利用可能であり、誰が、どのオブジェクトに対して、いつ、どの操作を行ったかを特定する作業を助けます。

アプリケーションの標準化と稼働開始を促進するスターターテンプレート

OutSystems Platformから提供されている自社用のテンプレートセットを用いると、 チームメンバーは同じ外観とウィジェットセットを持つ新しいアプリケーションを作成することができます。また、サービスまたはAPI参照の初期設定セットを用いて起動することもできます。この設定セットは、アプリケーションの外観の全体的な一貫性を確保してくれるだけでなく、標準の大規模アーキテクチャーへの準拠も手助けしてくれます。

また、開発者は、OutSystems Communityのメンバーに助けられたり助けたりしながら、OutSystems Forgeでテンプレートを探したり、共有したりすることができます。

大規模チームの共同作業についての詳細情報

大規模チームの共同作業を可能にする機能について、詳しくはこちらの記事をご覧ください。(英語)