Wow, what's up everybody once again is Brain Man Sean and I'm back with another episode of Inside the Network where we share exclusive content from Inside of Brain Man Network.com because I signed myself, you know what it is. Now this is exclusive collaboration between Brain Man Network and Music Entrepreneurial Club. We had a long about two hour conversation just doing a Q&A between members of each groups and this topic right here is something that you really need to check out. Not just a spam conversation that we start with but really the back end about how artists think like consumers and how you should flip it and then I'll talk, you know, I'll add some sauce on it after that clip. So wait for it. Let's get into it. If you're going to spam, I would one, be very dope at whatever you're doing.  Number two, make sure you do your research of where you're actually spending your effort to try to get this information in front of people. Number two, I mean number three, I would have some unique messaging. A lot of people join our Facebook group in the first post they make, literally they don't post any words. It's just a link to their video. And that's just a waste of time because nobody's going to click on a link just because you posted it and you have some type of messaging. I would try to bring it back to your brand in some type of way, you know, even I'm always telling people to tell their story in every platform, right?  So what do we know about you now in this message that you put on my page that I didn't want? You know, I have a friend who, he's not a music, he's an actor. He's actually on the show, the Mayans right now, but as he was coming up, he would always like tag, he's a big rock fan. So he was the rock, the actor of the rock. So he would always tag him in posts, like he would take pictures and like clip his face and put it on the rock's face. Like he would do some like really, really weird stuff. But in, in doing that, he's kind of sharing his story. A part of his story is the rock, that he's a super fan of the rock. And I know that as he progresses, at some point he's going to meet the rock because, you know, he's not putting all his eggs in the basket that he's going to meet the rock.   And at some point I think he's going to come across the rock, but he's been, he's been posting about that for like the last five years. And I just know at some point it's going to happen because he's, he's putting in the work. He's not just hoping and praying that he's going to meet the rock one day. He's probably going to be at an award show because he's been putting in his own work. So tell your, tell your story through your, through your spamming as well is, is something, I don't know if that was four or five, but those will be my points. That's interesting, man. I, I like that. One last thing before we kind of transition on this topic and it's kind of adjacent to this topic. But one thing, this is the experience that I really went through. And I was, when I was in full on launch mode, that was for my festival, the very first festival that I did, it was when I really experienced this, because I had been using all types of means, traditional means to build up audiences and all that stuff before. But my first festival, I was, I had no money. Right. And this is a completely different thing that I was doing. And I was using Instagram primarily because I had no way to really break into this audience.  And it was like, I think I have videos probably up kind of talking about it and breaking out some of the process, but a huge variety of content and all that type of stuff. I essentially mean in the same, in the same way, people mean rappers and started to do that. I, back then I, I turned the festival into a meme and provided a lot of content and entertainment through the meme. And I did, I built it from zero to a thousand with just social media posts. And there was zero dollars because I was the one who had to create it, right?  And my point of it, though, is when I first had started to do it, I had to go through that, that thing that a lot of people deal with, which is once again, this socialization of feeling weird that you're posting a lot. Right. And what, what are other people thinking? What are the, you have to kind of get out of that mode when I'm in serious, serious launch mode. And now I'm working on bigger and bigger levels. But like, still, when I'm in serious, serious launch mode, sometimes, no, not sometimes, all the times, if I don't feel uncomfortable, I pretty much feel like, dang, I must not be doing enough at this point. Because if I'm comfortable, I don't know what, what are these results actually want to look like? Right. How do I know that I'm really taking over the community that I'm taking over? I feel like this is just me, though, but I always feel like, man, I should almost wonder, am I annoying people? Am I, are there some people saying, yo, why do I keep seeing this? Can I stop seeing this ad or can I stop seeing this guy or I don't care about this festival or whatever else is going on? I should be able to get that level of omnipresence for whatever target that I'm getting. I could be doing the same amount of work. Some of it is doing it smarter, right? Because I could obviously be doing the same amount of work and targeting completely different spaces and areas. But in one particular pocket, I should be generating that much energy, whereas almost a little uncomfortable if you're the type of person that I am. But that's just one thing to keep in mind, because I know people get so self conscious about what they're doing, but that right there, you can't think like a consumer, you can't think like a regular person who's like, oh, yeah, I got to post this one time and look cool and like you aren't there. Like from a business standpoint, a marketing standpoint from an artist standpoint, artists spend too much time taking their consumer thesis, right?  All right. Again, if you want to check out that full clip, you could check out the full conversation in brandmannetwork.com. But one big thing that I want people to grasp from this, when I talk about artists thinking like consumers, it really leads to the problem, right? The reason artists go through so much struggles is because they're trying to operate in the reality of the business based on the lies they were told about the business as a consumer, right? We all come into this world essentially, you know, as consumers and some would say centers, but we all definitely come into this world as consumers because we're getting inundated with this information, this marketing. We think they're just TV shows that we enjoy and all that kind of stuff. We think they're just artists and everything's so pretty, right? We're seeing in front of the curtains, but as we hit a certain age, particularly if we're trying to be in the music industry, but just a lot of businesses and industries, we really start to see how these things work. Artists forget that because especially in the music industry or just entertainment, most consumers are only aware of those celebrity artists and musicians, right? So when those consumers decide they want to be an artist and musician, they're pursuing that route, that primary route, the only route of a musician and artist they became aware of, the most popular kind and why that's most popular because it got the maximum visibility and it's being consumed directly by the consumers, right? The larger population. On the back end though, obviously there's artists who are living completely off of sink deals. There's artists who are doing scores. There's songwriters. There's people who are doing stuff on cruises. Like I know real people who made big money doing stuff, singing on the cruises and making music for cruises, right? Two different people, by the way, right? There's so many different scenarios and routes in the music industry, but most people, right? Unless you really come up close to the business, you probably only are aware of the primary superstar, that primary celebrity, the Beyonce, the Rihanna's, the Jay-Z, the Taylor Swift. And then, of course, you have those other people that might not be as big, but they're still on that side of things, right? The front-facing artist versus the artist who works the music business, right? And there's even a difference between music business and music industry, but I'll get into that in the whole other video. So keep those things in mind because representation doesn't matter, right? In the same way, artists pursue this one route because that's what they see. It's the same reason why you have so many minorities saying, like, yo, we need to see more of us in movies or us in these other positions because the kids, they see these things and they believe they can be these things. That's what artists are essentially doing, right? I see this and I'm only pursuing this, but there's so much more stuff that you could be doing. So many more opportunities. So gotta stop thinking like a consumer. Get out that mindset. Realize you've been programmed in that mindset or trained to think that way. Or no, that's, I wouldn't even get that deep into this particular issue. I would just say you had a limited perspective of the whole pie. So start digging into those other things and truly consider and test if that other stuff will be right for you. And I'll leave it at that for this particular video. Again, check out the full conversation and brandmannetword.com because I signed myself and of course you can get a lot of resources that helps you with marketing, branding, developing yourself. Go ahead and check it out. The link's in the description below if you're interested, but if you like this video, go ahead and like the button and like it. You might as well share it and if you're not subscribed, you know what to do. Hit that subscribe button.


My name is Kaye Felix and I welcome you to Kaye Felix Inspire, please if you are new to this channel don't forget to subscribe and always hit the bell icon so that you get notified whenever I post new videos. Do stay tuned for more details in this report. We have been disturbed this morning with the news that has been confirmed by the Zambia Police through the spokesperson of a discovery of 65 million quarcha in cash, 65,330,000 quarcha in cash in a home in New Kassan. On top of that, 57,000 United States dollars, ladies and gentlemen, countrymen and women, and the youth of Zambia. This is the kind of Zambia that we were subjected to. What we are beginning to see now are the remnants of the reality that this country was in the hands of filthy men and women, simply put, thieves. And today you can see the kind of resources that are meant for the nation that are in the hands of individuals. In a country where we went without medication in hospitals, so many people lost their lives because they couldn't access diabetic medication. People lost their lives because they couldn't access consumables for their dialysis. People lost their lives because they couldn't access ordinary minimum health services because our health system ground to a near halt without resources to help the people of Zambia. Yet individuals could have in their homes 65 million quarcha in cash. And these are very young people. We don't want to believe that this money is money that the young lady would have made or so on. It is quite clear that this money was placed for self-keeping in the hands of this young lady. And we can speculate really that I'm sure she took some of it and ran away and exposed the change. So for easy carrying, probably she even carried the forex which may have been more than the 57 that was recovered. What is clear and what Zambians should ask themselves is then why if this money is genuinely obtained? Why is it not in a bank? Why is it not in a financial institution? How would you keep such kind of colossal sums in a home? We are happy that police are on it. We will not conclude. We may speculate but that's as far as we can go. But we must allow the police to do their work and get to the conclusion of it and tell us exactly what has happened for this money to be found like this and bring the perpetrators to book. So that this be a lesson that in Zambia going forward from the new dawn administration going forward for the next 50 years UPND will be in office, they must know that never again in Zambia shall it be that those in government who stick their fingers in the coffers of the nation. Hear me right new dawn administration. Hear me right UPND allowance administration. For the next 50 years that you will be in charge of this country, such will not happen. At least we are very sure and confident that for the next 10 years President Hagar India will be in charge of the country, it will not happen. We don't know about the other four presidents that will come and do 10 years each after President Hagar India because we are clear that we are going to do a minimum of 50 years in this country. I hope PF is listening and are strong enough to withstand 50 years in opposition. We are aware that cash is moving and it is moving in vehicles. They can't move it in the banks. Now they are stuck with a lot of money and they are moving it in vehicles. We just want to let you know that we are aware and we are on top of things but only that we are not vigilante kind of people. We let the law enforcement agencies do their work and they will do their work and I can assure you this. All that money you store, you will not take it anywhere. You will be caught with it. Hear me and hear me right. There is not a single person who can steal public funds. Funds meant for the people of Zambia, for the poor majority of Zambia and you get away with it. You can't. You may hide for a little while but you will be caught up. And today it is just the beginning and you see more to come. People will be caught up with stolen public resources.


Wow, yeah, I swear to God. I'm with it. I don't see nobody in my lane.  It's Jacob here, and I've got another video for you another bodybuilding prep video In this video. I'm going to briefly Concisely discuss the worst miss that the da-da-da the worst mistake I made whilst on prep and It came down to literally the final week after six months The biggest mistake I made was in the final week, and it's a mistake that I'm going to discuss now and never do again But it required some hindsight hindsight's 2020 so the biggest mistake I made was I was not ready Before the show I was not in the condition I needed to be a week before the show which is what I would recommend anyone to do Now the method that you use to get down to that condition is going to be completely up to you I mean there is going to be an overall You know balance of calories in versus calories out Those calories can be made up of all sorts of macronutrients Obviously the calories out can be made up of all sorts of you know modes of exercise But what I found myself Doing was binge eating and cheating in the last few weeks of my diet, which is only going to set yourself up for it for You know mentally a very torturous and draining time, and that's what it was like for me kind of kind of so In the last week or in the last couple of weeks. I did cheat on my diet quite a bit I found myself at some at a week out from the show It's not much time to do anything, but I wasn't where I needed to be I was holding water and I knew my coach knew that the only way I was going to bring this down was to deplete of Carbohydrates completely and that's something I hadn't done the entire the entire time the entire prep so You know I got through it I got through it you can get through it you can get through times with no carbohydrates You can still train with no carbohydrates It's not going to feel the best, but you can do it and that's what I did so you know The biggest mistake I made was was putting myself you know putting myself in a position where I had to do that So I got to the Friday This is not the biggest mistake actually the biggest mistake was the fact that I was completely depleted I was actually looking all right on the Friday, and I had One job and one job only and that job was to slowly ingest carbohydrates not too many and Assess your body see how it's looking and don't spill over and don't start retaining water But all I had to do was eat all I had to do was eat carbohydrates clean carbohydrates minimal sodium in Small amounts Yes, I ate the carbohydrates. I even ate them without sodium, but I couldn't keep them in small amounts once I tasted sugar I couldn't stop I Depleted myself so much during that last week. I couldn't stop man. I went From a 50 gram carbohydrate serve serving my first helping to 200 grams. I Went from it from a 50 gram carbohydrates serving in my second helping to like 150 grams and before I knew it I'd taken in 350 grams carbs, and I was still just as hungry And it's at this point that you know even just waiting 24 hours until the show until you can eat is just too long It was too long. I couldn't control it. I could not control it So my carbohydrate sources were clean But I ended up taking in 900 grams of carbs that day after such a drastic depletion and still not having Dehydrated my body as much as I probably could have I retained water I retained water not much, but I'd certainly retained water So look this the biggest mistake I made was not getting ready in time The second biggest mistake I made was not being able to control my carbohydrate intake taking in at least double what I should have and in hindsight about three or four days later, I found my third biggest mistake, which was The fact that I took in that 900 grams rather than 450 It was it was a calculated decision even though I couldn't help it eat It still was calculated in the fact that I thought that I probably needed 900 grams of carbs You know if they were put in the right places I didn't know how fast or how slow it took your body to shuttle carbohydrates into the right spaces, but it wasn't fast enough certainly wasn't fast enough so I woke up that next day still looking flat and still feeling flat and It didn't take you know and it and it took until two or three days later for me to actually start feeling full you know start feeling that that that That full tight feeling in your muscles without having even trained and that did come and that feeling would have been Incredible to have that morning Incredible, but it didn't come for two or three days later So I'm I'm led to believe that I Need a good two or three days to fill up, right? I may need up to seven eight nine hundred grams of carbs per day to fill up, right? But I I'll do that when I'm in the condition that I need to be You know what I mean? So there's a fair few mistakes made there my peak week went from you know From two weeks out thinking that my peak week would be great to one week out You know it wasn't so great, but we did get through it And I did end up competing after wanting to quit many times and that is the main thing now I can sit here a couple of weeks post show Talk about it Feeling quite content. It doesn't matter what mistakes. I made I still did it. I still got up there and I feel proud about that So, you know for anyone out there. That's that's wanting a challenge that might be out of shape That does have a little bit of muscle mass or has an interest in bodybuilding Sign up for a show man. Sign up for a show Do it let me know about it. I'll be your biggest fan. I'm telling you I'll be your biggest fan So that's it guys that is my quick video for the day There's been a fair few bodybuilding related videos, and I hope you guys have enjoyed them You know bodybuilding and nutrition are two of my my passions and you'll continue to see that Throughout this this YouTube channel. So stay tuned There's plenty more content to come if you've enjoyed the video Please hit the like button subscribe for more and I'll see you in the next one Peace out


Thanks for the good one upstairs. Perfect. Great. Thank you. That's going to be annoying. Well, I guess we'll get started. So, those of you who have been in this room this morning have probably heard a lot of really good advice about how to contribute upstream from the upstream perspective. All the tools and processes and good practices that you can use for successfully contributing and interacting with the upstream open-stack community. I'm going to talk about things from the other perspective. I'm going to talk about the view of contributing from within inside an organization and how you can get a team that's not used to contributing or working in open-source software up to speed and contributing fully in a productive way. So, I'm Tom Leggett. I'm an engineering manager for a team of engineers in HP. I want to, first of all, put up a disclaimer and apologize to my colleagues whose stories I have borrowed, exaggerated, or otherwise mangled. So, it's useful to have a bit of context and some introductions. You know who I am. My team is the NOVA team. Actually, Compute to Service is our name. We're about 13 people. And importantly, we're a product engineering team. This means that we have some support and operations responsibilities for a couple of HP product lines, for a couple of live HP product lines. Those are the HP Helion open-stack product, the HP Helion public cloud, and the community addition of the HP Helion open-stack cloud. So, we are third or fourth line support for each of those product lines. I want to tell you a little story about the way we worked a couple of years ago as a way of setting the context. We were working in a mode that I call interrupt-driven development. Each engineer had multiple tasks on their plate at the moment, certainly more than five. Support work was handled by one individual. And knowledge was very siloed to individuals. There were certain individuals who could do certain tasks on certain parts of the system. If that individual was busy, then you were out of luck until he was free. This meant that predicting when any one piece of work could get done, any one piece of work that our customers cared about could get done was very difficult. One thing that the team decided to put in place early on was something that I called the NOVA engineering environment and product support rotor but which the team rapidly came to know as sentry duty. This was a daily rotation of duties. The responsibility of this person was to answer any walk-up, email or IM queries, deal with any issues in production, triage incoming bugs, deal with issues with the build tooling and dev test environments, and if there was any time left over, work on improvements to the aforementioned systems. What this meant was that the knowledge that was previously siloed into one person's head rapidly got spread around the team. I'm telling this story as a way of demonstrating the kind of improvements that the team is putting in place and capable of driving themselves. I want to have a brief aside on team size before I go any further. 13 people is a big team and 13 people are briefly trying to explain you should have some intuition about that. I want to briefly try and explain why that is and what you can do about it if you have got a big team to be acting as one single team. Let's say you have a three-person team, Alice, Bob and Quentin. Quentin has a question and he knows that the team knows it because he's seen this piece of knowledge put to use before. He has four different ways that he can get this piece of knowledge. He can ask Alice, Alice knows and tells him. He can ask Bob, Bob knows and Bob tells him. Or he can ask Alice, Alice says she doesn't know, Alice asks Bob and then tells Quentin and vice versa with Bob asks Alice. So there are four different routes in a three-person team. There are four different ways that you can find out a piece of information that is only known through oral history, as demonstrated there. As you go up to four and five people there are 15 and 64 different ways, respectively. As you start to get to much bigger teams by the time you've got to a 13-person team you are looking at about 1.3 billion different ways that a piece of information that is known by the team already could be transmitted to a person who doesn't know it. So there's two models here. One is keep your team sizes small and two is document your stuff, write it down, maintain a team wiki or I don't know, whatever works for you. So two years ago we had a proprietary fork of the Diablo code base, which Diablo was from... This was in early 2013. Our cloud was Diablo, which was a September 2011 code base with about 30,000 lines of proprietary closed code on top. Some people find it amazing that we managed to make Diablo work in a production system at all. However, we were now at the point where we wanted Grizzly. Grizzly was starting to rapidly catch up and overtake in certain aspects. We wanted to start using and maturing Neutron, for example, in our public cloud. Our customers were telling us that they wanted the flexibility and power that Neutron offered. Unfortunately, we had approximately zero upstream contributions, give or take one. And we had no experience really with working or engaging with the upstream community. So we did a few things. The most important thing was to institute a project around getting back upstream, so making it formal. The project was called Bravo. That was the internal code name for the project. The most important thing was making it formal. This allowed us to get time and priority from the business and from the people who had input into what we did from day to day in order to work on getting our code base back upstream. So my advice about maintaining a fork of OpenStack is don't.  However, no, let's move on. Okay, so we've got a project. We've got some time, we've got some priority carved out to get the team start working upstream. So you could say that we're at the river mouth. We're at the estuary. We've been released from the cages of the salmon farm. Unfortunately, not really knowing what to do, we just swim around in circles near where the cages were. So we needed to put some practices in place and a bunch of the other people who've been talking in this room today have talked at great length about some of those practices and tools that you need to do. So we need to be reading the mailing list. We need to be on IRC and reading IRC, all of that good upstream stuff. We actually started sharing on our internal communication platforms either via email or on our hip chat team room when there was an interesting discussion going on in IRC or on the mailing list. Then we put in place some very simple practices designed to encourage people getting started with collaborating with upstream. The first thing we decided to do was and this was based on the advice of some folks we met at one of the summits was to start with code reviews. Start with reviews. This turned out to be very good advice. For all the reasons that the folks before have mentioned that it gets you visibility, it starts to build your karma in the community, it gets you familiarity with the code base and it starts to get you used to giving and receiving peer feedback. In order to encourage this we put in place a simple practice at our stand-up every day. We would raise our hand if we had done a review in the previous day, which is a bit like in this photo, raise your hand if you can't swim at times. But that got our review count up and I think it's important as well to note here that this was not a hard and fast rule. You weren't kind of in trouble if you hadn't done a review in the past day. It's about, as a couple of the other people have mentioned, it's as much about quality of reviews as it is about quantity. But by gently encouraging folks to get out there and start making reviews, that was our first real foray into community engagement. I guess the next thing we started to do was celebrate small wins. First time that one of our team members got a patch merged, that's for the whole team. This set a trend which continued thankfully, not to this day, thankfully for my waistline and for HP's health insurance plan, didn't continue to this day. We now only get donuts when he manages to get a patch set merged with only one patch set. There was also a realization that language is powerful. So we started to refer to any place where we had diverged from upstream in any significant way as technical debt. And that was a metaphor that our product management and senior management folks could understand. And we started measuring, we started measuring the debt and reflecting that upwards on a regular basis. Just in terms of the number of patch set, number of local patches we had to apply in order to make our project work in the environments that we needed to work in. We also kind of developed, I guess, and matured a piece of software called Git upstream. This is available on Stackforge now. So this is a small toolset that makes working with a Garrett-based workflow easy.  It gives you a slightly easier to read history, but most importantly, it'll automatically drop your local patches once it notices that you've merged them upstream, just a way of reducing the friction of carrying local patches to the upstream project. Okay, so we made a start. We were on our way upstream. Then one of my team members said, my goal for the next six months is to commit as much code upstream as I would have committed in an afternoon in my last job. Which, when I first heard it was quite a shocking statement, is working upstream really impacting our productivity that badly? How does this developer feel about being so apparently unproductive? But I think it indicates that we're moving in the right direction. We're thinking about committing upstream and working upstream and what it takes to work upstream. I don't know whether this person would agree, but we'll see. So that led to this realization that writing working code is hard in the first place. Writing working code that works with other working code is really hard. It's harder. So writing integrated code is an order of magnitude harder than code that just works in a nice pristine standalone environment. Hardest is writing code that works with other people's code that changes on a daily basis, is owned by another team and is largely unknown to you. But I guess the point is, it's not only hard, it's more valuable. So code that only works in its own isolated little bubble is all very good if it performs its task. Code that is integrated into a wider code base and is part of something bigger like OpenStack allows combinatorially more ways of exploiting the usefulness and power of that code. And that's why it's harder. It's harder because it's more valuable. It's more valuable because it's harder. So really, really hard. Peer review. Getting your first minus one on your first patch set you've ever pushed up is devastating. But giving and receiving good peer feedback is a skill that can be learned and it can be learned through practice. And one of the things that I've noticed happening organically in our team is that people will critique each other's reviews and talk about what was good about this review they saw on this patch set or this other review they saw on this patch set with an aim to getting better at giving as well as receiving reviews. I think to get better at receiving reviews you probably just need to get your stuff out there and start getting feedback. So all this sounds really hard and really tough and quite demoralizing but after a certain amount of time we notice we're getting better. We notice that the patch sets are going through fewer iterations before they get accepted upstream. We notice that the patch sets when they do get submitted upstream are of a better quality. They've got more and more comprehensive tests. So we notice that we're definitely on an improvement we're on an improving trajectory and we have got there by engaging with the upstream community and leveraging the power of all these immensely clever and knowledgeable people tearing our code to shreds. It's soul destroying but it's making us better engineers. I guess it was about this time that we also started to measure and track things. It's not a leaderboard because it's sorted alphabetically but it's a dashboard of the number of reviews that we have done over the past X amount of time. We can use this to see who's giving more positive reviews or negative reviews and to see what our overall level of contribution as a team is. I'm slightly reticent to give this advice because if you turn this into a hard target then you'll start to see some pretty dysfunctional behavior. If it's just used for informational purposes I think it's very different. If you're targeting a certain number of reviews in a certain time period and that's a hard target and you're going to be in trouble if you don't hit it then the quality of reviews is going to be awful. People are going to be doing drive-by reviews. They're going to pick the easiest review they can think, something that somebody else has already plus one and plus one it and they've got a plus one stat. That's not useful to anybody. Also all of this stuff is available through Stacolytics. There's nothing proprietary or secret here. This is all out in the open. This data is all pullable from Stacolytics. We just found it convenient to have it in a team-focused dashboard, a team-focused view. We also had a view that gives us stats on a patch-by-patch basis. Here we're tracking things like time to first review and time to first core review. That's the time between submitting a patch set and it getting attention from somebody else in the community and somebody else in the core team. This lets us have discussions about what it is about that patch that made it get attention sooner than the others. Was it chased in IRC? Was it smaller? Was it larger? Was it better formatted or documented? Did it have a really nice commit message? All these kinds of discussions that we can have about why that was. However, we still get to patch set 42. How do you maintain your focus and your morale when you're at patch set 42 on this change and it's just been minus one for the 44th time? I guess there's three things you can say about that. At least it's getting attention still and hasn't been either minus two or abandoned. So people see value in the thing that you're trying to propose. It's quite often useful to go back to the first patch set or first couple of patch sets in that change and have a look at how much your change has evolved in those 44 patch sets, how many spelling mistakes you've corrected and what you've learned about the change that you're trying to make to the code base. And if you're in a really foul mood, you can console yourself by saying that, well, maybe it says as much about the review team's ability to convey their will if it takes 44 patch sets, 42 patch sets to get there, but only if you're in a really bad way. Okay, so what happens when you reach a dam where you've been asked to deliver a feature by your customers or by the marketplace and no matter what you do, you cannot seem to get it accepted upstream. You can't seem to get the work accepted upstream. And this is where we have in place, so this is where we use the Git upstream tooling to maintain a very small set of changes or differences from the upstream vanilla code base. We have a very clear and ruthless policy about the kinds of patches that we will accept locally. In fact, we have a process that's loosely based on the Nova specs or a specs repo process where you will submit a patch set into Garrett explaining why you need to carry this local change. It will have a template that forces you to think about the area of code that you're trying to patch and how often that changes and how often you're likely to have to do a rebase. Because for every change or proprietary patch you're putting on top of the upstream code base, you risk diverging in behaviors that customers care about. You risk letting yourself in for a large maintenance overhead if you want to keep up with the pace of upstream development. So my general advice would be to not do it at all. But if you absolutely have to, because you've hit a damn upstream, then do it with clear and ruthless policies and enforce them transparently. Okay, waterfalls. Most corporate development processes of waterfalls, that is phase gates, even those that claim to be agile are probably closer to a phased approach as anyone who's lived through a QA sprint or a test sprint will be able to testify. And the problem with a phased approach to development where you run through specification, requirement specification and elucidation and then coding and then testing is that they don't deal too well with uncertainty or changes, well, especially late in the day, but actually at any point in the process. And when you're working with upstream there can be plenty of uncertainty about when something's going to land.  If you're trying to deliver a major feature to your customers that might comprise of a dozen or so patch sets and any one of those may be delayed for any amount of time and if that gets pushed beyond a feature freeze then you may have missed your delivery window altogether. So how do you deal with, and typically product management project managers, I can be rude about project managers because I supposedly am one, don't deal too well with uncertainty. They don't like being told that, yeah, maybe this will go in next week, maybe it'll take three months. It gives them the heebie-jeebies and makes you not sleep at night. However, just because there's no, just because there's uncertainty in the individual items doesn't mean that we can't provide useful forecasts to the business or to the folks who care about this stuff. We don't just say, yeah, we can't estimate this stuff. You'll get it when you get it because that's not useful to anybody. Marketing folks need to know when to roll out their campaigns. The training folks need to be able to prepare their training plans, et cetera. What we did for the Bravo project was we looked at the history of... We had collected about three months' worth of data of how long it was taking us to get certain things done. Most good ticket or work-tracking systems will be able to do this for you. I'm not talking in terms of kind of hours spent on a task. I'm talking about calendar dates, wall clock dates, from when you started work on this to when it went into your product and you had no further thinking to do about it. So it was fully QA'd and tested and done. If you've got some historical data about how long those sorts of things take and you know roughly how many things you've got to do in a given release, then you can actually come up with some surprisingly accurate forecasts surprisingly easily. So if you look at the statistical distribution of the end-to-end delivery times of your individual work items, you can then very easily use a statistical or a Monte Carlo forecasting method to predict the confidence levels of the delivery of the whole chunk of work items that you've been asked to do. I appreciate I'm going through this pretty fast. This slide probably deserves a talk on its own. So I'm just going to say, start off by drawing a cumulative flow diagram for your work items as they move through the different phases of your project. So cumulative flow diagrams are one of my favorite visualizations for visualizing how a sequential process is behaving over time. This is a diagram from node pool, which is a component of the upstream infra CI suite, and it's measuring how many nodes there are in each state at a given time. And the idea for applying this to your process is that you count every day or every week how many tickets there are in a given state. So how many tickets are in the requirements planning phase, how many tickets are in the development phase, how many tickets are in the QA phase, how many tickets are deployed to a dev test environment, a staging environment, deployed to your production environment. And that will let you draw a picture that looks like this. There's all sorts of things you can tell from a cumulative flow diagram. But the point is, if you're gathering enough data to draw a cumulative flow diagram, you're gathering enough data to make some accurate forecasts about when stuff will get done. There's a difference between accurate and precise, right? There's a difference between accurate and precise. Accurate is how right you are and precise is what sort of a range you're offering. These kinds of probabilistic forecasting methods will let you offer accurate forecasts. They might not be that precise if you don't have a lot of data. So we've started from a salmon farm in a CS tree. We've worked our way upstream. We flattened waterfalls along the way. And this is pretty much where the metaphor breaks down because at this point in a salmon's life cycle they spawn and die, which is unfortunate. So luckily that hasn't happened to our teams. We've managed to maintain a maintainable pace. I much prefer this picture. We have, by putting these very simple but very effective processes into practice, we've managed to maintain a sustainable pace for our engineering teams and have lived to swim another day in the OpenStack River. Thank you. So I finished early. Who's got some questions? Very good. That means I've thoroughly confused you all. Thanks.


Today we are going to start statement of cash flow and first of all let's see the learning outcome of this statement. Students will be able to prepare cash flow statement as per the prescribed format specified by IS-7. Now interestingly they have not prescribed any format for income statement and balance sheet but for cash flow statement the format is given that the format is that there are three activities we have to note into it. Number one is the operating activities, the other one is the investing activities and the other one is the financing activity. All these three activities are in certain order. Then understand the difference methods of preparing the cash flow statements. There are two different methods. Number one is called direct method and the other one is called indirect method. In direct method we start with cash from operating activity, collection from customers, payment to the suppliers, payment for the expenses and so on. Payment for taxes, payment for interest and so on. So this is directly related with the payments for these five items. Now so far other indirect method is concerned these operating statements are not like this that you should start straight away from payment to the supplier etc. but we start with the profit figure and in that profit figure we make adjustments where the cash flow is not involved. All those items where there is no money involved we should add it back and then come up with the final figure of cash flow from the operating statement and interestingly the result is the same. Whatever is in flow ultimately both method direct as well as indirect give the same answer. Then the second is the investing activities. Investing activity is basically when we go for long term assets, when we buy we report it as outflow and when we sell we report it as inflow. Now then sometime we also have long term investments. So those long term investments will also be when we put our money in long term investments it is outflow and when we sell those investments that is inflow. Third activity is basically financing activity. Here we see how much money put in by the shareholders or by the lenders and how much we paid back to the shareholders and to the lenders. Now dividend paid to the shareholders we will report it here. Similarly if any money brought in by the shareholders that also we put in here. Now there is an interesting thing here that if you are issuing shares and you are not getting cash that will not be reported here. Although the share of capital is increasing but there is no cash flow involved. So in that case we have to give a note that if the shares have been issued then the money is not coming in. For example you are issuing bonus shares. Bonus shares is simply capitalizing the retained earnings. So there is no money coming in but at the same time the capital investing activity I mean financing activity you will see the share capital is increasing but there is no money coming in. Thank you very much.