- Posted by John Ackerman
- On April 6, 2018
- 0 Comments
- consulting, continuous delivery
What is continuous delivery?
Continuous delivery is a software engineering practice wherein software is built and deployed in small chunks, and in rapid succession. A continuous delivery pipeline is the repeatable deployment process that enables continuous delivery practice to result in actual deployments to a testing or production environment.
Setting up a continuous delivery pipeline should be one of the very first things your consultant does.
Why should you worry about continuous delivery?
Software engineering is at least as much art as science. While many developers are well versed in the ins and outs of their chosen technical stack, most consultants that you will engage with are not well versed in your business space. A solid understanding of your business, your industry and your practices is critical to the success of your software project. Some consultants will attempt to prove their understanding of your business and the product they are building through documentation. Reality, however, is that the only good documentation that proves what your consultant understands is working software.
Furthermore, after working with over 30 clients through 6 years of consulting, we’ve seen repeatedly how much a customer’s focus and understanding of their own needs changes when they have hands on a working product.
The sooner you (the customer) have access to a working product, the more likely it is that you will complete your project on time and on budget.
What does continuous delivery look like?
At BackslashDev, we work in iterations that last no longer than two weeks. Before the beginning of the two weeks, we work directly with our client to define what we can accomplish in the two weeks available and prioritize the outstanding list of work we have. Regardless of how much work we decide to take on, our agreement is that at the end of the two-week period, we will deliver a working, tested and deployed piece of an application. After the two weeks is up, we review the work with our client and plan out the next two weeks of work.
Based on this process we are never far from our feedback loop, we stay on track with our customers’ expectations, and they can course correct frequently.
In terms of tooling, there are many solutions available. We find a stack that includes GitHub, TeamCity and Octopus Deploy to work very well for our needs.
Ok, but why does continuous delivery need to be first?
In my early days as a developer, I found it absolutely stunning how much of an effort it can take to deploy an application for the first time. For continuous delivery to work correctly, a standardized, repeatable process for deployment, needs to be built from day one. This avoids making assumptions in the development process that do not align to the actual deployment environments and ensures that at the end of the first iteration there will be no hurdle to cross in pushing the first deployment.
Continuous delivery is only one sign post that you should consider when choosing a software consultant. A consultant who prioritizes delivery and deployment, should give you a higher level of confidence in their ability to complete your project to your expectations and within your budget.
At BackslashDev we build continuous delivery into each of our engagements from day one. If you’re looking to start a new project, and want to give yourself the best chance at success based on process, click here to contact us today.