In WIMMA Lab each team forms a virtual company, and each virtual company has its own assignments for the period of WIMMA Lab. Even though the virtual companies are not real companies the idea in WIMMA Lab is that students can work in them as they were real companies. WIMMA Lab is a fantastic opportunity to practice real life working skills.
Participating students are divided into virtual companies based on the interviews and needs of the assignments. This means that there are different numbers of members in each team, and each team usually has students with diverse backgrounds and skill sets. It is important that each team member has possibilities to learn and improve themselves during the WIMMA Lab.
WIMMA Lab virtual companies are using OPF Framework. The OPF Framework is a cloneable GitLab repository which acts as a base to each virtual company. The OPF Framework contains many important tools and repositories needed to create basic process flows for virtual companies. Different virtual companies have different assignments, which means that each virtual company has unique needs. So, it is possible to edit the OPF Framework to match the current needs of each virtual company.
Virtual companies use GitLab and OPF Framework repository for many purposes. This includes task management, documentation, version management, planning and so on. Each virtual company will have its own OPF Framework repository cloned under each year’s WIMMA Lab official repository. If WIMMA Lab mentors have not cloned the repositories ready for the virtual companies it can be done easily through GitLab.
As mentioned earlier WIMMA Lab is a fantastic opportunity to practice real life working skills and methods. Students in WIMMA Lab are learning of newest tools and techniques and are developing solutions to challenges that are a bit ahead of time. WIMMA Lab brings agile software development and DevSecOps together. The goal in WIMMA Lab is that one day the virtual companies can fully follow DevSecOps principles in their work. The following table shows some of the basic process areas of virtual companies.
The following chart, however, shows full load of DevSecOps operations. GitLab as working environment can solve many of these but as DevSecOps is not only operations but more like a way to act and think the virtual companies should have a certain mind quality and commitment to adhere to DevSecOps principles in their work as a team. Please read more about DevSecOps from later chapters.
First things each team should make their virtual company to feel like their own. The virtual companies have static names (Pengwin Media, Overflow, IoTitude and Mysticons) but every year new team members should produce their own vision, mission and slogan which represent the current set up of the virtual company.
Vision is the dream of a virtual company. It tells where the virtual company is heading. Mission tells why virtual companies exist. It answers the question of what the virtual company aims to create. Slogan is the catchphrase of the virtual company.
New team members should also produce the best practices and house rules for the virtual company. These will be guidelines on how the virtual company should operate during the WIMMA Lab.
The OPF Framework has many sub repositories, which can be used to organize the virtual companies' work. However, all the projects do not necessarily need every sub repository. But each virtual company should at least have a core repository. Core is used as virtual company's primary documentation storage or intranet/extranet repository, and it can be used as simple web page for the virtual company.
Some of the virtual companies might also benefit from source and tools repositories. Source repository can be used to hold primary source code and demo product. Source repository can also be used to test DevSecOps pipeline .yml. In GitLab .gitlab-ci.yml file can be used to run commands when CI/CD pipeline is triggered. Please read more about pipelines from later chapters. Tools repository can hold for example needed development or testing tools. It can also be used to hold finished materials which are used to build a DevSecOps pipeline.
| Repository Location | Name | Purpose | |---------------------|--------|----------------------------------------------------------------------------------------| | core | core | Main documentation storage for all project documentation, can be used as site as well. | | source | source | Source code location (optional) | | tools | tools | Test tools, other tools, materials, etc. (optional) | | site | site | Web pages if needed separate site besides core-site and WIMMA Lab official site |
During the project development there might be a need to create other sub repositories for testing and trying things out. These repositories should be named clearly and use these main repositories to hold the final work. This will help all the stakeholders to be able to find what they need easily. It is good to remember that there are several different stakeholders in each WIMMA Lab project, and only part of them are internal stakeholder groups.
For external stakeholders' sake repositories should be clearly named and readme.md document should have some information written about the repository and what it is for. Clear repositories, which have used epics, milestones, time tracking and comments, also make it easier to document all the work what was done during WIMMA Lab.
The web page is a good place to share virtual company’s materials and information to external stakeholders and show project progress.
It is possible to use a core repository as a base for the web site. If the team wants to have a different web site than the core repository the team can choose to use the site repository. The web page can be built from any repository with GitLab pages-service. CI/CD pipeline can be added to the building of the web page. In both cases it is good to remember to keep the web site up to date.
If core repository is used as base for the web page best practice is to clean up the repository and delete un-used materials and lorem ipsums. This will make the web site to look more professional.
Each virtual company will have its own intro page under WIMMA Lab official website, where the teams can describe their assignments and introduce each team member and roles.
In 2021 WIMMA Lab started to use CSC and cPouta to host virtual machines that run Kubernetes clusters. The following chapters offer some basic information about used solutions. To see instructions on how to set up each service please refer to Mysticons 2021 manuals. These manuals are kept separate from the Green Book for clarity and the fact that they are base work for the next teams who will contribute to them.