 Hello everybody. Welcome to the workshop on Power of Transformation. So just to give you a brief of Genesis, I've been doing this as a talk and when I discussed this with Nareesh, he said why don't we convert this to a workshop. Today we are here collaborating together on this one. It's been fun working together on this and Nareesh brings in the entire workshop element to this talk to make it more tangible. Okay, so jump straight into it. So Adam Manifesto talks about individual interactions over processes and tools. We've imagined a social engineering experiment as we all know, but we've addressed interactions a lot, but we haven't addressed individuals yet to the fullest extent, that's what I feel. So today we're going to talk about transformation in light of the human being. So that's the individual. To kick this off, I would like to begin with the mother's quote, to know is good. To live is better. To be, that is perfect. The first one to know is at a mind level. To live, it's kind of, it has gone into you to some extent and you're living in a daily life in that way. But then to be, it's fully assimilated into you. That is where the whole transformation has been kind of complete. So going further on this, let's talk about values, principles and practices. So what really is value? Well, we all know what value we value. And at the end of the day, that forms the basis of our behavior. The next is principles. Well, principles are the view. They help us, you know, transform the value interaction. And finally, we have practices where it's the actual application of the belief. And obviously they have actions in themselves. So just to talk about the examples here. So when you talk about unit test, we all do test driven development at a practice level. But what's the real principle? And what's the value in there to get feedback as early as possible? I mean, this is just one of the things. There are obviously more to unit testing, but that's one way to look at it. The other way to, the other example to look at is self-documenting code. I mean, why do we write self-documenting code? Why is there so much emphasis on self-documenting code? I think the reason we put so much emphasis on self-documenting code is because we value the iterative expression. We want it to be easy for anyone to look at it and just understand what's going on. And the core value behind that is communication. We put a lot of value on communication. So, you know, these are kind of a couple of quick examples to think about. So, let's ask this. How many of you practice TVB? Quite a lot, right? Does it by itself lead to a system of decoupled and a simple design? By itself? Well, I don't think so. Right? And then I have a question. Is your TVB a practice or a literature? How do we know that? So, today is where we're going to find out what is a ritualistic way of doing TVB, what's a practice way of doing TVB, and eventually take it down to the values level. So, again, this is not the perfect example, but we just picked a simple example that can help communicate the concept and we're going to try and do a little bit of demonstration here of how we go about applying test-driven development on this specific problem. Right? So, it's a simple problem. I'm sure everyone in India at least would be aware of this, right? The different tax labs and how you pay taxes based on this lab. I mean, you can complicate this a lot more, but for the purpose of this exercise, I think this is good enough. So, what I'm going to do is I'm going to quickly jump to the IDE and take this as an example to show how we do test-driven development on this. So, there we go. Okay. I'm just going to release this a little bit. So, it's not good. All right. So, what I have here is an empty project, which is not very easy to see, but it doesn't matter because it's empty. There's not much to it. So, I'm going to start with, you know, test-driven development says that you're going to start with, you know, a test. And we're going to practice what I refer to as the inside-out test-driven development, which is we're going to start at the unit level, and we're going to gradually build it out. There are other styles of doing test-driven development, but we're going to focus on the inside-out style of doing test-driven development. So, what is my first test? Anyone? So, we're talking about tax calculation, right? So, I'm going to start with tax calculator test. How about that? What do you think that will make sense? Absolutely. I mean, this is great to do it. All right. What is my first test? Let's quickly flip back here. Let's look at the specification we have here for a second. That's the specification we have, and it says the easiest one I can think of is, you know, if it is income is zero to two lakhs, then zero tax, wow, and you basically take everything home. So, if your income is 10,000, you take 10,000 home. So, what shall we call this test? Well, let's say income less than two lakhs. Income less than two lakhs. That's not a drug tax. No tax. Yes. Okay. And what are we going to do? So, we're going to start with writing in a certain statement to explain what exactly we expect back. So, I'm going to say assert equals, what do I expect back? I expect back, let's say 10,000, which is the take home, and I'm going to say calculator dot income tax after, no, take home after income tax. Take, sorry, take home after income tax. And I'm going to pass 10,000 tickets. Control one, create a local variable. This is what shall we call this? Income tax calculator, maybe. Okay. Income. Maybe we can make this generic, right? It could do any kind of tax. So, how about tax calculator? Okay. Tax calculator. Tax calculator. And actually it's complaining. We don't have one. So, we're going to go ahead and create it and just put it in my source code. And then complain that I don't have this method. So, I'm going to just go ahead and create this method. And this basically returns a double. And it takes a double, which is your income. That should work. We need to pass in the precision. And actually, we don't even need this guy. So, let's do what the static should do. So, that makes it static. That works. And what shall we do for this? We'll return whatever. Just return income. Because no taxes. Oh, but we have any clips. This will work. First, I'm going to put it like this way. And then I should have enough by the end of the front. Okay. So, we've got the fastest passing. Yes. What did you guys think about that? Mind blowing, right? We're practicing TVB. Yes. No? Come on, this has to be interactive. Well, we didn't fail first. Right? We should have failed first. So, this is bad. Let's do that. Right? Let's return zero. Let's run the test. Yes, we've got a failing test. And now, do the simplest thing that could possibly work. And there it is. So, red bar, green bar, refactor. We don't write any code that means refactoring. Right? Is there any value in this test that we wrote? Document with the first specification. Right? But the problem is, tomorrow, the government will change two lakhs to 2.5 lakhs to three lakhs. And then, this test will not really work. Of course, it will not work because you've changed the specification. But should your test really reveal the implementation details, in this case, it's really talking about income tax less than two lakhs, no tax. Right? So, it's probably a bad test name. And what about our design? What do you think about the design? Sorry? There's no design. Yes, true. There was some design. We thought about tax calculator. We thought maybe, in future, this will do all kinds of tax calculations. And so, there's a little bit of design. But, frankly, this is a scrap. This is a total waste of time. Right? Doing test-driven development like this, I think, is just a waste of time. Except that, when you're new, this is typically how you get started. Right? So, it's a waste of time from my perspective because I've been doing this for close to 12, 13 years. And it's a waste of time from that perspective. What just happened? There it is. I didn't see my password. So, it's a waste of time from that perspective, but it is useful for someone starting. And there are a bunch of problems with this. So, what I want to do is, I think this is what we would refer to as a ritualistic test-driven development. This is a very ritualistic way of doing it. You say, well, you need a test. Well, I wrote a test. If the test should fail, it did fail, so we made it fail. We go in, intentionally put minus one or whatever, fail the test, and then we make the test fast. And then we say, this is great. Let's write the next test. Let's say someone starts like this, and then they say, well, this is no good. Right? So, we're going to delete this. We're going to delete this. This is going to be round two now. So, yeah. In the chart. We've learnt, we've figured out that this is not a very good approach. And now, how would you approach this? How would you make this better? Right? So, let's start with the test. We just start, and there we go. And what would we call this this time? Yeah, we need to think of the domain. Yeah. So, what's the domain that we're dealing with? And who's the players involved at this point? So, maybe IRS, the Indian Revenue Service, is really responsible for the... Yeah, I mean, they have the formulas. They decide the formulas for when, who, how much taxes should be applied. So, maybe that's what is the core of the system and we need to focus on that. So, let's start with IRS, which is the Indian Revenue System test. So, in some sense, we should be talking about the domain here then? Yes. I mean, why is that these guys get away without any tax? Why don't they pay any tax? Because they are low income groups. So, what you're saying is low income group does not pay tax. Low income tax, to be precise. They might pay other kinds of taxes. Low income group does not pay income tax. How do I know what is low income group? That's what we're going to find next. So, what do we say? Assert equals... We say, again, 10,000. And this time, we're going to say IRS starts, calculate, take home... For the income, so we'll pass the income. For income, or for. And then pass 10,000. Okay? So, one, we have local variable, that's IRS. And what do we do with IRS? Well, we just verify it at this point. And maybe we need to pass the whole bunch of rules, you know? Because it's going to refer to the rules. But we don't need to go that far. Rules should be encapsulated within it, right? Yes. I mean, that's the point of having an object to encapsulate that business logic. So, I think this is good as we... Oops, this should go in my production flow. So, maybe as we write more tests, we might feel the need for passing rules, doing other kinds of good practices that we have learned. But for now, this should be good. So, that's it. And... Precision. Precision. And... Why is it failing? Why is it failing? Because I made a mistake. So, I got failing tests, right? Pretty cool technique. And there we go. It's working. Is it slightly better than last time? Do you notice any difference? A little bit of more modeling around the domain, right? A little bit of more thinking in terms of what we expect. And... A little bit better than what we had last time. A little bit of thinking about the domain, a little bit of discussion around the... whether the rules should be passed in, rules should be kept out. And also, I think if there is a new person joining the team, he or she would be able to read this much closer without any impedance mismatch, because business rule is not right right away there. I mean, the business is low in conclude and it just kind of sinks in. So, you know, this to me is a good self... I mean, there's no impedance mismatch. As a developer I don't have to translate code in my head and match it with the domain. Yeah, it's not... It's talking in terms of business rules, not implementation details. So this is good, but what we want to do is we want to show another technique which we think once you do this enough you feel this is not valuable enough. So I'm going to go ahead and delete this and we're going to do this slightly differently now. Okay, so we're going to show you another way of doing this development which generally after you've done it a little while then you would evolve into this. So I'm just going to say parameterize and here I'm going to pass... What are we passing? So we're going to pass what is the income and then what is the take home? Take. So if 10,000 is your income then what should be your take home? 10,000. And if your income is 3,000,000 which is what it is here then your take home should be 2,770,000. 2,770,000. If your income is 2,750,000 then you would expect take home of 6,000,000. And if your income was 20,000,000 then you would take home just 14,000,000. Too bad. Okay, so that's good enough. Let's get all of these guys working. And then what else do we need to do? We need to say well this runs with parameterize.class and we need a constructor. So that's just the scaffolding for the test. Yeah, I mean if we use the better framework maybe we didn't have to do all of this but it's no big deal, we can get away with this. So let's do double and this is income and double take home assignment and then our actual test. Income tax calculation. I don't know, maybe better name? Maybe, yeah. Let's start with that. And then basically we are saying that assert equals your take home basically should be new irs.takehome as we calculate income tax or your income and of course if this doesn't understand that we're going to create this new model and of course now I simply cannot return income and data wave it's pushing me to take a bigger step but let's ensure that the test is actually passing to start with and let's do that. So illegal argument type. Why is that? Illegal argument type is in the constructor. Yes, because these guys need to be put together, you can do that or just do 0.0 for all of them. This is all the clever you have to be with in general but hopefully that should be done. Notice we are making much more bigger steps but there is an advantage to doing this if you're doing TDD for a while. So the first one passes and the rest is then failed. So how would we implement this? We need to store these slabs in our index. So let's get private static final tax labs table and tree map and that basically takes a double consumes a double returns a double and returns the percentage, right? So let's assume the percentages also can be double. So we basically have the tax labs equals new tree map and I'm just going to initialize it in there. So what are our different tax labs? So we're saying up to 2 lakhs, yeah? Yeah, no tax. Up to 2 lakhs, this lab is 0. Then we're saying... 2 lakhs to 5. 5 lakhs, so 5 lakhs, 10%. And then what else? 10 lakhs. 5 to 10 is 20. 10 lakhs, 20. And the last one is greater than double the dot. So what's the largest? Infinity. Positive infinity? Positive infinity is 30%. And now what do we need to do? We need to get the tax. So basically let's find the tax lab. Tax lab. We need the income. Lower entry. Yep. Then pass the income which will return us the tax lab. We'll give you the tax lab. And then we're going to basically income into 1 minus the percentage, right? Yeah. So it's lab dot get value. That's the tax. So that's divided by 100? Yes, because it's percentage. I think it should be outside. Yeah? Yeah. Okay, let's find that. Now point of exception. That's interesting. Let's find that we get no point of exception. Because lab dot get value. Oh, notice here. Assume that it's giving us zero. Yeah? Yeah. So that should give... I see that you will see that. You want to get the problem. Sorry about that. I think that should fix it. Yeah, great. So that was a big step. But essentially that pushed us in a direction where we could implement this logic pretty much. We could encapsulate one of this labs and we could get the logic done. So that's a big step. But you know, what do you guys think about this? Is this TVB? Same problem. A slightly different approach. What the focus here is on what? Of course a lot of focus was on Java mechanics. Yeah. Which we wish we used a better language. Let's put that tough aside. Yeah, yeah. All the nonsense you have to do in Java. But yeah. Other than that, what was the focus on? So the focus in my opinion was to get the core slabs and the logic for the slabs out. That's the core thing. Instead of going one little thing at a time, the advantage of going with this entire thing was that it pushed us automatically in this direction of having a tree map of the slabs. Which other ways we would have put a false condition, a false condition, and maybe eventually we would have reached that. But this gets us, because we are writing the test in this particular fashion, it got us straight away thinking in the direction of this tree map. It clearly documents your slabs. This is your slab. This is your tax. This is your slab. This is your tax. So I think you're really getting much closer to your domain than going around and writing test after test, test after test, writing if else, if else, if else till you reach that point. So this is, you know, a lot of people who will, the TDD Phenetics will look at this and say, this is evil. This is bad. This is too big a step. But in my opinion, it doesn't matter because it's getting you closer to what the value is. The value here is documentation and the second thing is quick feedback. The faster you get feedback, the better, I mean, the time to get feedback is, I mean, that's the value right there. The way feedback also gets interpreted is you write really small tests and you get feedback very quickly, right? That's one way to think about feedback. But that feedback is that really useful, right? Or is this feedback more useful? So the quality of feedback is extremely important. So, you know, what we're talking about is you can start with a very ritualistic way, then you get better and you say, okay, you know, this is how I do it. Once you're doing that enough, then you say, okay, you know, there is, let's focus on the core. Let's not waste time on just, you know, doing TDD for the sake of doing TDD, right? So we kind of move up to this level. And next I'm going to show you the last level where, when you start doing TDD, which is my case, you stop doing TDD. But you apply TDD at a very different level. And more people will not think of that as TDD, but this is what I've been doing with a bunch of my startups and stuff like that. So let's quickly jump to that and we'll have a look at what that level of TDD looks like. So let me turn off mirroring. Can you get the audio on this? Okay, it is on. Yeah, it's on. Thank you. So I want you to just watch this video and tell me what do you think about applying TDD at this level? So my name is Paul Hall. I'm going to talk about a specific technique that my startup has used to conduct really realistic, really effective user tests of our ideas. So about a year ago, we had an idea for a social purchase sharing app where you would stream out what you're buying to your friends and they would share back with you what they were buying and it was going to be great and it was going to be a social networking take on product reviews. And being the lead startup, we mocked it up, static prototypes, we got it in front of a lot of people and they said, you know, I'm not going to use it, but I can see how a lot of people might use it. And then we heard that again and again and we said, well, why wouldn't you use it? And they said, because I don't know which of my friends would actually use this and it made sense. It's a social application and if they don't see the real faces of their friends that they can emotionally connect with, I said, alright, we need to make this a more realistic test than what we've done. And we drilled out the most important interaction on the site, which is when someone does a purchase and shares it on Facebook and it appears in their friends' newsfeed and we're interested, would people actually click? Would they care? So we thought about you know, how can we make this realistic? Do we have to build the whole thing and build this pretty serious size app to do this? Or could we fake it really well? We started to try to fake it and the technique we used was a grease monkey script. So if you're not familiar with grease monkey, it's just a simple little JavaScript that can change the way a website appears. So here's an Amazon product page after I installed grease monkey it now pops up every time I go there a little yellow box that shows competitive prices. So it's specific to one page and it alters that page. So com described what I wanted and Philippines is willing to build our script for $40. We sent it for $40 across the ocean and a few days later, sure enough, back in the script and it's pretty simple there's the whole thing right there you just drag that into Chrome or to Firebox and it wakes up every time it gets on its target page. So every time we went to Facebook it would wake up and it would run itself. So the next thing we do is our standard procedure. We post an ad in Craigslist and we're running a social media focus group bringing people in said what's your favorite social media site and invariably they'd say Facebook it's a great bunch of login to Facebook that's a great idea. And up would pop their newsfeed and their field of control seems very realistic the newsfeed pops up and the grease monkey script runs and inserts fake content into their feed and it's using their real friends names and faces so pixel perfect real if we built the whole thing it wouldn't look any different than that and so then we sat back and said well are they going to notice this content that are happening when we insert it into their feed and sure enough no prompting they were like wait a minute my friend Michelle bought the Lady Gaga album my friend Charlie got an iPad and they noticed and they reacted very strongly I hate it this is how Facebook is going to hell it used to be about friends and now it's about commercial stuff I remember back in the day we would share poetry and now I hate these ads and we did it 50 times and there were three people who liked it so it was a very different reaction than when we did the initial prototypes and it really wasn't that hard to do it was a $40 script so that's my main point it doesn't think that you just have to do the paper you can do something better so but did you notice in using specific words in his presentation to talk about tests we ran these tests we got a social media group and we ran these tests and he got the script for $40 and he essentially tested what did he test not going to the script book tested the idea tested the hypothesis to be clear he tested the hypothesis that this is my hypothesis will people really care does this hypothesis work so that's TDD at a very different level so you have the hypothesis typically when you're doing test-driven development when you write the test name you write in the hypothesis and then you basically go write your test and run the test and then you write just enough code to make it work in this case they had a hypothesis and they basically ran the test by outsourcing the script or whatever it takes to do and then they basically saw if people would really care in some way to validate the hypothesis so in my opinion you don't have to stick to doing the usual TDD that people talk about you can apply TDD at very different levels I wrote an article for InfoCuber I talked about selling before you build it that's again using these test-driven development mindset that you can basically try and validate what you're building before you go ahead and go write all your fancy tests these days I don't even write tests because I'm doing tests at a much different level so it depends on your context it depends on where you are in your evolution but you don't have to stick to the very ritualistic way of doing things you can see what works best for you so why don't we talk a little bit about these terminologies that we've been using yeah sure so you've seen this in action so we've been using the word rituals so as the dictionary defines I mean it's a prescriptive that sees the steps that you apply right and that's what a starter does really just follows the link down in steps practice is the actual application of the belief so that's the immigration between practice versus ritual so our thing is here that you know what rituals the benefit of the rituals is that they give but it's like I would like to switch over and say I would like to use this example when we were learning to bicycle we used to have those two wheels on the side just to help us balance but those same very wheels when we want to speed up or take a sharp turn would cause you to fall so we have to kind of develop that sense or that eye that these rituals are going to help me beyond this it's not so hence we have to discern when rituals are a helper and rituals are a bar our goal is to knowledge ourselves from rituals to practice further as we go through this journey we really want to make sure that we discover the principles which underlie underpin the practices as we go progress from that stage we launch ourselves from practices to principles to values sorry you can do it and ultimately we need to discover the values which underpin the practices as well so that's an ongoing journey as we go more and more as we become more and more adept at doing things what we want to land up with is values so my question here is then does it mean that being agile is following these dvd practice or refactoring iterations and future factors and retrospectives but is this is your version of agile a practice or a lecture? same thing with stand-ups do you come every day morning into your stand-ups and just ask these three questions? is your standard a practice or a ritual? well this is a workshop we have talked for 30 minutes and bored people to death so let's convert it into actually a workshop so what I want is I want seven volunteers seven brave volunteers please come up we're going to try to get stand-up and we're going to see how we can move from one level of stand-up to another level of stand-up to another level of stand-up those who have one stage really get to learn those who don't get to watch so I need seven volunteers real quick please awesome this group is very energetic that's okay so what we're going to do is basically you guys are working on the dinner project all of you so what we're going to do is each of you is going to talk about what did you eat last night what will you plan to eat tonight and any obstacles and I want the rest of you to watch their body language and see how they go about doing this so why don't you form a group who's going to play this crumb master role? the guy with the mic is one and clear this crumb master alright so why don't you guys get started and we'll see how the stand-up goes well they're doing a stand-up so they have to be in the circle yeah that's okay, you can see the body language from the back as well alright, we're going everyone so let's start this time and we just want to know what you ate yesterday night what you planned to eat tonight what was the food that you ate yesterday night any other problems with getting food tonight sorry I have some of those as well for the last night I planned to eat it's been a week I'll be back I had a plow last night I planned to eat coffee sweetly tonight and it's just a thing between this it was a light dinner it's going to be a light dinner today I don't see any good plots with light dinner I had a chapati and a vegetable last night I'm planning to eat what word conference has to offer the roadblock that I have is that I don't know the menu yet so I'm not even decide what I'm planning to eat tonight last night my cook is not coming so mostly it's not decided yet like I have to either get a take away or maybe go somewhere so not decided yet I ate vegetable and some salad yesterday I'll have chapati I'll be back in a little while and as she said I don't know what it will be but the main roadblock is recently food and it's really affecting my health so whatever it is I'm going to eat less hello yeah my name is Rajesh so yesterday I had a Chinese last night so today I would like to eat something really healthy I'm not sure if I'll actually be eating dinner tonight because I would like to just go home and eat something healthy so today I had a Pajrati food named Halwa and today I'm going to eat some Mara street the only impediment I see is what the office has to offer so I'm not sure that I'll be able to take what I'm planning to eat yesterday I the bus stopped at some point and I had a thali over there and I don't plan but I will eat today whatever I will see whatever happens alright thanks a lot so maybe I can arrange for the menu of the conference and maybe that will help some of you I think we should look at the first of my office stand up call to discuss the harmful effects of quality for too much of quality food I can see if you can arrange for a cook for you tonight so thanks a lot alright very good skill master so please wait here let's see what did you guys see what was the body language that you guys saw anyone wants to chip in yes please I think for a stand up you need a little bit of pre-work before coming to these stand ups if I saw some people are thinking right over there what was they did yesterday what are they going to do today what are the obstacles they need a little bit of pre-work before coming to these stand ups so you saw people not having done the homework before this stand up okay so I noticed people making eye contact with me basically the skill master that's not correct because you are a base of the team of the skill master that should be avoided what if you are talking and you are looking at the skill master it seems that you are giving updates and the skill master is like a project manager who is looking for updates but the stand up is meant for the entire team so the eye contact should be with everyone so that you are just sharing what you did with everyone not just with the skill master that's a very good point please pass it on sometimes it's not easy to share the roadblocks we really need to take the courage and share that so did you guys face that challenge now not now but in general in general it's like I prefer first to just hide the roadblock unless it gets a big problem right so you can have a discussion with the skill master later please pass it on I noticed that some were very hesitant sharing I mean in the sense that it was not so spontaneous or fearless when you were sharing the idea that you are sharing it with a team that's your team should actually the mental stance should be it doesn't matter what I say it's about sharing and it's about getting the problems or issues resolved or the roadblocks removed because the menu has to be more assertive I feel sometimes because you are asked when you have a right to ask so the hesitancy kind of and probably that's personality as well so that's an observation it's just 15 minutes old team so I'm trying to figure it out I mean more in the general principle yeah sure so do you guys all remember who said what who ate what so my question is everyone remember who said what it's a big team how many people are there four eight nine new victim so it's a little hard to remember who said what right I saw the skill master offered some help but what about others just give my savings and move to the next right I'm done so I don't have to worry but the person was waiting to ask the microphone what am I saying should I tell this should I not right have you seen that in real life the people are very focused on what they have to say and you know once their turn is over they're like right relax lose muscles easy someone else's turn now so let's try and do this again right I'll keep you guys saying let's try and do this again and here what we want to do as we're putting up over there is we want to see a genuine interest right we want to see a genuine interest in planning you know what we can do and how to offer help right so we'll focus on genuine genuine effort to understand who's saying what and what they need and what challenges they're facing and also a genuine effort to help them right so can we do this again quickly to see you know how to make any difference we'll keep the same format some of those questions are optional so if you don't have any roadblocks don't waste everyone's time right if you don't need anything just say pass and move on so not all questions are compulsory the goal is what is our goal is to be able to help and be genuinely interested in what others are doing so let's take two quickly alright hello again so we are going to talk about food I ordered two packets of biryani tonight so if anybody wants I'm just going to eat one if anybody needs a second packet feel free to borrow it from me I had Blau and I'm up for the surprise anyone who is up for the surprise if we can talk together one of my friends was supposed to join me he just sent me the same he's not joining me if anybody needs a packet of biryani I have a nice biryani so if anybody needs it just let me know if it's a veg biryani I would prefer it it's not veg a veg biryani so I would like to have a biryani if anybody else is planning we can order together I was planning to go out but now since you are ordering so I said I would like to have something healthy tonight definitely it's not my choice but if if anyone is interested in making something healthy for maybe yeah we could just go together probably I can ask my wife to prepare an explanation so I would like to go out for having a Maharashtrian dish that isn't depending on the confidence right now yeah one thing is I think everyone will find out for themselves oh that's good more self organizing themes so what did you guys notice this time it's not scrum fast little part of sufficient is one thing the thing is you know we again it's a kind of a rule but it's like a progress reporting kind of meaning when you need to be stand-ups when you are actually doing the progress whatever the progress you are doing I think we have to complete the entire discussion first then indulge in doing individual discussions when you are finding over here when you are not completing the progress then you start the conversation between sometimes this is the reason when you actually jump on when a couple of people started discussing when others are still wanted to pass this case okay that's interesting I want to come back to that can you pass the mic back there please and then we will continue the positives are I think they will genuinely have an interest to come to that and they will quite relaxed quite relaxed then it's an interesting observation we have a gentleman for the first round it seemed like more of a group of individual in the second round people sounding is deep okay so is it fair to make the jump and say there was a little bit of bonding a little bit of better experience this time than the first time in response to his question that we forgot the progress reporting thing so I would say the progress can be seen in the form of Gira tickets or whatever the way we are this the jacquarda progress so that should not be the actual point of standard that's how I agree you can see the progress on your board like who's doing what if there were any workloads that should be put up in the standard rather than just stating what is obviously there in the board I hope this was to go things moving rather than how they are being done very good point did you have something actually happened because I think the goal was I think the goal was what I would like to accomplish today not just giving updates I think that was an important important thing when she's yeah so I'm quite happy because this is the direction I wanted this to go so it's falling in place we have one more little thing before you guys run off right so let's do take three and I promise this is the last one and then take three we want to step back a little bit and we want to look at we're all talking about having dinner we're all focused on what we want to eat and then we move to as a group what do we want to do and now we're saying let's put a goal let's say our goal today is that we have some guests and we work as a team to feed them and basically you know drop the three questions drop the three questions focus on what is your game plan for today how are you going to achieve the goal that is basically you have guests for dinner right and you as a group are going to feed the guests so that's the plan and we're going to see more collaborative effort in terms of achieving the thing right so here you go alright so another for tonight is that we have some guests coming in we know their preferences but basically we have been given a responsibility to you know have something for them for the dinner tonight I'm sorry to interrupt let's drop the scrum master rule so yeah so you're not part of the team you're not a chicken yeah yeah we have five guests coming in I think it's yeah are the kids coming where's your knowledge both people who have preference for veg as their knowledge he's not a scrum master remember so we should also see if we want to arrange for salads because normally people prefer salads and fresh ones so I am stepping outside and I can get fresh vegetables for salad preparation also we should know if we have international guests because they definitely would prefer something less spicy hey there is the are the kids going to come to eat are they good that's to me sure first we need to identify like buying stuff from outside which would be an input to making dinner then we'll have someone who will take ownership of making dinner and someone will take there was some third point which came out just now maybe we want to decide them very quickly like what starter and what vehicles and what desert and accordingly we get introduction okay so you said you're getting the salad okay and he's going to bring some cooked food from home what are you going to cook okay so what are you going to cook alright good that's good right so what did you guys think about this so far the questions were too few answers and really being productive on the discussion on the side note I also thought that coming with a plan for something that's going to happen shouldn't really be there should we stand up or I don't know let's see okay so should this be part of the stand up or should this be done outside right I mean this is just an example of building on the example that we had but are there specific restrictions around what gets discussed in the stand up or not alright go there we could have time boxed our discussion that could have been more valuable so time boxing would probably help we had someone who was there there are few people who are setting role goal for themselves and how they are going to achieve it is not happening as a team because team supposed to set the goal and then divide the responsibilities it is not happening so it should be the team but that's the team right the team is deciding that this is what we are going to do people are offering what they can do some are saying hey I can do this some are saying I can't cook but I can go out and get stuff so they are offering what they can do they are bringing their expertise to the table they are going to decide now how they are going to collaborate to get this thing done and maybe there are better ways to do this in terms of making it more effective but I think the good thing I see is people are offering what they can bring to the table instead of just waiting for someone to be told or things like that because that's very hard to know who can do what and there is a lot of volunteerism that's one very good element that you see you had a point sir see the thing is that if you look at some practices there is a specific reason where the stand up is done and the three questions are asked the first stand up that you showed obviously was very grand wrap the teams will come I believe the second one was the right one the third one basically this is an activity the team does after the meeting so the collaboration part and everything the team is doing this entire day in the spring so we need not necessarily do that that is something that can do all this after the stand up so I believe that the exercise number two was something that three is taken to the extreme and one was a very good good point I just got a feeling that this is the way scrum should be it's like all together needs to achieve one small story, one small feature what all we can do together for that day to achieve that goal so I'm sorry I didn't get it is it that it's for the typical rituals that what I am going to do to meet that team goal it's all to be like we all together have one team goal to have that event and what all we individually can do to solve problems to achieve that goal from rituals it's another end of leaving it and practicing it so I don't know I mean I can't speak for them I can speak for my own experience everyone can speak for his own experience but what we feel we see way too many teams stuck at rituals and saying scrum says this so we're going to do this and we visit them after two years and they're still doing the same thing we visit them after three years they're still doing the same thing and I think they've cornered themselves into certain rituals or certain practices and they believe that's best they're not questioning it they're not seeing if there's any true value teams where I work I mean you guys can sit down thank you big round of applause for them teams where I work we essentially start with the ritualistic way of doing it to get people to answer the three questions because they're not used to doing it and this is the first way to break their eyes and get them to at least speak and share it doesn't happen the way you want but it's good it's a starting point what I was talking about is like the training wheels that you have in the cycle do you want to drive all your life around with training wheels? Obviously not so you progress and gradually you keep progressing through this and what I've seen is mostly at least on all the teams I work we stop doing stand-ups because it doesn't really add much value we internalize certain things and if you look at the fourth level basically we do just in time hurdles whenever we have a roadblock instead of waiting till the next stand-up we pull up people together and we do a quick hurdle and it might also be in this specific case you're cooking and then say you run out of sugar or something then you quickly pull the hurdle to the start and then you move on you're not going to wait till the next morning to say I was stuck with this roadblock so I didn't do anything that's not going to help also a lot of times people find interesting ways of doing the collaboration what is the purpose of the stand-up I think that's very important to understand what is the objective, what is the purpose of the stand-up there's the purpose of the stand-up like someone brought up earlier you can go to Jira whatever project management tool you're using and you could see what the progress is I didn't quite see the purpose of the stand-up is to talk about the progress in fact if you see the stand-up, the practice actually where does it come from I mean it comes from Scrum it comes from Extreme Programming but where did they get the inspiration from American Football most games if you see most games people hurdle, the players hurdle around every now and then and they kind of talk about what will be the game plan how would they, how would they, given that we are here and it's a dynamic game, it's constantly changing given that we are here how are we going to meet our goal how are we going to win, how are we going to do what we want to do and they do hurdles at different points in time and that was, you know the that is the example that they took and they said ok, we also as software team are going to do on a daily basis and I feel somewhere we've kind of forgotten the game planning part of it and we're kind of stuck with the ritual where we just think about answering the four questions and everything or three questions and everything now that is stand-up so something to think about, I mean what is the goal what is the value you get out of a stand-up is it status is it true collaboration right, is it the team building that, what is that we want out of it and then you have to decide depending on your maturity of your team what will suit your needs right, it's not one bank, it's all right, it has to be what works for your team let's look at quickly an example of stories, right how many people have seen stories like this yeah that's a real example by the way I didn't cook it up, we didn't cook it up it was a real example why is it not a good story, let's talk about that it talks about creating database table, it doesn't talk anything from the user perspective well the question is the user is a developer right from a developer's point of view that absolutely makes sense and I think if you are coming from a 6 year planning cycle to something like this it's a good first step if you are coming from a 6 year planning cycle kind of an environment this is a good first step, we can laugh at it because we have kind of gone past that but once upon a time in our career that seemed like wow I mean that's unique why would you do that that's not how we do software development so when you are starting off maybe that's good but the practice that a lot of people will talk about is something of this art you will see a story of this art as an account agent I want to create an invoice so that my company can request payments from customer is this a good story from all the brainwashing we've got all these years yes that seems like a good story this is kind of putting the stories in practice the way we want it to not a story for design a story for a code, a story for tests we are trying more vertical stories that slice across let's look at if you are doing this already should you just stop here is there something better can you evolve from here to doing something better what would that be how many people do story mapping over here few people so when you are doing the story mapping this is an example from one of the projects where we have Bob who is an expert who is explaining how basically certain users work in the environment and he is kind of defining a day in life of what the users would look like and then we put that day in life of Ed who is a user then we try to map it into what are the activities that Ed would do and then to achieve those activities what are the tasks he would perform and we start mapping this out in this kind of two dimensional space where we talk about activities at the top as time passes by and necessity on this axis as time passes by from the most necessary to the least necessary thing you notice here the team is kind of putting this together trying to work on this and the team is completely engaged everyone is arguing about what is this why is this important should it be really up there let's pull it down is there any dependency of this on something else without this we will be able to achieve that because now they are looking at this in two dimensional space they see here I am going to be providing some service and to be able to provide this service I need some data where is that data coming from I need some instruments which is going to collect the data who has thought about that basically what typically a product owner would do or a product manager would do in their head is to get it out there so everyone can jump on it and they can give everyone can add their perspective into it and at this point we don't even write stories anymore we just take that put it out we know who the user is what the goal of the user is and then how we slice the problem into multiple levels of priority and what is the most important thing that we need as you cut across the entire thing and that becomes your first iteration release first milestone whatever you want to call it right and then people just focus on that you don't see stories as I want to so that anymore is this better I don't know it depends on where in the evolution the theme is right can we skip certain steps probably right do we need to write stories like the first way probably you could skip that but in some cases that might be necessary sometimes you need to crawl before you start running so it really depends on the maturity of the theme the complexity of the problem that you're solving and a lot of different parameters but what we're talking about is kind of a really true evolution of these practices as we have seen going from ritual to focusing on the practice to here focusing on the principle what is the principle why we write stories what is the purpose of stories it's a placeholder for conversation right Ron Jeffries there a story you should have 3 C's what are the 3 C's the card, the conversation and the confirmation so it is about it's a placeholder for conversation it's not a big document that has everything detailed out so if that's your focus if your focus is to explain the problem to help people understand what is the problem that you're solving from the user's perspective you need to find ways of expressing that and the reason we write stories is we want everyone to work together collaborate together instead of writing these big documents and tossing it over the wall so think about ways in which you can improve can we stop here have we done we need to improve it and you're sure about that which is good because we have one more stage to go so we talk about customer development and product discovery you guys must have heard about league startup there's a bunch of stuff happening in the league startup community so what we talked about story mapping and all of that work that Jeff pattern and other people did I think is pretty cool but when you look at product discovery we have some very interesting ideas that we can take and further simplify what we're doing here's an example of a company which wanted to build a service which will basically suggest what book you should read so you go in and you've given basic information and it gets you started on what is the book that they think you should read and they have pretty good analytics that they can build which will figure out what you should read and you'll hear a couple of details and then it presents something like this and if you can't find as you notice here there's a bunch of criteria that it says if you use to determine which books you should be reading and things like that and we said oh that's great let's find a paying customer so you take this and you walk across in your own organization you get people to actually you play the computer role and you validate someone to actually use it and you validate whether people will use this and whether they will pay anything for this or not what feedback they have so you're going very quickly and once you have these flushed out you probably don't need to write stories anymore you iterate on it you figure out you work as a group and you've got something working and you think people like it you validate it back you validate it in your business case you put it in your team, your developers, your testers the entire team has been part of this and now they don't need any more ceremonies of writing the stories or doing other things you just stick them on the wall and people go after it and build the thing so you've tightened your feedback cycle you've done your UX and you've also got everyone on the same page and as you start working through this things will change and nothing remains static but because it's low fidelity it welcomes people to change it so that's basically how stories, the practice of stories itself has evolved over the time can we start directly at this level I don't know, probably not people need to get some basics before they can jump straight here they need to understand how to break things down they need to understand how to slice things they need to understand some other things but don't be stuck with it try and evolve try and push the boundaries question things ask what is the real value we are getting and is there things we can optimize to really get the value we have homicide left think we have 15 minutes left quickly we can jump into the retrospectives and quickly talk about that Linda we have another session in the morning so we can just build on top of it go ahead so yeah, what about the retrospectives we all within it's not these questions so question that as well whether it's a practice or a ritual we talk about retrospectives we do the tables we come this is no value at all how many people you will see can't be doing this in years still and no action items nothing coming out of it not going back into your next print planning, next iteration planning you simply do this because you have to check it off your list it doesn't help we all understand that then teams say well we can do better than that there are different formats there are different styles they can use there are a lot of different things you can do you can just think on what like why would I change from the two column format to something different more informative you want people to think instead of just two things you put more things out there and hopefully people will think oh what should I stop doing what should we start doing maybe that we have we don't know but it's worth running a small experiment and seeing again the point of retrospectives is feedback right whatever format will help you get that feedback that will help people getting the inspect and adapt philosophy a lot of times we see that teams stop doing that and move through what we call as the root cause analysis so here you could be doing all of this and you could be taking some action items and then trying to cover those action items but are you really fixing the problem or are you really mistake proofing this for future one of the purpose of the retrospective is you want to stop something from happening in the future and as Linda said in today's workshop we collect data but how many of us generate insights out of data so a lot of people will move to this and say well let's focus on being data driven let's get the data and let's do root cause analysis let's just not talk at an emotional level and just do retrospectives one after another and you see the same points coming over and over again or you see the same thing basically repeating you fix one problem similar problem shows up somewhere else and so you know I essentially fixed the root cause of it and here also a lot of teams will say well you should not involve stakeholders stand-ups or retrospectives are only for the team the team should feel safe doing this so if you told us the real problem you could do all the retrospective in the world you want but the problem is somewhere else so involve them make them a part of this and see if they actually can empathize they can see from your point of view how else would they see unless you involve them you become data driven and you make it a part of the entire team so you could do all of this and I think this works well gyps retrospectives we don't do retrospectives sprint after sprint we do retrospective whenever we find something it's more of an event driven an event occurred we pull everyone together say okay what was the root cause of that how do we avoid this from happening again what can we do and then let's take corrective action instead of waiting till the end of this iteration of the sprint and let's just fix that and move on let's do micro retrospectives not batch everything together let's do really small micro things which are more event driven when something occurs let's do something about it that's exactly what Enda was mentioning in the first half continuous retrospectives so that's what this is again teams evolve and they see okay we can do better than this we can do better than this that's only happening if they want to apply at a meta level the retrospectives to their process itself that you need to ask what is working well what can we do away with right don't be afraid to throw out practices it's very important to throw out practices if you take too many practices you will all you'll be doing is process right so what I'll ask you to do now is just step back for a minute we've shown you all these four practices at various levels of maturity so find out for yourself where your team is and where you need to go from there so we need to kind of inspect adapt and evolve all the time be fearless in jettisoning what doesn't work because that's what you really need to do that's the need of the time and if you try different things small experiments one after the other and you should be able to see some progress also question and dispel gossips that's one of the things that we probably should do right if we have to evolve and if you don't evolve only two things really happen which I have seen in my experience other use gets stuck and be thematic for your ideas and you remain there or you become indifferent it's going on it goes on who cares but somewhere deep down you're really walking with all the package all around right and in such a situation it's really hard to get the results you will find results coming out pretty much like the background there again the real world is really messy this is not a straight path it's not linear we have to go around this way maybe two steps forward, one step backward so on and so forth but at the end of the day so that this is really happening progressing upon progress I think I would like to emphasize this we are moving from one progression to another right so that's the real value right so if I question all this back right and I say what are the values what are the values that we've seen would these values come by you know preaching explaining I don't think so they have to be experientially they have to be experienced and this particular thing it's neither accepted nor rejected I neither accept it it's just imbibed and it is this implicit permeation that kind of goes along and our job whether you're a stormmaster coach or whatever you're a team member one has to be from within that right and to be from within that you yourself must first have those values and in real life they are your inner dispositions what really values are they are your inner dispositions your inner dispositions secondly let's as I spoke about values cannot be explained and that is why if they are explained what happens is they are just in the upper level of the mind and that gives rise to duplicity pretension and hypocrisy if I could teach something to my 3 year old kid I can't teach I have to play with her I have to be with her so people just starting by say for example let's say 2 of the people are paying here and each of us has a different value stack that I've colored it differently the priorities of the values are different but what happens is when you're having an argument or certain things, you repair it you start to realize it you know what this person's value stack is a bit different but I understand where he or she comes from This very thing generates respect. You start seeing things from others' perspective, and they start seeing things from your perspective. Right? So, at some point, what would happen is, values would permeate. This is what really I hope so. And so, you know, just showing, telling and, you know, showing things just doesn't work, and it would work. It's just the level of thoughts and discussions. Show me and I remember. That's demos and screencasts. And involve me and I learn. That's where you come to workshops like these. Or, you know, you want us to involve people all the time. It's not just going to work out otherwise. Yeah? I would like you to ask a question. Are you really aware of your own values? Just say, in less than a minute, before your mind tries to manipulate your response, try to ask this question, you know? I'll just flash out a few examples here. You know, we interact with a lot of people, and, you know, somebody genuinely comes and says, you know what, I've made a mistake, I know. But now I can work on it. The other person is, you know, wants to share. Hey, let me show what I found after we wrote down that stuff yesterday. Very interesting. Very positive. Their values are being exhibited in their conduct and behavior. And it comes from deep within. It cannot be made up. So, what do you deeply see in you, you know? I don't want to know what your values are. You can take a piece of paper and write it down. But, you know, try to ask this question. Because for us, this has been a personal journey in some sense, right? I would like to ask this question. What can lead to authentic self-realization? What is it? Is it acting with passion? Is it expressing feelings, expressing thoughts and ideas? Well, to answer that question, I would like to say, you know, who am I? Who are you? Right? Well, we just say, well, I'm, let's say, I've just become you, right? What's your name, sir? Sorry. Amit Kumar. What is Amit? Amit is just a label applied to this frame, right? Beyond that, what is it? What is Amit? Is he a physical body? Beyond that, let's dig a little deeper. What is Amit? A bundle of emotions? Let's step back further. Is he the thought? Because if you know this, whenever, why am I saying it's not a bundle of emotions? Because remember, whenever we get angry, you say, what? I am angry. But when anger passes out, you say, I was angry or I was consumed by anger. That means you are separate and anger is separate. And at the same time, you can control your feelings. If I go back further, you know, some parts, some days, you know, some parts bother me. I said, I just want to get rid of it and go on to a different track. So you start thinking something different, right? Now, you started playing with your thoughts. The very fact that you can control your thoughts means you can step back. There's something deeper still. It is that place that one has to find. And that's the level from which you'll get authentic self-awareness because it is beyond self-expression, right? So again, if I ask this question, what can lead to authentic self-realization? It is the ideals that are in harmony with higher nature of human beings. And what are ideals? Ideals are nothing but just set of values. And there are some universal ideals. So I would like to give you an example here when, at work, or anywhere where you see a person, you know, acting with integrity and truthfulness and thought-feeding in action, then mind you, that person is exhibiting the ideal of truth in it. Again, I'm not saying that he or she is 100% right. There's going to be variations of the levels at which people exhibit truth would be. Nobody's going to be full 100%, right? Secondly, let's look at transparency, right? In our retrospectives, or while making estimations, if at all you do that, do you see that in your own behavior or your pad estimates? Are you truthfully giving somebody a team a feedback in terms of retrospectives? Really? Are you? Cleanliness. We talk about cleanliness. Well, cleanliness is at various levels. Physical level, of course, yes. Your desk would be clean or your desk top probably is clean. What about if you are developers in the room? What about your code? Is it clean? At what levels are we exhibiting these values? Are we at all levels there? Likewise, there are various universal ideals, teamwork, shared vision, mutual trust, that's paternity. What about 10 towards greater sharing of wealth, power, and knowledge, flattening of hierarchies, right? So there are a bunch of a lot of stuff here, but what I would like to do is do a small bit of an exercise. But for me, and Marisha as well, this really stands out because that's what XP is all about. And this is a personal journey, as I said. So if we look at XP values here, communication, simplicity, feedback, courage, and respect, if you look at various XP practices, fair programming from collective ownership, on-site customer refactoring, simple design, so on and so forth, if I were to take the earlier table and try to apply that to XP practices and map them, first of all, communication and feedback, they are the tools that lead to the idea of truth. How effectively are you using those? Between you, the outer you, and the inner you, what is the gap? How much is the gap? Simplicity is an ideal of beauty and harmony, courage, strength, and force. If I were to map XP practices, to me, refactoring simple design and coding standards, they are the ideal of beauty and harmony. Fair programming, collective ownership, on-site customer and system metaphor, equality, fraternity, and liberty. These are the ideals. Whereas, if you look at the planning game retrospectives, DVD continuous integration, small releases. So, should we call it agile adoption? Well, I don't think so. We need to use feedback to permeate agileity and manifest ideals. Not just at the team level, but at the individual level, because we know today that no amount of fiddling with this outer structure is going to help. The problem is right within it. If we correct that problem first, the solution to other problems will be found. I would like to leave you with questions to ponder really. So, if I were to say, would you be able to apply this on a daily basis, if yes or no? So, what I mean by that is a couple of slides back where I have all these stuff. What you could do is probably have a column here by the side and use this as your own evaluation sheet. From 1 to 5, on level of 1 to 5, find out how much do you exhibit any of these qualities on a scale of 1 to 5. Then, let's talk about your team. But first, let's start with I. If there is a gap between what you are and what your outer self is, it's just hypocrisy. So, you could do that and you could do the trending. So, when I attended this workshop actually, I was really like, for me this was the aha moment. And I said, you know what? Agile to me is all this, really, at core. So, just, yeah. So, also, if there are HR people in this room, we also should be talking about, not just HR, but anybody else as well in the room, how many of us really talk about in the JVs that we publish? We just look at matching skills. What is the psychological content of the job? Have you ever tried to match the psychological content of the job to that of an individual? I have yet to see. If you come across, please send it to me. But I think this is what we need to do. And secondly, I mean, this is the real question. Inner values and outer action. So, the moment you have your inner coming forth, that's the values in practice. Yeah, that's it. There are some questions to ponder on and then some questions to ask now. Anyone has any questions so far? Yes. That's the workshop with you. So, we are basically talking about mapping the values with the job, right? Or mapping the job to the values. Now, how is it different from the other HR tools that have been used, like the MVAPI analysis and those kinds of things, where people are evaluated and then based on that, some analysis is performed. This person is good for this, this person may be good for all this, and so on and so forth. How is this going to be different? I'm not used those tools, but what I'm trying to ask is the real psychological content of the job with the values that a person in the region has. So, I don't know what the tool does, but if it does help you with that, then that's really good. But my question is, we just do a superficial matching. For example, Java, Person who knows Java 8, GMS 2.0, it's like asking for a carpenter who knows how to operate Black and Becker 3000 and something else in that combination. Because for an employee and everybody to be truly happy, one should be able to express oneself, then only all these things would just follow, because that source is made not bad. So, I've seen companies where they do use some of the techniques you've talked about of doing some other analysis on people. They give them different kinds of brain tests and then like speed versus accuracy tests and things like that. And they're trying to see how where people would map and look through an algorithm which would say, okay, this person is good or this person exhibits these values while this person is weak on these values. And then based on that, you might decide what position this person would be good to play at home or if this person is good to fit. But I'm not sure, I personally use this at a couple of companies. I'm not sure if always we can actually have a good result coming out of that because sometimes people can gain those things. So, what we are trying to get here is essentially instead of having this kind of a test, can we sit down and have an open conversation about it? Yeah, I mean that's true and that's why there are specialists who do that job, they help companies to do this matching better, they help individuals. So, what I'm trying to say is that this is something that people are already practicing in certain ways though in probably different forms. So, you're talking about values, they will talk about different types of individuals and what those i versus e, what those things map to. So, again, no new techniques in that sense but a different perspective at the same problem. Any other questions? Questions, comments? This is with respect to the test theory development exercise that we did. So, you highlighted that there are two kinds of methodologies that can be adopted for doing test development, that is outside in and inside out. So, based on your overall experience, which approach suits most in terms of evolving the overall design of the software and why we can just adopt it on that that would help us. So, there is a paper I wrote for IEEE, it's called, Aftar's of Test development, you can look at that and the summary of that paper is there are many different styles of doing test development. Broadly, you can classify them into two categories and, you know, you typically would end up using the combination of both. No one true way can lead you to Nirvana. We'll go there. If you can just ask. Hey, thank you. I think this subject is far deeper than we can do in probably the time that you covered it. It spans more from, you know, coming out from the world of an IT professional to being an individual and an I and then going beyond the I which is evolution for a human being. And, you know, I'm very interested in the subject and I've been learning also from a guru. So, you know, it amazes me that you can actually put test development and respectors in the context of values and principles and things like that. What's challenging is that in an organization, I see people come from different walks of life with different experiences, different levels of knowledge. They are technically sound. But as you say, you know, while you're hiring people, all you look for is technical skills most of the time. And very little attention is given to people's attitudes, what values they have, what beliefs they come with. And it can corrode the team if you pick the wrong people who come into the organization and despite all the knowledge or the skills that they possess that they can come and actually make or break a team. So we've gone through a journey in our very organization where we've come from a place where all of us were together for a long time, knew each other, knew each other deeply as families to becoming a very large organization where things have kind of diluted, moved away, new people have come in. And we've seen this happen. So the long story short, I think it's a great start to a journey and it's a good way of, you know, applying the principles and the values that you have in life to your workplace. So thank you and I appreciate it. Yeah, thank you. Actually, just to add to what you said, our individuals are just the same. There's no difference in the objective notion of professional life being different from person because it just doesn't work. And if you are not that, you wouldn't exhibit that in your work as well. I think the genius behind some of this work has been Kent Beck. I think we should give him credit because Kent Beck, when he started with extreme programming, not just Kent Beck, but I think Ward Cunningham as well. These are two guys who really, you know, went into extreme programming. They just put a bunch of practices and said, yeah, go do these practices. They talked a lot. If you look at the first extreme programming book or if you go to the C2 Wiki, they talk a lot about the values and why these values are important and even to be able to distill down into these values, I mean, it takes a lot of insight and it takes a lot of experience to be able to distill things down into values and then build on top and it's done that even at a design level. So he talks about when you're programming and you're designing, you know, there are certain values and, you know, how design patterns are influenced by those values and what trade-offs you make when you do this. So when I was looking at it, I think we had that aha moment about how while these guys have mapped this out, we can step back and then take it a little further, like outside the quote and quote software context to figure in terms of the ideals and that seemed like, you know, an interesting experiment to run to start with is actually, can you do this mapping? I mean, these guys are geniuses. They have spent lots of years coming up with this. Can you step back and further expand or build on top of it? So this is a little experiment just trying to do that. And actually, if you see the earliest slides where I say about this, it talks about universe so certainly whatever work that we're doing, if it doesn't tie back to that universal value, then there is a big disconnect. It just doesn't work. So the values in specific context have to tie back to the universal values at a certain level and if it doesn't happen then, yeah, so that's the... And what you talk about is as the organization evolves, right, and that's pretty common to see that we need to embrace that rather than try to fight it because all organizations go through what we call as the adaptive chain cycle. You start as a very small, closed-knit community of people working very closely together and look at startups when they start. They're really this closed-knit community of people and as they evolve, the company grows, it focuses the values change and the company goes around and in many cases it turns around, falls back and re-surfaces itself in a different way. And this is a very common thing not just in software companies but in nature. So it's pretty evident as well. So we need to embrace it in my opinion. I think we have one question here. I just had a comment with my limited experience working with my organization during the equilibrium process. I have noticed that as it is, it's very difficult to find people in different people's case. So I can understand adding an additional layer of these values I think companies find really tough because then what are the odds of finding someone who can mark skills and values as well? I think that's where I feel where we are on shoulders. Yeah, I think so I've worked with many companies where we put a very strong stand on how we will reject business if we don't have people. And I think a lot of people know those companies today and the reason we got there I strongly believe is because we focus very hard on people and we said it's okay to lose business. It's okay if you don't build a new product but let's focus on having the right set of people. Every new hire you bring in A from a value standpoint they align with the organization but more importantly they bring diversity into the organization which means they push the bar of everyone one notch up and out of 10,000 interviews you might find one. That's the odds but once you start getting there and people start knowing you then your odds become better so there is about are you willing to put in that time and effort and painless journey till you actually start seeing that. Today some of these organizations have thousand people I mean thousand is a big problem it can change the world so that's really cool. I actually don't have questions to come at you know this day has been different you know we started with you know topic safety which was very different this topic you know first 15 minutes I'll be honest I thought you know to apply the law of two feet and you know walk when you guys were writing that crappy code but eventually you know the ceremonies or ceremonies or you know this turning into the practices and how practices applies to principles and values and then you know going to the individual eye I think that was really fantastic so the message that I am getting is I don't know just to see what's there in the market you know to do the agile addiction methodologies under agile and keep one thing in mind that you know continuous improvement where we are what things suits us you know apply those and starts doing the evolution so I think a wonderful topic you know I would like to give a time for presentation about the school values ok we made our day thank you