Enabling team collaboration with ArchiMate 3.0

How to share your ArchiMate model with your fellow architect leveraging open source tools. 

Expressing concerns that need to be addressed by the business and IT systems within the organization with architecture views in ArchiMate make sense, well at least to Enterprise Architects. However collaboration on and sharing the ArchiMate model across a team of architects is a common challenge. This challenge can be addressed leveraging a set of open source software tools:

  1. Archi 4, a low cost entry, open source ArchiMate modeling solution for users who are looking for a free, cross-platform ArchiMate 3.0 modelling tool for their team
  2. GRAFICO, which stands for the “Git FriendlyArchi File Collection”, an Archi plugin which provides a way to persist an ArchiMate model in a bunch of XML files (one file per ArchiMate element or view).
  3. GitExtensions, an open source graphical user interface for Git that allows you to control Git without using the command line.
  4. Git, the free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency; commonly used for software development and other version control tasks and providing a distributed revision control system aimed at speed, data integrity and support for distributed, non-linear workflows.

To set this all up on your workstation just follow all the following steps:

  1. Download the latest Archi 4 full installer and install Archi 4.
  2. Download the latest GRAFICO plugin
  3. Install Archi by unzipping the downloaded zip file to a suitable location.
  4. Install the GRAFICO plugin:
    copy the downloaded .jar file into the Archi plugin folder (archi/plugins directory)
  5. If you are on Windows download and install GitExtensions-vX.Y-SetupComplete.msi from GitExtension. This setup package will provide you with all the required helper tools used by GitExtension. Keep in mind that any Git client tool will do to share your ArchiMate model with Git.
  6. Create a Git repository; there are plenty of options available which can host a Git repository, like for example GitHub. Just ask your software developers for a recommendation. And if you just want to this check out, why don’t you just use the model in my public Archi repostitory on GitHub. This does however require a free GitHub account.
  7. Install GitExtension, a guideline for this task is available in the Git Extension documentation.
  8. Clone the Git repository to a local directory,
    It will be empty the first time this is completed when you created your own empty repository.
  9. Start Archi 4 beta
  10. If you have pulled a current model from a Git repository,  then you must import via GRAFICO
    • “File->Import->Model as GRAFICO”
    • Choose the location from step 8 as the root of your local Git repository
  11. However if you want to start working from scratch, create a new model
    • “File->New->Empty Model”
  12. Create/Update the Architecture Model.
  13. Export architecture model via GRAFICO
    • “File->Export->Model as GRAFICO”
    • Choose the location from step 8 as the root of your local Git repository
  14. In your Git tool, stage all local changes and Push them to the master repository. Feel free to leverage my Archi repository for this purpose as this repository was specifically setup as a test environment.

With this setup complete your fellow architects can follow the same steps to get hold of copy of the model and start collaboration on the model as a team. However I also have to caution you. First of all, if you stuck to the above process, the model you work on never gets persisted in a local archimate file. If you forget to export with GRAFICO your changes are lost. Git is also not a file system, it is a version control system. Your team and you must setup a version control workflow and governance to assure changes to the model are persisted and promoted appropriately. You should definitely check out the best practices and concepts around Git when your team and you venture down this track. Git provides the tools to appropriately baseline your team’s view on architecture but if this tool is not used as it should it may become messy pretty quickly. I would expect your software engineering development team members, which probably have years of experience with Git, is able to provide some coaching on this topic.