Good morning. We'll be talking about migrating content to Drupal 8 and like, I did press the button. Okay, so we'll be, but I don't see any animation on the thing. I don't know. Okay. So we'll be talking about migrating content to Drupal 8, the basics as well, and also, like, we'll focus mainly on multilingual content migration. So let's get started. This is me and my dog, Ryder. I'm Jigar. People also call me Jerry. I work at Evolving Web. I've been working with Drupal since 2013 or so, and it's been great. So these are some of the clients we worked for at Evolving Web, and I have done a lot of migrations. Okay. So what are we going to discuss today? Okay. A brief introduction to migrations and what they do. So what migrations are about. Basically, if there is somebody who has never heard of migrations, how many of you have used migrations? Okay. Quite a few. And so we'll just go through the basics first and then jump to what's so special about migrating translated content. And we'll focus on, like, we'll have two subtopics there. Like, in Drupal 7, we had more than one mechanism for managing translations. So we'll check out the core way of doing translations in Drupal 7 and how to migrate them to Drupal 8, the content translation module way. And we'll also check the other way of doing it, the entity translation module way. And migrating. And we'll also take a quick look at how to migrate, like, approaching migrations in general when we're dealing with other translatable entities, like custom things. I remember having built a football ground entity back in the days so we can migrate football grounds. Okay. So introduction. As the slide says, Migrate API helps us migrate data from a given source to a given destination. So we can, in Drupal 8, this has become really nice. We have separate plugins for handling sources and destinations. And basically what migrate does is we can specify, like, this is the data source and we want to take it and create nodes or create taxonomy terms. And we tell it and it does exactly that. And it has become, in my opinion, very, very organized in Drupal 8. In Drupal 7, we used to have to write classes and do a bunch of stuff. But in Drupal 8, it has become, like, one can write a migration in a matter of 5 to 10 minutes. And it magically works, like, and apart from that, like many of us might have thought, excuse me, why use migrations? Why not, like, do some custom coding and read a CSV file line by line and then import the content into Drupal? So initially I used to do that. And as I usually say, like, I'm a big fan of progress bars. So I use the batch API and make them work and used to do it that way. And then I figured out, like, migrate does a bunch of, excuse me, other things as well. Like, migrate maintains a map of things, like, where the data came from and where it goes into Drupal 8. So if, for example, you do a migration and then your data in the source changes, so migrate would be able to magically know that this particular thing has changed. So we have to update it in Drupal 8. And that's something, if we were to try and make our own module, it would be really hard to, like, do something like that. So migrate basically provides a bunch of tools which are, like, which we should not try to reinvent, in my opinion, because it would be a waste of time. And so, like, the third point says, like, we can concentrate on mapping the fields. Like, this data becomes this. Like, earlier it used to be called heading. Now we call it title. We put it in the node title. So that's basically what we focus on instead of trying to, like, figure out how do I get this, and so it's much better. Okay. So let's take a look at how, like, the scenarios where we might be, like, wanting to use this, the migration thing. So we can use migrate API and the migrate family of modules to, like, read data from CSV, JSON, XML, and any other, like, similar sources. And we can, like, pull it with ease into our Drupal 8 sites and make them into beautiful nodes for taxonomy terms. We can also use migrate to pull data from older versions of Drupal, because Drupal 6 is now, like, I don't know what term I could use. What do they say? End of life. I was going to use that, but end of life is better. So we can migrate data from Drupal 6, 7 into Drupal 8, and even Drupal 5, but we might have to write some custom code, but that's what we do. Import data from other content management systems, like WordPress and Joomla, if you want to. And the last one is a joke, but I'm not good at jokes, so I'll skip it. And, okay. So basically, like, when starting, like, thinking about I need to migrate something from some source into Drupal 8, what do we, where do we start? Like, first we create a custom module, that's what I do at least, because there's an alternative way of us writing config files directly in the config sync directory, and then we can use rush config import to pull them in, but that's, like, if you want to keep it clean, we make a module, and we put our migration files, YAML files, inside a config slash install directory inside the module. And when we install the module, all the migrations get, like, imported into the system, and they work. So, write YAML files to define migrations. Say it's the slide. So, yeah, like I mentioned once before, in Drupal 7, we used to write classes to define the source and get the data and map them, but in Drupal 8, we can easily write it with YAML files, which is much easier. And we don't have to have, like, someone with lesser technical knowledge or someone who's new to Drupal can also write them. For example, I started using Migrate last year, and I have, like, used it for a lot of stuff, and it's quite easy, so it's not hard, especially if you can write it with YAML files. It's wonderful. Okay, so, yeah, and for now, we do not have a UI for Migrate as such, so we do not have any progress bars. But we have to use Drush commands to see the status of the migrations and other stuff, so I'll just go through a few quick Drush commands which are really useful. The first one will be the Drush Migrate status. When we run that, we get to see a list of records which exist in the source and a list of records, like a number of records which has already been imported into the Drupal 8 site, and we also see, like, figures saying this many rows are unprocessed, so they need migration. Maybe some records were added to the source, so that's how it goes. And so Drush Migrate status, you'll be using it a lot if you do migrations to Drupal 8. And the second one is Migrate Import, so you can, this is the actual command which pulls data in and does the actual migration import, and we also have something called Migrate Rollback, so if you think, like, the data I got in is I need to get rid of it somehow, so let's roll it back. So all the records that got migrated will be deleted from the Drupal 8 site and you'll have a clean slate again, you can start over. And these commands usually have these parameters as well, like dash dash group equals dash dash tag equals, so we can, like, assign groups, like group the migrations into categories, and then we can run them together as per our requirements, like, say, we have a bunch of data about programs, academic programs, so we can group them with a tag called academic maybe, or maybe a group, and then we can do dash dash group equals this, so the command will only work, like, we'll only import a particular group or a particular tag, and the last command is quite useful, dash dash update, what it does is, like, it tells migration that the records which have already been imported, we need to update them as well. So, by default, what happens is every record is checked in the source, and if the source has changed, if the source record has any kind of changes, Drupal imports it, and if it has not changed, it ignores it. So it checks a row hash and does some stuff to do that. So by using dash dash update, we tell Drupal, like, we don't only want to create the records which are missing, but we also want to update the records which have already been imported. So maybe we imported something, and then somebody made a change, and we, like, and then they say, like, I don't want the change, I want to roll back to the thing that it was in the file, like the source. I want to re-import and override my changes so we can do a dash dash update, and those changes will get updated. Okay, and, okay. So now we jump into the code. So this is the basic structure of a YAML file that we write for declaring migration, and it is quite simple. I usually think of it as two to three parts. So this is the part where we define the metadata, and we basically tell the migrate system, like, hey, my migration's ID is called program data. So, and we can give it a label as well, so if you go to structure and migration in the UI, you can see a list of migrations that exist, and enjoy the view. But personally, like, labels haven't, like, if you are rolling back and importing, label doesn't matter much. You don't get to see it much, but maybe when we have a UI, it would be of much use, more use. Okay, then as I said, we have migration underscore group for grouping the migrations and putting them together in small groups. And we can also have tags. We can have multiple tags so that we can run a particular set of migrations which have a particular tag. And after that, we see a very interesting group which is called migration dependencies. So this is very important because sometimes we have scenarios where we want a particular migration to run before some other migration. Say we are trying to migrate a list of articles and we are also trying to migrate a list of users who made those articles. So when we are importing the migration articles, we would require to reference the user data. Say in your Drupal 7 site, there was a user called foobar with the ID 13. And we migrate that data and when we are migrating the articles, we want migrations to, we want to tell migrations, hey, there was a user called ID 13 in Drupal 7. We don't want the user ID of the new article, Drupal 8 article to be 13, but we want to use the new ID for that particular user. So you did one import. Please use the ID of the corresponding Drupal 8 ID for the user 13 and assign it to, as the author ID of my new article. So in that scenario, while importing the articles, we actually are using the data which came in through another migration. So that's a scenario where we have a dependency. So the article migration depends on the user migration. So by specifying this migration underscore dependencies thing, we tell migrate that we need to run the user migration first and then please after that, we will run this program data migration so that we can use that data. So it just orders things up. It's like module dependencies.  So it works in a similar way. So that's it. Now we go to the second group of set of configurations which we write in the migration definition. It would be the source. And here we define a plugin. Like where does the data come from? The data in this example will be coming from a CSV file. So we use the CSV plugin which comes with a module which is called, if I remember correctly, it's called migrate source CSV. So you have to install that module and you get this plugin called CSV.  Like we can read from JSON which the migrate plus module provides and a bunch of other stuff like XML as well. And it works really nice. So data sources. We tell them like this is my data source. We give it a path so that it can read the source data. Like get the data from this particular path on my file system. We can also use HTTP locations so that the data is read from remote sources if we want. And every source plugin has its own bunch of options like the CSV plugin gives us an option to have defined. This many rows are header. So that's not actual data. Please ignore it. So for that we do header underscore row underscore count equals one and it will ignore the first record as being headings. So it won't create a node out of headings. And that's good. The next, this keys thing that we see, the keys are really important because that's what tells migrate how to identify uniquely every record that we have in the source data. So in some plugins this particular property is called keys. In others it's called IDs. So we need to be a bit careful when we use the plugins. Like the other day I was using the URL plugin which comes with migrate plus module. And it calls it like IDs. So whatever it is like the basic concept being those, the things that we mentioned in keys or IDs are used to identify all the source records uniquely so that my rate knows which source record has become which node or taxonomy term in Drupal A. So that's what it is used for, for tracking the source rows. And then we have a bunch of field definitions where we simply like add some descriptions so that we can see it in the UI. And then we have constants, yeah. So constants, we'll discuss them in the next slide when we take a look at like it's something that we, I've seen many tutorials which use the default value plugin for getting data which is actually not coming from a source. So say for example you have a particular set of articles which you want to migrate but the article data you don't want to import any of the user IDs. You want all the articles to be created in Drupal A as if they were created by user one. So UI D1 is not in the CSV. So how do we bring it in? People use the default underscore value plugin but I found that like using constants is also a good way. I think it's faster than default value in some way because default value is a plugin, I don't know.  So we don't depend on the source data for that. Like we see in the UI D, we have constants slash UI D underscore root which we defined as one. So it comes from the constants as opposed to coming from the source data. And we have jumped to the next section of the migration file which is the like process section. This does exactly what the name says. It sets a bunch of processing instructions for the properties that we're willing to migrate. So for example in this slide we see title equals heading. So we are telling migrate like there's a title property for my node which I want to set as heading. Like the heading column of the source CSV file will be assigned to the title property of my Drupal 8 node. And we also do something similar with the UI D as we discussed. And so by default there's a plugin called get which just simply gets the data from the source and assigns it to the destination. But we can use like if you have ever worked on migrations or like if you have been a programmer you know things are never simple. Like somebody tells like the client says move this chair from there to there. But then you realize that there's like a bunch of like maybe you have to cross a river to get the chair from point A to point B. So when we have to cross a river we also have to use a boat. So this is the boat. Like we can massage the data, source data and process it the things that we used to do in the prepare row function if I recall correctly in Drupal 7. So we massage the data and then we can assign it. So as we see for the status what we're doing is calling the str2 lower function on the source column which is called published and then we are using like if the source data says yes then we mean one. If the source data is no as a stream then we change it to a zero and then it will be assigned to the status. So we can like do a bunch of stuff like we can add more plugins as well. So we can it's called plugin pipelines. So our source data goes through a bunch of processes before it gets assigned to the destination which is very useful. And it's quite easy to define a custom process plugin as well.  You can do a lot of things with that by writing a transform method inside your own process plugin and it's great. So basically this is what we do to get the data like assign the data from which one goes where. This is what we do here. And the next section would be destination. I think I should have put this one before the processes but it's okay. The destination plugin again the destination section tells the migration. We got the data, we processed it but what do we want to do with it? So this is where we tell Migrate. We want to create node entities with the source data that we pulled in and if I do not mention the node type in my processes by default make them a program node. So this is what we are doing here. And as a matter of fact like a few days ago I figured out there was some update or something I don't know which made it like trigger the errors but the plugin definition that you see the entity colon node has a colon in the value so it's a good idea to wrap it in a set of quotation marks so that it doesn't break things otherwise there is something which starts complaining and tells you like there's a colon value so you will get a white screen with an error message PHP so be careful about that. Like if you're using, if your value in YAML starts with an at the rate sign or if it has a colon in it then try putting it inside single or double quotations to make sure that your code doesn't break. So yeah, so those are the parts. We have a source, we have a destination and we tell Migrate like what we have to do with the properties before assigning them to the destination. So that's pretty much all we do in defining a basic migration. So that said, we will jump to the next topic which is Migrationis multilinguis which means multilingual migrations. So what's the big difference between a normal migration and a multilingual migration? First, just read it. We migrate things in the base language. So while migrating multilanguage content first we do a simple migration which only gets the base data. Like I'll explain the concept now. So when we're building a migration we usually like as we do while we are learning a language or something. So I'll give that example because I'm a language learning enthusiast. So we first have our mother language which I would refer to as the base language in this presentation. And according to that, first we download that so we already grew up with the language. And then we want to have translations of things like how do you say chair in some other language? We just relate it mentally like chair in English equals seizure in Spanish. So we have a base translation and then we build upon that and attach the other translations to that. So if you suddenly start learning some other language you associate that to your base like mother language. And so that's what we do here. First we get the content in the base language which usually like we tend to use English in the majority of the projects which I've handled. So we have the content in this example as well. We'll treat it as if English is the base language. So first we get the data in the base language and if it doesn't have translations then we'll just import it as is without worrying about any translations. And the next step is where it gets a bit complicated but not too much. After having the base language translations we get the translations. So first we get the English data and then we ignore the English data and get only the data in other languages. So say for example we have a site where our data source has like we have a data source which is in English and in Spanish and we want to treat English as our base language. So first we get the English data and ignore the Spanish data and in the next step we write another migration and we do exactly the opposite. We ignore the English data and we get the Spanish data. So that's pretty much what we do. So we'll take a look at an example to get a better idea of what's going on but before that we'll discuss a bit about the two different methods as I mentioned of migrating things from Drupal 7 to translating content in Drupal 7. So as you can see on the slide there's a core way of doing translations in Drupal 7 which is called content translation. And the other way is a contrib module which is called entity translation. And in Drupal 8 we use moreover the way that the entity translation in Drupal 7 used to work but it's now in core so we have a standard way of translating everything. So okay and we'll start with the content translation way which is the core way in Drupal 7. So as of Drupal 8.3 if I'm not mistaken support for the content translations is built into Drupal core. So you don't have to write any classes or you don't have to do anything like which a developer does to do like D7 to D8 migrations with the content translation thing. So we'll take a look at how the content translations work in Drupal 7. In Drupal 7 when we create a base node like a base language we get a node ID like we see the first record there our node ID is 20 and the language column says English and the title is in English. So that's the node which came first. And after that when you go to the UI and say I want to translate this node and make a Spanish translation for the node so when you do that and you save the translation we get another node which is the ID 22 in the slide and as you can see in the language column it's Spanish. So in Drupal 7 basically every translation is a node on its own if you're using the content translation module which comes with the core. So if you make another French translation of the same thing you will get one more node with a different node ID and so this is how it used to work so for migrating this thing we first migrate the base data so for that we write a simple migration like we see here programs in base language as I labeled it and the plugin that we use the source plugin we use the D7 underscore node plugin which comes with the migrate Drupal module and we tell it node type article so what this means is we want to read all the article nodes from the Drupal 7 database and we want to do something with that and I have a yellow line with the highlight it looks a bit weird on there but it's yellow actually so translations are supposed to be false at this stage we can ignore that line we don't need to do anything special at this stage because by default the D7 node plugin migrates only the base content like I say like the base translation so all the nodes in which came first like English and the nodes which do not support translations they will be migrated if you do that and then we see the destination section I also have the translation false thing and it's striked off so we don't need to do that here we don't need to mention it and if you want to mention it, mention it as false so what this means is that we are telling Drupal 8 for the nodes that we are trying to migrate we want to create fresh nodes out of every Drupal 7 node we are not dealing with translations these are just nodes, make them nodes so for every record that we read we will end up with a new fresh node in our Drupal 8 site which will not have any translations after having run this one this is the first step and the next step is migrating the translations and attaching them to the base nodes that we migrated in the previous migration so in this stage as the label says program translations so we are migrating the translations and we do mention the translations as true in the source and the destination so when we mention translations as true in the source it means like we are telling the Drupal 7 D7 underscore node plugin that hey, I'm not interested in the base data but I only want the translations so every node which came into existence as a result of translating some other stuff will be read so English data like the base data that we were talking about will not be considered in this migration so we will only get the Spanish and the French and other languages known here since we mentioned translations as true in the source plugin and after that we see the destination area where we have to the right hand side I'll skip the processes for now and jump to it after the destination so in destination we mention translation equals true so what this does is like it tells migrate we do not want to create new nodes for these things that we are trying to migrate but we want to attach this data as translations to nodes which already exist in the Drupal 8 database so for example in the first migration we migrated a node with the title German Shepherd Dog so here when we read the Spanish data we are telling German Shepherd Dog is the original article we want to associate this Spanish article which is called Perro Pastor Aleman and we want to attach it to that node that we translated before migrated before so that's why we mentioned the translations equal true so I'll repeat this once again in the first step we do not do translations equals true we ignore that line and in the second stage we do actually set translations equal true in the source as well as the destination and apart from that there's a tiny little change in the process area everything else remains the same in the processes but we actually specify a node ID which we usually do not do in migrations because that's weird but we specify the node ID here because as you can see we are using the migration lookup plugin how many of you know about that like what it does does anybody know what the migration lookup plugin does? okay so since the first one since we migrated some data in the first migration and we are interested in referring to that data the data which came into existence as a result of the first migration we use the migration plugin which has now been renamed to migration underscore lookup so what that plugin does is we give it a migration name like it says migration program underscore base so the plugin will actually go to that particular migration data and it will check the records there and the source TNID, the line that you see it will use the property which is called TNID lookup the database and it will spit out the Drupal 8 node ID for the content which got like migrated so I'll just jump back a few slides to say that English node has the ID20 and it gets migrated into Drupal 8 as node number 3 for example so the migration lookup plugin will actually go referred to its ID map or whatever it does behind the scenes and it will pull out the new node ID that it got in Drupal 8 and it will use it as the node ID for the translation that we are migrating so what will happen is all the data that we pull in using this migration will be attached to the node ID 3 as we got in Drupal 8 so the migration lookup plugin does that it looks up another migration and it translates the old ID into the Drupal 8 ID so that we can do cool stuff with it so this is why we are specifying the node ID here so at the end of the day when we run this migration what will happen is we'll read all the non-English, non-based data from Drupal 7 we will look up a node which like look up the corresponding Drupal 8 node for that data and we will attach all this data which comes from like the translations as actual translations in Drupal 8 so we won't be creating new nodes we'll be migrating the data and attaching them to existing nodes so that's why we do all this NID migration lookup and all that it's easy like if you start doing the migrations you'll know that it's like how it works so it's a good thing and so after having run this you get all the base nodes and you have all the translations attached to those nodes so we are happy programmers because we just migrated everything from Drupal 7 to Drupal 8 and any questions so far? like, yep? Drupal 8 node table actually I'll show you a node table as it would look with the NTT translation module in Drupal 7 and in Drupal 8 it looks more or less similar because it's the same logic that we use for managing translations in Drupal 8 so that's the next section I'll tell you, I'll point it out okay so I will jump to the next one okay so now we switch to the other way of managing translations in Drupal 7 which has been adopted in Drupal 8 core as the default way of managing translations so the difference is I'll actually skip this slide and go to the database table extract that I have so that we can like if somebody wants to read this the slides are available on I don't know where I put them I have Google Drive I think so that's it okay so NTT translations module this is a glimpse of how things work behind the scenes so first when we create the original node of a German shifter dog node as I always prefer so we can see that the NTT type here in this table okay let's talk about how I got this table we install the NTT translation module and we do some translations for anything that we translate using the NTT translation module the module behind the scenes has this particular registry where it maintains a record of all the translations that exist so as we can see NTT type node NTT ID 1 in the first row and language is English and so that came into existence the first row came into existence when we created our base node in English and as we can see the source is empty because there is like it came into existence on its own it isn't a translation the source column is blank but if you go to the next row when we create the Spanish translation for the node we get a new record NTT type node NTT ID 1 and language is ES and the source is English so what this means is somebody used the English version of the node translated it and we got this Spanish node was born so that's what it means and the same for the French node if you see the third one and I wanted to like say German Shepherd dog in French as well but I forgot how it said so the third row is the same way the source is N the language is FR and the NTT ID is 1 so the new thing that we see here as we like we have only one NTT ID as opposed to the other method that we saw so there's one node which has a bunch of translations so which is more logical to have instead of having various nodes for maintaining various versions of like language variations so this is the main difference that we have in Drupal 8 as well so in Drupal 8 when you're translating content no, he asked about Drupal 8 8 minutes left okay we're close to the end okay so the thing is like in Drupal 8 as well we have this thing we have one node and then the translations are attached to that node so we get only one node ID and the translations are maintained somewhat like this in the fields table or some node field data table and all that so this is what happens so for the bad thing about the NTT translations thing for now is when you're trying to migrate something which was translated with this module in Drupal 7 you don't have an out of the box solution in Drupal 8 so we have to do something like some weird stuff like write code so we have to write a migration source and in the migration source we do a bunch of stuff like I named my source plugin as D7 node NTT translation and in there we write a bunch of code to take into consideration the NTT underscore translation table so that we can consider the translations nicely and we write this plugin to basically create a provision for the translations property that we have that we used in the first migration translations true or false so that's not supported for NTT translations yet so for that we have to write a custom source plugin like this I have a blog about it as well so if you want you can read it on our site evolving web.ca because I'm running out of time for this one because I went into too much detail and so we basically consider this table we do some inner join and we tell migration that all our source data is not only identified by the node ID but also consider the language parameter to identify the rows uniquely so and we do some other stuff as well to read the source data in the correct language which doesn't happen out of the box but I'm trying to write a patch and after you do this just use this particular source plugin that you wrote as your source plugin and do the rest of the things just the way you did in the other like content translation module migration so use translations false first then true and you will have two migrations and everything will work okay so this brings us to the end of the main topic and we have some tips for migrating other NTT types as well so what we do is basically the same thing first get the base data then get the translations in another migration so that's what I'm trying to say there okay I think I'm out of time is that what it means okay Austin Powers is sad okay so I have a bunch of slides a slide like the last slide is a bunch of links where you can read more about it and you can always go to evolving web.ca where I have now I think I have more than eight articles on migrations and you can go through them and leave comments if you have any questions and that's it and try doing some migrations if you want to improve like I always use this example I tell people I can swim but I can only swim theoretically because I read some Wikipedia articles saw some videos on YouTube but I've actually never been in a swimming pool so you cannot be like that if you want to do migrations you have to do migrations and then you improve like I will be doing the same thing with swimming so that yep and that's it merci beaucoup thank you


kind of? Louder. Okay. All right. So good evening, everyone. So thank you so much for coming for this session. So before we get into whatever we're going to discuss today, so I just want to have a quick introduction about me and him. So my name is Karthik Kamal Balasubramaniam, and his name is Deepak Dhananjai. Unfortunately, we have really, really long names, both of us. So people call us KK and DD respectively. So you can address us whatever way you want. So just to give a quick background about what we are and all that, so, yeah, obviously, we guys are working as agile coach with different organizations right now. And the common thing between us, apart from being an agile coach, is we guys are trained in this particular school of thought from psychology, which is called Transaction Analysis. So how many of you have heard of it? TA? How? That's cool. Great. So you guys have read this book called Games People Play, which is the popular TA book by the author. Anyway, so this is what we're going to do today. So we're going to discuss whatever we have. You guys know what it is? I'm okay or you're okay?  I'm just wondering, you know, like, what was your intention before you got into this room today? Sorry. Any thoughts? Cool. Yes? What is? Anything else? You have some idea about where we are heading today? No? All right, so yeah. So we thought, you know, let's keep it as vague as possible. Let's pull in more people and then surprise them, lock them as possible. Anyway, so the thing is, we would like to thank Sai. So she's a supervisor for us. She actually supervised the whole session. We actually ran through the session with her to understand from all points if it's fine. So thank you. Thanks to Sai. So moving on to the next slide. So before we get into what we're going to discuss today, I want to set a common framework here, like why are we here? What is it we're going to talk about? So the common agenda, whether we like it or not, after having worked for agile projects in like for many years, we all understand that communication in a software industry has become very, very important for a successful agile delivery. So that is something we all agree on. And like as the manifesto goes, you know, like one of the pointers says individual is an interaction through processes and tools. And we all seek better interactions, don't we? You know, that's exactly what we're looking at. To ensure there are like less miscommunication and people understand each other better. And these are like larger goals. So I'm sure some of you are here to have a better way of understanding this communication better. So one caveat that we have or a disclaimer we have is, better we are not sure. But there is a technique or there is a particular tool that we both have used in our agile projects, of course at various organizations. And we're going to express the tool to you. We're going to say how it's going to work. And we're going to do some exercises around it. And we're going to give you some handouts as well. You guys have to figure it out for yourself if it's going to work for you. That is the protocol that we should set. Obviously, no silver bullets. Sorry, we don't have that. Yeah, so is it clear? All right. So coming to the next slide. So again, another set of introduction. So we're going to set some contracts here. I'm going to set some protocols for the next 45 minutes so that all of us are on the same pace. The first one is going to be time box. We'll just promise you we'll just leave you guys after 45 minutes. We will not extend beyond that. So 45 minutes is going to be time box. And all the exercises that we're going to do, we're going to basically time box it. And any time if there is a lot of chaos and if you guys are not listening to us, we thought we'll just KO you guys with a whistle as it's demonstrated once. All right? It's going to be this bad. So if at all, we're going to tell you guys to stop. So you guys just time box it and then ensure that all of us are on pace. So what is the second one? We're going to use tags today, which means Deepak has actually forced me to wave this tag. But anyway, I'm going to do it. So what are the targets? We're going to have some role play sessions here. So whatever role we are performing, every time we get into the role, we'll use tags for your reference so that you guys know what is the role that each of us are performing. So what is the third one? You want to show them all? Yeah.  So let's see how we're going to use this. So every time we wave this tag, you guys know what we're going to do. So what is the third contract? Confidentiality. So this is common in any professional setting. I'm sure most of you would have signed NDAs in multiple organizations. So you guys would know what confidentiality is. But within this context, there is going to be some sharing exercise. You know, let's say if your partner is going to share something very critical and very crucial, please ensure that you maintain the confidentiality. All right? Good enough? Everyone? All right. Just to focus, you choose what to share, what is comfortable for you to share and don't bring in which you're not so comfortable to share. So we leave it to you to choose what to share with your partner. Yeah? Because it's very important that we respect this contract of confidentiality. Absolutely. Yeah. So the last thing is about respect. So whatever people, whatever they're going to share, let's take them in the standard and not criticize it or give opinions about it. So these are like few small protocols that's expectation from us. Do you have any expectation? Do you want us to add something to it? Or else we can move on to the session. Anyone? Cool? Shall we move on to the next slide? We could just, I will just circulate this. So if it comes short, please share the handouts to the exercises and you can write to us. We could send you the soft copy of this if required. Yeah? All right. So while Deepak is doing that, let me just move on to the next slide. So yeah, so here this is what we're going to do. So before we start, what is the tool that we're going to talk about and what are the modules that we're going to deal with? Let me give you a quick intro about transaction analysis. Some of you have already heard about it. I've read books about it. So TA is one of the school of thoughts and it's part of psychology. And it was devised by this person called Eric Burn in the year 1961. So what is TA? As the name says, it means transaction analysis. So which means we have multiple transactions day in and day out with multiple people. So every time you have a transaction, there is a surface level transaction which is happening and you also have some ulterior transactions. You know, like these ulterior motives are also equally important in any conversation. Just quickly if I have to give you an example what most people connect with, let's say in a college environment if you guys are coming late for college, you know, let's say your professor is already there in the class and someone is coming on, coming late, so your professor looks at you and he says, hey, what's the time? What will be your answer? What will you say? Sorry? Sorry I'm late. What else would be the answer? Yes, absolutely. So when someone asks me, what is the time? What is the time that you will tell them? You have to tell them like this is 9 o'clock, 9.30, 9.45, whatever. But why do we say, sorry I'm late? Because you guys understand that there is a motive behind him asking what is the time? Sorry? There's a context. You know, you guys kind of understand what they imply to say that. Sometimes, or I would say very few times these implications are right or these assumptions are right. But in most contexts, while we may have a communication, we always misinterpret many things and say I assume this is what they mean. Let's say if a manager is not saying hi to me today, it means that he's angry with me. My promotion is going to be screwed. That's exactly the kind of thoughts that we get. So these are the ulterior motives that we talk about. This is a quick example. TA is a school of thought which expands on that. Now, like I said, it's going to be a behavioral science so obviously it's going to take years for someone to master it and understand what it is. And just to keep it to this particular context, we're going to talk about two specific modules. One is life positions. We'll explain what it is. And the second one is contracts. So these are not financial contracts. In fact, you won't believe me. Like when we gave these submissions, the first thing people ask me was, oh, you're going to talk about the cost. You're going to talk about the money part here and we have to clarify putting a statement there saying no, this is not about financial contracts. So this is a different contract and we'll see what it is. So are we cool with this? Shall I move to the next slide? Everyone? Yeah. All right. So what is life position? You know, as the name says, it just talks about where do we stand as individuals with respect to our life schema? Right? So TA basically talks about four levels of positions which is a combination of I'm okay, you're okay and then I'm okay, you're not okay.  Basically four combinations. Nothing more than that. So what are these life positions? So every time I have a conversation, every time I talk with someone, there's always some kind of ulterior transactions or ulterior messages that I always perceive. So based on this and based on what is my life position, I tend to respond differently. The same conversation, the same person, even if the person that I'm talking with is the same guy, my responses would differ based on what life position that I am in. All right? So this is the theory behind it. We're really not going to get too much into it. So we will demonstrate this with a role play. So that is the idea. So I'm going to give a... Just before we go, TA also talks about main philosophies of what we are trying to achieve by understanding all of these. There are three philosophies. Philosophies I'm going to quote. Yeah, people are okay. By definition of okay, it means not a word right or wrong. It's really respecting the person for him and separating his behaviors. Yeah, when we try to look at that angle where we don't label, have you seen across many times we say, hey, he's very rude. Yeah, we almost label the person. Yeah, we say he's very lazy. He's lethargic. Yeah, he doesn't work. He doesn't contribute. So we're almost labeling the person. We try to... By that, we almost tend our behaviors responding to his behaviors. Yeah. So we don't respect him for what he has. He may be bad. His behaviors are not appropriate, but what we have to focus here is separating the behaviors from him and saying his behavior is rude. And then you see a different outlook comes to us. That takes a lot of awareness. So first philosophy is about T.A. believes that Eric Byrne, who formulated this, believes that people are okay. And the second philosophy is everybody has capacity to think. Unless they're mentally challenged and cannot think for various reasons, which is stopping them from, they can think. But did you... I think it's except for the fresh guys who are joining the company. They wouldn't know. No, they can. Really? Yeah. So what we are expecting is not to bring out solutions.  Why don't you do this? No, they say, no, this wouldn't work, because it's not like that.  It's perfectly fine for me. So what we are essentially doing is not accounting his capability to think. We are telling... We are putting almost giving a signal that, hey, I'm the big person solving your problem. So remember next time when you're getting a conversation, where a problem is being discussed with a friend or in the organization, what are you doing when you're getting into this conversation? When you're providing solution, has he asked, has the other person asked for the solution? It's very, very powerful philosophy, because it gets you out of what we call as games, which you're not covering today, but it's very interesting article to look into. And the next one is a little philosophical, not really to organizations, but yet applicable here. Because many of our behaviors are originated from our own self in the organization, right? It's not really like professional, professional stuff. So people decide their own destiny and these decisions can be changed. Yeah, he really meant that, okay, we decide to live some way and we decided very, very early in the childhood. And we always be running those same strategies over and again, which will not be healthy. So having said that, we have always the possibility to change. Yeah, so we have this three philosophies help us understanding the life positions and the change we want to bring in. And that's why, you know, we have this module. Sure, sure. So yeah, so coming back to what we were discussing, so you guys have a fair idea, like a lot of jargons, yes, sure. The philosophy basically says that differentiate people and their behaviors. So try to focus on the behavior and not label the, not to label the person. I would like to add that Eric Byrne, he got a lot of inspiration from Gandhiri. And they say it goes on the similar lines that hate the sin, not the sinner. Yeah. It is the same thing. Yeah, very nicely. Thanks for sharing, yeah. All right, so the role play here. So it's not just going to be a role play, it's basically going to be a quiz session. So certain disclaimers again. We're going to try to be as dramatic and as exaggerated as possible to make it more fun. And I'm telling you, we both are like bad actors, we're pathetic actors, but we're still going to try to pull it off. So you guys have to basically guess what is our life position and where do we come from. And if you see us falling down, please don't call the ambulance. Yeah, really. Okay, so we have been trying this for some time. Let's see how it goes. You guys see how bad we are anyway. So here is going to be the role, so like I said, I'm going to be an agile coach and he's going to play a role of an agile manager. So here's one small clarification. We didn't want to focus on one specific way of working, like Scrum Kanban or something. And hence we didn't want to choose a Scrum Master. So hence we thought let's be an agile manager because manager always has a role to play in most organizations, more contextual. So that's the ideology. So what is the situation here? Very, very common situation. Let's say there is a team who has been working in a Scrum project for the past six months and they don't have test automation. So basically they have not automated anything ever. So now there are a lot of bugs and there have been a lot of defects and the product is failing. Sounds familiar? Anyone? Always. So what I'm going to do is I'm going to basically go and talk to the manager and say, hey, this is a scenario, what are we going to do? So what are we going to do now is his position, like his statements may differ more or less here and there, but mostly whatever Deepak is going to say is going to remain constant, you guys observe me because my reaction and my responses is going to differ for each of the life positions. So the same situation, same guy, you're going to see how the conversation will be different for different cases. All right, Farina? And in the handout you have a section, the table which has a behavioral aspects. It's just a guideline. All of these positions, before we go into the role play, I would like to clarify one thing or give you information that when we're saying we are in the life position, it doesn't mean we always operate from there. So it's predominantly during stressful and difficult conversations and situations, we tend to fall in here. Everyone of us have a predominant life position and that comes from our early childhood. So what we're trying to say here is life positions are not labeled. We're not saying you're always and I'm not okay or okay conversation. No, it's not that. In difficult situations and difficult conversations, we tend to slip there and it's good to know what are the behaviors like in those life positions and that handout gives you a guideline and understanding. So please go by the intent of it, not really like a check mark. So it's really interesting to know how each one of us can operate from one of these situations and during the conversation also you can operate from any one of these conversations. So it's any one of these positions. It's not like fixed. It's not like you'll always be there. Which means you'll change from one position to another the way it is. And one more thing I want to add here is none of these are right or wrong, by the way. It doesn't mean that if you're in one life position, you're a bad person. If you're another thing, it's not about you're being a good person. It's focusing on how do we make it more fruitful for us. It's basically about self-awareness. So you don't have to feel bad if you think you're in one of the positions. That's to say from where to where you have to go. While having said that these are positions which are there, that's part of us. It's a unhealthy behavior because it doesn't focus on solutions and that's why green is more like a healthy position to operate from. The red and green is again not to say it's bad and good. It's to really say whether it's adding value to this discussion or not. And also like you mentioned, you just move from one position to another all the time. It's not like you stick on to one thing. Shall we begin? Yeah, it's not the script so we can start. All right. So I'm going to demonstrate the first role now. Hey Deepak. Hey Karthik. How have you been? I'm good. So how are you? Good, good, yeah. Okay Deepak, so you know what? We have been working on this product for like six months and we still don't have automations here first. You know Karthik, you know it's always like this. We don't, we have always customer issues. The sprint also we have so many issues. I don't have bandwidth to support you. What are you talking Deepak? All the time you keep telling me the same excuse. You guys are not agile here. You're not working. This team is not agile period. It's not working. And I don't think I'll coach you anymore. Okay. So flip. Yeah. We're out of role play. Yes. So this is an important aspect. So please remember when we are flipping. Okay. So we know we are seeing us. And then tell me what life position was this, was Karthik, because focus on Karthik, because that's what we're demonstrating. Yeah. Which life position was he operating from? So basically judge me. One up. One up. Very good. Yeah. So behaviors are like finger pointing, blaming, no listening, no opinion, no really asking the other person's opinion. There's no, no choice for that. See every life position has a theme of operating. Yeah. So one of the themes of I'm okay, you're not okay is get rid of the very, the feeling is that anger always irritated. See they're irritated. They always want to get rid of the person. Yeah. It's my way of life. There are more examples given there also, but just to connect things very clearly. Yes. We thought of giving one metaphor for every life position. So one metaphor you can remember for this is iron fist. It's like either my way or the highway. You better do it my way. It's like one up position. Yes. Yeah. So should we go to the next role? So we flip again. Yes. We're getting used to it now. Yeah. Hey Deepak. How are you? I'm good Karthik. How are you being? I'm pretty good. But you know, right? This test cases are not working yet. We don't have automation yet. Can you please look into it? You know what? Every time we have this problem Karthik, we don't have bandwidth and customers, customer issues has so much that I don't have time to spare. Yeah. Don't tell me this Deepak. I don't know what to do. You know what? Can you come and talk to my customer today? See me talking to your customer will not work. Why don't you talk to your customer? I think you're the best person. I don't know about Ajail. Yeah. What to do about it? So can you do something? Can you suggest something? I'm clueless. Yeah. I don't think whatever you are saying will work. Why don't you try this? You go and talk to your customer. Okay. So we flip. So which life position? What was happening? What was Karthik trying to do? Hopelessness. Excellent. So we have good actors. Good points. Yes. So yeah, hopelessness. Thank you. So hopelessness. So you know, sometimes you'll have endless conversations. Yeah. And you'll have conversation meetings over meetings.  Yeah. And that's a very good example to look back. Am I operating from that life position? Or is the other person or I'm getting into this conversation? Really to know about hopelessness position is you don't believe in the self. You don't believe in the other person's solution also. Typically in the organizations, we say, okay, minutes of meeting, action points on everybody. And then what is the real action we want to take? That's not defined. There's no goal. There's always going around the bush. Yeah. So one common example, which you would have heard a million times. Yeah. At least I have heard a million times. I love this. So when we talk about this one, like say, I'm going to go and tell them, you know, can we do the DSMs on some time while your guys coming every day? So it'll be like, yes, we can do the DSMs. But what happens is my kid is working here, so I have to put her there and then I have to come back. Hence, I can't come by this time. So I just tell them, okay, can we work on this time? Yes, we can do that. But still, you know, which means the whole S-burting conversation. We just go forever and ever and you really don't go anywhere. So many times we face this situation while we communicate with people. This is primarily because they operate from a position where they think everything will not work or many things will not work. It's not they're bad again, but one of the metaphors that you can remember here is we thought we'll use this word called perineally skeptic. You know, like forever, you think that the whole world is going to be doomed and nothing will work. And often when we go as agile coaches in my own experience, and I'm a skeptic also shared this, that we say, yeah, I agree all of this, but in my team it will not work. You know, whatever you're saying, in my team it will not work. So it's typically like, you know, you get to see that and hear that. Especially the most interesting part is when you work as an agile coach with different teams and sometimes organization, the first thing that you hear is, agile is good, but it will not work for my product. Yeah. You know, we work in a very complex environment. The requirements are changing. Customer is very difficult. Everything. Yeah. Okay, so let's go to the next one. All right. Okay. Ah, cool. Oh, hey Deepak. Hi, Karthik. How have you been? I'm very good. So you know what? I want to understand about this test automation. Our cases are failing. What are you planning to do? Karthik, you know, this print also, we have enough customer issues. Yeah, we can't make any changes this time. We don't have bandwidth at all. No, but people will ask me, you know, they will just ask me what am I doing as a coach and all that. So can you do something? No, Karthik. I can't do anything. You do something. No, Karthik. I can't do anything. You do some training or something next print. We will see, you know. Training and all that is okay, but okay. Will you do it in next print for sure? For sure. I will do next print. Cool. Yeah. So have you come across? Thank you. Thank you so much. Yeah. Have you seen, did you also hear what he said last? Thank you. Thank you. Did I do any favor to him? Of course you didn't know. Yeah. So this was mostly, I am not okay or not. I am not okay. You are okay. So the, you know, in conversation, you can hear 10 thank yous and 10 sorrys. Most of the times, you know, and that's a clue to know whether I am operating from that position, whether the other person is operating from that position. And typically you have conversations which when, which can go, they are very afraid to confront. They don't get into arguments. Yeah. Whatever you say, okay, fine. Let's avoid confrontations. Let's assertiveness is not there. It's not. And typically for coaches, it's very important to be assertive because it happens like this. This print, you come say sorry and then you know, we can't do it. Okay. It's he's doing some favor to me. Yes, absolutely. So it's very important to notice. So one of the metaphors that we want to use here is nodding head. So, you know, anything and everything is okay. Whatever you say is yes. Yes and yes. Okay. And typically, sorry. Typically you can say agile. In agile, we can do this also, you know. That's how coaches justify in this position. Okay. This is also fine in agile because it's a way, it's a framework. You know, it's a principle. It's a culture.  It's very important to be aware of these positions we operate from. Yeah. So just quickly moving on. So we have kind of understood what these three roles are, you know, these three life positions are. We're going to do an activity. Flip. The last part is going to be the, the last segment, which is I'm okay or okay. We're going to demonstrate it further. But as you understand, it's going to be a healthy position where you feel both the parties are okay. So the conversations are often positive and engaging and it results in something solid. Let's do an exercise for that. But before that, what do you guys, what we want you guys to do is, what is happening in the scenarios? Did you observe? I was the same. And also we have seen sometimes I can't, I can't change the other person. I can't have this conversation with this other person because that person is so-and-so. You know that you've heard it, because this person is like this, it's very difficult for me to have any fruitful conversation. We often hear that. And I was the same person. I almost use the same dialogue. I was not reading it out, but I was using the same dialogue and you know, the change in him, you saw that the different responses he got for it. So it's important to know these positions are not. What happens typically after knowing this, we almost put it on the other person to see, okay, which life position that other person is coming from. It's good. But however, first step is to put it on ourselves and see where are we operating from. Yeah, absolutely. So if you just quickly look at summary of what is happening in these life positions, you see that there is always this thing about one single right solution. Let me find only one solution and there is no other way. It's like either I find this or it's not there. Second one is my way or the highway. And let's focus on solution and course. We are not really heading to any solution. We're just basically running around the bush. And the last one is no active listening. This is very, very important, which means we are hearing to them, but we are really not understanding what the other person is trying to say. These are, these awareness is very, very important for all the coaches. So hence what are we planning to do right now is we're going to have a small exercise on life position.  So you have understood life positions to an extent. So what you do is try to define a stressful situation in your life, what happened in the past, and then think about these life positions and if you're okay to share, this is very, very important. If you're okay to share, share with your partner about what life position you were in during that exercise or during that situation. You want to add something? Yeah. Also it's important to see the behaviors, concentrate on the behavior aspect when you're sharing and the suggestion for partner instruction, very, very clear, full instruction is no giving suggestion. You remember the philosophy, everybody can think.  Yeah? And then help them, the idea of sharing it is so that the other person gets clarity. I don't know if both the partners can do the thing. We have about three minutes for this exercise. We'll give you three minutes, you guys figure out if you want to share or one person want to share. Sure, do both of you or one person want to share. Yeah. All right? But the idea is to start the awareness, you know, because everything starts with awareness and acceptance at one level. Yeah. So shall we time box it deeper? Yeah. Yeah. So we'll start. Three minutes and we'll just stop you with a whistle. Yes. All right. Okay, so that was good. Okay, so that's the contract we have. Anyway, thank you. So yeah, so the idea was not really to really dwell into it so much, but just to have a initial starting point so you guys can go on with it later. So yeah, so they're coming to the next part. Yeah. We move on. Some of you have not got the handouts, we ran short of it. So if you can leave your mail IDs on the question board that we have at the end, so we'll mail you the soft copy of it. So you have the entire thing on top. You can use it. Or you can use Google. Yeah. Now this is done by us, so we have it. Yeah, sure. Okay. Yeah. So go next. So yeah, the next slide. So we all know the target that we want to go is have an okay-okay conversation. So okay-okay conversation is all about respecting the other person, being open to the other person's opinion, be assertive, yeah, all of these. We really not being judgmental. Like we said, don't mix the behavior and the person, all of it. Yeah. So what we want to do is in achieving, so we know what to do. Okay. What we want to operate from, but how do we do it in such conversation is using contracts. Yeah. So we'll demonstrate it through a role play again, but before that I'll define it. A contract, what the burn in 1966, define it as an explicit bilateral commitment to a well-defined course of action. What it really says is in any work to be done. Yeah. So both of, both the power, all the parties involved, involved understand what is to be done, who will do what, how it is done, how the action is done, all of it is to be discussed explicitly. So the contracting is really to bring in our covert assumptions on the paper, on the table and discuss it. So we have three levels of contracts, administrative, professional and psychological. Administrative contracts, arrangements, you know, when do we meet, where do we meet, when is the meeting, who will come for the meeting and then there's a money involved, how much will each person get, all of those. And professional contract is roles and responsibilities. Yeah. Who does what, how am I in this meeting, why am I there, all that stuff. So this is mostly taken care in the organization on paper. If you read your offer letter, mostly all of this will be there. But in meetings, we also would like to have this awareness. What is psychological, which is predominantly missing, is it's like the lava in the volcano. Yeah. So which is not spoken about. People are not, don't talk about psychological aspect. Psychological contracts are to improve emotional value of the team, of the group. Yeah. So really to talk, how am I uncomfortable. Karthik mentioned an example of, okay, if the manager doesn't look at me and say hi, then my promotion is not there. Or to an example, okay, if anything goes wrong today, then he would think that I have not done. You know, so that's kind of a thing. So really to know when my manager will communicate to me when he's angry with me, or is not okay with me. When I have, do I have a forum to express my discomfort? How do I express? So these are the psychological contracts, which Byrne talks about, which is very powerful. And I think as coaches, it's very important to know. Otherwise we get into this, like you know, we try to pull the cart somewhere, and the teams want to go somewhere, the manager wants something else. So it's very important for us. So I want to add to what Deepak said, just to contextualize it more, like what was happening day in, day out. I remember I was just giving this interview, you know, your interview. Yes. So one of the questions that I was being asked is, like how do you track these action items? Yeah. So later I got a feedback saying that I didn't answer the question properly. So I was like wondering, you know, what went wrong. So when I really did a retrospect of what really went wrong, what they were looking for. See for me, when you say about, see we all do work contracts. You know, we just say, do this this time, like this and this process, this tool, this Excel and all that. But what we miss doing is a psychological contract. You know, to understand, are they really comfortable doing that? And we all know by experience that anybody, if a team decides to make Scrum fail, they will make it fail. No matter what, number of tools that you introduce, number of Scrum boards, managers, everything, you will still make it fail. You know, so that's the reality. So that's where the coach's role is very, very important because you have to be always watchful of what is happening. So one of the questions, like I said, it was being asked. And then when I did a retrospect, I realized that what they were looking for is like, how will I put in an Excel? And when will I ask them, how will I track it? How many mails will I send them? But what I was really looking at was a psychological contract. But this is something we often miss. So even when we decided to do this topic, we thought, this is the crux that we have to brought out in Open because that's the main role that we have to play. But anyway, we're going to demonstrate that with one demo, one particular example. And after that, we're going to do an exercise with you guys. Fair enough? Yeah? Same thing. So I'm going to take the same scenario. I'm going to work with my tag, which means I'm an agile coach now. So, yeah. So let's do it. Hey, Deepak. Hey, Karthik. How are you? I'm good. How have you been? Good, yeah. All right. So Deepak, you know, there is a thing now. So we know that these test cases are failing right now and we have some issues. And we also know that we didn't do any automation for a long time. What are your plans for that? What are you looking at? You know, Karthik, as usual, we don't have bandwidth. Our customer issues are there, the sprint. So I don't think I can do this sprint. See, I do see that you guys are running out of time. Like, I really see your team members are working for long hours and there are a lot of issues in that. But still we know that this is very important. So what do we do now? Like, do you have any solution? I don't think of any solution because customer has to agree for everything, because he's paying the money. So I don't think I have a solution unless we convince the customer. Absolutely. But will your customer be convinced? I don't know, Karthik. It seems like so many things are there right now. All right. I understand all of it. This is very, very important. However, if I have to start something today, because this is also equally important in long-term, if I have to start something today, what is that one single thing that you will do? Doing it with the customer, I mean having a conversation with the customer is important, I feel. That's a small step I have to start to do anything big. So can we start with that? Yeah, I think we can. We can give it a try for sure. That's fantastic. I think we should do that. So do you want to fix a time? Saying this is when you want to have a meeting and all that. We can do some time. Some time is still not any time. I mean, I'm just trying to understand if you want to fix one particular time. That would be great. Maybe before the sprint, next Monday. That's great. If you're going to fix it on Monday, let's send the mail and then sort it out. But having said that, I would also like to understand as a manager, can you do this? Or do you want some other stakeholders involved in this decision? It's a good question. I think I can, because I'm managing the period for the project. So I think I can still talk to the customer. Perfect. Perfect. But however, while I have this discussion, I also sense some kind of discomfort when you, so are you really okay doing this? I'm glad you brought it up because you come as a coach, you tell a lot of things about agile and all that. I feel so, okay, wow, we can do it. But the customer doesn't know agile and I'm not super equipped. So he'll ask a lot of questions about why do we have to do this? What is the return of investment and things like that? Okay. So I'm really not, I don't think he will agree, but I can give it a try myself. So that's the, So are you looking for some help? Do you need some help? So can you join the call and back me up whenever there's a need to keep clarification about what is the need to do all of these things? Absolutely. If you really think that would help, I think I'll be there. We'll do it. Sure. Thank you. Thank you. Okay. So you saw, my attitude was still the same. Yeah. And what are the changes you saw with Karthik? Can you just tell what would, if you have to understand and put, did you see any administrative contracts? Did you see a change in his attitude? Except for me overacting and being more dramatic. Yeah. So that taken apart. But yeah. So what else were you, what else did you observe? Yeah. He was persistent. And he also said, you know, he also recognized that, acknowledged that I was stressing and we were stretched. We know, he know, he understands that we have a lot of work. It's not like typical, what we say, managers say that our team say, agile coaches never understand what we do. Yeah. So it's really about understanding. And also did you see a professional contract? He also asked me, in your capacity of manager, can you really do, take a call on this, have a conversation? What are the psychological contracts that you do with me? Excellent. Are you comfortable? Yes. He was very positive. He also looked at the problem solution. Yeah. What can we do? And you know, he also locked me in a time where, when I said, how we can do it sometime, you know, but he told, okay, can we define a time? That is a very good example for administrative contract. Yeah. Not leaving it open. We got a solution out of it. Yeah. And psychological contracts are so important, because if you had not asked this, I would go with a similar belief of mine, that agile coaches always give Gyan, and this will never work. I'll still have a call with the customer, and I will still have a call, maybe. But my approach and attitude would be different to that. Yeah, because we always believe that it will never work. Yeah. And also one thing which most coaches are supposed to do, is like, I try my best today. Like, you know, just to ensure that you don't give any solution. Yeah. You don't tell them what has to be done. Be with them, and make them have the decisions for them. Say, this is what I want to do. So, that was also another observation. Yeah. Yes. And because I was thinking, who will help me with that? Because it's the reality, right? That I don't know everything of agile. Otherwise, I would have been a coach myself. You know? So, but my point is that when these things are spoken about, okay, what is your discomfort? In a group, in a team, it's important to understand the style of working. Some people like working in isolation, which is misunderstood that he is not group person, which is not true. Yeah. So, really understand what each person's style and learning pays. You know, it's really to understand how we create a space to have such conversations. Absolutely. So, I think so, that pretty much explains the okay-okay position as well. So, this is important because the culture that we are talking about, the openness that we are talking about, the transparency that we all want to foster in any organization, starts from small steps like this. So, it cannot happen with a process by a step saying, this is how I'll do things. Of course, that is important. The framework is important. But day-to-day interactions, the conversations that you have with the team is very, very powerful. And that really makes the team agile. It really tells them what it is. So, just share one funny experience that happened with my team. I've been doing this for some time now with many teams, many, I mean, few customers and all that. I was telling Deepak also. So, we use this word. I was just telling, the first meeting I was having with one of the team, I said, you know guys, what is the first meeting we're going to have? And this is where we're going to get empowered and all that. They quietly laughed. And this is awesome. They said, okay, empowerment is a funny word now. They don't use it. So, anyway, but the idea is, you know, what it is. So, it means, you have to really talk to the team and understand what it is. You know, openness and transparency is what we're aiming at. And just to add to one point, most often, we know we have to talk about these contracts. We have to talk about the feeling of the person. And there's a myth almost, and there's a belief strong that organizations don't talk about feelings and emotions and all that stuff. It's just slowly changing. I'm glad about it. But it's also important to know that that's a fact. We're working with people with emotions. We're not working with machines. So, if a person feels sad and bad about it, it's important to know why he feels that. Otherwise, it's not going to be productive. No matter you put in motivating factors of bonus or punishment, it doesn't go to work. Yeah? So, it's very important that that's why you're focusing more on the psychological aspect because most of the other two are mostly taken care of. Already in place. Most organizations do that. Anyway, so let's quickly wrap it up with an exercise. So, the activity is very simple. So, again, find the partner, same partner or a different partner, somebody in the room. And just decide on a stressful situation that you went through. And just the other person over there, just listen to what this person is saying. Like I said, actively listen. Try not giving suggestions as much as possible. To guide you through this exercise, if you look at the handouts, and some of you might have to share, sorry about that. So, whatever questions you have, see if you have asked those questions. Either you can just go through the questions and then do it or see what fits for your context. This is just a beginner exercise. So, just do it for, you're going to time box it for three minutes. Yeah. About, yeah. Three, four minutes will let you know. So, you start. See, these questions are like a handout. It's a sample. See, which of these have you used in your conversation, in that stressful conversation? And which of these may be handy for you if you have to relive that conversation? Yeah. Which of these questions you may use to make this more, you know, a good conversation? Okay, good conversation. Yeah. So, we have three. In the last page, you have three types of contracts and some examples of that. So, choose a partner and share. Bring a real example, not a hypothetical situation. Bring a real example because that's when you get more awareness. Fortunately, we have a lot of them. Yeah. So, you can take one. Yeah. We will, you can just mail us. Your dog. Yeah. Yeah. Music will, but it's still very important. Yeah. Yeah. This is how we share the information. Yeah. Other people have seen that the dog is here. Yeah. This is where the dog is here. Yeah. You should have a mirror. Yeah. You could use the other. Right. Bring a real example of that. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Yeah. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. Bring a real example. So, before we go into the discussion, some of you want handouts and some of you may be sitting with a lot of questions and unfortunately we don't have so much time, so you can write your question and leave your mail id to respond to it or we are there around to talk about it. And there is another section called takeaways, we would like you to share what your takeaway is from this session, so we are going to close it with a couple of experiences, I mean two people here, if you want to share your experience, like if you want to connect it to your situation and be briefed to the audience, any of you have any other questions? Very short sharing, quick sharing, let's do it, quick sharing, anybody wants to, okay. Hello everybody, myself Pappena, basically I am a software engineer, before going through the questions, I was having a partner, unfortunately she got some college event, then I was on my own, so I thought let me do some thought experiment, so I was going through the questions and I was imagining the situation if I am sitting on this side or on this side, as we play chess with ourselves, so I was doing the same experiment and psychologically questions were very nice, in the way that if I am the boss and I am the employee, then what questions I am going through was quite eye-opening for the boss as me, and for the employee probably I am on the next side, I am not okay but you are okay, so I am always in the child and parent, I think it is like that, so I found that the employee is always on the side, oh God please, and then the boss is, yes I am like this, so doing this thought experiment, it was quite good experience for me as an employee as well as a boss, thank you. Thank you so much, thank you for sharing, very nice, one more sharing if someone wants to do, no? Yeah, so we had a very good experience doing this and we were little anxious because of the crowd, no handouts, but we have been very good crowd, so thank you and like I said you can share it with KQB, you can leave the questions there and also email us if you want the exact copy or as always you can Google for it, so thank you so much for joining us for this session. Thank you.


The study aimed to assess the feasibility and acceptability of using a Facebook Messenger conversational agent promoting healthy lifestyle behavior changes in the general population in Singapore. The results showed that the delivery of the conversational agent was feasible and acceptable, with high retention and engagement rates. However, recruitment was low, and preliminary efficacy of the intervention did not show definitive improvements in health-related behavior. This article was authored by Dakshina Ardithi Dhinagaran, Thirun Vukharsu Sathish, A.I. Jha Sung, and others.