Continuous Delivery with Blossom
Continuous Delivery enables you to deliver value to the customer faster by incrementally optimizing the flow of work. Here’s a step-by-step guide on how to practice Continuous Delivery with Blossom.
Continuous Delivery starts with breaking down work into smaller, releasable chunks. Hence, work moves through the process continuously, reliably and quickly. By releasing smaller bits of work you receive customer feedback earlier and you’re able to improve quicker.
Shipping smaller updates frequently reduces the risk of something going wrong.
If changes or bugs suddenly occur during your process you can adapt quickly. Blossom enables you to achieve a smoother and continuous workflow for your team and automatically enables you to provide reliable and higher quality software.
Continuous Delivery ensures that your team stays aligned and that you can quickly adapt to changing priorities in the day-to-day. You can automatically give greater focus to fewer tasks and achieve higher quality output to eventually provide greater value to the customer.
Step by step to a continuous workflow:
Why does Blossom Work?
Kanban is a way for teams & organizations to visualize their work. Every team member immediately gets overview who’s doing what and can easily identify and eliminate bottlenecks. It’s about continuously improving your process and the way you manage the flow of work, rather than managing team members and their work.
Every member of the team and the team as a whole benefits from Kanban. Teams reduce waste by setting the optimal amount of work they can handle at one time which leads to a smooth & continuous workflow. As a result you can automatically give greater focus to fewer tasks and achieve higher product quality to eventually provide greater value to the customer.
A picture is worth a thousand words — Blossom visualizes your work by using cards on boards to create a picture of your work. The board makes work visible to the whole team by showing how work is flowing through each step of the process, and provides direct context for the work by showing who is focusing on what & why.
Get your team on board
Blossom is built with you in mind whether your team is in the same room, distributed over different floors, different cities or even continents. Invite marketing, sales, business development, customer support and every other involved stakeholder to collaborate directly with engineering, user experience & design. Bringing the skills of every individual together on the same page gives the ability to move and ship faster.
You can do simple but effective roadmap planning by creating a high-level roadmap in free text format where you derive concrete cards out of your higher level goals and eventually add them to your Blossom board.
Recommended Method: Objectives & Key Results
Map your process
See the status of the work being done at a glance by visually representing each stage of your process flow in a production board. To create your workflow you first identify the major processes of your department or organization and then map them to a board.
You can identify them by simply determining “Where do features come from and where are they going next?”. Add, update or remove stages to visualize your workflow to match your project’s needs. The initial stages of a workflow on a production board for example could be: User Experience > Implementation > Validation > Party
Create and define Stage Policies
Stage policies allow teams to explicitly define what happens in every stage of their workflow. They’re two fold. Stage policies set quality standards and minimum requirements for cards to be in a specific column. Considerations or requirements that should be met at a certain stage of the process can be defined as well in a stage’s policy.
Go through every stage policy together with each involved team member and make sure she understands the policies well. The more context there is the better the focus and quality of the work outcome will be. Quality assurance steps could be user experience testing, code reviews, copy reviews, etc.
Set WIP Limits
Reduce the time a card takes to go through from the first to the last stage by adding card limits to stages of the board in which work is being performed. Setting the optimal amount of work that your team can handle at one time will lead to a smooth & continuous workflow and it improves quality because you can give greater focus to fewer tasks. These benefits improve efficiency and you eventually get more work done in less time.
Define small chunks of work
You can map your entire software development workflow in Blossom boards to get overview about who is working on what and most importantly why. Start by adding cards that represent features which are worth and valuable building. Try breaking down work into small and releasable chunks that move through your process quickly. Cards should have a short title that everyone in your team can recognize and understand.
Ideally each card should show the reason why it is being built, who is currently involved and an optional state, for example if it is “Blocked” or “Ready for the next Stage”. By doing this work gets visible to all involved stakeholders, collaboration and communication increases instantly and you are able to easily identify blockers, bottlenecks and things that slow the delivery to the customer down.
Mark Work as ready
If a feature you are working on is finished and ready to advance to the next stage you can mark the card as ready to let everyone know. A team member with an open working slot can pull the card into the next stage of the process.
When Work is blocked
Let’s assume a feature you are working on is blocked for some reason. As an example imagine that the API of a service you are integrating with doesn’t work as described. Make the blocker visible to the whole team by marking the card as blocked. Also add the reason (in form of text for example) why it’s blocked or on which action you are waiting so your team can solve the blocker as soon as possible.
Pulling new work
In a push system finished work gets “pushed” to the next step in the workflow. Whereas in a pull system — like Kanban — work gets “pulled” from one stage to the next when there are open slots available. So when a team member is ready to start to work on something new, he or she pulls a new card into the appropriate stage on the board. Pulling work leads to flowing work smoothly through the board and leads to higher quality products.
We recommend to add a separate board for bugs or create new cards for bugs in the main process board.
Handling bugs on a separate board
Create a separate board for bugs, with stages defined appropriate to your bug fixing process. Define bug fixing policies & when to work on bugs to fit to the main process workflow. Add research information that helps to make bug fixing easier in the first stage. As soon as research is done, a team member with an open work slot pulls the card into the next stage the card flows through the process until the card reaches the last stage.
Handling bugs in your main production board
Create a new card for the bug and add a card title prefix “B:” for example. The card gets pulled from stage to stage and flows through the main process depending on the policy the team defined for fixing bugs (immediately, as soon as possible, in an hourly time-box per day, on one day-per week, etc).
In a fast moving company priorities can change daily, hourly or even every minute. Pulling new work from a different source than the first stage of your main process Kanban board implies to remind you to prioritize work again every time you pull new work to your Kanban board. You can pick out the most valuable work that needs to get done next. Work that has been predefined could lead you in the wrong direction if the market situation changed in the meantime.
You could collect the “ideas” or “cards to be implemented” on a separate idea/backlog board and create a new card or copy the existing card to your production board as soon as the idea ready to be implemented.
Measure, learn & improve iteratively
Managing your work with a Kanban Board shows how work is flowing through your development process. Measure and analyze the performance of your flow with tools like the Cycle Time of Cards, via mapping your workflow on a Time in Process Chart, creating a table of Outlying Cards and the Cumulative Flow Diagram.
These metrics help you to prevent future problems and provide you the information you need to optimize your current flow and maximize efficiency.
You can measure performance and productivity by the amount of time it takes to complete a feature or chunk of work from inception to delivery, also called “Cycle Time”.
An example metric to measure bug fixing performance could be the average time of how long a card with the label “B” is.
Other things to look out for: Is the processing time steady over time? Did the bug fixing cycle time get shorter or longer?
A powerful way to drive improvement and to get a better feeling for the performance of the flow are regularly held standup meetings. “Standups” received their name because teams meet and gather around the board while standing. To emphasize the pull system you “walk” the stages of the board from right to left.
Observe while going through the board: Do the cards flow through the board smoothly? Are there any blockers? The “Standup” is a powerful tool for open collaboration and transparency in teams.
Work Time Estimations
Getting estimations right is hard. In Kanban you don’t measure how much you can do within a certain period of time. You measure how long a story needs from idea to roll out. Priorities are defined depending on what’s important and valuable for the customers, or in any aspect of the company. With every work iteration you get a better feeling on how long work takes based on evidence rather than estimation. You are able to optimize your flow and maximize efficiency.
Going forward we want to add functionality for sizing complexity of a card using smart tags (e.g. story points). Some of our customers and we ourselves at Blossom use a framework called T-Shirt sizing (XS, S, M, L) to add an estimated size of a card. Depending on the size of a chore type card or smaller tasks, they usually get the prefix XS or S (e.g. XS: Login Bug). Depending on your preference you could alternatively use the Fibonacci Series 1, 2, 3, 5, 8, 13 (e.g.  Login Feature).