Today, we have with us Adam Tonhill with his talk, A Crystal Ball to Prioritize Technical Debt. This session is sponsored to you by Agile Alliance. We would love to thank Agile Alliance for sponsoring this session. Without much delay, Adam, if you can quickly just share your screen, and then I will leave the stage to you. Hello everyone, and welcome to this session where we will go on a quest to find a crystal ball that helps us to not only identify but also to prioritize technical debt. So this is a broad topic, so let me jump right in and start by defining what technical debt actually is. So the definition I use for technical debt is Martin Fowler's well-known definition, and the idea is that technical debt, just like we can take on financial debt to buy something we want right now, we can do the same thing with technical debt. Right? We can make shortcuts in our solution, and maybe we will be able to deliver quickly in the short term, but, and here's the key, there's a price to that. And to me, this is the most interesting aspect of technical debt. Technical debt incurs interest payments. And this is something that I've found that we in the software industry, we tend to oversimplify and occasionally even misuse the concept of technical debt, meaning that the concept technical debt might not be as helpful as it could be. So let me explain why by having you do a very small experiment. So what I'm going to do now is that I'm going to put up some code here, a small code snippet on the screen, and your task is to quickly judge the quality of that code. So have a look at this beauty. What do you think about this code? Yeah, I think you agree with me that this is not good code. In fact, this is code that's going to be very, very problematic in case it grows, that programming style, one scale at all, it will be a mess. And of course, we would never ever write something like this ourselves, right? But is it a problem? More importantly, is it technical debt? The thing is, from code alone, we just cannot tell. And the reason we cannot tell is because it's not technical debt unless we have to pay interest on it. An interest rate, interestingly enough, is a function of time. Meaning that if we want to decide if this code is technical debt or not, we will need a time dimension into our code. How can we get such a thing? Well, in a few minutes, I'm going to show you one possible approach. But before we go there, I would like to share a story with you that relates to the code snippet that I just showed you. So I analyzed code for our living. I developed tools for software analysis. And occasionally, I go to different organizations and I analyze their code and try to protest their technical debt. And this is something that happened to me four or five years ago. So at this time, I was visiting a large client. And prior to my arrival, they had done something very interesting. They had used a static analysis tool, capable of quantifying technical debt. And the way those tools work is simply that the scan of source code, and each time you find a violation of the rule, they have a cost assigned to it. For example, you have the overly complicated logic in a function that takes you two hours to refactor. So now we have two hours of technical debt. Or maybe your public function select documentation. So that takes five minutes to fix. So now we have two hours and five minutes of technical debt and so on. And they come up with a number. And in this organization, they have taken one such tool and thrown it at their 15-year-old code base.  I mean, just to put it into perspective for you, 4,000 years ago, that's here. That's the start of record and history via the invention of writing. So you know, almost on a side note, I'm curious what kind of programmer language did they use. Most likely a Fortran, right? Now jokes aside, I actually think that 4,000 years of technical debt and a 15-year-old code base, I understand that a lot of that potential debt grew in parallel by having hundreds of developers work on the code. But at the end, how useful is it to know? It's depressing for sure. But how do you act upon it? Is all debt equally important? Besides that, I think it's a mistake to try to quantify technical debt from code alone. And the reason you cannot do that is because most of the things we call technical debt just aren't technical at all. More specifically, what I tend to find when I work with different organizations is that we, as a development organization, we tend to mistake organizational problems for technical issues. And the consequence is that we start to address symptoms instead of the real root causes. And I'm going to give you some examples later in this session, but for now, I just want to state that I think the main reason that we keep making misattributions like this is because the organization is invisible in the code itself. And that's why we're unfortunate because there is a strong link between technical debt and the organization. And we just cannot address technical debt unless we take a holistic view of it. And that holistic view has to include an organizational and social view of the code base. So what I wanted to do now is to raise awareness of the challenges we're trying to prioritize technical debt. And based on what I've covered so far, I put together a wish list. I put together a wish list with the ideal information that I think we need to prioritize technical debt. So let me share that list with you and let's see if you agree on it. I really hope you do, otherwise it becomes a very short session. So first of all, when prioritizing technical debt, if we should address any debt, we should focus on the debt with the highest interest, right? The most expensive debt. So where is it? The second thing I would like to know is what about the soft architecture? Does the soft architecture support the way our system evolves? Are we working with or against our soft architecture, which is actually quite common? And you will see examples on that as well. Finally, I talked about organizations. What does technical debt look like from the organization perspective? Are there any productivity bottlenecks? You know, those parts of the code where five different feature teams constantly have to coordinate the efforts. Now, looking at this list, I hope you agree with me that this is information that's going to be potentially useful for us to prioritize and address technical debt. But what I want to point out is that none, really, none of this information is available in the code itself. From code alone, we just cannot answer any of these questions. So how and where can we get the data we need to answer those questions? Well, those of you who might have read one of my books or attended any of my previous sessions, you know that I'm a big, big, big fan of version control data. Yeah, I know. We all have our odd hobbies. This one happens to be mine. But the reason I'm so fascinated with version control data is because it's something we have used as a backup system, an overly complicated backup system, and then occasionally, maybe as a collaboration tool. But in doing so, we have built up this absolutely wonderful behavioral data source of how we, as an engineering organization, have interacted with our code. And we can tap into version control data to calculate a lot of interesting metrics and statistics that can help us answer those questions I raised that led us to prioritize technical debt. So let me jump right in and show you a concept called hotspots based on version control data, and I'm going to walk you through it. Let's start with an evolutionary view of our code base.  The visualization you see is a visualization of a well-known Java code base, Tomcat. And there's nothing special about Tomcat. I just wanted to pick something that some of you are likely to be familiar with. The way you read this visualization is that if we focus on those large blue circles that you see, the ones that Lincoln screen right now, each one of those represents a top-level folder in that code base. And inside of that folder, you have other folders that also visualize these large circles. So this means that this is a completely hierarchical visualization that follows the structure of your code. It's also interactive, so I can zoom in on the area that I'm interested in. And once I get to the lowest level of detail, I see that each file with source code is visualized as a circle. So you might see the different red circles here. You see they have different sizes, different colors. So let me explain how that works. The size of a circle that I use to represent a file is used to measure code complexity. Now, what is code complexity? Well, fundamentally, it's about how hard is this code for a human to understand. And if you've worked in the software industry for a while, you know that there are multiple ways of measuring code complexity. We have things like cyclomatic complexity, cognitive complexity, Halsted's volume matrix. And the truth is that you can use any metric that you have easy access to, because what they're all having come on is that you're equally bad. Code complexity is simply too complicated to measure with a single metric. And when you look at the research, you will see that the moment you start to control from the number of lines of code in a file, more elaborate metrics rarely add any further predictive value. So unless you already have some of those more advanced metrics in place, I recommend that you just count the number of lines of code. And the reason I say this is because code complexity is the least, I repeat, it's the least important dimension. Because complexity has this property that it's only interesting when we need to deal with it. So we need to figure out, does this potentially access complexity? Does it have an impact on us? And this is data that we can pull out of a virtual control system. We can look at each module and see how many changes, how much development activity we have in each part of the code. We can just calculate the number of commits of each file and use color to represent that. And by combining these two perspectives, we can identify complicated code that we have to work with often. And those are our hotspots. So returning to the visualization here, now that we know how to read it, we see that there are a number of potential hotspots in the Tomcat code base. And to me, and from the perspective of technical depth, a hotspot simply means that that's the part of the code where it's really, really important that the code is clean, simple, and easy to understand and easy to evolve. Because we don't spend so much development time in those areas. However, in practice, more often than not, the opposite is free. And that tends to make hotspots into excellent refactoring candidates. And there's a fascinating reason why hotspots work so well as refactoring candidates. And it's a reason captured by one of my favorite authors, Mr. George Orwell. So maybe some of you have read George Orwell's work. Maybe you're familiar with Animal Form. If you read Animal Form, then you might recognize the next quote. Because in Animal Form, George Orwell states that all code is equal, but some code is more equal than others. And I'm pretty sure I understand what George Orwell meant with this. It's actually a deep insight into software development. Because George Orwell was most likely referring to the next slide. So please have a look at these graphs. The free examples you see at the top all show the same kind of data. On the x-axis, we have each file in a codebase. And they are sorted according to the change frequency. That is how many changes, how many commits they will do to that file. And the number of commits is what we see on the y-axis. Now, if you look at those free examples, you'll see there are examples from completely different codebases developed in different programming languages by different organizations targeting different domains, different lifetime spans. Everything is different, right? And yet, they all show exactly the same pattern. They show a power law distribution. And this is something I've found in every single codebase that I've ever analyzed. And I probably analyzed around 300 codebases by now. So this seems to be the way software evolves. And this is important to us, because what it means to us is that if you want to address technical debt, what we should do is we should prioritize improvements to the head of the curve when most of the development activities. And this is actually a positive message. Because what these graphs show us is that most of our code is going to be in the long tail. So it means it's code that's rarely, if ever touched. And that's the part of the code where we can actually live with a certain degree of technical debt. We can live with it safely because the interest rate is so low. Even a minor amount of technical debt in a hotspot is likely to be expensive. So this is why hotspots work so well to prioritize technical debt. However, occasionally, you come across codebases where file-able hotspots just don't do the trick. And I want to give you an example by turning to different codebases. So this is a codebase that some of you might actually have running on your laptops right now. This is a part of the .NET Core runtime from Microsoft. And if you look at this visualization, you see that there is almost like a group of collection of hotspots in a package called GIT. So that's the just-in-time compilation support in the .NET Core runtime. And we also see that to the right of the GIT package, there seems to be a large hotspot that's almost like an island and I highlighted it there. The name of that hotspot you can see it on the visualization is GC.CPP. And GC.CPP, it's the .NET garbage collector. And GC.CPP might look a little bit innocent, you sure see that it stands out but it still looks relatively innocent in this visualization. But that's only due to the scale of .NET Core. .NET Core is a gigantic codebase, so what you see on screen here is four million lines of code. And GC.CPP is a big file. How big? I don't know. Let's look it up at Github, shall we? Yeah. Turns out that GC.CPP is simply too big to visualize with the syntax highlighting on Github. So we have to look at the raw text file and when we do that, we see that GC.CPP is a single C++ file with 47,000 lines of C++. 37,000 lines of C++. So has any one of you ever worked in C++? It's not as popular these days as it used to be. I have to admit I spent approximately a decade of my career, 10 years as a C++ developer. And I know, I know, those are 10 years and I will get back, right? But what that means is also I can really, really sympathize with the people maintaining this code because for the 7,000 lines of C++, it's a scary thing. Let's face it. And besides, how useful is it to know that GC.CPP is a hotspot? I mean, it's obvious to confirm that it's correct, but how do you act upon this information? It's a little bit like the 4,000 years of technical data. It's simply too much to be actionable. So what I do when I find a large hotspot is that I use a technique I call xray. Here's how it worked. We take a large file and then we parse it into separate functions and then we look at the git log and see where do each commit it over time and we sum it up and we get hotspots on a function level. And this is what I use to prioritize specific and actionable refactors. Let's look at the data from GC.CPP. We see that when I did this analysis, the number one hotspot in GC.CPP on a function level was a function called growbrickcardtables. We see that growbrickcardtables is the most worked on function and we see that it consists of 332 lines of code. That's a lot of code for a single function, isn't it? It is. It is for sure. But 332, it's much, much less than 37,000 lines of code which was sized with total file. And 332 lines of code is definitely less than 4 million lines of code which was sized with total system. So more important, we are now at the level where we can act upon this information and do a focused refactoring based on data from how we, as an organization actually work with the code. All right. I'm going to come back to the hotspots again. But before I do that, I would like to take a step back and make a small reflection because how do you get to a single file with 37,000 lines of code? How does this happen? Why doesn't anyone refactor it much, much earlier before we get to that number? I think the best explanation I've seen on that is in this book, The Challenger Launch Decision. It's a book I highly recommend. It's not about software at all but it relates a lot to what we do. And that book is written by Anne Wagen. Anne Wagen isn't a software developer. She's a sociologist. And what she does did was that she coined a theory called the normalization of deviants. And as a case study, she used the Challenger accident. So for those of you who might not remember the Challenger accident what actually happened back in the 1980s was this. So if you look at the picture to the right you see the Challenger as at its launch. So the actual space shuttle is to the left with the United States text printed on it. What you see in front of you the orange part that's like the main fuel tank, right? Full of rocket fuel.  That's a solid rocket booster. And what actually happened was that those solid rocket boosters they are huge, huge rockets. So they are transported from three different segments that were then assembled before launch. And what happened in Challenger was that if you look closely then to the right on that solid rocket booster you can see a puff of gray smoke. That's not a good thing. It's not supposed to be there. Because what actually happened was that those different joints where they joined the different segments of that solid rocket booster they simply failed to seal at lift off so that hot rocket gases could escape and impact the structure of the main fuel tank. And that simply meant that once Challenger got into the air it simply due to aerodynamic forces it simply broke up and disintegrated. And the result was of course a tragic loss of human lives and something that turned out could have been prevented. Because what Diane Walgan tells in her book on normalization of deviants was that already in the 1970s where the first design inspections were done of the solid rocket boosters already there it was found out that the solid rocket booster joints their actual performance didn't match the predicted and expected performance. So this is not a good thing, right? You're building a spaceship after all it sounds dangerous. So what do you do? Well, if you're nosa you're not in the form of a committee and they did and they discussed the problem and they decided to pass it off as an acceptable risk. Years later in the early 1980s during the first actual in-flight tests again there were some measurements that clearly showed that the solid rocket booster joints their actual performance deviates from their predicted performance. Again it was discussed and passed off as an acceptable risk and in 1986 the space shuttle exploded and what's so fascinating about this is that this is what Diane Morgan calls the normalization of deviants that each time we accept the deviation we get a new point of reference. We get a new point of normal and this is really really dangerous and I would like to say that we have exactly the same phenomenon within software. This is the reason we get to 37,000 lines of code. I mean imagine that you start on a new project maybe inherit the file of complex hotspot with 5,000 lines of code. You might not be happy about it but if you spend enough time with that module after a while it starts to become familiar you start to find your way around and besides if you have 5,000 lines of code in a single hotspot what difference does a couple of extra hundred lines of code do? So soon you have 6,000 lines of code 7,000 lines of code so this is the way it continues So how can we catch and detect the normalization of deviants in a hotspot? What I use is a technique I call complexity trends So complexity trends are again calculated from virtual control data So what I do is when I find a hotspot I go to virtual control and I pull up each historic revision of that code and I measure two points for each revision which is the blue line which is a simple accumulation of the lines of code The red line is a specific complexity metric I focus on something I call nesting complexity that is when you have if statements because that's the kind of complexity that actually has some predictive value and is responsible for roughly 20% of our programming mistakes But most of the time you will see that lines of code and complexity tend to follow each other And besides the interesting thing here is never ever the absolute numbers The interesting thing is the pattern the trends So how do you interpret this? Well the way I interpret this is that if we look at the data we see that a year ago we have this dip in the red line and the blue line So this looks like some kind of refactoring maybe some code was removed or maybe some code was cleaned up a little bit and then it grows slowly until we reach a pretty steep increase and then we plateau for a bit and then we have a really really steep recent increase in code complexity And that steep increase is something I use as an early warning system Because the normalization of deviants is one reason that whistleblowers are so important in an organization And I have found that complexity trends of our hotspots make great whistleblowers in code so that we can prevent that our hotspots spiral out of control So to sum up this first part of the talk Hotspots help us identify the code with the highest interest rate so that we can inspect them or draw it as technical depth in those areas where we have the largest return on investment And the reason this worked is because all code isn't equal The development activity varies widely across different modules And hotspots help us separate the stable parts of the code from the more volatile that need our attention And finally, I showed you how to use complexity trends to supervise your hotspots so that we can prevent the normalization of deviants Now I hope you found this interesting and that you would like to try this on your own code So what kind of tools do I use to create these visualizations and these analyzes? Well, you have to remember that this is a young discipline When I started to work with hotspots like maybe 10 years ago there weren't any tools available that could be the kind of analyzes I wanted to do So I had to write my own tools And I open sourced my first tool suite It's something I call CodeMet It's available on my Github page It's entirely free What I've been working on for the past 5 years is a more advanced tool called Codescene So Codescene can also provide code level metrics and automatically separate good hotspots from bad hotspots and of course, optimics all the steps in the analysis So Codescene is available at Codescene.io It's entirely free for open source and available for a closed source project as well So if you're interested in these techniques, please consider to have a look at Codescene and support it Finally I always find it so fascinating that you can actually get far with just a command line So, I have lots of examples on this in my latest books of producing x-rays and my favorite example is this Did you know that with git log if you pass it the minus alt flag then you can specify a function inside of file and have git trace the evolution of that function So this is basically like the basis of an x-ray right at your command line Alright, you're going to get the references at the end of the talk as well Before I get there, I like to scale it up a little bit and talk about architecture and more specifically organizations And I would like to start with a concept from social psychology called process loss So process loss is a concept from social psychology that social psychologists can borrow from the field of mechanics and the idea is that just a machine doesn't efficiency all the time due to things like friction and heat loss neither cannot team So, the way this model works is that let's say you have a number of individuals together they have a potential productivity However what you get out of a team is never the full potential The actual productivity is always slightly smaller and part of the potential is simply lost What kind of loss is that? Well, it depends on the task but in a complex endeavor like software development where we have lots of interdependent tasks, lots of people a large part of our process loss is simply due to formation and communication of your head And the thing is that we can never ever get rid of process loss It's a very well researched topic within social psychology The trick is of course to try to minimize it That's why we have things like processes and collaborative practices So the first step towards that improvement is to understand how severe is your process loss today That's something I like to cover And one of the most common reasons I've seen for process loss within software is something called the fusion of responsibility This is another topic from social psychology And here's the thing the fusion of responsibility is something that's studied in the real world And it's something that you might have experienced yourself if you've been unfortunate enough to witness an accident or an emergency What you might have been able to notice is that the larger any group of potential bystanders the less likely that any individual will offer help So this is really really scary So it turns out that if we ever find ourselves in an emergency we're better off if there are just one or two other people that can help us rather than 50 or 100 The more bystanders the less likely anyone will help So this is a scary thing And this also explains a lot of the observations of diamond software because the fusion of responsibility is a very human thing and it's humans like us that write software And we have the same biases there So one thing that surprised me was that when I analyze code and I find overly complicated hotspots what I tend to see is that those hotspots have been problems for years and still no one had really acted upon them But then I do a second inspection using virtual control data I can calculate how many people have been working on this part of the code And what I typically find is a very strong correlation that the more people that are working on that code the less likely that anyone will refactor it And again I think the root cause is the diffusion of responsibility So if we have an important social perspective or social bias like this why don't we measure it? Because the diffusion of responsibility leads to processes How can we measure something like that? Well remember we are in version control wonderland meaning average control system knows exactly which developer that wrote which piece of code and when they did it So what I do is I simply go to version control and then I look at I can do this on individual level but I typically find it more interesting to take individuals and map them to different development teams So I simply aggregate contributions from all developers that work on a specific team And by using that I can calculate things like team coupling how many different teams work in the same part of the code at any given time And I use color to visualize that the visualization you see is the same style that I used for hotspots only now the colors carry a different meaning The more red something is the higher the overlap between different teams in that part of the code And you see an example here This is an example from another Microsoft codebase ASP.net MVC core And we see to the right there are a number of different types of code in parallel And this is problematic because not only does it expose us through the diffusion of responsibility by us it also makes changes more risky Did you know that the number of developers touching a piece of code in parallel is one of the best predictors you can have the number of defects you will find in that code And now you have multiple teams working in the same part of the code that also increases the risk for things like unexpected feature interactions which are some of the worst bugs we can have So this is clear the data that I would like to act upon How do we do that? Well, it's challenging it's more challenging to act upon than the hotspots because there might be multiple root causes One is of course that we might have a shared responsibility in our codebase that lacks of clear ownership So maybe the solution is to introduce a new team to take on a shared responsibility Or a very common finding is that code attracts contributors for many different teams because it has good reasons to do so The code typically has multiple responsibilities It's low on cohesion it does too many things So the reason multiple teams have to work on it is because they might work on different features but they all end up in the same part of the code because that code has so many responsibilities So this is something you can find with the technical analysis or a code inspection And if you find that, what you might have to do is that you might have to take that code and you might have to split it according to its different responsibilities so that you separate that code and that also helps you align the teams to distinct modules in the code so that you can minimize parallel work So it's interesting that you can sometimes solve what looks like organizational challenges with a technical refactoring But this is really just a starting point Just like we can find that team coordination is just like this we can also start to measure things like Conway's law that we normally just talked about Here we can get actual objective data And Conway's law at this essence is how well aligned is our organization as into teams with the way our software architecture works So what I did in this analysis was again I picked first control data to figure out where have each individual worked I aggregated that into teams and I assigned each team a specific color and a team that has worked the most in a specific part of the code gets the color of that piece of the code So what I want to see here from the perspective of Conway's law is I want to see an alignment between the architecture and the teams because the better aligned they are the cheaper it's going to be the easier the communication And if I look at this visualization really really quick I see it looks like an almost perfect alignment Each one of those larger bubbles that represent features have the same color meaning one team is responsible for each feature their operation are responsible So this is the way it actually looks from the code so this is beautiful This is like Conway's law in Iran However I have to admit that all examples you see in this presentation are from real world code bases except this one I had to make it up because I'm yet to find an organization that's that well aligned with their architecture So let me show you what it might look like in a real world case study So this is the same kind of visualization the same analysis but from a commercial code base And it's an example I'm allowed to show as long as I keep the data anonymous in order to protect the guilty So what happened here was that this was a large organization and they were using component teams and by using component teams they found that they had a lot of handovers they had to do a lot of coordination in the interfaces between the different components they had pretty long lead times but then someone went to an agile conference and they decided that hey you know what let's switch it around instead of component teams let's do feature teams so that one team can implement a feature end to end beautiful So what they did was they took their existing organization sliced it into 12 different feature teams and then they started to assign features to each team almost like a wrong robin style and they let the teams use in the code base and what you see here on screen is what the work distribution between the different teams looked like for just one sprint Can you see any patterns here and compare it to the previous image No You cannot see any pattern because there isn't anyone. What this visualization shows you is that you have contributed from all different teams working across the whole code base all the time but you have 12 teams working the same parts of the code but for different reasons since they work on different stories so not only is this going to be incredibly expensive to coordinate for different teams because they're going to run into a lot of conflicts in the code it's also going to be a communication disaster and to make it worse what happens here is that you miss synergies between different features that is you miss opportunities to make simplifications in the solution where simplifications really really have a big impact so whatever you do and I'm going to give another session on this tomorrow where I go much deeper into the social and organizational aspects of code but whatever you do align your architecture and your organization your code is going to thank you for it So I've come to the end of this session and I hope you enjoyed this journey for the fascinating field of evolving code and what I call behavioral code analysis where we emphasize the behavior of the organization with respect to the code as much as we emphasize the code itself and ultimately it's all about writing better software software that's able to evolve with the pressure of new features novel usages and change circumstances and I'm pretty convinced that the writing code of that quality will never ever be easy so I think we as developers we need all the support we can get and I hope that this introduction to behavioral code analysis has inspired you to investigate the field in more depth and to get started I have a number of resources here I have my new books software design x-rays that covers all of these techniques in much more depth I also blog about it regularly at the codesin.com and my private blog and on porno.com where I have different case studies and examples and if you're interested in trying this out you might want to have a look at codesin.io where I have some interactive analysis examples you can actually explore different well-known open source projects so now before I take questions I just want to take this opportunity and say thanks a lot for listening to me and may the code be with you thank you awesome Madam I don't know if you can see it can you see the likes coming in yeah I hope so you there's a rain of likes coming in right now for you which actually shows how much people love the session and trust me throughout the session I saw a lot of interaction with a lot of people were trying to let you know that you know they're loving every concept that you're picking out on the screen so unfortunately since you're on presentation mode you were not able to see but I was actually watching that happen and the rains are still in I'm going to start picking out questions because there are tons of questions people apologies if we are not able to take all the questions but you're surely going to have Adam available for another 15 to 20 minutes at the lounge he's going to grab a table so you can grab a seat there you can watch the conversation as well there's a watch link on the side next to the table as well but Adam let's get to the questions because there are quite a few many questions out there I'm going to start with the first one did you mention a tool that creates the hotspot yes so for the tooling there are several options what I recommend if you want to get started quickly is to have a look at the code scene that's the most advanced tool then I have my open source project the code mat so if you go to my github Adam Tornhill at github you will find it and it's our command line tool that's easy to get started with as well and it can do the hotspot analysis and you have those links if you google me you will find them and I can give you specific links in the lounge as well so I hope that you also awesome yep yes yes it does, find him on github complexity referred here is cyclomatic complexity and or cognitive complexity or anything different that's a question from Selevi yeah so of those I like cognitive complexity the best but what I tend to use is I have two different complexity metrics you know what I'm actually going to share a link to one of my blogs where I discuss this because I cannot talk about it awesome you can actually put it on the audience chat if you would like yes I'm going to do that here I send it in the audience chat here we go so what I do is basically I don't care so much about cyclomatic complexity, cyclomatic complexity is very rough metric it's basically the only thing it's useful for is to estimate the number of unit tests you might need but what's interesting is to look at the number of nesting levels so I basically count how many nested conditionals do I have in each function and that's very closely related to chronically complexity as well so I recommend those but if you don't have it then just a simple count of number of lines of code takes you pretty far and points in the right direction awesome so the next question is from Anaka she's asking does the code scene work for application code developed in any technology or language basically most languages I think it now supports 25 different programming languages so all the big languages go lang, csharp, c++ Java, Python and it's growing all the time so we're adding support for more and more languages all the time the only language to support that has been requested that I know that we lack today is Rust so that's going to be next up next up okay the next question is from Justine she's asking how do we get the X-ray of our code or complexity of the code you need to use tooling for it I mean it's the calculations themselves are not hard but they're very cumbersome to do for a human so basically to do the X-ray you have to parse their source code that's the most challenging thing to calculate what's up to file level you just need to look at the change frequencies and I have examples in my book where I can do this just from a command line but the X-ray requires you to understand the source code so you can parse it into different functions and then simply look at the Git log where each function has been modified so that's where you need the tooling support and I gave this example on how you can you can build your own scripts if you want using a Git log and the minus cell flag and you can trace functions use that as an X-ray or you can look at I mean CodeStine optimates that for example interesting that space that's another option I'm going to take one last question Adam because there's just too many questions and I'm so sorry for the people whose questions are not being picked right now time is our will in is there okay CodeStine looks at technical that related to what aspect maintainability, reliability or security is there a particular aspect it's their maintainability and their financial aspect how expensive is it to maintain that code so if you want to increase your delivery efficiency CodeStine will point you in the right direction CodeStine doesn't address security there are so many good security tools already but I don't find so much so much tooling support for this financial aspect of software development how do we become more efficient how do we make our job more fun at rate of the most important I'm going to ask the audience one time if we if we I know it's the lunch break now so can we take another five minutes if you guys are okay staying back for another five minutes hit a thumbs up please I see a lot of thumbs up so let's take another question sorry Adam I'm just going to I mean this is anyways the thing that we're going to do at the lounge so let's just have some more work done here is there any way we visualize the effectiveness of collective code ownership yes there are ways of visualizing that it's I have to say this is an area that's still evolving I again I had a blog on it let me post that one if you want to dig deeper let's see here I'm going to talk about it tomorrow as well so I'm just looking for the length to the blog and I'm posting in the chat now this is something that we visualize groups as well so what you can do is that you can basically look at how much output you get because that's the interesting thing you need some kind of some business related metric so what I typically do is integrate data from life cycle tools like gyro, Trello, Azure DevOps and then I look at how much does do we manage to deliver what's our throughput and then you can look at what happens when we change the teams if we go to collective code ownership model does it have a positive impact or does it lead to less output so that's the quantitative metric that I'm interested in but it's also very very important to have some kind of quality metric and the one I tend to use is the number of bugs that stay true because it's very easy to increase throughput if you're asking quality so you actually need both to balance each other and this is what I tend to see in works really really well in practice so hope I managed to clarify otherwise I'd be happy to elaborate in the launch that question was from Rajiv Rajiv you're listening to this so he just mentioned that he's going to have a talk tomorrow so you know what to do next rest of the folks thank you so much for your questions Adam is going to be available at the launch thank you so much Adam for the wonderful session I'm sure everybody was blue to their screen and that's pretty evident with the thumbs up that are still coming in I would also take a moment to thank the sponsors for the session as it aligns thank you for sponsoring the session for us guys if you love the session which I obviously felt you guys did alright thank you so much Adam thank you for joining in


Someone broke into my house and stole all my fruit. Eugh! Josh! Hey, welcome back to our Stupid Reacts of Corp. You have a strange obsession with my nipples, Corb and Miles. You can follow us on Instagram, Twitter for more juicy content. Thanks to everyone for supporting me. Make sure to follow us on Instagram, like, button. I was just trying everything I can to get you to stop tailing jokes. Oh, that's never gonna happen. And today we got a video. This is called Mexican Moms Trying Indian Food. Interesting. Which reminds me, when they stole my fruit, it left me peach-less. Thank you. Uh, this is a channel. Twist my nipples all you want.  They try different things. This is very cool.   How similar they are. How similar, not just the food, but the culture and the people. I've always said that. Very celebratory. Uh, the food, it's just you kind of, you kind of replace a couple of things. So this is gonna be really fun.  Yeah. Just on the other side. Just on the other side. It's really interesting. Same climates, same access to same kinds of foods, but even culturally as a people, the things that they value. Family and hard work so much, they value the kinds of foods that they eat. Their topography is not as diverse as India. No, not by any stretch. Um, but they, it's very similar cultures though. Correct. I've always thought that. My stepdad is Hispanic and his whole family's Mexican.  I grew up eating authentic Mexican food with the Mexican family culture around me. And so I, I know a lot about it. Here we go. It'll probably remind me of. Do you have a preference of Tex-Mex versus Mexican food? We get here, which is more Mexican outside of breakfast tacos, which is not really. Yeah, I miss that a lot. That's Tex-Mex. That's my favorite thing about Tex-Mex is the breakfast tacos. Yeah, here we go. Like, I wish I had a tortilla. No, oh, let me give it to you. I'm finding it here. These skins just wrap everything in a tortilla. Yeah. Indians just tear pieces off. Yep. Today, the moms are at New Delhi Palace Indian Restaurant in San Bernardino, California. Oh, hopefully it's good. Try some Indian food. Yeah, let's have it. Woo-hoo. It's delicious. Vegetable samosa with the potato patties, stuffed potato and ginger garlic. These are the three sauce to go with them. Spicy tamarind sweet and sour and extra spicy sauce. Thank you. I'm so excited. I think they're gonna love most everything. To me, it looks like... Minds me of my nana. Half an empanada, yeah. Smells good. It smells like garlic. A little bit like garlic. You like spices. It's very spicy. You're tasting the potato, but it's more than just the potato. You can taste all those flavors that they're adding in here. Yeah, and the crust. The crust is so good. I don't know what it is, but it's like really crunchy. Oh, super. Minds me of my nana. Have fun with that. Take that naan, dip it in the rice. Naan and rice. They also use a lot of rice. They put it in their tortilla as well. I guess typical white rice. She almost said Mexican rice. They're gonna mix rice in naan. Watch. She said mix it. It's really delicious. Oh yeah. I told you, I'm not crazy. It looked like it was gonna be spicy, but it's really not. What about her chicken? Salsa roja. Salsa roja. They're probably so. I don't know if the comments on that are rice with naan. Perfecto. Perfecto. Ooh. Handel. No. It's very delicious. Oh, that's fresh peas with bell peppers and naan. That's like fajira. Hey, yeah. I almost feel like I wish I had a tortilla. Yeah. Let me give it to you. I got some in my bag. I love potatoes. It's a sweet taste. I agree with you. That's a lot in the background. Or ashabonce. It is. Good, good compare. A green mole. Yeah. Maybe a little bit like, I don't know if it's like. Maybe a corn vinegar or something. It's called a tiramasa. I did it easy. What do you say to people who are scared to try your food for the first time? Everybody in the first timer, they think that Indian food is way too spicy. But I told them to try Indian food. We can make them wild, medium or spicy. It's not like Thai food. It's just got a lot of spices. For me, I thought it's going to be too spicy, too hot, but it's not. It's really, really good. You put jalapenos on everything. Here's a chicken biryani. Is that a yogurt? Yeah. I'm hungry. I know me too. Very different from Mexican rice. As soon as I took a bite, I'm thinking like Spanish rice. That's what I'm thinking it's going to taste like. That is not it. No, not at all. It's much better than Spanish rice. It is actually hot and spicy. That's what the yogurt's for. Yeah, take some of the yogurt. Might be so much of my Nana. I didn't see why we need that. I need to finish learning Spanish. It feels like cold. It almost cools down that filling up. How can we ever do this? We're eating the tacos and it's so spicy.  You do. It's called beer. It's called madelo. Exactly. The rice is good. It's just too spicy for me. Momentito, por favor. Or chata. A little moment. Momentito. They can feel your lips burning a little. You are my town right now. It's having a dance right here. De lo mejor, de lo mejor. Does feeding people make you happy? Love to just feed people. Then they love my food. So they go end up happy. Mutton paneer. Please with the cheese and paneer style. Oh my stars. With the rice. With the onion pistachio. They're getting a feast. Enjoy. Yeah, Indians use way less cheese. You include paneer in that cheese. I like the softness of it. I like it. It's like eating meat.  It's a little devour, because I know what you're eating. The combination is out of this world. The cheese is just right and perfect. Thank you for the day. I appreciate that, yeah. Do a lot of Mexican people come and eat Mexican Indian food? Yes, they do. I do have about 45% Mexican people come to my restaurant. You are in San Bernardino. San Bernardino. They love it. Similar to Mexico. If it is, yeah. Yes. Mangoes are very popular in Mexico. Yeah. And Johnny made some homemade mango lassi. It was glorious. I hope that Glob German's... Hot, hot. It's very fresh. Very smooth. I was expecting that texture. Yeah, it's like a mango shake. This is yogurt, right? Yeah, so you can tell. Curiosita. Parece una dolita. It's like starchy. It's not like a donut hole. But that was like a donut hole. It's not. No, no. Natural. Spongier. Mm-hmm. So it's like just cake. You know, like it's all... Yeah, okay. It's like a tress. It's like a tress. It's like a tress. Yeah, it's like a tress leches. Much better than tress leches. Much. I'm not a huge fan of tress leches. Do you like... I'll go on it. It'll come back to me. Flan?  Oh, I love flans. The texture... I knew the texture would be terrible for you. Oh, I love flans. Do you like crème brûlée? Don't mind it. You can handle that. It's not my favorite, but... Numero uno. It's also just northern Indian food. Yeah, exactly. Very specific. Mm-hmm. It's masala tea, miraruc, carmen, and ginger, cloves. I thought I was at a chocolate table at first. But it's like a chocolate. Look. It tastes like a normal tea. I thought it was going to be more like coffee. Taste. I think it's not... Yeah. The looks are deceiving. It's good, but for me, it's perfect. I don't know if you're supposed to do that. You guys think this try would be a good replacement. For the cafecito, yes, but I mean, don't ask me for something else to replace it. Yeah. Because I don't know how to replace the coca-cola. I can tell you that right now. Hispanic moms love coca-cola. Me encanta el te. This makes me more open because this is opening the world. Right? Yes. Maybe next time we're going to get to India. I love them. What was that? They're adorable. Adorable. That was great. My nana is just like them. Yeah. My abuelas. Abuela. My tías. Tía lala. Cuántos abuelas. How many do you have? A billion. Yeah. A billion. But yeah, it was wonderful. I love watching people explore different things. Absolutely. Such different culture. They're so different, but they're also so similar. Vice versa. I can't imagine that most Mexicans wouldn't really have that same reaction and that most Indians would have a similar reaction having Mexican food. It's more likely for, I would think, well, I don't know. I don't know how they get, I don't know that there's much authentic Mexican food in India. It's not. Yeah. I remember asking about that. Domino's, serves, tacos. Right. No. And I remember at the, at the Metropole Hotel in Colcata, I ordered the nachos. Oh my word. But they were like most things, Indiefy. Indiefy. They had some of the seasonings in there that was really cool, but it was not, what you know as nachos, you know. Nacho. Anyways, that was wonderful. That was great. If you've had Mexican food in your Indian, tell us what you think. No surprise, but because they're in San Bernardino, it's basically, it's in LA. Yeah. So it's in Al Escort of LA. Yeah. And our population is like 65, 70% of Mexican. This used to be Mexico. Yeah. So, it's no surprise, but 45, but I think if you're anywhere else, I do, because I have big Mexican family, I highly doubt most of them have tried, and that's actually pretty similar for most Americans, but. True. Hispanic culture, they also just, there's not a lot of options for Indian food for one. It's Northern. And so a lot of them haven't ever tried it. Yeah. At least the ones I grew up with in Texas. Well, because A, it's simply going to be for the most part Northern, and B, there aren't a lot of them around compared to other options that they can have. Here, good ones. And yeah, especially good ones. So unless it's a recommendation from somebody, they're probably not going to go out of their way to try that. Yeah. And also just, it scares a lot of people, as we've said, is just that they think it's going to be insanely spicy, even though, yes, there's the spice that I can't handle, of course. Yeah. It's more because there's just so many spices. Right. Because they put a lot of hot stuff in there. No, exactly. They do put chili. Sometimes, yeah, sometimes. But even for example, and virtually every dish that Andrani makes, there's pepper that's going to go in there with the mustard oil and the bay leaf. Especially the Rajasthani people. But that's just going to give it a kick. It's not going to make it too hot to eat. In fact, just agree. I've been, I've had my mouth more from surprises. Oh, yeah. What's his name? Mexican food. Does that have alapinos, huh? Sí. Enceranos. Mmm. Ceranos. Es muy deliciosa. No? No. Oh, sí. No. Ceranos para ti. Es muy mal para ti. Puto. Ah. Chinga. Anyways, that was wonderful. Sí. I'll give you guys a laugh and a smile. Muy bueno. Let us know the videos we can make. Juicy.


Living Tryons is a body of work that I made over a 10-year period in western China in a region called the Xinjiang Uyghur Autonomous Region and the work is mostly photographs made at holy sites for saints, Sufi saints, and I focused on the markers that people created when they go on pilgrimage. I went to a holy site and I didn't realize that it was a holy site. I didn't realize what it was. I was very moved by the physical handmade nature of the markers and for me I was in the desert and it was a very spiritual experience to see these markers. They had so much life to them and although I didn't know what I was looking at I thought I have a feeling this is deeply spiritual and I really wanted to learn more about it, both visually and in terms of what they were there for. The Xinjiang Uyghur Autonomous Region has 11 million Uyghur people. They practice a form of Islam largely that is influenced by Sufism or is considered Sufism and in the practice that they do in this region there is saint veneration so a lot of the holy sites are pilgrimage sites for saints so they're Muslim saints and they're saints that might have been great poets, great proselytizers. They often were able to perform miracles during their lifetime pure illness. It's believed that a saint never dies and they're in a state of eternal sleep so a lot of the markers that you're looking at are for saints or for venerations close to this. There's very little knowledge about Xinjiang so before I actually went there myself I had never myself heard of the Uyghurs and I hadn't known about the region in fact the Taklamakan Desert which is huge I had never heard of it so I thought well that's I'm not the only one in fact as I've made this work for a very long time many people had never heard of the Uyghurs so I think that in itself was really interesting and as I made the work and presented it to the public I realized a lot of what I was doing was presenting a different perspective than the one that has reached the west. The strength of this work is is the sort of magic the sort of awe of what it is and the discovery process of finding out what it is what it's been used for in the history related to that practice. What's so exciting about having SOAS was that it had a personal connection to Lisa this was the place where she first met the Uyghur scholar in 2004 and in 2014 she came back to SOAS and did another conference here and I think that that link to SOAS is really ideal. What was interesting to me was this idea that that these things were intentionally placed that they're in a lot of the photos they look like they're growing they look like they're sprouting from the earth and they're alive and and that power of of being alive relates so much to the spirituality and for me that was really interesting and something that I felt needed to be sort of unpacked and so for me as a curator I really wanted people to sort of be able to to learn what these were and to sort of have an experience as both a personal and spiritual experience but also a bit of an educational experience because for for what I think a lot of people aren't familiar with this region and the kind of shrines that exist in the desert. The exhibition was shown at the Rubin Museum in New York it was shown in France as part of the photography festival in Aurore overlapping with London and SOAS the exhibition is going to be at a museum in Sweden called Fotografseken. I would love to see this exhibition travel to China I think that many Han Chinese are very interested in learning more about the Uyghur and I think I think it would be very well received.


What's going on? How are you guys today? I'm gonna show you some slight improvements to the meal We were having last week kind of a cheat meal kind of not because the ingredient quality is so high and my schedule Has been so messed up lately, especially this week It's a literally three in the morning, and I'm having my second meal So my parents are having the floors we've done in the house and I have to go down to the warehouse every day Plus, you know my liver damage, and I got to film YouTube every day. It's a mess. It's a mess, you know So I try to sleep when I can but I can't afford to move out right now. So This is what I'm stuck doing. So we went down to the bakery today again up north side bought some organic baguettes Which tastes a million times better than the bread alone sourdough bread actually don't even want to eat that anymore. I Have the oven heating up because we're gonna make some homemade French fries, which is the main difference between this meal and the meal last week. So for my protein I have two options some leftover roast beef here and this is an organic strip steak Usually I like the you know the freshly cooked steak more on the sandwich, but like tonight.  So some of you guys might remember I did a french fry recipe I don't know maybe last year and this is kind of similar to that. So here I have some white recipe potatoes that were boiled earlier for 10 minutes in salt just Peel them and then use Mountain Valley water So we're gonna do a really nice oil Flavor base on these and then roast them in the oven They're gonna get nice and crispy on the outside and we really soft and fluffy on the inside and this Steak seasoning is amazing guys Honestly on the potatoes. It's ridiculous. I like it more on the potatoes than the steak so maybe like three to four tablespoons of oil and then about Two tablespoons of the seasoning So I mix the steak seasoning into the oil and then put the potatoes in And I'm just gonna mix the potatoes up in the seasoning and oil and If you do these potatoes without blanching them in the water the texture just isn't good they're kind of like hard and It's just not well seasoned either the longer you boil the potatoes the better. It's just They'll fall apart a lot easier Which isn't a bad thing. They'll still taste good. They just won't look as good And you could cut this into french fries shape small or whatever you like I just for me. This is really convenient, you know, just cut the potato in half and that's it now these little like Mushy bits of the potato what's gonna get really crispy. So I'll actually take them and sometimes put them on top so these potatoes I put them in the oven at 450 and usually I have to put it on high-brawl because I don't know this oven just doesn't work that well So the name of the bakery I believe is Mouffi. I think I told you guys last week They have a few different locations. The baguette is excellent excellent excellent But it's only really good for a day the next day where you could do is like put water on it and throw it In the oven to freshen it up But this tastes infinitely better than what I've been eating from Whole Foods All right, I don't think I actually have enough roast beef. So we're gonna take The New York strip Viana guys, so I just pat it dry on the towel and then some salt on top We have the steaks guys the salt the steaks seasoning is all available on Franky's range meat.com and if you just want the salt or the steak seasoning you can go to Franky's range foods.com. There's a little bit of coconut oil on the pan Overcook the steak a little bit, but it's not too bad So I just have a little red wine vinaigrette to put on the steak. This is red wine vinegar Oil and some salt very simple, but it has a lot of flavor to the sandwich So we just took the potatoes out of the oven You could tell the bottom is nice and crispy top is a little brown But since these are much larger than regular french fries, this is gonna take about 10 minutes to cool off So you guys have kind of seen this before Everything's actually organic, you know, despite that not being the only indicator of food quality It does remove a lot of negatives Agrochemicals that plague our modern food supply. So as we said the organic baguette with organic New York ship steak balsamic vinaigrette on top and then just organic potatoes with oil and Frankie's steak seasoning overall The meal has a lot of starch a lot of carbohydrates excellent for feeding the gut bacteria decent for gut motility and important for detoxing the liver Plenty of B vitamins. There's quite a bit of steak here animal protein cholesterol everything we need on that end Potatoes also have a pretty decent amount of minerals, especially copper, but you know anything. That's not in this meal like Malibdanum manganese boron Magnesium certain minerals that aren't super high I will supplement them a few times a week and then the water kefir grains water kefir probiotics are gonna really help Digest all of these carbs keep any candida in check We have some mastic gum Powdered up in the spice grinder for H. Pylori as well. And then maybe we'll have some charcoal. I Did cut my apple up ahead of time here You guys can get the probiotic on Frankie strange foods calm as well Even eight hours later this bread isn't back right For some reason it's only good like a few hours after I get it from the bakery We had the roast beef earlier actually I like the roast beef better with the vinegar on it than the steak Guys these potatoes What the steak seasoning on them?  It's amazing very very good on The burger review channel. I've eaten french fries at like over a hundred different restaurants the flavor on these Is better than any of the restaurants I've eaten that although the texture could be improved a little bit It's still excellent the interior of the potato is like super moist and Nice and seasoned and then the outside has the super crispy really flavorful crust I wasn't gonna do a recipe on these potato wedges because they're really similar to the french fries I made but maybe we'll do it again so We're gonna take about a teaspoon of the kefir grains and then About a teaspoon of the mastic on as well if you guys haven't had Water keeper if it's made properly think of it as like slightly alcoholic Really tasty carbonated soda Very very delicious Now you know if it's room temperature if it lost the carbonation You know it sometimes it tastes like warm beer, so you got to make sure it's it's correct So I'm not gonna show you guys because I didn't have to do it today But if you want to refresh the bread and you can Google this too But you just take like some water pour it on the whole baguette literally poured water directly onto the baguette Get the outside wet Then you put that in the oven for like 10 minutes at 350 makes the bread really nice and soft the flavor still isn't as fresh as the first day, but At least it's not like really hard and difficult to chew So I guess there's two main reasons that people go against carbohydrates. One is like the conventional anti-sugar anti-carb insulin diabetes stuff and two is the anti-nutrient cell the first one Isn't relevant if you have a healthy gut microbiome and you're in a low radiation environment because you need pancreatic and liver enzymes as well as Gut bacteria to absorb and digest the carbohydrates without stressing the body Unfortunately, most people have a lot of toxins a high radiation environment and their gut system and organs. They're all messed up So they can't eat carbohydrates without having a lot of diseases and issues and that's also partially because of high omega 6 vegetable C-dol intake anti-nutrients aren't really a concern outside of vegetables and some fruits and I guess if the grains aren't properly prepared But you know, there's a reason red is made like this There's a reason you know potatoes are blanched and salted those are things that reduce the anti-nutrient content to something That's fairly negligible, but something like a papaya a lot of tropical fruits berries very high in oxalates bad for the kidneys to eat in large amounts every day All vegetables for the most part, especially dark green vegetables colored vegetables are pretty high in anti-nutrients, so White rice white potatoes white bread all pretty safe from that perspective And actually if anything they're much healthier for you then a lot of those fruits But people think oh well fruits are more natural or this or that So I could probably Finish this off, but I don't think I'm gonna sleep as well if I do so We're gonna finish the meal off with Two of these charcoal capsules and I'm gonna have my organic honey crisp apple We did a video on apples last week, but To put it simply This is a lot of starch and the body has capabilities to digest all different types of nutrients So by adding some glucose and fructose There's some variety in there Just really speeding up liver detox and Efficiency of everything So with all the nonsense going on that I have to deal with especially with the business stuff I figured it might be less stressful and easier for me to have my own place Mainly to you know reduce the Wi-Fi radiation exposure and so that I can sleep better But the overarching issue is that New York is very expensive, so There's a power line that attaches to the house and there's a magnetic field issues, so I'm probably getting cooked all day, and I really haven't for most of my life So I'm gonna have an electrician come next week and and get a quote on rerouting the power line underground because overall that's probably gonna be cheaper than Me having to try to find my own place because I don't think I can afford the mortgage in Westchester and in order to Get a house that fits my requirements like it's far away enough from a power line and It's close to the you know city where I have my business You know we're talking like over a million dollars. I can't even afford half of that I mean honestly, I wish I could just rent an apartment or get like a cheap house in Yonkers, but the the radiation levels you'd have to Coat the house in like a foot of lead and to simplify that those are basically the requirements of me sleeping You know, it's a low Wi-Fi emf magnetic field environment. It's reasonably quiet Last night. I basically didn't sleep at all and when I don't sleep. I don't get stuff done I don't want to go to work. I don't want to do anything. I don't feel good I don't want to film YouTube videos. I have a hard time being creative So I figured if I could just put myself in a position where I feel good. I'm rested and Things will get easier, but if you guys didn't see on frank me screen foods, we have a discounted price on the key for because I've been making a lot more and I just want to kind of Get it out while it's as fresh and high quality as possible So we have the plane is only six dollars and the the flavor it is seven dollars, which is Incredibly cheap considering I pay three dollars just for the the water to make it guys Yeah, so that's also kind of the reason why like some days I've been missing videos now, which is pretty uncharacteristic of me considering I've done YouTube videos basically every day for like six years So you know last Monday we could have done, you know plenty of news topics or abortion There's always something to talk about. I just didn't feel like doing it because you know when I talk about things and put my Perspective on it. I tend to get censored and I'm tired if I didn't sleep for two days I'm just like I whatever. We'll just skip a day and I'll feel better But if you guys do want to support me, you can go to frank-the-file.com to check out all of my businesses Hopefully my day of eating and my understanding of nutrition has helped improve the health of yourself as well as your friends and family You guys can also drop a like on the video leave a comment down below Subscribe so that YouTube can unsubscribe you next week and be sure to check that notification No, so they don't notify you of my videos. I was rubbing my hands together In the other video and it sounds like my hands are really rough, but they're not I have girly hands But the reason I'm bringing that up is because when I went to the Amish farm the other week I Shook this young kid's hand that worked on the farm all day like 10 hours a day He was 20 years old. His hands were so rough Just by shaking his hand. He cut my hand open Pretty fine to me. But anyway, thanks again for joining us. I'll see you for tomorrow I think we might I'll get back to the kitchen and cook and something nice


And now for something completely different. There are a lot of things that I want to talk to you about every single day, but there's really no place for it. So I figured I would take a moment out, ask your guys opinions on a couple of things, and maybe see what it leads to. First thing I would like to talk to you about is Weird Al Jankovic comes out with a new album today. We don't really have a place to talk about geeky things like this, so... Yeah, you should definitely go and check that out if you haven't already. The second thing I'd like to talk to you about is a lot of you have been giving me some feedback about my green screen chroma key stuff here on Freedom Central and of course on the school channel. Everyone has their own opinion on exactly what my problem is. Now, there are a few problems and one of which is it's kind of a time trade-off as far as the time spent editing, the time spent filming and the actual quality of the product. There are a few things I can do, one of which would be to stop using the editing software that I'm using and go to Adobe Premiere. My personal problem with this is that the H.264 encoder crashes my computer still. It's gotten a lot better. I recently did some work on my tower and it's gotten a lot better, but the H.264 still crashes in Adobe Premiere. I don't understand what that why. At this point, the thing that I know that I can do to help is a lot of my problem is motion blur and of course clarity. So why don't I look at possibly getting a 60 FPS webcam? The reason I'm bringing this up is because I can't find a good one. Do you know anything about webcams? Can you recommend a good 60 frame per second webcam at a decent price? Practice your Google food. And the third thing I'd like to talk to you about is something that you already probably know about if you have watched this channel earlier today. StuckDizzle aka Aaron came out and said that we have some news about our sponsorships with Gondias. If you'd like more information on that, just click the star right over there somewhere and you'll be taken to that video. I know this isn't normally what we do on this channel, but I do want your feedback on all of this stuff.  Maybe as a place to talk about anime or, I don't know, electronics or, well, I don't know, glasses. Some of us like our pocket protectors. I don't know, let me know in the comment section down below. Weird Al's new album. What do you think? Gondias. What do you think? And last but not least, help me out. Be a bro or a broette. And let me know about webcams because I'm kind of close. I hope that this video has been helpful to me and if you leave comments it will be. Till next time, I'm Anthony with Freedom Like. Subscribe, comments please. Click the first video for a fireside chat with George where he shares our future and how he grew from $20,000 to $120,000 in just one month. And click the second video to see how to monetize all of your videos with just a few clicks to enable all ad formats and monetize in all countries. 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. So grow with us and partner with Freedom. And that play now button right there on the video bar is all you need to click to get started.


Thank you, Geetika, for joining us for this session, the last session before we get into the award ceremony. As you know, already Bhavna has done the introduction, Geetika heads the Hershey's business in India. She's spent a lifetime in the, you know, consumer FMCG space, she's been a lifer at Unilever. You know, before we just came in, I was, you know, narrating an anecdote to Geetika. This year in Diwali, I was in Delhi with family and I noticed something, though it's a small sample size, only me, but a lot of the sort of chocolate boxes that were coming in were Hershey's. You know, unlike what I've seen in the past, you know, so many other companies, people who use Cadbury's. So I noticed a lot of Hershey's and, you know, it still is kind of, you know, ingrained in my mind. I remember telling my wife that something has changed.  Thanks, Naval, for the opportunity first.  I know it's the last session between now and awards. So I think Hershey's, as you may know globally, is a chocolate company, yeah? But in India, it actually started off with a JV, then we about 10 years ago kind of took over on our own. And it's a syrup's chocolate syrup company, frankly, in India. It's only in 2020 that we have gone national with our chocolates. And that's how nascent India's Hershey chocolate journey is. And from there to kind of make the progress that you're saying, and I can assure you, we're not the only sample size. We've had many people really talking about the kind of movement that, you know, Hershey chocolates has made. We see that in our shares. We are now the third largest chocolate brand in premium chocolates in India. And like I said, literally launched a few years ago. So what has changed for us? Frankly, I think one is priority. Yeah? So here is the prioritization and we've put execution as the top of our prioritization because you could have great strategy, but unless you really put it down, you know, and execute it till the last mile, it doesn't really come through. So that's the one that has resulted in us gaining chocolate share, gaining, you know. So for example, in gifting, gift boxes this time, we would have easily been the kind of growth rates we saw must be about 4x or 5x that the category saw. So you're really pushing the envelope there. And I think the other thing, and I'm referring now to the session and why we are here, is the content. Yeah, because that is really the heart of it and the session before us also kind of mentioned. You could have brilliant, you know, teams, you could have brilliant communication channels, but unless there is deep, real meaningful content for consumers, it will fall flat. So I think those two would be what I would say has been the differentiators. Fantastic. I think, you know, this entire day is about conversations around content and content is at the heart of, you know, what we consume on digital platforms these days. One of the things marketers have sort of discovered, realized in the last few years and that's the other thing we were talking about, that 20 years back companies used to do what was then known as, you know, advertiser funded programs on television. There was no other way. And then gradually the narrative started getting pushed into programming. There was a famous case when Maruti launched, you know, a car on a very, very popular television show. We've come a long way from then, and then today digital platforms allow such a wide sort of gamut of, you know, content seeding activities. Every brand is kind of trying to push their own narrative. In this journey of sort of content curation and content seeding, what is also happening is a lot of discovery is being made, right? You said you launched the chocolate business 2020, roughly two years back. I'm sure you've done a lot of experimentation, made a lot of mistakes, you know, done content, some of it has worked, others have not worked. So while we'll come to the, you know, content seeding part later, the first part is curation of the content itself. So what are your key learnings because you've not just worked in this current category, you are, and you worked across many categories in your journey at Unilever as well.  So I think for me the most important thing here would be consumer connectedness, yeah? And that's something at Hershey we take very seriously. Every person in Hershey has a minimum hours of consumer connects that they should do, literally in order to be, you know, kind of, to be able opening their mouth in a conference room. You know, you have that, that gut that you've built around what will resonate with consumers. And I think that's important because for me that's really where it all kind of summarizes.  I think there are great learning steps. We've had many things we tried, didn't work as well, but we've used them to kind of make it even better in the, you know, in the future. Just to give an example this year, Valentine's Day. So normally it's an occasion which is very well entrenched by our competitors and, you know, we said, but why should Valentine's Day be just for, you know, your beloved? It could be for yours forever, could be your mother, could be your brother, could be your sister. And therefore with that we did a very interesting tie-up with butterflies.  And therefore I think just different things so that we stand out, we resonate with what the pulse of the consumer is and then we kind of address that. So I think for me that would be the most important lesson I have learned in the past 20 years, which is stay close to consumers and they will reward you with kind of their purchase. Yeah, absolutely.   So I think Valentine's Day is also kind of headed in that direction. It increases usage and gives you another opportunity to kind of promote the product. Let me come back to, you know, slightly larger umbrella now, Githika.  You run a large business in India for Hershey's now. When you sit down with your marketing team and, you know, we've spoken about the digital journey, how it has evolved last 15 years, so many learnings within the digital sort of marketing, digital advertising space, consumer reach out, when you sit down with your marketing team and you look at, you know, money being spent on digital platforms, what are the key KPI metrics that, you know, you start with because, you know, I think digital is one platform where all sorts of KPI's have floated around in the last 20 years. Many have been junked, new ones are, you know, floated around every day. I was reading a piece a couple of days back on the Howard Business Review, which spoke about how many marketers, at least in the more evolved Western economies, are kind of, you know, moving money back to traditional media. I mean, though that's not happening in India yet, unlikely to happen anytime soon, but when you talk to your marketing team, what are the key metrics that you talk about? Yeah. So I think there is no exact answer to this, to be honest. And, you know, I realize a lot of people are experimenting with what is the right measure of success. What I can tell you is there is a digital-first approach that we employ. So what, you know, we earmark a certain amount of money, of course, behind digital, not just core. And we do see that there are a lot of consumers who we call cord cutters, you know, basically they don't have cable TV anymore, so they've cut the cord. And they are the ones who you want to reach through digital-first kind of campaigns, right? So, you know, we, of course, measure the engagement, the views, the, you know, the like, the usual ones. We also see what is our share of voice in the digital medium compared to who we would want to be kind of pegged again. So several, several measures that we see. I think the other thing we do differently is not just stick to more traditional, you know, moments of advertising around, you know, chocolate. So for example, chocolate, if some of you are familiar with the category, it's a Diwali, Raki, gifting kind of occasion that has been built. And we've said we will do something absolutely different. We'll find more moments to connect where our consumers are. So Women's Day, yeah? And we did this very interesting campaign this year called Hershey, you know, so our brand has, you know, an invisible her and she in the brand name of Hershey's. And therefore we said we will make the invisible and make it visible. So we've really celebrated heros, you know, from all walks of life who are not celebrated otherwise, you know, so they are great in their own field, could be philanthropy, could be sports, could be photography. And we've put them on our packs, yeah? And this is now the second year we have done it. We will do it again next year and hopefully forever, which is how do we make them really get the spotlight and make them visible and the work that they should speak for themselves. So we're not sticking only to Iraqi Diwali, yeah? Similarly, Halloween, yeah?  But if you've seen it around, now that's a thing that is really gaining, you know, with a lot of these Gen Z, millennial crowds, you know, this trick and treating has really got a lot of traction. And therefore we don't want to be, you know, we want to be the leaders in that space. We almost had an 80% share of voice in terms of Halloween this year, yeah? So first time we said, you know, like make your Halloween Hershey-lishers and how do you really celebrate Halloween? So I think that's for me an important element of, you know, so it's not just going digital, but also digital at a place where the consumers are not even expecting it. It's out of the blue. Absolutely, finding the right fit, the time, the place and the messaging, of course, is as important. Let me come back to the content piece that we've been talking about and, you know, one of the very key aspects of curating and then pushing out content is also the use of, you know, known faces. You know, it could be celebrities, it could be influencers. Just last week we curated a, released a report on the influencer marketing ecosystem.  Now you have Bollywood A-Listers going down to, you know, what we have come to known as, to be known as micro and nano influencers, right? And most of the brands are working with the entire gamut of influencers from top to bottom. You're already working with, you know, some of the A-Listers and I'm sure you also work with a lot of influencers down the funnel. And influencer marketing has become a very, very critical piece in this entire sort of jigsaw. What have been your kind of challenges in terms of, or learnings if I can ask that? On the influencer marketing thing because that directly plugs into then how you are seeding the content and where. Yeah. So influencers indeed, for us, we have a full funnel. So, you know, macro, micro, nano, all of them. And we have very A-Listers, you know. So John Abraham has been on Sofit for so long. Shraddha Kapoor on Kissel, Tapsee on our exotic dark portfolio. So we do have very top-not celebrities who really get us the reach.  So, you know, we do different spaces. I think the learning or the challenges is, you know, when you take a celeb, you kind of check, you know, what they stand for. You know, you do a lot of due diligence. But the moment you go to influencers, there's so many and there is only so much that you can kind of curate their tone of voice beyond the point. So I think there is a certain level of putting it out there that you have to live with, saying, knowing that the influencer may interpret it in their own way and form and being comfortable with that. Knowing that you're kind of sharing your voice in different platforms in a way that could be different from how you would have intended it to be. So I think that's for me an interesting part of working with influencers. But that is also what makes it real and relatable because otherwise, you know, we've all done scripted films. It's a line that the celeb will speak and that's really scripted to the last pause. And I think with influencers, you make it real. You make it more tangible. You make it more closer to the consumers. And hopefully then you kind of pick the right kind of influencers who then carry forward your message in a very relatable, real way. Yeah, and I think one of the sort of risks that comes with the job is the kind of mistakes that are made. It is very tempting to hire a well-known influencer and start putting content out without kind of really paying enough attention to the fit with the brand, you know, whether the timing is right or whatever else is going on in the environment. Tell us, what are the kind of pitfalls or, you know, what are the mistakes that you think sometimes brand makes when it comes to use of influencers, per se? So yeah, so that's the one that I was referring to, saying, you know, you kind of lend, you give them the authority to talk on your brand's behalf somewhere. And the team does a lot of due diligence as much as they can. But this can go wrong. You know, sometimes these influencers in their personal life may be doing something which is maybe not in sync with what your brand messaging or thinking is. But I think that's an overarching thing for us. Thankfully, all our influencer bets have kind of paid off. They do have a very clear space that we would like for them to reach out, a kind of target group that they already speak with, which is resonant with the target that we want to reach. So I think for us, frankly, all our experiments have worked. I think maybe it's got discharged. Yeah, I think with the sort of space growing so fast and so many companies experimenting, naturally, a lot of learnings will come to the table in terms of how influencers are going to be used and what is the way forward. Let me step back a little bit and go back to the sort of digital journey. One of the things that has happened as digital has added so much complexity to a marketer's job. Philip Kotler famously spoke about the four P's of marketing. And today, those four P's have completely changed, meaning the P stand for performance, for privacy, for permission, and so many other things. Two things have become very critical on when you go online to push your narrative. One is how can you personalize, right? Now, that challenge is different for every category. For example, BFSI as a category needs to be far more personalized as compared to perhaps the category you are in. But having said that, because digital allows you that opportunity, there is want for every marketer to make the message personal as much as possible. But the flip side of that is intruding into privacy, right? And it's a fine line that every brand is walking every day. How do you kind of look at that challenge and sort of find the right path? So I think personalization, again, super critical. And I give the example of the Hershey campaign that we did. What we did was on our packs, we put the picture of the person we wanted to celebrate, but we also put a QR code. And if you were to put it, you could celebrate your own personal shero. So that's how you personalize it. So while we have these four, six, eight people that we could put on our packs, how can you celebrate the sheroes in your lives? And we had almost, I think more than 11,000 people who kind of sent them messages to their personal sheroes. So that's the personal touch that you can bring in. Again, a space that we continue experimenting in. We are now doing the Metaverse conversation earlier in the panel. We're now doing Hersheyverse. So it's not yet official, so maybe I shouldn't be telling you, but yeah, you'll hear about it next week. And again, we're trying to kind of merge together the physical and the digital world for the consumer and lots of discounts, lots of interaction, lots of interface with them to see how can we make it more personal. How do we bring it closer home for them? So yeah, it's something we continue on. As a category, chocolate naturally lends itself to a concept like Metaverse. Let me, again, you've been a marketer for a long time. Let me ask you, every brand, I saw a report GroupM release this week which said 48% of advertising money in India this year will go on digital. There are naturally categories which are doing even more than 48% that's how the average has been arrived at. In this entire din of digital somewhere, agencies as well as brand managers have lost sight of what's happening in the TV and the other legacy ecosystem. What is your view on how this debate is eventually going to be settled, say, two years out? What is the value that a medium like TV still has in the lives of FMCG marketers, right? While digital delivers the so many benefits we've all discovered, TV continues to have a role. What is that role you think it will sort of keep? So I think it's personally too early to write the obituary for TV, yeah? And the truth is our consumers are across the spectrum, across the LSM pyramid or socioeconomic classes and there are those who you would need to reach through more mass roots like TV. So at least at Hershey how we do it is we decide which brand needs to go on TV depending on its awareness reach tasks and how much, therefore, would be spent on TV, how much would be spent on digital and then there are brands which do only digital. More niche, more very segmented profile, so we create the look-alikes and we get to consumers through that. So my personal belief, TV and digital are here to stay. In fact, if anything it is becoming dual screens, more screens, so how do we build that interaction between TV and digital is how we should look at our thinking rather than saying it's TV or digital. It's going to be both. At least that's how I see it and we need to be able to just bring them together in a manner that is cohesive and continues to build for the... Yeah, I think TV plus digital is important. Very importantly, how you're using digital as well as TV both. It's just not about doing a mass pray of spending money on digital. On the objectives of the brand, it could be different for every brand. Even within, like I said, within Hershey, we don't have the same approach for all our brands. We have different approaches for what is right for that particular brand in that particular campaign. So sometimes one brand can be making a core TV advertisement and a digital, like Hershey kisses, for example, core TV, but the Hershey-Licious Halloween was only digital. Yeah, some of the tactical campaigns obviously will go on digital. You might not have the bandwidth time or the resources to mount them on a TV campaign. Let me come back to what we are discussing today, which is content and for every brand, it's become very tempting to curate your own narrative instead of going the traditional advertising way which is riding on a narrative that already exists. But in your 20 years of journey as a marketer, what have you discovered in terms of consumer taste or consumer pushback? Because if a consumer has dozens of narrative, content narratives thrown out at her every day, right? The ability to absorb them also goes down and there is a pushback. And that's again a very fine line because you don't want to overdo the content piece and sometimes you got caught in your own trap. You like the narrative and you keep pushing out without really understanding the kind of results that are coming out. So when it comes to creating your own content using celebrities or influencers to put it across various platforms, what is the right approach to follow in terms of the balance between curating your own content versus riding on existing content or doing it with other partners? Yeah. So I think firstly, indeed the human mind can only process so much, right? So beyond the point, it does, if you don't manage to say your message in a clean, easy to process manner, a consumer wouldn't get it. So with you on that, I think for us, it is really about what is the best way to partner and where do we come and kind of curate our own content? I'll give you the example of GeoSawan, you know, playlist for Valentine. So it's something that they are doing and how do we partner with them in that journey? We doing something similar, you know, well with Tinder as well. You know, it depends on the channel where you believe there is something that they can do, something that we need to curate specifically. And to be honest, we look at it in every space differently.  Understood.  Let me talk about a larger organizational issue. And you know, for most companies, people is a very important talent. And one of the key areas where companies in India as well as globally have been focusing about is diversity in the workspace. We know that Hershey's has been kind of at the forefront in pushing that narrative, making it a sort of equal workspace. What are the steps that the company has taken, for example, especially in your tenure in that direction? So I think diversity is super critical. In fact, if I look at our leadership team, it's 43% is women. And that's really what we aspire to be. We want to be an equal opportunities employer, right? So what we insist is every single opening that opens up is an equal slate. You have 50% women and 50% men, and then may the best talent win, you know? So there is no mandates on hiring, but there are mandates on ensuring that is equal opportunities being offered. The other things we do is really, how do we make it more easier for women to work, right? So sales especially is an area where women find it tough. I mean, I have done sales in Unilever and I can assure you I had troubles using, you know, there was no bathroom to use. Like literally, let's be honest, right? So we've tied up with Vulu. It's this app that tells you where is the cleanest, closest bathroom.   So a lot of these facilitating benefits, which a few years ago were not considered important or weren't even thought about, is something that we've recently done now. We've seen an increase in our diversity ratios nowhere close to the 50-50 you would like for it to be. But we continue making progress. Even in our factories, I mean, we have a factory in Bhopal and traditionally not as safe as we would like for it to be. And we are exploring how can we have, you know, buses with CCTV cameras to take them from the village. How do we kind of go to the village, speak with them to make it legit to come to a factory and work? So lots of work in the pipeline which has been done in the last year. Lots more to do. But I think we've made tremendous progress. And that's an area I think is important because, you know, at the end of the day, we are serving an equal population consumer. You know, there are 50-50 men and women. And therefore, we need the same kind of diversity in our teams at home so that we can kind of make them to the consumers out there. Absolutely. I think one of the key, while we talk about GDP numbers and, you know, growth figures in monetary terms, one of the key aspects for India as a country to look at is participation of women in the workforce, you know, and how that is shaping up, especially in corporate India at the top level because, you know, there are so many sectors where significant progress has been made in the last few years, but there's still a long, long way to go. You come from the unilever ecosystem, which is really a sort of, one can say a leader in this space with that. Thank you so much, Geetika.