Agile software development relies on a team having an established, repeatable process that’s supported by tools for planning and workflow organization, for working with code in version control, and for integrating with build and deployment servers.
All of these mechanisms must be installed, set up, and managed. Unfortunately, to ensure traceability back through the workflow from a deployment to code, substantial effort is typically required to get them all to play nicely together. This is where ossum comes in.
Ossum combines everything you need for planning, workflow, code management, and integrates with build and deployment services in a single, easy-to-configure package.
In this article we’ll walk through the main features of ossum and demonstrate how easy it is to set up and how it can streamline your team’s workflow.
The Ossum Space
Ossum offers a true “space” for people to work together within an account, whether logically organized as a team, a company or a project.
Effortlessly pop up a collaboration space with its own Kanban board, repositories and deployment pipeline.
Each space has its own Kanban board. Code repositories and CI integration with build servers are configured at the account level and can be shared across spaces and Kanban boards within ossum.
You can set up a space in three simple steps.
Step 1: Add an Account
In most cases, you’ll already have an account that was created for you when you signed up for a trial with ossum.
Step 2: Add a Space
Adding a new space is as simple as clicking the button, and you can switch between your spaces at any time using the Space Selector link on the navigation bar.
Step 3: Invite Users
When you have a space set up, you can start inviting users. All users are identified uniquely by their email address, so if a user you invite hasn’t yet opened an ossum account, they’ll get an email inviting them to sign up.
Your space is now ready and you can move on to setting up your Kanban board, code repositories, and build/deploy pipelines.
Planning in Ossum
An essential component of any agile software delivery workflow is the communication, in real-time, of a team’s capacity and work in progress.
Your new space will come with a feature-packed Kanban board to visualize your workflow, provide traceability and transparency, and support collaboration. It’s fully customizable, allowing you to:
- Add, remove, and rename columns
- Reorder columns
- Collapse columns
- Rearrange the task cards in any column to reflect priority
- Switch between card view, and list view
KANBAN TIP: Columns represent a particular activity that makes up part of the complete workflow for building your application. The simplest example might consist of the To do, In Progress, and Done columns.
Now is a good time to set up the columns to reflect the way your team works. If this is your first time using a Kanban board, stick with the defaults for the time being.
New feature alert! Keep an eye out for upcoming support for live updates. When this feature becomes live, if another team member makes a change on the board, it will go out to other users in real time.
Adding Work to the Board
Work is added to the board through visual cards that can be tracked all the way to deployment as they move between columns.
There’s nothing prescriptive about what these cards represent. They might represent stories, Product Backlog Items (PBIs), critical bugs, technical debt, or anything else you need to plan for and prioritize.
The cards make it easy to see critical information about the state of any work item at a glance, providing full traceability and fast identification of blockers. You can also link code changes directly to cards and enforce this practice through settings for each repository.
One way to give the cards an identity that fits in with your company’s current working language is through ossum’s versatile labelling feature. For example, if your team decides that a work item labelled as a bug in the backlog should become a user story, you don’t need to delete it and open a new card of a different type — you just change the label.
Epics are another organizing feature for cards. Epics represent a larger project or scope of work that may include many different kinds of work items. You can assign cards to an Epic, representing work such as building a new site or feature, and then use labels to organize the cards and work within that epic, which might include user stories, bugs and issues, infrastructure tasks, documentation and marketing, and so on.
Clicking on a card opens a pane with everything you need to manage that work item, including: labels, file attachments, assigning users, and a checklist.
Again, there’s nothing prescriptive about how you use the checklist — it could be anything, from tasks to acceptance criteria.
Multiple owners per card! Notice that cards are assigned to users or owners, not to developers. That’s because you’re not limited to assigning a task to the single developer who might be working on it. With ossum, you’re free to add other people involved in the workflow of that card, such as analysts, the product owner, or any relevant participant, increasing traceability further.
Searching the Board
Don’t worry about being overwhelmed by cards as your project grows. Here are a couple of features that can help:
- The ability to switch from card view to list view (you probably spotted this above);A powerful yet lightweight search tool that can filter cards by assigned users, labels, Epics, as well as keywords present in the name or description.
When you’ve finished setting up your planning board, you can move on to the Code tab. Here you can add repositories, either by importing an existing repository from any Git source or by creating a new one.
Ossum hosts the Git repositories for you, fully integrated with the rest of your space.
Once you’ve added a repository, you can use your favorite Git UI or the command line to work with it. When you click the icon to clone it, the git command is constructed for you to copy and paste into your terminal.
Don’t forget to explore all of the features available through the icons down the left-hand side to get a feel for what you can do. Here’s an overview:
View and manage repository files
- Browse repository content
- Make quick changes inline
- Find files within the repository
View history of changes to code
- View previous commits, including linked work items for merge commits.
- Browse through the commit history
- Use graph mode to visually inspect the history
- Create branches or tags from any point of time in history
- Find commits of your interest with powerful commit filter
View and create branches
View and create tags
View and create merge requests
- Powerful merge request search
- Use merge requests to support code review process
- A single view linking code changes and Continuous Integration results
- Including durations, statuses and build logs
URLs and command to clone repository
- Configure your repository to match your team’s workflow
- Define requirements for code changes, merges, and reviews
- Set up custom, automatic Continuous Integration verification
- Configure webhooks that are triggered by check-in, merge, build, test and other criteria
Source code search
- Instantly find the piece of code you were looking for
- Search either in a single repository context or across all repositories of an account
Build and Deploy
By this point you’ve set up your space, invited your team, planned and prioritized some pieces of work, and created or imported a repository for your code
The final piece of your team’s setup process is hooking into your Continuous Delivery (CD) pipeline. You can connect to Team City, Bamboo, or Jenkins. In this walkthrough, we’ll take a look at integrating with Jenkins and a Continuous Integration (CI) build.
CI is a must for any project. Code should be kept in a working state all the time and if the CI build starts failing, the team stops whatever it’s doing and fixes it.
Fortunately, ossum can report build fails to a dedicated screen as well as to any work items associated with the code changes being verified. In addition to full traceability back to the build job, detailed logs are also pulled to ossum to view in the convenience of the space.
Step 1: Set Up DevOps CI for the Space
First, click on Manage Accounts, then on the account where you want to set up CI.
Next, click on DevOps, select Jenkins as the service, then add the URL, username, and password to connect to your Jenkins server and Save
Step 2: Jenkins Build Job Names
In the settings for the repository itself you can define separate Jenkins job names to use for commits and merge requests. In this walkthrough, we use the same simple Jenkins build job for both.
The result of the build triggered by merge requests is recorded in the merge request itself as an up or downvote.
Ossum is a new kind of service combining planning, workflow, code organization, and CI/CD integration into a single, easy to configure and useful package. It brings multiple benefits to your development team:
All the tools set up for you in one place. By combining all the tools that you need to manage your agile software development process, ossum saves your team all the pain of configuring and maintaining them.
Traceability. One of the biggest benefits is that ossum seamlessly provides the sort of integration that would be challenging to achieve with separate tools, for example:
- One login username to access all the tooling
- The ability to trace back from a build or release to the commit that triggered it and the work item or card on the Kanban board that the commit linked to
- The ability to add multiple owners of a card so you can find, for example, even the analyst who worked on the requirements linked to the code being built
Fully featured Git repositories. Powerful Git version control is integrated into your spaces, including a merge request system to support your code review process.
A flexible Kanban board. Integrated into each space is a planning board with live updates and all the critical information you need on display, such as build status, checklist progress and labels.
Find Out More
Despite being lightweight enough to offer a smooth user experience, ossum is a powerful tool for managing your software development, with more features than we could cover in this walkthrough. Check out the docs at http://ossum.cloud/docs to dig deeper into what ossum offers.