What's the word y'all welcome back man? It's been it's been eight days since we last uploaded and I've been looking at the conversation people thought it was over People thought the kidney for real streak was gone But nah, I just needed a little time to myself to just get my head back in the right space when it come to Consecration I uploaded on none of my channels y'all you know sands, but I'm back in 2022 I got a different mindset and different goals and I'm here to talk about hoops with y'all man And I just I do want to say 99% of this video is about to be Chicago boys related because I'm I'm on cloud nine right now What can I really say but let's quickly talk about the other things that happen in the association tonight? So you can't say it was all Chicago Bulls Yada said another MVP type of form is 35 16 to 10 elite How many of the alos average and 30 plus points per game in his last three games, but Sadeegh Bay hit a game run in the corner, which is Similar to DeMar DeRose's three pointer. It was same corner double-teamed But DeMar did it at the exact buzzer. We talked about the Bulls DeMar DeRose shot The the Brooklyn Nets blew a game to the Clippers who are missing a million people Thanks to Eric Blatso going straight at James Harden 100% of the time Jalen Green shot a million free throws and then the Warriors beat the Utah Jazz just a couple days after they beat the Phoenix Sons without Draymond Green tonight and they look scary. Okay, let's talk about the Bulls DeMar DeRose and You just experienced greatness if you were watching these games DeMar DeRose becomes the first player in NBA history to hit buzzer beating game winners on back-to-back nights Now Larry Bird hit buzzer beater game winners and back-to-back games back in the day But Larry Bird needed a day of rest DeMar DeRose and did not DeMar DeRose it did not elicit. Y'all know we always preach in the mantra enjoy basketball enjoy basketball enjoy basketball That's all I've been trying to do this season and and if you would have told me Before the season started that the Bulls would be the number one see 34 games to the season I would have called you crazy because the most optimistic side of me as a Bulls fan I was like, ah, this team could be a 4C and you know what the 4C is still up it for play because though We are the one see right now The Bucks are one game behind the the Nets are one game behind and then a heater two game behind So like a week from now the Bulls lose two games and boom they're back there at the 4C But I did not expect in my wildest dreams that would be the number one team right now And you know what? DeMar DeRose hit these game winners yesterday against the Indiana Pacers and then today, right? And I do what every NBA fan would do when your favorite team walks off a game with a w You are excited and with me being in the aids of the internet. I tweet through it. You know I'm sad I do not live tweet Bulls games anymore. I don't know if y'all notice that I do not live tweets Bull games anymore But if you go hit a game winner, I'm gonna tweet it So it's like DeMar DeRose with a bunch of ants and this is how this is just the internet such crazy place And I hope I want more people to do the the enjoy basketball thing or live by that because I tweeted after DeMar DeRose One leg a game winner over the Indiana Pacers Just it would excitement because my favorite team just won a game on a crazy crazy shot and Their applies I would say listen I would say 96% of the replies were positive and just excited because that was a crazy shot But then you got that 4% and you know I said this one John Moran You remember a couple weeks ago John Moran came back from his injury and then some court staff fan says something to Jada made him go MIA on Instagram and Twitter and stuff because they said You should sit out again, and I was mentioning how there's a million Grizzlies fans that love John Moran are happy to have them, but he paid attention to that one fan That says something negative. That's how I felt with my DeMar DeRose a game winner because this is what those four percent of the players like Enjoying now because when the playoffs come around he's gonna be back to DeMar DeFrozen Took all of that to be the depleted Indiana Pacers team Let me have my moments y'all. I have never in my life seen someone excited as a as a sports fan and been like I want to I want to try to try to in that for them That's what I experienced and this is what I have to say if we go to the well We're locked into the playoffs ladies and gentlemen once we get to the playoffs if DeMar DeRose and is not the DMVP like he's been playing right now I'm not going to be upset because what I can say with confidence is that these first 34 games of the season have been the most Fun I've had as a bulls fan since Derrick Rose won MVP And I wouldn't trade that in So if he does struggle in the playoffs like he has done in them in the previous years I'm not even really that mad. Of course. I want to see my team is excessive I want to see my team on a championship run But I'm not tripping because at the end of the day if you watch any of my videos from the last three years I've always said I just want to have a good basketball team I want to be able to wake up when my team has a game day Look at the schedule and be like we can win tonight and we hadn't hit that for five years The last time the Bulls were on a seven game win streak. I was a junior in high school I am 25 now that's how long it's been since I've been able to watch seven straight games and get w after w after w So I don't really of course again. I want to see my team is excessive playoff time But I'm happy right now and that there's no there's nothing that I value more than that You know I'm saying so set out to DeMar DeRose it and I keep getting added and sweet set out to y'all because people Me call him King of the fourth quarter and guess what DeMar is yours my boy. I Came up with the KLT for a cute thing. I was 12 years old like I mentioned I am 25 when was the last time you saw me refer to myself on any of my channels as King of the fourth quarter Every one of my channels other than the main channel because it'd be crazy to change it is Kenny something because I'm Kenny It's Kenny for real Kenny to Kenny baseball, which we're having a Kenny big. I don't know what happened Kenny baseball So DeMar you can have it You know it seems like every couple years a player does something to get that name And I'm just like when Isaiah Thomas had and I'm like here you go Isaiah You can have it it's all yours my boy because I don't really care about the name. He's nothing to me It's I'm what have I done to get the name we talked about DeMar DeRose is hit two back-to-back game winners Isaiah Thomas was scoring 20 points in the fourth quarter. They deserve those names Let's talk about the MVP because that has been a topic of conversation on Twitter and on Reddit and Instagram over the past couple days because we see somebody lead a team to number one team in Eastern Conference at this moment and hit back-to-back game winners and just for the entirety of the season He's been dominating. I mean he is number one when it comes to points in the fourth quarter He's shooting 53% from the field in the fourth quarter He's shooting 50% from three in the fourth quarter, and he don't really miss his free throws in the fourth So let's talk about the idea of the MVP In my mind at this point 34 games to the season for mo for at least for the Bulls I still see this as a four-man race with a potential to make it five I still see Yanis Steph Curry Kevin Durant and Yolk it's above DeMar or even above Joel and Bede who is a crepes went to the conversation as well in my opinion But if you were to tell me, oh, I got DeMar DeRose in three or I got DeMar DeRose in two I'm not saying you crazy. I mean he is the number one player The big shot maker and taker on the the number one team in the east right now You know, I'm saying think about the history of the award We're talking about a guy that's going to be the best player or one of the top teams in the league DeMar DeRose has that and at this point, he's got the moments to he's even got the narrative Go break up the bleach report article worst off season signing of 2021 DeMar DeRose. That is the narrative He's got the moments game winners game winners and big moments against the Lakers where he dropped 38 and another big moment Moment where he dropped 38. He's got the moments He's got the narrative. He's got the team success at this moment. He's See I think I don't know if I've mentioned this before but when it comes to my favorite I'm so not used to my favorite team being relevant that I don't know if some of the stuff that I see is bias Right. I just don't know so you tell me in the comment section Where do you see DeMar DeRose in the MVP ranking because I low key just talked myself into putting bro into the top whatever He's got the counting stats and the great statistics. He's got the moments He's got the narrative and he's got the number one team in the conference at this moment What else can you now I did see some people on Twitter say that hey though, it's great The fact these plan was Zach Levine who was equally as good made the turret from him from being in the real conversation Just makes sense though Zach Levine ain't the one hitting the shots in the moment We know Zach Levine has hit the shot sometimes a season and he's still averaging a crazy crazy thing But what I will say is the fact that the envy NBA has classified DeMar DeRose and there's a guard still Even if my boy ain't in the MVP conversations. He's definitely an RMA first team conversations Because he's a guard bro. I don't want to support. I don't want to ruin this for DeMar But NBA he's not really playing guard this he's not really playing guard this season I'm just being honest with you. But hey, we'll take it.  It's my vote I'm a I'm just overall just pretty pleased with the way this season has gone And today and even yesterday those are two games where we should not have one We got outplayed by the Washington Wizards today Bradley Beale that point guard was dicing us up. They were getting to the basket at will Cow cool smooths hit his shots. Then you gaffer was killing us. We gave up like 74 points in the paint 74 points in the paint But we won the game and a lot of that again DeMar DeRose in that big shot But Zach Levine had a couple great possessions down the stretch. I'm Kobe white is playing some of this best basketball This season another 20-point game. I think that's three in a row for Kobe white Vucevitz hit a big time shot down the stretch. Io de sumo even though he almost fouled out He took the responsibility of trying to guard the mark on Bradley Beale You know and until like the last couple minutes of the game We only have four people score and that was Kobe that was Zach that was Vuce and that was DeMar We are heavily depleted right now. Just like every other thing. That's I'm not saying we're different Honestly, I would say that the the Bulls heavily lucked out Because before 90% of the league was in health and safety protocol the Bulls were the Bulls were Patient zero. They were they were the first people to get Ravished by health and safety protocol and the NBA was like we gonna postpone three of their games Now again, I'm saying they lucked out because we had teams out there like the Atlanta Hawks who have who have had to play through that stuff And what have they done? They've lost like two of the three games they had to play through with all these healthy state of protocol So the Bulls have lucked out because when DeMar I mean I wouldn't DeMar when Zach was out and Crusoe was out and this players out this little I'm being honest with you those games that got postponed We're probably going to be losses and because of that we probably wouldn't be not probably We wouldn't be the number one team in the conference right now. So the Bulls heavily lucked out And I'll be delusional to say otherwise, but I'm happy we did I'm definitely happy we did because right now I'm taking a screenshot of these standings and I don't care what happened for the rest of the Season I was here for this moment. I was here for this moment you know and and I Guess the next conversation when it comes to the Chicago Bulls or whether or not they're legitimate contenders And and in my mind and I know this varies for a lot of people when I think about a contender I'm thinking about a team That if they won the championship this season, I would not be surprised So if the Warriors won a championship this season, I wouldn't be surprised They're contender if the Suns won a championship this season I would not be surprised the Bucks won a championship the next one the same shit If if the heat if you want a championship, I would not be surprised. I Don't have the Bulls there just yet Again as fun as it has been and I am still on cloud nine. I'm not saying it's impossible for them to do it But I still even though they're the number one team in the conference I still don't see them as the top top of the top when it comes to teams in the NBA and again, they could be my me trying to defer my biases because I Don't know man. Y'all know we just be rambling around here. I just I don't know I feel like if we were to go against the Bucks in a seven-game series We don't have an answer for Yanis. I Feel like we I know we have beat the Nets twice this season I know and it's been great but a seven-game series is a little bit different than that random regular season game in in December December 3rd if that was the right day that's fire, but I don't think it was you know, I Would still be happy. You know I'm saying if we get to if we could I see us as a conference finals team? But like I think this team has some pretty big issues and that a lot of that is dealing with the power for position I love me some Juventa green. I love the Deirdre Jones junior stepped in as a guy that can play some four and some five It's great. But when we get down to the nitty gritty of the playoffs We need more impact there and that's why I don't envy the guys in the front office because they have some really tough decisions to make this this This straight that line Because we got pieces we got younger pieces that a selling team or a team that that has a piece that we would want We interested in and our front office has to figure out. Is it worth trading for Patrick trading away Patrick Williams? Is it worth turning away Kobe white as he started to look very very good since he's been a starter since Lanzo has been out Those are the conversations that I know that they're having internally in the front office and I'm so happy I don't have to have those conversations because I don't really know because you gotta think about like this The mother Rose is greatest. He's been again. He dnvp in the conversations Next year when Patrick Williams is back Do you think that we're getting this type of productivity from the Marta Rosen or the year after that when Patrick Williams might be even better or the year after? You know what I'm saying? This might be the best version of the Marta Rosen we ever see again So I'm sure there's a side of the people that are talking. It's like we got to go for it We got to go and it's probably not the sounds like I don't know that Patrick Patrick Williams has a ton of untapped potential I know their teams out there. They're like a We will take Patrick Williams and let that boy be the our future and What I will say before any decision is made I Stand by the front office until they show me otherwise because every single move that they've done so far Has been a success. Now you got something maybe not be as successful. We traded a new Gafford and and Got back Troy Brown, Jr. But part of that was because we didn't want to pay Daniel Gafford He ended up getting the contract set up to set up to the homie and set up to Troy Brown, Jr. That's the homie do both of my homies But every other move that we've had has been an absolute W. So until they show me That they got a miss in them. Whatever they do with this that line They trade people you listen I can still be a fan of you Pat if you win Detroit or are you in some other place? I'm gonna back my front office, man. I'm gonna back my front office You feel me until they show me otherwise they made the right decision bringing in Billy Donovan They made the right decision tampering and getting Lonzo. Thank you for that They made the right decision given Alice Caruso, whatever money he got paid the the Vucevich trade Even though Vucevich hasn't been the the all-star that he was last year even a year before that He's been very good by the way, especially recently when it comes to his defense That trade is a W because you watch any interview with DeMarco Rose And since he sounds the boys they ask him why and he won't say the money because obviously the money played a big part We paid him, but the second part was a Vucevich gave me a call If Vucevich is in Orlando, there's no call So I love to see that window card and Franz Wagner are hooping a ass off But I'm so happy that we made that trade the one of the rare trades where it seems like a W for both sides So they gotta show they gotta show me when they catch a ill listen we'll evaluate everything else after that But right now. I'm just super excited The bulls have played I think five games and eight nights and they've won all five again This is not a game we deserve to win. There were a few Interesting foul calls. I will say shut out to Denny of Dia Kenny for your all-star. He's playing some great defense today He got he may have got a phantom call or two down the stretch I'm listening. I love my bulls, but I'm gonna tell you how it is He may have got a we may have got a couple calls down the stretch regardless. I am so excited I don't even know what's next on the docket. Who do we got next? We got your lendo magic. Okay, that's Jan 3 and then we got washed it coming up again And hopefully by that time both teams would be relatively healthy because they were missing some players to specific then when he is out I don't at this point of the NBA season. I don't know who's out with health and safety protocol Who's out with an actual injury? I need to miss a Smith's identity. No Montrez hero They were missing a lot of players a Tramot Waters was getting minutes today So we play again Jan 7th. We'll see how that goes. I mean the bulls guys who ain't that sweet, bro we got Orlando Who are 7 and 29 that we got the watch the wizards then we got the Dallas Mavericks Then we got Brooklyn again, then the Warriors. So this is about to be another very very good stretch I would love to see my bulls going to 10 game win streak. I know I'm jumping the guns It's a little bit, but just that double digit win streak. Just look look magnificent But let me know what you think about the bulls overall, man What do you think about the martyr roses MVP candidacy? What do you think about the bulls? Whether or not you consider them contenders because my boy comb He put out a tweet yesterday after they hit the game winner against the Pacers and as his arm his followers are the bulls contenders and the results were 75 yes, and that was a surprising one to me Maybe I'm lower on the bulls because that's me trying to not be biased I don't really know you let me know in the comment section man The martyr rose you got had a name king of the fourth quarter. It's all yours my boy. You deserve it


Okay. Yeah. Thanks everyone for coming along so late in the day. I know how tiring these days are, so I appreciate it. I've been looking forward to doing this talk for a while. Code Review is something that I think about quite a lot, and I feel like it's something that we should discuss more. I spend a lot of time doing Code Review, but yet relative to how much time I spend doing Code Review, I find that people are talking about it relatively little. So I think there's definitely ways that we can improve it and work on the process and so on. I've been, so just quickly to sort of tell you about myself a little bit, I've been working on OpenStack for about three years, and in that time I've been primarily working on triple O, and more recently I've been getting involved in the Mistro, the OpenStack workflow service. So really what I want to do is kind of reflect on my time in OpenStack on the review process, talk about what I think works, what doesn't work very well, and just share some of the lessons and things I've learned along the way. So this kind of makes a talk somewhere, sort of a beginner, but maybe slightly beyond beginner as well in some ways. Yeah, so as I was saying, with the amount of time I spend doing Code Review, I feel like just the small improvements we can make in the process, or just making people enjoy in general, it's quite interesting. Who here is actually involved in the OpenStack, sort of Code Reviews, who either as submitting changes or reviewing changes, just raise your hand. So that's most people.  Yeah, there's a lot of sort of hand waving, not many hands stayed up there at all, and that's the question that really interests me about Code Review, is I generally find it a very rewarding process, and I think that we can get a lot more out of it. But I also hear a lot of people complaining about it, and sure it's tough, I mean nothing's going to be perfect, but yeah, let's see what we can do to improve that and start talking about it more. But quickly to just reflect on why we're doing Code Review. I mean, when you ask people, sorry, if you look at the literature, it's quite interesting. So this is a book from a book called Co-Complete by Steve McConnell, and he found that, or he wrote, sorry, that the average effectiveness of design and code inspections was 55 and 60%, whereas unit test was only 25% for finding defects. Function testing was only 35%, and integration test was 45%. So I mean, it's really quite remarkable that his findings, it was based on the code review was the best thing at finding defects. And then this other paper, which is measuring defect potentials and defect removal efficiency, they found the code detection was up, it was 85, sorry, up to 85% for defect removal by average around 65%. Again, these are kind of remarkable numbers. So you can see why we're doing code review. But one of the problems I have with literature and these two quotes is that there's a lot of it's focused on bugs and defect removal. Whereas actually there's a lot more to get out of code review, but they're much harder to measure. A lot of the research uses defect counts because that's something finite, you can count it. But if you're looking at the other advantages, they're much harder to quantify. So this kind of brings on the question of the goals behind code review, what people are thinking when they're going into code review, what they're trying to get out of the process when they're doing it. Some people probably feel like they're just trying to merge code, some people, because they just want to get this contribution in other people feel like they're obligated to review code. And there's quite a lot of different goals. But when people ask, when people are asked why they do code review, the most common response is that they are looking to find bugs. So there's a paper called Expectations, Outcomes and Challenges of Modern Code Review. And they stated that while finding defects remains the main motivation for reviews, reviews are less about finding defects than expected and instead provide additional benefits such as knowledge transfer, increased team awareness and creation of alternative solutions to problems. And so the way that they've done this research is they actually worked with a couple of development teams in Microsoft. And they, initially they surveyed and questioned a bunch of the developers and they were asking them why they'd incurred review. And that's how they found the main motivation was to find bugs. But then they took a large number of code reviews. I can't remember the number off the top of my head. And they manually classified them to figure out what was the actual outcome of the reviews. And they found out that this was quite a big disconnect between why people felt like they were doing code review as to compared with what they were actually getting out of code review in the result. And so if you're actually curious in the breakdown of what they found, unfortunately the paper only specifically quoted two of the numbers, they showed the order. So I only have two of the actual percentages. But they were finding that code improvements within 25, sorry, 29% of the reviews. Then it was understanding. Sorry, sorry, I should explain. Code improvements is a change goes in for review. And then it gets some improvement to make it better. But it was originally what affectionately was working fine. So it's just the code view maybe made it more performant or more elegant or something like that. But actually the code initially was good. Then understanding. So this is to do with shared team understanding what changes are happening, what's happening in the project, social communications within the team. And then defects was down at only 14%, which is really quite low compared to the others. So you can see it's really trails off in the curve. So given that most people feel like they're going into code review to find defects, that's only actually happening around 14% of the time, at least in this particular case. So with these goals in mind, there are effectively two primary roles in code review. You have the author of a change and the reviewer of a change. You should ideally be doing both. And I definitely encourage everyone to do both, even if you don't necessarily feel qualified, but we'll come back to that one. But one of the issues I find in code review, or I think I've seen it sometimes anyway, at least, is it's almost framed as you're working against each other. So people are just trying to merge code and other people are trying to stop code coming in. I don't know, it's almost like you start as a conflict as an initial thing. And I think that's, I can be a bit of a sign of a toxic sort of culture. I don't think this actually happens too much in OpenStack. It's something I've seen more elsewhere, but it's quite an interesting thing to be aware of. And one of the reasons, this kind of leads me to one of the reasons why I don't like the name code review. I don't realistically think we'll ever change it at this point. It's something that's been used for far too long now. But at least in my head, I like to think of it more of a code discussion, a code collaboration, something where you're working together. And I'd be happy to take other suggestions for names because that's the best I've got. But really, it's all about thinking about the authors and reviewers working together. I mean, code review is just a collaboration tool. You should all be working with roughly the same goals of coming up with the best code and the best outcome, the best solutions to the problems. So while I said that you should definitely be doing both reviewing and authoring changes, there are still distinct roles. When you're thinking of an individual patch, you are either the author or the reviewer of that patch. You don't often change roles. So what I'd like to do now is just go kind of through the process, thinking about it from each point of view, and just share some sort of suggestions, tips, and ideas, that kind of thing. So we'll start first with authoring changes. And this is about how we can make, prepare your changes that you're going to send up for review to have a, like, a better chance of being merged, essentially. I mean, just basically something to grease the wheels and make the process go a bit more smoothly and reduce some of the back and forth and sort of the trip ups that happen in a lot of reviews. So the first one is maybe a bit of an oxymoron. But it's really important to make sure there's some kind of shared understanding and agreement about what you're doing. Depending on the size and scale of this piece of work, it could just be a brief discussion on ISE, or maybe you're working on a bug, or if it's something larger, you might want to work on a spec or a blueprint and make sure there's a decent amount of discussion beforehand. This is really about avoiding wasted effort. You don't want to invest a lot of time into writing code to then find out that it doesn't fit with the project for some reason. So make sure there's at least some kind of shared understanding there. Although having said that, I mean, you have to judge this yourself because sometimes things are very trivial. So you just want to do the code and then there's not much time wasted. Or there's occasionally times where the code speaks best and you prefer to work that way. You just have to be prepared that it doesn't necessarily mean this code will land. You might have to revisit all of it at some point. It's really important that you adhere to the project guidelines. And this is something that we do, I think, really quite well in OpenStack. The expectation of having tests is great across all projects, as far as I'm aware. The expectation of having documentation is not so great, but it's probably better than your average OpenSource project. But really, it's about making sure that you fit in. So while we might be one overall OpenStack community, there is still subtle differences between the different projects and how they work. Maybe some projects have a stronger focus on integration tests, where others do unit tests. Just make sure you're fitting in. Some do both and you need to make sure you're sort of satisfying all the requirements that are expected. And this is something that you can learn how to do by just asking what they expect from you. Or you can learn this by reviewing other changes. See what other feedback is going to other people. And this is partly why it's important to try and make sure you're doing both sides of the process. It's really important to provide context. And this slide intentionally doesn't provide context to make a point. So the review encoder is really quite difficult. So you've got to make it much easier for people. Oh, sorry. Make it as easy as possible. You can for people. Ways to do this is provide good commit messages. Make sure that you're explaining what you're doing and why you're doing it. There's quite a subtle difference there. And it's quite common that you'll see a commit message which only describes one of them. So what you're doing is adding a new function, for example. But then why are you doing that as well? It's like what was the actual end result? What are you trying to do? So it's good to explain both of these things. Why are you doing it as a new function? And why and what is the actual feature that you're exposing with this or creating with this? And of course, make sure that in your commit messages that you reference blueprints and bugs. This is something that we actually document very well upstream. I probably should have linked this here. But if you just Google for OpenStack commit messages, you'll find a very detailed document which explains all the expectations of commit messages and also will show some good and bad examples, that kind of thing. It's very useful. When you are putting a change up for a review, you want it to be small and contained. So when I was researching for this talk, I seen this tweet and I think it was posted as a joke really. But I think there's a really valid point behind it. And so they're saying that 10 lines of code in your patch and you'll see about nine issues, 500 lines of code and the reviewer will just be like, oh, that's fine. Some people might look at this and think, okay, I'll just submit bigger patches, they'll get merged more quickly. But that's the wrong way to look at it. The reason I think this happens is when you submit a small patch, your reviewer is going to be able to easily get their mind around it and really understand what's going on. So then they'll spot all the subtle problems that are there. But if it's a bigger change, then they'll maybe get to a point where they have an understanding of where everything connects to in their head but they just can't quite get the focus in on everything in the same way. So to back this up, there was a paper which is called Investigating Code Review Quality, Do People and Participation Matter. And it's no surprise, I don't think this is probably what I expected and a lot of people expected, but they basically found that larger patches lead to a higher likelihood of reviewers missing bugs. I think this is commonly stated by people but it's just nice to see this backed up with some research, which seemed pretty good. They used, for this one they used the Mozilla bug tracker and I can't remember which project it was for now but they basically, they compared the data with Mozilla's bug tracker and code review tools. One thing that I would say that we, I think we have a bit of a challenge with an open stack is Gerrit makes this harder sometimes. It's fairly easy to submit a sort of a series of patches that you're connected. But from a reviewer's point of view it's actually quite hard to understand that that patch is part of a series of commits. I think, because sometimes I'll be reviewing something and I won't necessarily notice that it's part of a chain and then you miss the context of it being part of a chain, which is really important sometimes. So I think Gerrit could do with a better way of exposing that to users or just representing it to people. And it's also quite a pain to update them as well until you get used to this of the get rebasing workflow. When you actually get your change, sorry, not finished, when you submit your change, that's when you should really think about that as being the start of the conversation. I think a lot of people will maybe work on something for say a couple of weeks, then they'll submit it and they, at that point they kind of feel like they are done by I think you should be more thinking about that you presenting it for feedback, that you asking for feedback at that point. And you can get around that long delay by just putting it up earlier for a review, maybe marking it as work in progress and then you'll probably find that some interested people will take a look at it as well. It's really just about opening up the conversation, opening it up to fill collaboration and feedback. One handy thing that I find is when I first open a review, I like to close my editor down whatever editor you're using. And then I'll go to Garrett and I'll quickly actually scan through and sort of review my own change. I'm not quite sure what it is, but I think it's possibly the mental switch from going from my editor to being Garrett puts me into review mode and I suddenly notice that I've done all kinds of silly things. So I'm quite often the first one to give myself negative feedback. When you've got your change up for review, it's really important to give up ownership. So again, when I was researching this, I was asking people how long they were spending doing code review just out of interest to find out some numbers.  So this this tweet didn't really give me enough information to know what's happening in their case. It may be maybe the feedback was too harsh and too severe. So people got defensive. Or maybe it was the the the sorry, the author of the change was just really defensive because they felt sort of proud of this work and they they weren't really ready to give up the ownership. So it's just really important that you can think objectively about your own changes when you put them up. It's quite difficult to do and I think this one maybe just takes time to sort of develop that feeling for the code. But the one one way I like to think about it is if you've ever looked at code that you've written maybe six months or a year ago, you tend to cringe at it. You don't really feel very happy about it. Try and think about the code that you're writing today like you will in a year. You'll be happy to then see it improved at that point. But really the the thing about reviewing code is it's actually it's quite difficult. It's quite a hard process. So when you're submitting your change for review, you should be really working to try and make it as easy as possible for the reviewer just helping them out as much as you can. So you're helping them to then help you back in return with their feedback. Then from the sort of the reviewer's point of view, these people are almost like the the project gatekeepers. They are they are the ones that are letting code in. So they've got this sort of responsibility to make sure that the code being merged is is at the right sort of level of what is expected for that project. And responsibility is really quite an important one. There should be a shared responsibility, I think, for every change for the between the author and all the reviewers. And this is why I feel like tools like get blame are fundamentally broken. They don't provide you enough context. So if you look at any patch that's been merged in OpenStack and you do a get blame on it. Sorry, not any patch. If you look at any file in OpenStack and you do a get blame on it, it will most likely tell you the author of that file. Sorry, of that of those lines, but it will not show you the people that reviewed and merged this code. So really, I just don't think that's very useful. I mean, it could be quite interesting to find to have something which pulled all that data together. And then I could say, OK, who are all the people that know about this file? And then it'll bring in the the commit, sorry, the get authors as well as the the Garrett reviewers. I also generally while on this topic have objections with the name for get blame because I just don't think it's a very nice command name. It's not necessarily be about blaming people. After all, you might just be trying to figure out where something came from. There's a quote that I like and I don't know where it came from. So I can't I can't reference the original, but it goes something like this. Code contributions are like puppies. Everyone thinks they're cute and everyone likes them unless you're a cat person, then just replace this replaced with cats. But you do need to walk them, feed them and look after them for the rest of our lives. So it's quite a big responsibility. And you can think about code in the same way. When somebody submits code for you and you merge it in, you then need to maintain it, test it and document it until you can deprecate it. And often times it takes quite a long time for you to actually be able to deprecate the code. So sorry, when I gave this talk before, I actually done a more generic version that wasn't sort of related to OpenStack. And I think that this one perhaps relates more outside of OpenStack just with the nature of the community and how active, how many active people we have in a different projects. But it's definitely important for maintainers to be able to say no to things that don't fit in the project or that perhaps have a maintenance burden which can't be met by the current core team. Something like that. So I touched on this before and really everybody should be reviewing, I think. So this is cause, non-cause, junior as developers, senior developers. There's a paper which I I forgot to reference on this slide. But they actually found out the quickest way for people to become better reviewers was by doing lots of reviews. So if you if you feel like you're not qualified to do reviews, then the only way to become qualified is by reviewing and helping out. And it's also a really great way to learn a project. So I also mentioned at the beginning that while I've primarily worked on Triple O, I've also been trying to help out in Mistral a bit in the last year, this year or so. And to start with what I'd done is I just started reviewing things on Garrett. Initially, I didn't really comment or even give a vote. I just kind of looked through things trying to see if I could understand what other people were saying, why the feedback made sense. And it was tough like the first of 10 reviews or so I went through. I just felt like I had no idea what was going on. But slowly, I started to get an understanding of what was expected, what was going on in the project. I fortunately I had enough time that I could I could invest this time into doing these reviews. But then really after I'd done that for a while and then I got to the point of trying to help out by fixing some bugs. It was so much easier because I just had this rough understanding of where things were. Like people were doing similar changes and then I seen, OK, they updated here, here, this test and this test. And it just gives you that extra context which is really useful. So yeah, so reviewing is really a great way to I think just to on board yourself or level up in the project and just know more about it. Automation is really key and this is something that again we do really excellently I think in OpenStack. We automate code style, test runs and a whole sort of suite of tests depending on the project. And this is really important. The code style one in particular is important because what you'll find is if you get feedback from Jenkins saying minus one, you missed this little pep eight thing, you will perhaps be annoyed but you'll understand it's an automated process. It's done without judgment. It's not not a problem. But if you get a negative review from a person and they're sort of picking at the style that you've used in the code, but really it doesn't matter that much. It can be I don't know, quite disheartening. It's not a very nice process, not a nice thing to experience. And unfortunately, you do see this in some projects and OpenStack. You will find that they have sort of specific styles that they like or things that they want to enforce, which are not automatically checked. And I think that is really a waste of sort of time and resources. So if we can't automate it, we should be moving on and just letting those changes get in because eventually you will miss some of these code styles that you don't quite like. So you're going to end up a bit inconsistent anyway. So it's really that important we should be automating it and that should be possible. It's really important that you're you don't try and review too much in one go.  Another paper I read said 400 lines. So it's kind of a variable. But maybe if you take that as a 200 as a low ball, 400 is enough, look a higher, you should not really go over that amount in an hour. It's also hard because I don't know what language they were using with their with their research. 200 lines of Python is very different from 200 lines of Java, for example. But the real sort of takeaway is to try not to review too much. Make sure you kind of got you've got a fresh mind. Otherwise, if you go into reviews, you can you'll end up doing not a great job really. If you try and do one too many, you're like, I'll just do another one. Try and make some more progress. And I think the number is quite interesting because I think if somebody asked me to guess how many lines of code I could review an hour, I would have probably went quite a bit higher. But that's maybe just me overestimating myself. It's really important in your reviews to make sure you're giving constructive criticism and also giving people praise. It's really important. Sorry, it's really easy to point out only the bad things in your reviews, but really try and give people sort of encouraging feedback as well. So sometimes maybe somebody will have used a new feature, not a new feature necessarily, but a feature you didn't know about in Python or something that they're doing something with a library that you didn't know was possible or that maybe they're even using a library you've never seen before. Something like that. Just sort of let them know like, hey, I didn't know I could do that. That's cool. And then now you because you've learned something. So you've actually gained something really quite nice from this process. So it's good to let them know that you've gained that. And it's just it's really nice for everyone to feel that sort of hear that feedback. Interestingly, when I was practicing this talk a few months ago, I noticed an email notification pop up and somebody had actually commented on one of my reviews saying I learned something today. I had no idea that a doc string was sufficient content for a Python class. So in a Python class, you can have just a doc string. You don't need a little pass statement. I felt quite good that I'd helped somebody learn that and it kind of helped back at my point. So I was like, that was great. That was one of the better emails that day. Again, it's this is more this sort of comes down to language, which can be quite a subtle and difficult thing, especially when we've got such a wide reaching community. And I guess a lot of people are not speaking or not writing in the first language. So it can be a bit difficult. So I'm definitely not blaming anyone or accusing anyone in this case. But I think it's just something to be aware of. Think about how you're writing things down and how that will come across to the other person. So this is an example that I'd seen in another talk. And they're basically saying so if I was sitting next to somebody and I said, oh, hey, why didn't you do that? That sounds quite nice. It sounds quite casual. It's not too bad. But when it's written down, it's why didn't you? Sorry, I can't sound mean. I'm not very good at that. But it can come across as quite a negative way of writing it. So you could maybe replace it with something like, could we do this? And I don't think it's a great example. But just really think about how what you're writing comes across to the person. It's also really important to make sure that you're asking somebody rather than telling someone to do something. So maybe you're reviewing a patch. You see something and your immediate reaction is, oh, no, you should not do that. You should be doing it this way. They might have already tried that way and you've missed something. And they then chose this other way for a good reason. So rather than saying, you should have done it this way, you could say, hey, did you try this? But again, this kind of comes back to the point I was making before about reviewing code as hard. It's also really hard to write code, especially in a project like OpenStack. It's such a large number of projects covering such a wide range of different features and functionality that really we need to just make sure we're helping each other in each side of the process. So giving good feedback helps these reviews move along a lot better as well. And at the end of the day, I said this at the beginning. It's really the process is all about collaboration and working together, making sure that you're giving people enough context and descriptions so that they can understand what you're trying to do and give you a valuable review. And making sure that we're automating as much as possible, removing all the grunt work to bots and build jobs that can do these kind of things. And also making sure that you'll count yourself when you're spending your time reviewing, you don't push yourself too hard as well. And that pretty much brings me to the end. I think I went through that far too quickly. So hopefully everyone understood me. But please do get in touch if you're interested in this or come and speak to me after. It's something that I think is really an interesting subject. I've got a whole bunch of sort of side project ideas I'd like to do something like analyzing the, sorry, for example, we have a whole lot of data in our OpenStack Garrett. I can't remember how many hundreds of thousands of reviews we're out now. But it seems to me like there must be something that we can learn from that, try and create some kind of feedback loop and see how the community is doing, what kind of, how everything's working overall. There are some projects which look at these things a bit like Stack Analytics. But I'm thinking more specifically just to the code review process. But otherwise, thank you. Are you taking questions? Yes, yes, sorry. I'm having to take questions. Great. It's fairly common to take the conversation that's happening on a review into IRC for a little while and sort of figure things out and kind of smooth things over. Once that's happened, do you have a preferred thing that should happen back on the review? Should it link back to the IRC log? Should there be some summary of that conversation or do you just kind of not worry about it? So I tend to, in that case, copy a summary or perhaps even just the actual transcript from IRC into the review. The reason being that you want to provide that context for following on reviewers so that they can see it there. And I hadn't actually thought about linking back to the IRC logs, but that could work as well. So I don't have a strong preference as long as the two are linked. Yeah, so just as long as it's not last. Yeah. So the second question is in other environments, code review is often sort of a process of essentially saying I can live with it. Whereas I think in OpenStack there's tend to be a stronger bias towards we want this to be closer to perfect before it ever merges. Is that, first of all, would you agree with that assessment? And secondly, what forces do you think are involved in that happening? So I do agree with the assessment. I think that's something which probably happens in most open source projects. I think the reason we need to have something essentially be production ready for it to be merged is that you don't really know when a contributor is going to disappear. And that's really important. If you're thinking of a closed environment where everybody is working for the company, you know that most of the time people are not going to just disappear. You get a notice when people are going to quit that kind of thing. So unless there's something horrific happens, you'll always have people hanging around to follow up on this work. But in open source and in OpenStack, sometimes people will submit changes and then they will never be back. So yeah, I think that's the main reason. Is it possible somehow to replace code review with peer programming? I don't know whether anybody does it in open source, but the same things happened. I mean, collaboration, sharing knowledge and finding defects and et cetera. Is it possible to do it in open source, synchronize and time zones, find time with somebody? Yeah, so I think it is possible. And certainly in some environments, I do know of people doing that. I don't know of anyone doing that perfectly in open source. However, in triple O, I have peer programmed on people with remote terminal sessions. And basically one of us ends up submitting the review and then the other will be the first review. I think it's good that we then have a second reviewer, which is somebody that's not been part of that peer programming process. So just to respond to that, in NOVA, we've discussed the idea of actually doing peer programming on opposite time zones. So sort of asynchronous peer programming across the same review. So you have two people who are in opposing time zones or slightly overlapping times where one person owns the patch during that 12 hours and somebody else owns it in another 12 hours. And so that you're pairing across the actual review. And so the idea is that the two people are responsible for the same patch. And so they co-author it, but asynchronously. Well, each time as the day moves forward while you're working on the thing, you review the stuff that the other person's done as you integrate it into your understanding of what's going on and then also integrate the reviews from other people who are just reviewing. I don't think it's been, we haven't actually, as far as I know it hasn't actually actively been done yet, but it's something that's been talked about because there's been problems with people taking on too large a load and that if you can distribute the load, one of the ways to do that is to basically co-chair in a way. I've seen a similar thing happening like that, but it tends to be that you still end up with two formal reviews happening afterwards as well. I think that might just be because a lot of the processes in OpenStack haven't really taken that into account. So people aren't quite sure how to handle it. But yeah, it would be interesting to see how it works out for Nova. OK, I think that's me then. So thank you all very much.


Hello again everyone. I hope you enjoyed this morning's session. I know that recovering diplomats like me have a very well-deserved reputation for being long-winded, but I'll do my best to break that stereotype this afternoon. I simply want to stress how delighted and honored I am to introduce our luncheon keynote speaker, Senator Tim Kaine. After the presidential campaign this fall, I think it's fair to say that Senator Kaine needs no introduction. So hundreds of town halls, campaign rallies, and media interviews and profiles, there's very little I can say that you don't already know. What I will say, however, is that there are relatively few elected representatives who make foreign policy and national security a priority, and there are fewer still who bring to those very complicated issues the extraordinary thoughtfulness, judgment, and integrity that Senator Kaine truly does embody. At this moment of partisanship and paralysis at home and dislocation and disorder abroad, we are deeply fortunate to have Senator Kaine's leadership in the Senate, and in particular in the armed services and foreign relations committees. And with so many consequential nuclear issues on these committees' agendas, from the implementation of the Iran deal to the crisis with North Korea, the forthcoming reviews of our nuclear posture and nuclear arsenal and so much more, we are especially fortunate to have him here with us today. So please join me in giving Senator Kaine a very warm welcome. Thank you. Hello. Thank you. I am thrilled to be here today. I was very honored to be asked because I'm a huge fan of the Carnegie Endowment. And as a member of the Foreign Relations and Armed Services Committees in the Senate, I do travel around the world and I get superb advice from our own professionals in the State Department and the Department of Defense. But as you know, it's always important to get advice not just from your own team, but to go outside to stakeholders who can give you some third-party advice. And I always use Carnegie Bill. From the day I came into the Senate, you are one of my two or three go-to places to get the 360 view that I need to climb the learning curve and understand situations better. And I'm also a huge fan of Ambassador Burns, one of the greatest diplomats who's ever worn that title for the United States. So thank you for inviting me today to have a chance to visit. What I want to do actually, there's so many issues we could talk about and Ambassador and I will get involved in Q&A and extend it and maybe take some questions from you as well. But I want to talk about what Congress did on the Iran deal as a way of distracting some lessons that could be applicable to future situations. And I want to do this because we're about a year after implementation day. We can talk a little bit about how the deal is going. But this was a very interesting moment in terms of Congress trying to decide how seriously to take its obligations and the balancing of congressional and presidential power on important matters of diplomacy. I have a strong opinion about this. I think the U.S. to be the nation that we need to be, we have to be as vigorous in diplomacy as we are in defense and that includes humanitarian aid and economic posture. But I think we let the diplomatic muscle atrophy for some period of time. And one of the things that I strongly support about the Obama administration was that they decided to really reinvigorate the diplomatic muscle. And so if you look at the eight years of the Obama administration, three principal diplomatic deals that were really significant. The moving of the relations with Cuban to a new chapter, the moving of the relations with Iran to a new chapter with this deal. And then the U.S. effort through a colleague, Bernie Aronson, to accompany Columbia to end the Civil War in Columbia and create two continents without war for the first time in recorded human history, as far as I know. These are big accomplishments and the Obama administration put those in a very important priority within the administration. But on the Iran deal, I found myself, and I'll tell this story, I found myself in an unusual way kind of at odds with my friend, President Obama, because he began the negotiation for that deal in November, I believe it was of 2014, was it 2013 or 2014? 2013 when they announced that the negotiations were going to start and I strongly supported them. But I believe from the very moment if we ever got to a deal, it would be a deal that would need a congressional imprimatur and the White House believes strongly that they could do this deal on their own under an existing waiver power. As the deal progressed when it was first announced, I strongly supported the negotiations along with many of my colleagues, but there were many in Congress, as you remember, who were very against the notion of starting the deal. And not just in Congress, allies like Israel said it was a historical mistake of grave magnitude to begin these discussions. As the discussions continued, we got into 2015, and I had a conversation with the chair of the Foreign Relations Committee at that time, Bob Corker. And Bob knows me very well, very able diplomat in his own right. And he said to me, Kane, you are always banging on the White House for having this war going on against ISIL without a vote of Congress. How can you let the White House do a deal with Iran without a vote of Congress? He had introduced a bill basically establishing the proposition that no deal with Iran could be done absent an affirmative vote of Congress. And I said to Bob, I said, look, I agree with you that Congress needs to have a role. I just don't like the way you wrote the bill. I think you wrote the bill to create the hurdle too high and that a president has to have power to do diplomacy. And Bob, to his credit, said to me, well, if you think I've created too high a hurdle, take the bill that I've introduced and see if you can make amendments to your satisfaction and then see what I say. So my staff and I, and I've got some of my staff in the room, we took that as a challenge and we took the bill and then we rewrote it. And basically to kind of summarize, we made two fundamental changes to the bill. We basically said that Congress needed to give approval not to a deal with Iran, but we needed to give approval to any portion of the deal that led to the lifting of congressional sanctions because there were also UN sanctions and executive sanctions that we didn't have anything to do with and so we didn't need to necessarily say grace over, but to the extent that the deal with the lifting of congressional sanctions, we would need to have a role. And the second piece of the bill that we wrote that I proposed to Senator Corker was to switch the presumption. Instead of the deal would not go forward absent a congressional vote, we mandated a congressional vote, but basically said the deal would go forward unless Congress disapproved it. And under the normal Senate and House voting procedure, which would mean that if Congress disapproved it and the President vetoed it, then only if Congress overrode the veto would the deal in fact be disapproved. Basically as a matter of math, it, the bill that I proposed to Senator Corker, which he agreed on, established that the President could do a deal and as long as one third plus one in one of the bodies supported the deal, the deal would go forward. We established a hurdle, but it was a low hurdle and I would say an appropriately low hurdle because the Constitution gives the President significant discretion to do diplomacy. The day that I was going to introduce the bill to guarantee Congress a vote on this deal, in February of 2015 President Obama called me on the floor of the Senate in the middle of a debate on something else. He had already had me to his office twice to say do not do this. I do not need Congress and you are my friend. And if you introduce a bill saying I need Congress, it will be portrayed as one of my best friends in the Senate trying to counter one of the most important things that I'm doing as a matter of diplomacy. And we've had that conversation personally in his office and the day that I was introducing the bill, which I remember because it was my birthday, we're about to introduce it and I get a call the President wants to talk to you, go back to the cloakroom, he wants to chat with you. And we had this very, very intense conversation where he again asked me not to introduce the bill and told me that it would be a very bad thing and would get in the way of what was obviously an incredibly important diplomatic initiative. And I said to him, I said, Mr. President, look, if you can't get one third plus one in one body to agree that the deal you negotiate is good, that's not our problem, that's your problem. And he laughed and he said, well, I follow the math of your logic, but you're assuming an awful lot of rationality in the body that you happen to be serving it. You can never get, you can never get a good last line in with President Obama because he's so much faster than you are. And he came up with a good line that I had to laugh at and I said, okay, too, Shae, but I'm still introducing the bill. And the last thing he said to me, my friend, on that day was if that bill gets to my desk, I'm going to veto it. That then led to about a two month period where I made a lot of my friends nervous, including some folks here at Carnegie, others who really are pro diplomacy, who really saw the virtue of moving the relation with Iran into a new chapter, who really viewed a diplomatic deal as the best thing possible to check Iranians nuclear program. They really were worried that this would screw the thing up. And in fact, it wasn't only the White House that was worried, the Iranian negotiators, the Iranian foreign minister deeply, deeply worried about this. And I communicated with him as well. And I walked through the math of what it meant. And then one third plus one in one house is all that's needed. And if you can't get that, it's probably because the deal isn't very good. But it did create some anxieties. But I did it out of a strong belief that a deal with no congressional imprimatur would be a deal that would be easier to unwind. And that it was very important that we if we do a deal, that we do a deal that would be harder to unwind and not easier. From the day we introduced the bill with I think it was 12 senators equally divided between parties momentum built significantly. And by mid April of 2015, still months before the deal was actually negotiated. And I thought it was important to get the terms of review out on the table before there was a final deal. Because if once the final deal came, nobody would care about the process, we would just be talking about the terms of the deal. We got to the day of voting in the Senate. And at that point, it looked like the vote would be about 98 to one. And at that point, Dennis McDonough, the Secretary of State did call and say that they would not be vetoing the bill. They made a 98 to one vote. That was a very wise decision. They were going to have a hard time with it being that strong. And so in a bipartisan way, both the House and Senate overwhelmingly approved a role for Congress in the Iranian deal. But a role that was a low hurdle, not a high hurdle, because that would be appropriately deferential to the to the executives prerogative to do diplomacy. I remember walking off the floor after that vote, and it had gone from it's going to be clearly vetoed, don't do it to overwhelmingly pass, the White House is not going to veto it. And Lamar Alexander said to me, I'm a freshman senator, he said, I think you've just learned something really important. I said, what have I learned? Tell me what I've learned. He said, you may have learned that in the Senate, it's sometimes easier to find bipartisanship on something really important than on something really minor. I said, well, I'm not sure I've learned that, but tell me why I should have learned that. And here's what he said, he said, things that are important will often keep people at the table long enough to hammer out something that's good. You have to have a lot of patience. We had to be at the table for a long time to hammer this out. But we were kept at the table because the stakes were so high.  Well, we established the terms of review that Congress would only weigh in on matters pertaining to congressional sanctions. And a deal would go forward unless disapproved by Congress. And then months later, the deal hit the table. And then we had a very, very vigorous debate about it. And we cleared the threshold that we needed to. Many people were very upset and voted against it. Folks like me who thought the deal was a good deal to move forward, we voted for it. We cleared the threshold we needed to. And that put Congress's thumbprint of approval on the deal. So it wasn't just a matter of an executive that could immediately be reversed by the next executive. And I think that became very important that we do give the congressional approval for something that was of such significance. Here in the aftermath, it's one of the things that I've worked on in the Senate that I'm most proud of. I'm proud of it because it is about diplomacy. You know, the U.S. became the most powerful nation in the world economically by 1890 and probably by the Teddy Roosevelt presidency became the most powerful military in the world. But it was Teddy Roosevelt brokering the end of the Russo-Japanese War and Woodrow Wilson that put the U.S. into a position where we want to be engaged in diplomacy. And when we're at our best, we're using all of those tools in creative and interesting ways. I think it will be viewed as a real highlight of the Obama administration that they were willing to take this risky step to open up dialogue that had been frozen and try to find a path forward. I've continued to be involved in the monitoring of the deal. As a member of the Foreign Relations Committee, including traveling to Vietnam to be with the IAEA and understand what they do. I think this deal by dramatically reducing the number of centrifuges, dramatically reducing the amount of enriched uranium, disabling the Iraq facility, heavy water facility. But especially allowing a comprehensive and escalated inspections regime for 25 years and then a permanent accession to the advanced protocol of the NPT thereafter gives us the degree of transparency and information we need, not that it would ever be perfect about any nation, but gives us inspection and knowledge that we would ever need. Last thing I'll say about the deal and to make a couple of concluding comments to get into the discussion with Bill is about six months later I was debating this deal with John McCain, who's a friend. He's my chair on the Armed Services Committee. We feel very differently about the deal. He was very, very opposed to it and I was a strong supporter when it eventually hit the table. And he proceeded to get up and at a hearing or at a speech to a group like this went through everything that he thought was wrong about the deal. But the bottom line argument he made, the things he thought were wrong about the deal really boiled down to one. His view is you can't trust Iran. That's what he thought was wrong about the deal. And so when it was my turn to speak, I had originally intended to go through all the items in the deal that I really liked and to try to talk about why I ended up supporting it. But instead hearing his argument basically be one of trust, I said, well, okay, I'm going to come at this a different way. John McCain praised that I'm right and I'm afraid that he's right. The audience was kind of curious and McCain's like, okay, I wonder what he's got up. You know, when I said it like that, I said, John McCain praised that I'm right, that diplomacy works, because John McCain doesn't want to have a war over an Iranian nuclear program. So he praised that I'm right about this. We ended up in a different position that he really wants me to be right. And John said, well, that's true. I do want you to be right. And I said, and I'm afraid that John McCain is right. I have some fear that maybe we can't trust. And maybe there will come a day when because of an absence of trust, maybe we'll be proven right. And there will be need to contemplate military action to eliminate the threat of a nuclear weapons program in Iran. I'm afraid that John McCain may be right. But if we ever get to that day, I have to be able to look our troops in the American public in the face and say, we tried diplomacy first. If we get to that day, and I say, hey, I'm sorry, we walked away from a diplomatic table. We foreclosed an opportunity to do this peacefully. But now we have to take military action to stop a nuclear weapons program that could be destabilizing the world. That would be a very difficult thing to look people in the eye and say, especially since we already started one war over a nuclear program that turned out not to exist. I have a child in the military. I wanted two US senators that do. This is not something that's just theoretical. This is something that's very, very real. Harry Truman, as you know, the famous story Truman at the end of World War Two called the press into his office one day and said, hey, I want to show you all something. I've redesigned the seal of the presidency. The seal of the presidency we all know is the eagle with the arrows of war and one claw and the olive branches of diplomacy and the others. And in the aftermath of World War Two, Harry Truman reoriented the eagle's face so that it would permanently, permanently look toward the olive branches of diplomacy rather than what had been the case before where the eagles face permanently look toward the arrows of war. And he said, this is who we are as a nation in the aftermath of this horrible, horrible conflict trying to build the institutions like the UN and NATO. Now we are permanently orienting toward peace and diplomacy always with the arrow branches of war if we need them. But we have a preference. We have a default. That default should be diplomacy. That default should be peace. That's what the Carnegie endowment is, is been committed to since its formation. We are in very, very difficult and challenging times right now with a lot of question marks about the administration, a lot of question marks about places all over the world. But our posture should not change. That preference for diplomacy first is who we need to be. And that animated what we ended up doing in the deal with Iran. And even if not completely with passion and excitement, Congress grappled with this, decided that, yes, we have a role, but the role should ultimately be, if we can, to facilitate diplomacy and at least give diplomacy a chance. Look forward to talking to you and answering your questions. Thanks so much. Well, Senator Cain, thanks so much. Again, you've just given us a vivid reminder of why we're so lucky to have you in a leadership position of your thoughtfulness and integrity. I want to come back to the potential lessons of Iran diplomacy. But first, just ask a broader question. I mean, you rightly highlighted the significance of diplomacy as an instrument of American national security. The budget that the White House has just proposed, plus his up defense, but, you know, would embark upon some pretty historic cuts in diplomacy and development. Right. What's your impression of how this is going to play out? And is it possible to get a better balance? Because I know there are lots of people in the Congress who have strong views. Well, yeah, the budgetary proposal is a disaster in many ways. And I'll set aside the, you know, no Chesapeake Bay funding and Meals on Wheels funding being dramatically reduced, even though 500,000 Meals on Wheels recipients are veterans. And I'll set all that aside and just talk about the diplomacy and development side. That would be a disaster. I remember when General Mattis used to come before the SASC committee, in which I sit for posture hearings, and would he would be the better advocate for diplomacy and foreign aid than any of our State Department folks? He was so passionate about it. And he would always say, if you're going to cut anything on the development or aid side, just give it to me in more bullets. I wish you wouldn't cut it. But if you're going to cut it, you're just going to increase the possibility of conflict. So there are people in the administration who deeply understand this. And the good news is, there are also people in Congress who deeply understand it. You will find uniform democratic support for a strong budget to support diplomacy, development and foreign aid. But you will also find some very persuasive Republican champions. And I would put John McCain as one. Lindsey Graham is in a very important position because he's the lead Republican appropriator on the subcommittee that deals with these accounts. And he's been very strong on it in the past. I'm a little confused about the budgetary submission last week about whether the White House is now just done with the budget. Many of you know the budget gets negotiated by Congress and we don't even send it to the White House for signature. Last week may have been just about a speech of we're going to shrink the federal bloated federal bureaucracy. But they know this is now in Congress. And I'm not even sure that they're going to be that concerned about what we do with it. But there it is important for everybody to be nervous about this. But I would not be panicked about it because you do have not just Democrats but some great Republican leaders who understand the value of these investments. Thanks. Let me come back to Iran for a second and it's you know potential applications to the even more dangerous and imminent problem of North Korea its nuclear program the pace with which it's developing its missile program as well. I know the analogies are imperfect at best. But do you say as you look back over the experience of Iran diplomacy and your own connection to it. Do you think that there are lessons that might apply to dealing with the North Korea challenge. I do. And you know I've been very steeped in the Iran issue on the Foreign Relations Committee. I'm always very key to point this out. You can become a little bit of a creature of your region. And my region on Foreign Relations is the Middle East and North Africa and Latin America not Asia. So I don't consider myself the North Korea expert although I know you're going to hear from many today who are. But look the obvious lessons even in a very difficult difference situation are the power of multilateralism. The U.S. sanctions were really really important in getting Iran to the table. But those sanctions had they not been embraced by the international community would not have been powerful enough probably to get to Iran to the to the table. And then at the table even with nations like Russia where we've got a lot of challenges right now Russia was a real valuable ally in the P5 plus one process to get that deal. So the resumption of the of six party talks multi real multilateral effort is is sort of a it's necessary maybe not sufficient. But if we don't do that in a multilateral setting we're not going to get to the result we want. And the second thing is you have to look for the the main driver in the talks. Now I would say we were the main driver in the talks with Iran because it was the power of U.S. sanctions EU had sanctions UN had sanctions. Our sanctions were probably the ones with the most bite. The main driver in a regional talks about the North Korean program has to be China they're the ones that have the most leverage. One of the things that you get when you don't have diplomatic relationships is you lose a lot of leverage and even the sanctions that we have in place on North Korea. They sort of work you know third hand they're not as directly impactful as possibly the U.S. sanctions were in the Iranian context. You know I'm not saying anything that's unusual when I tell you I think China has sort of enjoyed a somewhat unstable North Korea. They like North Korea to be unstable enough to kind of rattle the cage of Japan, South Korea and the United States. But they don't want a North Korea that's so unstable that they cause the arming of the region by Japan and South Korea and they also don't want such instability that they might face a humanitarian challenge where a lot of North Koreans would be coming across the border seeking humanitarian refuge in China. So there's a degree to which they've tolerated a degree of instability but they won't tolerate more instability and my sense is that North Korea is kind of crossed over the unacceptable instability line and China is now becoming more engaged not so much because of what we're doing, they're becoming more engaged because they see what's happening. North Korea is more existentially challenging to them. Thanks. I don't want to monopolize the conversation. I know your time is short and we have I think enough time for one or two questions from all of you. So if you just raise your hand if you have a question wait for the microphone to come to you. Please be brief. Make sure to end with a question mark and identify yourselves at the start please. Bob Einhorn. Thanks Bill. I'm Bob Einhorn. I'm at Brookings now. Senator you spoke about the congressional role on Iran. I'd like to ask a question about the congressional role going forward especially on sanctions legislation. Yeah thank you. Members of Congress are now considering new sanctions legislation. Some proposals would be narrowly focused on Iranian behavior in the non-nuclear area. Yes. Solistic missile launches. We could do this consistent with the JCPOA. Some other proposals on the other end would not be consistent with the JCPOA like rescind licenses for Boeing and Airbus. And then there is a number of ideas in the middle. You know sanctions that might be technically consistent with the JCPOA for non-nuclear reasons but would would give the impression that the U.S. was interested in reimposing pre-JCPOA sanctions under a new non-nuclear label. If this impression gathered a lot of steam it would give the Iranians a pretext for scaling back their own nuclear commitments. So if you could tell us what is the current situation on the Hill with respect to sanctions and what's your view on what sanctions would be warranted. This question is like the most important question for Congress right now in dealing with Iran is Iran is engaged in behaviors that are completely outside of the nuclear file and outside of the agreement for which there needs to be a consequence. There has to be. And yet we have to be very careful about our actions because if it looks like what we're trying to do is just go back and well under a new administration we didn't really like that deal and so we'd like to kind of reimpose strictures then we will be behaving in bad faith and we could either lead Iran to walk away from the deal and start you know start spending centrifuges and enriching uranium again or we could really damage within Iran those that believe in peace and diplomacy that you know that the peace and diplomacy group in Iran also has serious political challenges and the last thing we would want to do would be to hurt those in any nation including Iran that believe in engagement and diplomacy. So this is a subtle distinction I supported at the end of last year the simple extension of the Iran sanctions act the deal called for the ability for our sanctions to snap back if Iran violates the deal the sanctions were going to expire so we extended even that extension caused Iran to say well this is going to be a clear violation of the deal you're not supposed to do it but we viewed that as sort of bluffing behavior we knew they understood there were going to be sanctions I supported the simple extension of the Iran sanctions but as we've looked and I've been glad to sign letters to the U.N. and others about missile testing that I've viewed as contrary to U.N. Security Council separate U.N. Security Council resolutions but I am very wary about signing on to other sanctions legislation we've got the sanctions in place now that needed to be in place to allow for snapback we do need to look for appropriate consequences for non nuclear behavior but broader sanctions legislation I think would be a mistake and I think our guide in this should be we did this deal with the P five plus one we were in it with a group of nations working together out of a belief that a deal that was done together would be more likely to stick if we're inclined to do something to try to impose a consequence on Iran for non nuclear behavior it's really good for us to have that dialogue with the P five plus one and make sure we can do it together but if we look like we're kind of you know going on our own that leads to a suspicion that what's happening is actually an effort to re litigate the deal so the communication with our partners is key and look strict enforcement of the JCPO is something that we all want we need to do that through the IAEA and other and other venues but if we get out a step with the partners who helped us get the deal that should be the little warning sign that maybe we're veering over into territory that that could cause the deal to unravel we have time for just one more question and let me learn a little bit blinded over in this direction yes please in the back I Steven young with the Unique Foreign Scientist thank you senator for your work on Iran and other things one hard question for you though on missile defense last year senator Cruz offered the amendment that struck the word limited from the 1999 National Defense Act and you would only to vote in favor of that amendment which in my view was a mistake limited the limit defense is the correct approach by parts of me around that in 1999 and this amendment I think opens the path to a far broader missile defense that might threaten stability with Russia space defenses all kinds of things we don't want can you talk about your think can issue in my support of the cruise man yeah so this was in May or June of 2016 and I'm going to have to kind of go back in my memory to so on that one here here is why I voted that way but I would be glad to have follow-up with your organization my office on it I viewed the that amendment as a little bit as a of a rhetorical tempest that didn't have a lot of carry forward meaning absent additional actions by the committee so look if the if the committee in the NDA or the appropriators in defense budget starts to put forth a dramatically different nuclear posture I'm going to have a vote on that I'm going to have a vote on it on the dollar side I'm going to have a vote on it on the strategic side the cruise amendment drop the word limited in a portion of the NDA in a way that I didn't feel was going to ultimately be that consequential so I didn't view it as that dangerous an amendment knowing that I would have the opportunity to actually be involved in anything that would implement and could look at implementation to determine if it was too aggressive or not senator I I keep one of my roles here is to bring to a close a fascinating conversation but thanks so much for your time today and for your leadership so please join me and thank you all very much appreciate it thanks


Improve your tags by using trending and popular phrases relevant to your video. Do not use third-party sites and do not copy other people's tags thinking you will get more views. Here's how to do it. Use the search box with phrases relevant to your video. So if you're making a Minecraft PvP video, copy every phrase here relevant to your video into your tags. If you're doing a YouTube tips video like I am, I used everything except YouTube tips for PewDiePie because that's not relevant for my video or the for better audio phrase. Here are all the tags I used in my video yesterday, starting with all of the relevant phrases from the YouTube search dropdown. Then I added specific tags, YouTube video SEO, video SEO, SEO, title SEO, because the video showed you how to improve your video title to get more views. Click that I to see yesterday's video to learn more. Then I added some common tags that I use in every episode of The George Show, The George Show, George, George Manus. Those are the three classes of tags you should use in all of your videos to get more views. One, the YouTube search dropdown. Get relevant phrases from there. Two, specific phrases for your video. And three, common phrases you share across all videos on your channel. If you do this consistently, I predict that you will grow a lot faster than you're currently growing. Tell me down there in the comments below if you agree with this or if you have other suggestions on how to pick the best tags. I mentioned don't use other websites. Why? Because they all have their own idea on how to get better tags, which usually involves scraping other sources, other websites or even other YouTube videos to give you those suggestions. And that is not a good way to get the most trending and popular phrases relevant to your videos. This video is part of my new YouTube tip series, Tip 3. To see all the tips, click that eye up there. Do you like these tips? Do you have any suggestions for more? Tell me down there in the comments below. Other videos I plan to make are how to change ownership of your channel, what is two-step verification, and why you need it to keep your account safe from hackers. I will create one video for every single YouTube feature and tip that will help you grow. And if YouTube changes things, I'll make more videos to update you and keep you current. Who am I? I am Papa George. George Sunpai and many other names you, the beautiful freedom family has given me. I am George, CEO and founder of freedom for freedom and the freedom family. And my six year old daughter who's telling me to shh.  Hi Eve. Do you want to come say hi? So here is Eve. Say hello to everybody. No, no, hello YouTube. No, say hello YouTube because you're talking to the YouTube audience. All right. Thank you, Evee. I love you. I am George and you've been watching. Because I'm clearing my throat so I can speak more clearly in my videos. I am just warming up my vocal cords. Do I sound sexy? Does my voice sound sexy? Yeah. Yeah. Yeah. Okay. Let's make the video. Click that I to partner with freedom and join the freedom family so we can all grow together. You get many perks like position music. You also get epidemic sound, a lot of other access to royalty free videos, sponsorships and many things to help you grow. Just click the links down there in the description below to get involved in our community, our forums, our discord chat servers, meet our graphics team, meet our community team, all of that on discord and the forums. What are you waiting for? Get started and we will grow together as a family because this is the freedom family. You are part of it. We are all part of it and we're all growing together. To get more George, click that big F that will subscribe you to freedom central home of the George show. And PewDiePie gave one of you, freedom family, a big shout out. Click that video to see the shout out and to see our new 3D sets for you and click that video to see what YouTube recommends you watch next.


The world has really changed since COVID. Boards and CEOs are treating their succession planning with greater urgency. And what I'm hearing is that leaders have to be prepared for the unexpected. What happens if a high-performing CEO unexpectedly becomes unable to serve out his or her duties because of health reasons? We've seen this happen with some of our members, and it's also clear that companies that have a perceived deep bench of leaders are rewarded with high valuations and confidence from their investors and from customers. So I think COVID has really accelerated the process of developing that deep bench of leaders and giving them greater exposure to boards of directors and solving organizational threats and opportunities. It's not just CEO succession either, by the way. It's other C-suite positions where our members need a deep bench and plans to go outside the organization if necessary to sometimes get fresh new ideas and diversity.