10.19.22continuous delivery consulting software delivery
HOW CONTINUOUS DELIVERY ENSURES THE SUCCESS OF YOUR PRODUCT
At Shift, we believe in delivering frequently to create successful software products. It's not only important to the quality but also the efficiency of the software development team. In the software community, we call this continuous delivery. In order to explain this a little better, we'll start with an example.
THE ENVELOPE ANALOGY
Imagine you are tasked with preparing 100 letters to be mailed. Each letter needs to be signed, folded, put in an envelope, sealed and stamped. Typically one would batch each step and do all 100 at once.
- Sign all 100 letters.
- Fold all 100 letters.
- Add all 100 letters to envelopes.
- Seal all 100 envelopes.
- Stamp all 100 envelopes.
Actually, doing each of the five processes in one big batch (signing all 100, then folding all 100, and so on) fails to prove that more envelopes are completed and delivered. But, breaking up the process into smaller batches (one fully ready-to-mail envelope at a time) supports the theory that doing things in small batches actually accomplishes processes faster and enables people to see where inefficiencies lie sooner.
HOW DOES THAT RELATE TO SOFTWARE DEVELOPMENT?
Think of the process of delivering software, and the steps needed:
- Delivering the new code to production
These could all be done for an entire product (one big batch), with each step completed before moving on to the next step. Meaning no input from the client during the process, no testing until completion — you see the risk.
Alternatively, like with the envelopes, different parts of a product can be worked on and completed (small batches), with each batch delivering a completed part of the product. At Shift, continuous delivery is one of the many areas we consult clients on.
THE SMALL BATCH APPROACH
This small batch approach, or continuous delivery, has many advantages. Small batch Delivery cycles are typically 1-2 weeks in duration. So, one of the biggest advantages of short delivery cycles is that you see results quickly. Especially at larger companies, speed and frequent check-ins can be a refreshing change of pace.
In software development, a batch would be the equivalent of a Delivery Cycle. A large batch where everything is done before the client sees any results could be many months long — way too long for a client to not see work and provide feedback.
HOW DOES THIS HELP SOFTWARE DELIVERY?
Using short delivery cycles keeps the team focused on that cycle’s deliverables only, without the distraction of urgent issues arising that can’t wait for a months-long cycle to complete. The result is the team is able to accomplish more in less time. So how does this help?
- You are able to demo and view progress frequently, assuring that the product is meeting your expectations instead of waiting until the product is completed and realizing that what they thought would address their problem . . . .doesn’t.
- Feedback is given often. When changes are identified, the development team can quickly change course to address the needed modifications. This not only saves time, but it results in fewer bugs, saving money and getting to market faster
- There may be anurgent new feature that needs to be addressed quickly. Using a short delivery cycle allows new features to be delivered rapidly, without waiting for a months-long development cycle to be completed, which helps companies stay on top of ever-changing needs.
- Bugs are part of any software development process, but when an issue is found in a production environment — it’s a problem. Short development cycles result in issues being identified, fixed, tested and into production rapidly.
- Finally, the team as a whole is responsible for each step of the completion of each delivery cycle: design, requirements, development testing and implementation. This removes any dependencies (and potential delays) on other teams or team members and results in getting things done on time.
So in short this is why we at Shift believe delivering frequently is key to building a successful product. Have a project you think could benefit from this approach? Reach out today.