Sharing and Collaboration
In his blog Corey Moseley lists the following 7 reasons why collaboration is important:
- It helps us problem-solve
- Collaboration brings people (and organizations) closer together
- Collaboration helps people learn from each other
- It opens up new channels for communication
- Collaboration boosts morale across your organization
- It leads to higher retention rates
- Collaboration makes us more efficient workers
His insights very much fit in with the open source vision of Boxing Beetle. We think that re-use, sharing and collaboration between projects, departments, and even companies will be beneficial for all.
Sharing and collaboration can be applied at various levels in (multi site) organisations.
- Having a common view on the build and test processes is important in software development. We are using the execution graph to depict how the pipelines in a project work together.
- The development and testing of scripts that implements common elementary process steps, e.g. the tasks from the execution graph.
- Sharing equipment, tools, licences, scripts, test cases, test data, etc.
All these issues are addressed by SoftFab as basic features.
In the following scenario a large complex system is being developed. Various teams are developing software in multiple projects and pipelines automate all the build and test processes. Every project has implemented their pipelines in private factories. However, special hardware in separate off-site test rooms, and other equipment or licenses are required during these processes and it is too expensive or even impossible to provide every project with all these scarce resources.
Now, you like to share these resources in an easy way among the development teams.
The way of sharing these resources, is in SoftFab implemented as "Inter Factory Resource Sharing".
This scenario describes the way how a number of geographically spread companies develop in collaboration a software system.
Company 'A' develops a special database that company 'B' uses in its application. This application needs to be tested in the environment of company 'C'. All the companies have their own set of rules regarding internet safety and security and implemented firewalls to support these rules. All partners are committed to make the collaboration a success.
During the development one wants to compile and test a certain version of the library for a certain platform. Then, the library is used to build and test the mentioned application and the final system tests take place in the targeted environment.
Your CI++ toolchain should perform this pipeline without bothering the user about the details of 'what need to execute where', firewalls, and whatsoever.
A study at the Delft University of Technology in the Netherlands, Tool support for distributed software engineering discusses "SkyFab" as a method to create company boundary crossing pipelines.
A SkyFab is implemented as a set of collaborating SoftFabs.