News

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 strategy. She also serves as executive editor of the group's media Web sites, and you'll even find her byline on PureAI.com, the group's newest site for enterprise developers working with AI. She recently gave a talk at a leading technical publishers conference about how changes in Web technology may impact publishers' bottom lines. Follow her on twitter @beckynagel.

comments powered by Disqus

Featured

  • VS Code Now Has Apple Silicon Builds for Native Mac Development

    Goodbye Rosetta, hello M1. Visual Studio Code has been updated with new builds that let it run natively on machines with Apple Silicon (M1), the company's own ARM64 chips.

  • Visual Studio 2019 for Mac v8.9 Ships with .NET 6 Preview 1 Support

    During its Ignite 2021 online event for IT pros and developers this week, Microsoft shipped Visual Studio 2019 for Mac v8.9, arriving with out-of-the-box support for .NET 6 Preview 1, which the company also released recently.

  • Analyst: TypeScript Now Firmly in Top 10 Echelon (Ruby, Not So Much)

    RedMonk analyst Stephen O'Grady believes TypeScript has achieved the rare feat of firmly ensconcing itself into the top 10 echelon of his ranking, now questioning how high it might go.

  • Black White Wave IMage

    Neural Regression Using PyTorch: Training

    The goal of a regression problem is to predict a single numeric value, for example, predicting the annual revenue of a new restaurant based on variables such as menu prices, number of tables, location and so on.

Upcoming Events