- 04 Aug 2022
- 6 Minutes to read
Setting up a Project
- Updated on 04 Aug 2022
- 6 Minutes to read
Adding a project
Once the configuration is completed, we get back to the dashboard and the user will be able to start adding new projects. Since the account linked with the project management(PM) tool is integrated seamlessly, all the projects from the PM tool will be listed and we will be able to select the projects we need to add to Agile.Now DevOps.
Fig: Projects from the PM tool
Once a project is added, you can then continue to set up the project. Do this by selecting Projects on the top bar. If you have multiple projects, select the project you want to set up.
Fig: Setting up the project
The settings of the project is divided into 7 components which are mentioned below:
Fig: Project Settings
The general information section provides details such as the name of the project and the teams that are present in the project. The details of the project includes the project name, last updated status, key, the release version of the project, created on, and if its an active project or not. A manual sync button is provided to sync the project with the OutSystems Lifetime.
The user with tech lead privilege and above will be able to modify the release version of the project at any point of time. This change in version will be reflected throughout the Agile.Now DevOps application for that project.
Teams allow you to manage the permissions of a large number of users over the applications in your factory. This way, when new hires join an existing team in the company, you can manage their permissions over the team's applications without having to grant permissions on each application individually. A team is compromised of a subset of users working on a particular domain and the domains themselves. A domain is comprised of a subset of applications with its own business lifecycle. Domains have independent lifecycles of deployments with independent decision to deploy at any point of time. An example of an OutSystems teams is given below:
Fig: OutSystems Teams
Teams in OutSystems LifeTime can be opened directly by selecting the button in the top right of the Teams section.
By default, all the teams created in OutSystems LifeTime teams are displayed in the team dashboard. It will be laid out in the form of cards in a grid layout. There will be an option to create a new team.
In OutSystems, for each team, alongside the applications that we are going to develop, it's important to create the testing application for the products that we are building which will then be used in the Agile.Now DevOps. This is the most important configuration that has to be done. It is a good practice to have multiple teams for different applications because that way there will be an independent development lifecycle for each product and it will be distinguished from one another based on the DevOps principle. Each team as discussed earlier would have the users associated with that team and each users will have their role mentioned. It will be possible for the admin to modify the roles between developer, tester, manager, etc. The team would also have the different applications and it will be possible to create new or add existing applications.
Fig: Teams in Agile.Now DevOps
Depending on your composition in the project management tool such as Jira or Azure DevOps, It is possible to run one project with multiple domains and teams, and you can also run one team in one project. Agile.Now supports both combinations.
Mapping is the most important functionality in business application development and DevOps process. The mapping functionality maps the different process steps in the project management tool to the different process steps in Agile.Now DevOps.
Enabling the toggle for "Include code review stage in my development process" allows you to map a specific testing process.
Mapping is broken down into 3 distinct areas; To Do, In Progress and Done. Each area allows you to map a specific Agile.Now process step to an Issue status in your project management tool.
- To Do are for the first stages where Issues are being planned and also (if code review enabled) for Issues being ready to be checked.
- In progress are for Issues in active development and also (if code review is enabled) for Issues being actively reviewed.
- Done are for when the issue has completed its process, and is now being mapped to the To Do mapping of the next process.
Mapping is done one environment at a time so the process continues in the next environment. Changing the environment toggle will show the mappings for that specific environment.
The Behaviors module instructs the Agile.Now DevOps to identify the status that is given for each section of tasks within a project, and do activities such as testing, deployment or roll back to development based on the status. The module does the following:
- Gives an option to run automated tests at a predefined time of the day for issues that has a particular configured status
- Based on the outcome of the test result (pass or fail), provides an option to set a new status of the tasks
- Configure the possibility to deploy the issue with a predefined status to a particular environment at a predefined time of the day, updating the status when completed.
Components in Agile.Now DevOps are the building block of your applications and their components. These are imported through LifeTime. The components help classify the issues under modules of different applications. In OutSystems each application consisting of modules and applications, fall under a domain. These domains in Agile.Now DevOps constitute a single application being worked on by a team or teams.
For example, issues under a module say Agile.Now Accelerator that falls under the application Agile.Now that falls under the domain Factory would have a component in the project management tool by the name “Factory \ Agile.Now \ Agile.Now Accelerator”.
OutSystems User Manual - here
It will be possible to sync the components in Agile.Now with the project management tool. This can be done by clicking the "Sync Components" button. Once the components are synced, it will be possible to add a component to each issue. It also provides a quick way to add tests to a specific module.
The Tests module has the possibility to synchronize the tests that has been added in the automation testing platform to the projects in Agile.now DevOps projects. By doing so, it will be possible for the developer to run the tests from Agile.Now using the Run Tests button. Once the user starts to run the tests, he/she will be able to see the status that the tests are running and then finally see the status of each tests.
Tests are an important part of Agile.Now DevOps, not only following the best practice principles of Agile working, but also in automating certain aspects like Code Reviews and Deployment (as configured in Behaviors).
In the production environment, it will not be possible to run the tests as the tests are not deployed from one environment to the production environment. Hence the status of the Run tests after deployment will always be set to false
Issues are a specific piece of work to be done/being worked on by a developer or team. Any piece of work loaded into your project management tool is synced and shown here, as it forms the basis of Agile.Now DevOps.
Selecting a specific issue here will open an Issue Details page with more available information.
From this details page, you can see who is assigned to the Issue, add comments, check out the components attached to the Issue, check out Tests for the Issue and even see a History of all steps taken with the Issue. Adding comments will also sync those comments directly to the Project Management tool.
Direct links are provided for the user to open the Issue directly in the Project Management tool if needed, as well as a link to directly open the affected module in Service Studio. All of these steps serve to provide the provide the correct information when needed along with direct links to the tools needed to complete the job.
Releases holds information on releases for applications made to production or to environments outside of those configured.