Charles Max Woods
Special Guests: Donovan Brown
In this episode, the Adventures in Angular panel talks with Donovan Brown. He is a principal DevOps Manager with Microsoft with a background in application development. He also runs one of the nation’s fastest growing online registration sites for motorsports events DLBRACING.com. When he is not writing software, he races cars for fun. Listen to today’s episode where Chuck and Donovan talk about DevOps, Azure, Python, Angular, React, Vue, and much, much more!
1:41 – Chuck: The philosophies around DevOps. Just to give you an idea, I have been thinking about what I want to do with the podcasts. Freedom to work on what we want or freedom to work where we want, etc. Then that goes into things we don’t want to do, like fix bugs, etc. How does Microsoft DevOps to choose what they want to do?
2:37 – Guest: We want to automate as much as we can so the developer has less work. As a developer I want to commit code, do another task, rinse and repeating.
Minutes and not even hours later then people are tweeting about the next best thing. Do what you want, where you want. Code any language you want.
4:15 – Chuck: What has changed?
4:19 – Guest: The branding changed. The name wasn’t the most favorite among the people. The word “visual” was a concerned. What we have noticed that Azure will let me run my code no matter where I am. If you want to run Python or others it can run in Azure.
People didn’t need all of it. It comes with depositories, project management, and so much more! People could feel clumsy because there is so much stuff. We can streamline that now, and you can turn off that feature so you don’t have a heart attack. Maybe you are using us for some features not all of them – cool.
7:40 – Chuck: With deployments and other things – we don’t talk about the process for development a lot.
8:00 – Guest talks about the things that can help out with that.
Guest: Our process is going to help guide you. We have that all built into the Azure tab feature. They feel and act differently. I tell all the people all the time that it’s brilliant stuff. There are 3 different templates. The templates actually change over the language. You don’t have to do mental math.
9:57 – Chuck: Just talking about the process. Which of these things we work on next when I’ve got a bug, or a …
10:20 – Guest: The board system works like for example you have a bug. The steps to reproduce that bug, so that there is no question what go into this specific field. Let the anatomy of the feature do it itself!
11:54 – Chuck comments.
12:26 – Chuck: Back to the feature. Creating the user stories is a different process than X.
12:44 – Guest – You have a hierarchy then, right? Also what is really cool is we have case state management. I can click on this and I expect this to happen…
These are actual tasks that I can run.
13:52 – Chuck: Once you have those tests written can you pull those into your CI?
14:00 – Guest: “Manual tests x0.”
Guest dives into the question.
14:47 – I expect my team to write those test cases. The answer to your question is yes and no.
We got so good at it that we found something that didn’t even exist, yet.
16:19 – Guest: As a developer it might be mind
16:29 – Chuck: I fixed this bug 4x, I wished I had CI to help me.
16:46 – Guest: You get a bug, then you fix a code, etc., etc. You don’t know that this original bug just came back. Fix it again. Am I in Groundhog Day?
They are related to each other. You don’t have a unit test to tell you. When you get that very first bug – write a unit test. It will make you quicker at fixing it. A unit test you can write really fast over, and over, again. The test is passing. What do you do? Test it. Write the code to fix that unit test. You can see that how these relate to each other. That’s the beauty in it.
18:33 – Chuck: 90% of the unit tests I write – even 95% of the time they pass. It’s the 5% you would have no idea that it’s related. I can remember broad strokes of the code that I wrote, but 3 months down the road I can’t remember.
19:14 – Guest: If you are in a time crunch – I don’t have time for this unit test.
Guest gives us a hypothetical situation to show how unit tests really can help.
20:25 – Make it muscle memory to unit test. I am a faster developer with the unit tests.
20:45 – Chuck: In the beginning it took forever. Now it’s just how I write software now.
It guides my thought process.
21:06 – Guest: Yes! I agree.
22:00 – Guest: Don’t do the unit tests
22:10 – Chuck: Other place is when you write a new feature,…go through the process. Write unit tests for the things that you’ve touched. Expand your level of comfort.
DevOps – we are talking about processes. Sounds like your DevOps is a flexible tool. Some people are looking for A METHOD. Like a business coach. Does Azure DevOps do that?
23:13 – Guest: Azure DevOps Projects. YoTeam.
Note.js, Java and others are mentioned by the Guest.
25:00 – Code Badges’ Advertisement
25:48 – Chuck: I am curious – 2 test sweets for Angular or React or Vue. How does that work?
26:05 – Guest: So that is Jasmine or Mocha? So it really doesn’t matter. I’m a big fan of Mocha. It tests itself. I install local to my project alone – I can do it on any CI system in the world. YoTeam is not used in your pipeline. Install 2 parts – Yo and Generator – Team. Answer the questions and it’s awesome. I’ve done conferences in New Zealand.
28:37 – Chuck: Why would I go anywhere else?
28:44 – Guest: YoTeam was the idea of…
28:57 – Check out Guest
29:02 – Guest: I want Donovan in a box. If I weren’t there then the show wouldn’t exist today.
29:40 – Chuck: Asks a question.
29:46 – Guest: 5 different verticals.
Check out this timestamp to see what Donovan says the 5 different verticals are. Pipelines is 1 of the 5.
30:55 – Chuck: Yep – it works on my Mac.
31:04 – Guest: We also have Test Plant and Artifacts.
31:42 – Chuck: Can you resolve that on your developer machine?
31:46 – Guest: Yes, absolutely! There is my private repository and…
33:14 – Guest: People not included in box.
33:33 – Guest: It’s people driven. We guide you through the process. The value is the most important part and people is the hardest part, but once on
33:59 – Chuck: I am listening to this show and I want to try this out. I want a demo setup so I can show my boss. How do I show him that it works?
34:27 – Azure.com/devops – that is a great landing page.
How can I get a demo going? You can say here is my account – and they can put a demo into your account. I would not do a demo that this is cool. We start you for free. Create an account. Let the CI be the proof. It’s your job to do this, because it will make you more efficient. You need me to be using these tools.
36:11 – Chuck comments.
36:17 – Guest: Say you are on a team of developers and love GitHub and things that integration is stupid, but how many people would disagree about…
38:02 – The reports prove it for themselves.
38:20 – Chuck: You can get started for free – so when do you have to start paying for it?
38:31 – Guest: Get 4 of your buddies and then need more people it’s $6 a month.
39:33 – Chuck adds in comments. If this is free?
39:43 – Guest goes into the details about plans and such for this tool.
40:17 – Chuck: How easy it is to migrate away from it?
40:22 – Guest: It’s GITHub.
40:30 – Chuck: People are looing data on their CI.
40:40 – Guest: You can comb that information there over the past 4 years but I don’t know if any system would let you export that history.
41:08 – Chuck: Yeah, you are right.
41:16 – Guest adds more into this topic.
41:25 – Chuck: Yeah it’s all into the machine.
41:38 – Chuck: Good deal.
41:43 – Guest: It’s like a drug. I would never leave it. I was using TFS before Microsoft.
42:08 – Chuck: Other question: continuous deployment.
42:56 – When I say every platform, I mean every platform: mobile devices, AWS, Azure, etc.
Anything you can do from a command line you can do from our build and release system.
PowerShell you don’t have to abandon it.
45:20 – Guest: I can’t remember what that tool is called!
45:33 – Guest: Anything you can do from a command line. Before firewall. Anything you want.
45:52 – Guest: I love my job because I get to help developers.
46:03 – Chuck: What do you think the biggest mistake people are doing?
46:12 – Guest: They are trying to do it all at once. Fix that one little thing.
It’s instant value with no risks whatsoever. Go setup and it takes 15 minutes total. Now that we have this continuous build, now let’s go and deploy it. Don’t dream up what you think your pipeline should look like. Do one thing at a time. What hurts the most that it’s “buggy.” Let’s add that to the pipeline.
It’s in your pipeline today, what hurts the most, and don’t do it all at once.
49:14 – Chuck: I thought you’d say: I don’t have the time.
49:25 – Guest: Say you work on it 15 minutes a day. 3 days in – 45 minutes in you have a CSI system that works forever. Yes I agree because people think they don’t “have the time.”
50:18 – Guest continues this conversation.
How do you not have CI? Just install it – don’t ask. Just do the right thing.
50:40 – Chuck: I free-lanced and setup CI for my team. After a month, getting warned, we had a monitor up on the screen and it was either RED or GREEN. It was basically – hey this hurts and now we know. Either we are going to have pain or not have pain.
51:41 – Guest continues this conversation.
Have pain – we should only have pain once or twice a year.
If you only have it every 6 months, that’s not too bad.
The pain will motivate you.
52:40 – Azure.com/devops.
53:22 – Picks!
53:30 – Advertisement – Get a Coder Job
- Donovan Brown’s GitHub
- Donovan Brown’s Twitter
- Donovan Brown
- Donovan Brown – Channel 9
- Donovan Brown – Microsoft
- Azure DevOps’ Twitter
- Jet Blue
- Beta Testers