Since several of our customers are using Infinio to provide infrastructure efficiency for their software development organizations, I thought it would be interesting to sit down with our Technical Director of Software Delivery, Gavin Gray, to better understand how he thinks about our internal opportunities around software delivery.
SK: Hi Gavin, a belated welcome to Infinio. What drew you to work here?
GG: Most recently I worked at VMware, where I was responsible for leading software delivery optimization throughout the end-user computing business unit. What I learned at VMware was that on-premises enterprise software is delivered very differently than Software-as-a-Service (“SaaS”) products. For example, many VMware products have a ship-cycle of many months, while most modern SaaS offerings ship multiple times a day. In my opinion, we should be shipping as much as possible so that we can deliver value to customers as fast as we can. Infinio seemed like a good place to pair my experience with on-premises enterprise software with my desire to deliver continuous value to the customers who consume it.
SK: What are some examples of the updates and innovations within the SaaS model that you are interested in emulating?
GG: What’s natural to a SaaS model is the idea that continuous value can be delivered to the customers as it is created. At Facebook, for example, a developer can have an idea for a killer feature that can be coded, tested, deployed into production, and used by real customers all in the same day. If as a business we can agree that its in our best interest to ship our software as fast as possible, then we don’t necessarily have to provide a SaaS offering to deliver continuous value to our customers. In fact, we can get there incrementally through continuous integration, delivery, and deployment.
Integration being how the code is built and tested as quickly as possible such that regressions can be identified and remediated while the change is fresh in the engineer’s mind.
Delivery being the capability to ship the latest build at any point in time (even though we may not choose to actually ship it).
Deployment being the capability to seamlessly deliver updates our top-of-tree builds to our customers as they become available.
SK: So what characterizes an organization that can start delivering this?
GG: Continuous value is an incremental effort which is well-suited for many, but not all, organizations. That said, every organization can benefit by practicing at least continuous integration and delivery. The journey to continuous value begins by automatically building and testing code on each change. The rigor to which your organization tests its code is typically what determines whether you’re practicing continuous integration as opposed to continuous delivery. For example, if you’re simply compiling your code after each change, chances are that you don’t have enough confidence to ship your software to your customers. If you’re executing a barrage of both functional and nonfunctional automated tests as part of your build, then perhaps you are confident enough to ship your code whenever your tests pass.
That said, successful adoption of continuous integration and delivery relies heavily on the team’s technical aptitude and discipline to build sufficient automated tests in parallel with production code. Additionally, software delivery processes, organizational structure, and company culture contribute heavily to successful adoption. In order to successfully adopt continuous deployment, you must have a product that lends itself to frequent updates as well as a customer base that is willing to accept them.
As much as I love continuous deployment, I wouldn’t want my aircraft navigation system software updating mid-flight!
Join us next week for Part 2, when we discuss how Gavin plans to bring these values to Infinio's software delivery process. Want more? Follow Gavin on twitter at @bitwisekaizen. Want even more? Attend Gavin's talk at DevOps Conference West.
Want to see what Infinio can do for your software development environment?