The objective of DevOps is to eliminate the barriers that exist between development and operations. In the attempt to eliminate barriers, overlapping mechanisms need to be put in place. First cooperation among operations and development is required in putting the project to deployment. Second, operations and development need to cooperate in providing feedback gained from operations back to development activities. Third, team members in development need to be involved in activities that were traditionally the reserve of operations. Finally, team members in operations need to be involved in activities carried out by development team members. It is best to foster an overlap between development and operations because of the benefits realized by flow of ideas and feedback in both directions.
The DevOps area matrix approach recognizes the existence of different processes between development and operations. Due to these recognized differences, it is important to ensure harmony in activities carried out by development and operations.
In the introductory section, we identified four different ways in which barriers can be eliminated between development and operations and cooperation can be promoted. We will discuss each of these approaches in detail.
When development and operations cooperate to deliver the project to production there are several activities they perform together. The first practice teams are involved in collaborating the interpretation of development activities as a continuous exercise throughout the development of the software. Another practice is the use of tools for infrastructure provisioning and avoiding manual provisioning. Another practice that is helpful in promoting collaboration, is closely following the activities operations and development is involved in.
The second approach identified for promoting collaboration was involving operations in development. No information flows to development about the behavior of software that has been put in production. On the other hand operations has access to all information on software behavior. The information gathered by operations is then passed over to development to help them learn and make necessary improvements on software. Log files are shared with development to help them identify any bugs in the software and make amendments.
Another approach to foster collaboration was entrenching activities of development into activities of operations. Although the primary objective of development is to deliver functionality it is also important to take into consideration aspects not related to functionality. When nonfunctional aspects such as the stability of the software are put into consideration collaboration between development and operations is cultivated.
The final approach we identified that we can use to promote collaboration was entrenching the activities of operations into the activities of development. Development and operations interact to find optimal solution. Operations provide feedback to development to help the development gauge the possibility of successfully delivering project requirements. Feedback on project success should be a continuous exercise in the life cycle of project development.
An effective technique for implementing the four approaches for promoting collaboration is Kanban. Kanban is not a definition of different roles that you need to have in a team. Rather, it is an approach for deploying small bits of your software and letting your software progress along the way. The core philosophy of Kanban is a software weakness at any point will bring down the entire project.
To successfully use the Kanban approach there are several considerations that you need to be aware of. These are listed below.
- A clear view of the workflow provides an understanding of work progress. With a clear understanding of work progress, it is very easy to bring in changes required. Workflow visualization techniques such as a card wall can be used to support the team in understanding work progress.
- It is important to keep work in progress to a minimum.
- It is important to continuously monitor each step in the workflow. This will provide information on whether changes improve or degrade the system.
- Processes should be clearly defined and discussions held to ensure all team members have a good understanding.
- A collaborative approach where all team members are involved in quality improvement should be encouraged.
There are many solutions available for creating Kanban boards. One of them is Trello. This is a web based tool that is available here https://trello.com/ . Trello is a very useful tool because it can be used for team collaboration. To help in organization of work, Trello provides boards, lists and cards. In Trello, a board can be considered as the white board where you can place your project or organizational structure. To organize your activities or tasks in column fashion, you use lists. The items that you need to work on are placed on it. Cards provide a visual way to help in categorization and tracking. Cards can be moved around within a list or between several different lists. Cards are the smallest units in Trello and they can be used to represent the unit of work each team member is working on.
Navigate to the Trello website and sign up using your email. After logging in create a new team. You will need to provide a team name and a brief description.
After creating a team, you can add new members, create boards and control settings applicable to your team. Click on create a new board; you will be prompted to provide a name for your new board and set visibility to one of the three modes, private, team or public. For example, we can create a work organization board and assign it to Team abc. We can then add the lists.
We will create a workflow consisting of work backlog, Next task, code in progress, code completed, testing in progress, testing complete, deployment testing and production. Each of these corresponds to a list. Then we can use cards to assign individual team members their work unit. Whenever there is a change to a card, the team member will be notified
In this article, we introduced the different approaches that can be used to promote collaboration between development and operations. We introduced the area matrix and the Kanban approach used for organizing team work. Finally, we introduced Trello as a web based solution for team work organization. We demonstrated how to create a team, add members, add boards, lists and cards.