Q&A with Robert Green: Becoming a Better Developer with Visual Studio and Azure DevOps
Developers new to DevOps might not be aware of its benefits like faster time to market, lower failure rates, and faster fixes and recovery times. To demonstrate how dev teams -- and even single coders -- can leverage the concepts of agile development, continuous integration and continuous delivery to build better software, independent consultant Robert Green will be on hand at the Visual Studio Live! conference in Austin, Texas, running March 30-April 3.
In a presentation titled "DevOps Practices Can Make You a Better Developer," Green will explore the creation of CI/CD pipelines and implementation of other basic DevOps practices. We recently caught up with Green, host of the Visual Studio Toolbox show on Microsoft's Channel 9 video site, to talk about his vision of DevOps.
There's a lot of hype about DevOps in this industry. What's the first thing you want every developer to understand about DevOps/DevOps practices?
DevOps practices are mostly concerned with enabling continuous delivery of value to your end users. Think of two software developments teams. Both ship a new release. Customers find an annoying bug. Team A tells them they will have to wait for the quarterly service pack to get it fixed.
"You build better product and deliver it faster to happier customers."
Robert Green, Independent Consultant
Team B tells them we will fix that today and send an update overnight. Customers want the ability to sort a list by date as well as amount. Team A tells them they have to wait for the next twice yearly version of the software. Team B says we will include it in the next weekly feature update. DevOps practices help you be more like Team B. You build better product and deliver it faster to happier customers.
Should developers be wary of any aspects of DevOps?
It is not a silver bullet. It requires process changes and some rigor. But the good news is you can start small and grow over time.
What are the top 1-3 DevOps best practices that you think are the most important for developers to explore?
Source control. Continuous integration (build) pipelines. Continue delivery (release) pipelines. These automate much of the work you would have to do by hand. Consider the following process. You check in code. The full suite of unit tests runs. If they succeed you deploy the app to two different test servers, one that will run automated UI tests and one that will be for ad hoc testing. If you set up a Continue integration (CD) / Continuous delivery (CD) pipeline, everything after checking in code happens automatically and it happens the same way each time. You focus on the Dev part and automate the Ops part. This saves you time and error and therefore you are more able to deliver updates faster.
How much does DevOps help development teams rethink their processes?
The first thing you would rethink is how often you release. Daily for bugs and weekly for features? Weekly for bugs and monthly for features? Monthly for bugs and quarterly for features? What will make your customers happiest while keeping your devs productive and happy as well? And once you decide on a release cadence, you have to get good at managing how much work will get done in each release. That will lead you to adopt the concept of sprints. A sprint is a fixed period of time between releases. A typical sprint is three weeks. At the end of the three weeks you release. And then you move on to the next sprint. Over time, you will get better and better at estimating/knowing how much work you can fit into each three-week sprint. And that will then tell you what features get added and when.
Was DevOps around before, but just not called DevOps?
I am sure it has had lot of names. The one Visual Studio devs would be most familiar with is ALM (Application Lifecycle Management).
If it's always been here, why has it become so much bigger now?
Customers now expect more frequent bug fixes and new features. Apps on our phones update often and regularly. So does our software, for example, Visual Studio and Windows. If you can't provide reasonably frequent updates, you run the risk of losing the respect and admiration of your customers.
How does Azure DevOps Services help teams execute practical DevOps?
Azure DevOps Services provide an interface to Plan (create backlogs, track bugs, manage sprints, see progress), Develop (write, test, review and build) code, Deliver (release to test, staging, production) and Operate (monitor and troubleshoot apps).
Is DevOps truly key for developers to transform themselves for the modern dev environment?
I believe it is, yes. And it is not hard to get started.
About the Author
Becky Nagel is the vice president of Web & Digital Strategy for 1105's Converge360 Group, where she oversees the front-end Web team and deals with all aspects of digital projects at the company, including launching and running the group's popular virtual summit and Coffee talk series . She an experienced tech journalist (20 years), and before her current position, was the editorial director of the group's sites. A few years ago she gave a talk at a leading technical publishers conference about how changes in Web browser technology would impact online advertising for publishers. Follow her on twitter @beckynagel.