Good afternoon. Welcome to an exchange for media conversation today. This Friday we talked to someone who really doesn't need an introduction in the Indian media and broadcast industry.  He was also exchange for media's first impact person of the year, 16 years back. He's somebody we're doing a conversation because it's contextual to his book that he's just written and published. Let me welcome Mr. Peter Mukherjee who's an author, is a former CEO of Star India and built Star India to a level from where it could take a leap. So welcome Peter. Today we're talking to you about your book, Starstruck. So clearly for our viewers, if they haven't picked up the book, they can. It's called Peter Mukherjee's writing Star Trek, Confections of a TV Executive. First of all, Peter, let me start by asking you how have been the last 12 months for you both personally and professionally? Well, Anurag, before I say anything, let me just first of all do what I really want to do. It is to say thank you very much for having me here, giving me an opportunity to talk to you and to talk to all of your, you know, your followers. And it is really a pleasure to be able to be back on exchange for media after such a such a long time. And it is wonderful, a great feeling that I've that I'm experiencing. So thank you for that. Your question was how have the last 12 months been?  You know, I, in many ways, it's been very busy writing and finishing and getting all the, you know, the tidying up that's required before a book gets published. But the people at Westland, and have been fantastic, DP in particular, and Shweta at the marketing end of the spectrum have been absolutely fabulous. And of course, without their help and inputs, you know, the book would not have been, you know, the way it is today would have been a lot less credible, I think. I think they've really put a lot of time and effort into it. The last 12 months from my point of view have been hectic, partly because of the book, but also despite the, the, you know, the lockdown that's everyone's experience. It really has been a time for introspection to be able to kind of realize the value of, of, you know, being at home, despite being in a in a lockdown mode. And for me, it's been particularly so because, you know, it's been a, it's been a cathartic experience for me, I've been able to catch up with some friends of mine in the recent past, once the lockdown has kind of eased up. But apart from all of that, it's been a time for, as I said, introspection, but also a lot of fresh thinking. And, and I think some of that is reflected in the, in the sort of latter part of the book as well. Fantastic.  Of course, you went to do school you went to Hartford College in London. And, you know, let's come straight to the book when you talk of confection of a TV executive. In your book you write that, you know, when you took a star TV, you were given a team of very young relatively inexperienced executives. And you write in the book that we were operating with a Johnny English approach.  So give us a sense of what do you mean when you say that elaborate on it. Well, let me tell you, I think first of all, just to kind of rephrase the given a team I don't think I was given much of a team to be honest when I got here there were a couple of people. And there were excellent people actually in my team of things at the time one of course was Yash Khanna one was Raj Kama, and Raj Nayak, Megha Tata, then she was Monica.  So, you know, the early days was really spent in terms of trying to make them and build that team out as far as possible, build it out with with credible people passionate people people who are gutsy who were daring. And it wasn't necessarily all about, you know, somebody who had to have a business management degree or an MBA or anything the sort of course they had to be educated, and they had to be had to have a good way with all to life had to be people who played by the rules, and, and were really, really hardworking. And, you know, for them it was time was not something that they would necessarily be looking at, you know, on a daily basis they were just committed to what they had to do and I think that is what was the sort of basic composition of, of, of the team. But I think, you know, the second part or what you said, which is to kind of bringing a set of people together at a point in time was, you know, crucial because we were quite honestly you know we were a foreign company. We were in English as a language as a service. We had competitors who were in Hindi and, and you know for us it was nothing but an uphill struggle. So when, when viewers today watch some of the star channels, many of them, I think we'll probably forget if they knew at all what it was like in the very early days of this business, and how it was at that point transformed. It was done with, with extraordinary amount of hard work by the people that, you know, were there the company at the time, and then, and following that when I, you know, when I was appointed as chief executive. Then I think, you know, we were able to kind of really put the finishing touches to that, to that team and expanded in different directions in programming distribution, and so on and so on and so we'll talk about that later. Peter, one of the chapters, the second chapter in the book is changing people is better than changing people. And really the media business is about people. So why don't you give us a glimpse of what's in the chapter and what are you trying to say. You know, that's a, that's a quote which I've credited to Larry Summers, who used to be the head of Harvard Business School and an eminent politician in the United States many years ago. But it, I heard that I heard him say this at a conference and he was, you know, it was a fascinating term which I'd never heard before so I, in the coffee break I went and, you know, spend five minutes trying to get his attention and have a chat with him about it. And really what occurred to me at that point was that, you know, changing people is better than changing people now you can read it any which way you'd like and that's what makes it an interesting phrase, right. And for us, and you know it was not about changing people's habits, it was about changing people if they were not, you know, cut out for a particular task at hand. And I think that's something that we did right in the very beginning and then once we put that team together, then it remained pretty much untouched and unscathed, all the way through till, till the time that I actually left in, you know, in the late 2000s. But I think the, that particular chapter is very much about, you know, people skills how to manage people how to kind of make sure you get to get the best out of them. And I think obviously you've got to read the book in its entirety to be able to get a sense of, you know, the today, the past, and hopefully a little bit about what's likely to come up in the future. Now, in the forward, you talk about success and failures are part of life. And while success is good, I believe failure is great.  And you then go on to find James, a new scope for giving you the opportunity to be able to take star at that point and make something out of star India's business. So, if you had to say, what was the high point of your innings at star India, what would that be? You know, it's a very tough question. There were lots of highs and there were, there were, you know, a few lows as well, but I think there were lots of highs and it would be very hard to kind of pinpoint one, one, you know, unique high point but I think if I was pushed to the wall on that one. I would have to say that, you know, the day we hit 50 out of 50 programs in the top listings of Hindi general entertainment was certainly has to be for me, you know, a particular, particularly, you know, memorable milestone moment. I think it was, I would go as far as saying it was probably a life changing moment, not just for me but for all the people that worked at star at the time. Because none of this happens with, you know, it's not an individual effort. This is entirely about teamwork. And whosoever is the person that happens to be, you know, leading that team or leading one of the teams that is responsible for making things happen there. I think it's, it's, it's a great moment in that person's life. And for me, that was without doubt, I think, you know, you know, 50 out of 50 hasn't happened before. Hasn't happened since, since, and I would say, you know, unlikely to happen for quite some time yet because you know the market has changed the dynamics are different. And so, you know, high point wise, yeah, 50 out of 50 without doubt. Okay, what would you say about, you know, you wrote in Amitabh Bachchan for KBC. And you know, that was itself a very big success.  The channel had a big driver, and you started taking big bets. I remember the week you hit 50 out of 50, I know, we did a piece on exchange of media, so on and so forth. But to me, the con vane ka karod pati, and the way it spanned out on start after some other not so successful starts was also a very big milestone. Would you agree? Yes, of course, look, I think, you know, it was a very big milestone without doubt. But I think what was significant for us at the time was not just KBC I think KBC was certainly a, you know, one of the main milestones or major milestones in that journey. But it was also about, you know, our programming team feeling confident with the lineup of programming that they had, which was following KBC in order to be able to then, you know, continue that. You know, the opportunity that the battering ram of KBC provided to the other shows that followed. And had it not been KBC, maybe the others wouldn't have performed as well. Right. And certainly if it wasn't a combination of all of the shows in prime time that delivered that 50 out of 50, then I think, you know, the overall performance of the channel would have been as astounding for us and for the marketplace as it was. So without doubt, I think, you know, the placing of bets is something I think one has to do on a regular basis. You don't really think about it too much when you're at the table, so to speak.  So we were hoping that it would work. We had no idea that it would or it wouldn't. As you say, we had experimented with a variety of things before that. My predecessor, Mr. Rathikanth Basu, who had initiated this entire move into what we used to call localization at the time. And as part of that exercise, he had, you know, introduced Hindi programming, which he could get had relatively short notice because, you know, programs take time to produce and put together and get on air. So he was able to get his hands on some of the content that was available in the marketplace, not a great deal, but we got some. Some of it, you know, was reasonable success. Some was not so successful, but overall, our push into localization started at that point. I was fortunate that some of those experimental aspects had been taken care of prior to my, you know, sitting on the saddle. And had it not been for that, maybe I would have felt the same amount of pressure that, you know, my predecessor felt in terms of going down the route of trying dubbing, trying sort of patch together content that came from here and there and everywhere and not having a clear cut kind of strategy in place to say, look, now we can go ahead and do, you know, 100% Hindi content. We were restricted from a legal point of view. We had restrictions from our, you know, from our partners. And I think all of those things had to be taken into account. And in many ways, as I say, I think I was very fortunate that some of those had already been done before I got there, so that I didn't have to go through those tunnels myself. I was out in the open, we were able to play. And we had, you know, all the resources at our disposal at that point, we weren't restricted in any particular way. So I think big bets, possibly, but you know, as I say, those are things you do on a daily basis.  I think, I think placing big bets is, you know, is an exciting part of the role. Yeah, and I'll take some of the chapters. I, you know, I want the viewers and readers to kind of get a glimpse in the book. So I'm sticking to the book. In the chapter eight on the book, you talk about winners have parties, losers have meetings.   And why don't you tell that story? Well, it's a, it's a lovely story and it kind of gets takes me down memory lane very nicely because it, it was a Sunday afternoon and I was sitting there having had my Sunday preferred lunch, which was, you know, some nice Bengali cuisine of fish and fish and some kind of rice. And, you know, my, my, my, we didn't have mobiles or that particular point in time and, or maybe we did but my, one of my phones rang and I remember answering it and there was Gary on the phone and he said, because we got a minute, can I speak to you. I said, yeah, of course. And, and he went on to tell me that look he had a, he had something in mind which he wanted me to do and would I would I consider doing it and it was a question which this is what we have in mind is what we want to do where you are you up for it. And really it was a question of, you know, one of my favorite things is the Pope Catholic because it, you know the answer to that is a, is a resounding yes.  I said, I was going to tell him then I said look hold on I'll call you back. Just to kind of get my breath and make sure that I wasn't kind of in some form of cuckoo land and hearing things so I had to kind of sit down. I had to go and have a quick chat with my brother go to him and say look this is the call I just had. And I better call him back right now because he'd be waiting for my response so. So I called him back and of course, as I say it was a resounding yes and for me that was a, you know, I think an exciting moment but also incredibly frightening, because it was a business that was really in a fair amount of trouble. And as, as, you know, as the channel was that particular point in time, you know, we had tried numerous things wasn't working. We were not sure whether the levels of investment would continue. You know, we were on shaky ground put it that way. And, and to take on a business at that point was always going to be a challenge and be a risk. But you know, I think we were all wired differently in those days so we say absolutely yes definitely let's go for it. I'm telling Gary look I'm going to need an awful lot of help from you. And somewhere in that conversation you remember I remember him telling me that winners have parties losers have meetings. And for me that has always stuck. And I've used the time and again. And I think it kind of resonates with with people a fair amount even today. In the chapter six.  And I'm proud of the ones that one I've got this is a quote from Ruben Murdoch. Now, give us a sense of this chapter and what you say in this chapter. Well, you know, the quote, in a way sums up a lot of what's in it. And as you're progressing into into a sort of territory where you are taking on your competitors in in a meaningful kind of way. Then you do run up against people who, you know, want to try and slow you down or pull you down and, and I think in India we have a in many cases we have a bit of a crab mentality so if you see somebody doing well you tend to kind of rather than give that person a helping pull them up, you know, you tend to kind of drag them down and I think I got a sense that that some of that was happening to us in different quarters and I think largely because we were a foreign company.  And, and I think some of the some of our, you know, competitors of that particular point of diamond in there were, were a bit nervous of what he might, what he might do whether he would get into print, whether he would do things with, you know, with television and to be, you know, introducing pay services, direct to home, all of those things were kind of only on the agenda. But from a competitor point of view we were, you know, in a situation where we did have a fair amount of stress that we needed to deal with in addition to the regular day to day management of a company so a fair amount of management time in terms of number of hours in the day was gobbled up in, in really addressing those kinds of issues, which I think is a bit sad because had we had a bit more time to be able to, you know, not have to worry about those kind of issues then, you know, maybe things would have been even better for us. Now, let me ask you two, three questions which are a little broader than your book and then we'll come back to the book again. One is today, Star India is part of Disney, right? Also the environment is changed, OTT has become the biggest driver of content consumption and also content creation, right? So, tell me, when you see Star India from outside or Disney India if I may call, what is it that you see? Well, you know, sadly, I've got to say this and be candid about it because I actually don't watch very much, you know, Star channels currently. The ones I really like are, you know, are not necessarily available everywhere and I think the combination that Star and Disney has is extremely powerful, both in terms of content, in terms of brand, in terms of, you know, following and the services that they offer are extraordinary. And I see no reason why they should not be, you know, complete market leaders and, you know, in time to come. What level of service and what area of service they decide to kind of venture into, whether it's just sticking with OTT or whether it's going into a whole range of other things is something that time will tell. But I also happen to believe that, you know, there are some other big players in the market in the overall universe at the moment, not just in India. And some of these people are, have got deep pockets and it's, you know, quite likely that in the next, perhaps 12, maybe 18 months, you wouldn't be surprising if, you know, companies like Disney Star are, you know, potential targets for some of the even bigger players, like Apple and Google and Facebook and so on. And I think that's something that they need to be thinking about, I would think. In fact, it is just to accept your thought and build on it when Murdoch decided to sell it and he made the first announcement. He basically said to be able to deal with Facebook, Google and Amazon. It would be necessary to do this Disney time or, you know, partnership or sell out whatever you want to call it. And he basically echoed your line of thought saying to be able to take on these bigger players. We need to be together with other players and we need to have size and scale to be able to take them on. So clearly, what you're saying is on, I'm sure everyone's mind and you know, every media executive thinks about this all the time. I also want to ask you, post you left Star, Star India did well, calling to sports programming. Now what do you think about sports programming? It is said that Disney, the speculation that Disney is not very keen on sports programming in India. I'm sorry, I can't really comment on that. I think, you know, sports is a fundamental part of television viewing in this country, whether it's cricket or whether it's, you know, people who love motor racing or, you know, Premier League football and other other sort of events that happen from time to time, tennis, the Grand Slams, etc. And, you know, I think for anybody to suggest that Disney is not committed to sports in India would be, I think would either they know an awful lot.  I think they are totally committed to it. You know, as a viewer, I think it's terrific that, you know, one gets such a wide array of sports content.  And, you know, it was, it was no surprise really that, you know, at one point, the two companies parted ways and Star Sports became independent of ESPN and ESPN became independent of Star. And at that point, you know, again, it was not a surprise when the Disney takeover of Star happened that sports was going to become a key feature because Star had invested a heck of a lot of money in cricket, which either needed to recover, but also they needed to kind of, you know, present to Disney a fairly well-dressed bride. And I think that's what happened. There was general entertainment and there was sport, which was, you know, buttressed by enormous amount of valuable cricket, which Disney had but no choice to take on board. And so given the commitments that, you know, Star would have to the sports bodies that control that particular sport, then I think, you know, Disney is definitely committed to sports in India for the future. I doubt it. I doubt if they have any second thoughts about it at the moment. And Peter, I'm asking you a hypothetical question. If you were to ask to run a OTT company, a new media company, a content company, would you still be interested in running something like that? Because you like building things, you like making bets, you like, you know, creating teams, you like making an impact. And you still have a lot left in you. And, you know, when one reads the book, it gives the sense that you keep a watch on what's happening around and have a very nuanced point of view. So would you consider building another OTT media content, content tech play, whatever you want to call it, a new age media platform? Well, it's, you know, it thoughts cross your mind from time to time and conversations happen. But I think running one of these companies is not something that is, you know, as appealing to me today as, you know, it was when I had the opportunity to run Star. For a variety of reasons, and I won't go into all of them, but I think suffice to say that, you know, I think you need, again, you need to place your bet on which of these companies you would want to be part of. And, and you are again with that you've looked at it in a different way it's not about, you know, the brand today but it's really what you can take and change and turn that brand into in, you know, in a short space of time. How are you going to kind of make sure that viewers are resonating with the content that you're putting out. You know, I, I'm a great believer that I think, you know, content regulation for OTT platforms is something that should happen. Now I'd be very unpopular by, you know, amongst a lot of people for me saying that but I think that in a marketplace like India where there is, where there are diverse issues at at work and at play. I think not having any, any regulatory environment for OTT content is is risky and dangerous for the industry. And I think therefore until such time as we are a more mature marketplace. I think we need to have that level of, you know, controlling and engagement by by a regulator. Okay.  I'm help bench on making it work. You quote quote Elon Musk, this is something that Elon Musk said, and you go on to say in the chapter that you would knew that we wouldn't get a winner every day that the show was on and you're talking about the programming that you brought in, but even if we had a winner every so often, the channel would lift up. I cannot think of any other chief executive other than perhaps Richard Branson a virgin, or Elon Musk or Tesla, who could take such a significant decision in such a flash. And again, in the chapter you talk about how Robert was seemed to be slow in taking decisions, and so on and so forth in the present was pretty unpopular about that. So give us a sense of what's in the chapter. You know, we talked about placing big bets earlier. And part of this has got a reflection on that. And I've used example Richard Branson and Elon Musk, who are both, you know, frontline warriors in this entire space. And as is as is Rupa in many ways, because, you know, at a time when he was being criticized for for not having, you know, sufficient amount of investments in new media. You know, he, he sent one of his executives into into Bangalore and Bombay and Delhi and so on and, you know, started to buy into internet companies one of those happened to be in there. And India was indy a and you know, the volume of investments that happened and the speed with which that happened at that time was extraordinary. Very little of it actually worked. But it was important that it was seen to be we was, you know, it was seen to be being done, and it was important that at that particular point in time, those investments were being made so that there was, you know, a level of information being generated which suggested the new scope and star were very much involved in looking at new media. And I think new media for a lot of people at that time was was really anything which had a dot com attached to it. So today it's quite different. So I think if you're talking about the likes of Richard Branson and Elon Musk and, and Rupert Murdo I think they very much are part and parcel of the same mold in different eras. So today, you know, Richard Branson was yesterday and Rupert bless him was, you know, perhaps day before yesterday and so from that point of view.  They are in many ways they're thinking their view on, on how to kind of look at a business how to make it grow, consider consumer behavior patterns is are all pretty much the same. Okay, fantastic.  You know, when you look at star India that you nurtured a lot of people who are part of your core team have gone on to build something valuable post their students in star. Whether you look at a rise night, who successfully turned around colors and built it into the power house it is, of course, you know, Rajesh Kamath, who used to be a marketing manager and I used to meet him when I used to come and meet you at start ran colors before. Right. And then you look at Samir he continues to be doing well he's doing well at applause. Right. You look at Miss Tata she's running discovery, so on and so forth so long.  And why do you think that has happened, while Zee is an institution in the television business in its own right and has produced leaders, you know, star has produced professional managers and outstanding creators. So, why do you think that happened. Well, I think it's, you know, as a company we were very fortunate that we had a really good set of people who were, you know, with us at the time, obviously they were hired for all the right reasons in that some, you know, somewhere within their, within their construct. There was, you know, a sense that all of these people will, you know, a they are great performers. They are like, you know, precious gems. They they, they need to be groomed to the extent where their skills are, you know, enabled to flourish. And it's very hard to kind of contain people of that caliber to be, you know, and kept from performing at their best.  And in a context of a, of a chariot race like, you know, we've, as a movie, it's the ability for an organization to be able to harness the, you know, to harness the skills that exist in amongst these people to be able to then, you know, take it to its extreme. Now, why other organizations have not been able to, you know, do that, I think lies in the initial hiring stage. I don't think many of them had hired the right people to begin with, you know, and we were very fortunate that we took pains over hiring the right people, grooming them, leaving them alone, letting them perform, letting them kind of use their own intelligence to really bring about the change that we were looking for, and giving them, you know, a platform to succeed. And that's one of the beauties of the company that I used to work for, Newscore. And I think there was, you know, without doubt, I think a unique, without kind of, you know, looking over their shoulder every two minutes. So to give them the tools and to allow them to perform. And, you know, you know, and one of the things that I remember having written in the book is that, you know, at Newscorp and also at Star, you know, one didn't get fired for taking a wrong decision. And very often, you only go fired if you didn't take a decision. And I think there's a big difference in the way Star at that time used to function to some of the other companies in the organization in the industry at that particular point in time. Where, you know, if you took a wrong decision, you were worried because you might lose your job. And therefore you were risk averse. Whereas in our company and in the company of, you know, the people that I worked with, we all had a, you know, a mutual understanding that you did not get fired for taking a wrong decision.  And if it didn't work. Well, that's fine. You know you try not to make the same mistake.  And I think once people get used to that level of freedom. In their operating style, then they just carry that forward into whichever organization they happen to go to next. And if you look at it. In amongst the list of people that you, you, you mentioned, I think all of them have gone on to perform, you know, brilliantly in, in, you know, the organizations that they're working for now, whether it's mega discovery or turn at Z five. You know, some area applause, and so on and so on. And you know, I think that I think came from the fact that we were very lucky to have them in the first place. That's it. Now you also talk about, of course, a lot of times in the book, as a mention of the more docs on page 244 you also talk about, I admire James for his clarity of sound and being an intuitively fair person. And then you want to share some incidents. So give us a sense of, why do you say that. That's a tough one on rock.  But I think the, you know, what I remember very clearly James was that he was, he was, you know, very young when he arrived at star he was also very, very charming he was also a great listener. And one of the things that he had going for him at that particular point in time was that he would listen, because he knew that he didn't have that much knowledge about the India marketplace. And, but he was, and what he didn't know about the India marketplace he was willing to absorb and listen to other people and their views and then take a calculated decision on whatever it was that happened to be being discussed. And, you know, to give you a specific example would be, would be, you know, wouldn't be fair, because there was so many of them. And I think what I would say is that one of the benefits that we had by having James as our leader at that time was the fact that you know, Rupert was his dad is, you know, he could literally pick up the phone and talk to his father about either a particular issue or a set of issues that you know needed addressing, which perhaps, you know, a normal senior executive would not be able to do. You know, at, at the drop of a hat, whereas James certainly could. And that was a, you know, a really unusual benefit that we had, which we were able to kind of, you know, utilized to our advantage, which you know none of the other organizations had that opportunity. So Sony, for example, did not have that ability to be able to call somebody and say, look, you know, this is what we need to do. They all needed to follow a certain protocol. And one of the things that we did not have in our company at that time was that we did not necessarily need to follow a given protocol in terms of how, you know, how one functions. It made a huge difference. It kind of, you know, it's speeded up and a turbo charged our decision making immensely, which made a huge difference in terms of speed, as well as, you know, benefit derived from it. Fantastic Peter, I would like to end by asking you two questions. One, as you look ahead in your own personal journey. What is your bucket list, or you live as every day comes. And second is when you specifically look at the media businesses in India, what do you think they need to do differently to be able to be relevant, profitable and build scale. One personal question one professional concern. My bucket list, my bucket list would be to, I think, to, in terms of professional preference. At some level, I'd like to work at a, or be working in an environment where I'm working with young people. Who have a view to, you know, the near future and accustomed to a certain way of thinking, which, you know, which I would like to learn from. And if there was an opportunity as, you know, in any young, young startup company to be an intern, I would love to do that that I think for me would be, would be the, you know, a great opportunity. Rather than running an organization to something you asked me earlier. So, you know, media businesses in India. Well, look, I think, I think they've got a great future there is whether it's in the area of television whether it's in, you know, in, in, even as far as print is concerned. I think, you know, broadcast media in India is still a long way from getting saturated and a long way from, from seeing a downturn. One of the things that saddens me in the media business in India at the moment is the fact that we have lost sight of delivering quality for the viewer. I think we tend to deliver programming, but fill it to the gunnels with advertising, which is annoying from a viewer point of view, we don't respect the viewers freedom of choice. And, you know, there is no sanctity to the amount of minutes per hour of advertising that broadcast channel or, you know, can carry. And I think if you were to say who was the sponsor of the last India England cricket match that took place two days ago, or three days ago, I think most people will be hard pressed to say who is the sponsor. Because it was Paytm. But the point is, very few sponsors are today recognized for the amount of money that they actually spent because there are so many of them. And there is no special position given to them. And therefore I think the more the channels tend to do that, simply to kind of recover revenue, I think the more disservice they do to themselves. So I think they're their own worst enemies in some ways. Thank you so much, Peter, for talking to us this exchange for media. I will end by asking you what's your favorite quote these days, what is it that you say to yourself a lot or say to others. I don't have a particular particular quote at this, at this point in time in terms of saying, this is what I said to, you know, to either to myself or to, or to others but I do, I do like the quote that you read out from, you know, from Elon Musk. And I think that's something that for me has a tremendous amount of resonance, even today and and you know I think we'll continue for the next few years because it does say we have to just get on and do it. And I'm not going to repeat it because it has profanity in it. But I think, you know, the sense that you get from reading that over and over again. I think is something that, you know, is very, very tangible and very real. And I think that's, you know, it makes a lot of sense to me. Thank you so much, Peter, we wish you luck, wish you book luck and show the book again. It's called Starstruck. Confessions of a TV executive. And clearly, it's a book wants to read specially for everyone who's known Peter and was interacted with him at star or during his three decade journey three plus ticket journey. So I would recommend that you read it and I'm sure it gives some insights into how star India was built, and it'll also give you some insights into how to take big bets. And let me say that it's a book worth reading. Get it fast, read it and share your book reviews. Okay. Thank you. Peter. Thank you once again for talking to us. I'm sure the book will do well. I'm looking forward to the conversation with Raj in the evening. So all the best for that. You and Roger work together so clearly, there are much more anecdotes to talk about and really look forward to that. Anurag, thank you very much for having me as I say I think that some of the questions that you have posed to me have been, you know, have been tough to support took me by surprise one or two of them, which is nice and it's always good from a from a to kind of have those have those questions thrown at somebody who's, you know, not expecting them. But yes, thank you very much and I'd, I'd, I'd say yes I think the, you know, the book is something that you know I feel if people read it. Generally a fairly easy read I think most people have said look it's very easy to read I've sat down. I haven't put it down, and I've gone through it and you know in a, you know, over a weekend. And, and I think that's the way it's been written it's a very conversational style of, of having written it, but I've enjoyed writing it. And I hope you enjoy reading it. So thank you for the opportunity and rock thank you very much. God bless you. Thank you.


Live from the JSA Podcast Studio, presenting Data Movers, showcasing the leaders behind the headlines in the telecom and data center infrastructure industry. Welcome, welcome, welcome, guys. Hey everyone, I am your host, Jamie Scato-Cotaia, founder and CEO of JSA. Joining me on our podcast series, Data Movers is my fellow co-host, Mr. Fabulous Social Media Influencer extraordinaire, Evan Christel. Hey Evan. Hey everyone, and as you might be able to tell, I'm live here for an opening day at Fenway. This is an Esports talk show. It just happens, we have an event here, so you have to make do with what you're given. So this is a fabulous real background, and I'm super excited to broadcast live from Fenway Park and Boston, Jamie. This is so cool. It's like we're Data Movers podcast and a little ESPN today. We're getting our sports fix in right as we broadcast live here. Yeah. So what are your favorite rights of spring? Do you have any particular spring activities besides baseball that you're looking forward to? Does spring cleaning sound really, really cheesy? I get to clean out my closet. No, ITW. Oh gosh, I sound like such a geek. I can't help it. I am a geek. I am a geek. But yeah, it's all those spring events kicking back up. It's the refresh, renew, fresh energy, getting outside, doing some more walks with the family, etc. All that is what I think of when I think of spring. How about you, Evan, besides baseball? Well, baseball and apple pie and all that big stuff, but also more telecom. We need more telecom guests, and I think we have a good one today if I recall correctly. You know it. Talk about a great intro too. Hey guys, this is what we're here, right? With Data Movers, we want to talk to our Data Mover, and there's no finer guest today than our very own Mr. Brian Flynn, President of Xtel. Welcome, welcome, Brian. Hello, Jamie. Hello, Evan. How are you doing? Oh, so great. So great. Happy spring. Yeah, it's about semi-grease outside. I'm inside here doing this, which is great. And we're hearing from our live chat already. They're cheering for the sports. It's what is it? It's the Red Sox versus the Phillies? It is the Pirates versus Red Sox, yes, in the bottom of the second inning. So the game's just started. But let's talk about telecom games. The games are really... And you know it. And Brian is a wonderful, long history in our telecom industry. You've been in telecom for over 20 years, my friend. You've seen the industry absolutely evolve. Tell us about how you got started in this industry and what are some of the biggest telecom breakthroughs that you've witnessed so far? Sure. Yeah, my dad actually, Don Flynn started. He was co-founder of Xtel in 1994. At that point, I was still in college. Practically I was a freshman in college. And then when I graduated, I was in finance for a couple of years. Kind of came to realization that was not gonna be the career for me, at least long-term. So I spoke to my dad a little bit. He's like, well, you know, we have a sales position open. If you're interested, why don't you come over, see if you like it and figure out what you wanna do. And I did that. And well, that was 23 years ago. So I guess we figured it out. That's a lot of customers over 23 years. How have their perspectives changed over the 23 years of dealing with those amazing customers you're working with? Well, there's, I guess there's been a lot of, well, we used to have just telecom, telecommunications companies.  And now we've had so much consolidation through the years that they really wanted, as the saying goes, one throat to choke, right? So they don't wanna have five separate vendors. They wanna have one vendor. So as a telecom company, we're seeing services blend with MSPs, with MSSPs, all under one service umbrella. Yeah, and that actually leads to our big news really, that you of course, Excel, a leader in cloud services. Most recently, your company announced expanding its managed cybersecurity solutions portfolio. Can you give us a little more insight on that? Yeah, absolutely. And like I indicated, there has been so much consolidation that a few years ago, we sort of recognized that we needed to get involved in cybersecurity. That's what our customers were asking. They don't really care about the voice services if they're under attack, right? So we sort of split up into three main sections. That's training, testing and detection and response. The training would just be cybersecurity awareness training. That's very important because the vast majority of attacks are still employee initiated, meaning that they open up the wrong email, they might be a malware attack, or they just careless with their longing credentials. So we trained them on essentially how not to do them and how to avoid those threats. Then get testing, we're just like penetration testing, where we scan the entire network and we look for vulnerabilities to that network and then we make the customer aware of those vulnerabilities and we suggest ways of strengthening the network and eliminating all of those vulnerabilities and weaknesses. And then detection and response. We went directly to XDR. XDR is extended detection and response and it's sort of, it's the end of the evolution with EDR and MDR. EDR, as you may know, is endpoint detection and response. It has limitation. It was really only focused on one thing, usually a desktop computer for instance. Then you have MDR, which is managed detection and response. That was a little bit further. You had other elements of the network that were being managed and managed 24 by seven. But in today's market organizations have disparate networks, they have disparate technologies. And that's really where XDR comes in, where we're able to analyze all those disparate data streams and consolidate everything and just make it easier for organizations to oversee their entire cybersecurity infrastructure. Yeah, I'm finding a lot of customers are looking for one step to choke when it comes to cybersecurity, because they're really confused and there's so many threats, so much misinformation and also choices. So are you not one throat to choke when it comes to all cyber thing, cybersecurity? The most definitely? Well, I was glad on niche plays within cybersecurity. So I'm not gonna say that we really do everything, but I think those three main areas we have covered pretty well. I mean, again, it starts with training, right? The employee training, making sure that they understand the threats and how to avoid those threats is extremely important. And if you get that down, you avoid 80 to 90% of the stuff in the back end. But then you have testing. You really need to take a look at that network and make sure that it's sound. And then of course, when things do happen, you need to have a sound detection or response system. So yeah, I think we do a pretty good job in covering the main points of cybersecurity. Yeah, absolutely. The people, the testing, the training, the resolutions, I love it. And I love when I also have such a thought leader in our hot seat. I like to pull out the crystal ball. Where do you see the industry in five years from now regarding next-gen cyber and cloud solutions? Right? Yeah, it's hard because it's evolving so quickly, but probably just more of everything. More attacks, attacks which are more advanced, more financial damages created. I think you're gonna see companies having to go through more rigorous qualifications in order to get business insurance where we're gonna qualify as cyber security plans are concerned. You're right now, it's usually like five or six questions. You have this covered and they can get their cyber insurance. I think that's gonna become extremely a bigger, a much bigger process in order to get that insurance. And then with AI, artificial intelligence, meaning that's kind of a buzzword right now. Everyone's talking about it, it's a chat GPT and chat GPT-4. I've been very excited about it. I'm also excited about it. But you know, you get AI in the wrong hands and the cyber criminal stands reason probably use image and you don't have to need to get prepared. It was seen in massive shortage of cyber security skill sets and personality. That must be one major reason why clients seek your help with that defectable piece in there. Are you seeing that as well? I didn't quite catch the question. Can you repeat that please? Yeah, we're seeing a massive shortage of cyber security expertise. I'm wondering if you're seeing that as one of the many reasons your clients need your assistance is just getting that skilled expertise and experience in health. Yeah, massive shortage of cyber security expertise available. Yeah, yeah, it's true. So absolutely. So I didn't talk about the SOC as a service of security operations center. In order to take a security operations center is essentially a knock and network operations center, but the service security. And it's very difficult to find talent in order to create your own SOC. And that's why SOC as a service has become so popular because you're outsourcing that and allowing another company such as X-Tel to oversee your security. Yeah, it's difficult to get talent. It's difficult to maintain that talent. And most companies that's outside their core competency. So it's difficult for them to reasonably continue maintaining and also feeding that talent stream within the company. So I agree. Absolutely, absolutely. And I want to make sure we get to all of your hot news as well. X-Tel, you had several recent announcements including the launch of your third geo-redundant data center in the New York Metro market. So sorry, Boston, we're going to talk to New York right now, but tell us more about how this edition expands your X-Tel footprint of dedicated internet access, DIA and DDoS attack mitigation options. Yeah, so we have New York covered now. Compliments, that's 165 holesy, that's four-limit broad and also filled out. And then we have a data bank data center just outside, in Plano, Texas, just outside Dallas. And also one down in Baltimore. It's actually, it's four. Oh, four? Look at that, we're growing. Yeah, what that does, those additional points of presence just allows us to get closer to those end customer points. When providing dedicated fiber internet access, you gotta provide quality routes and you have to have low latency, low latency is the function of how far away you are from those customers. So we are, by being in Halsey, we've opened up the entire New York Metro market, part of New York State and Connecticut. So that's very exciting. And then with DDoS mitigation, now that we're providing the dedicated internet access, we layer DDoS mitigation on top of that. And we do that proactively, meaning that if there is an attack going towards one of our customers IP addresses, we mitigate and we filter out those affected packs before they even get to the end customer. So it's another value add that we'll be able to provide to a whole new set of customers in the New York Metro area. Do you think customers are looking for a one-stop shop when it comes to all of their IT, telecom, security needs? Is that sort of the trend you're seeing with your peers? Yeah, I think it is, Evan. That is absolutely the trend. I mean, they just want to have one person they can talk to who sort of controls all elements of their telecommunications and cybersecurity game plan. It gets difficult when you have multiple vendors because systems need to be engineered so that they work cohesively together. Sometimes that doesn't happen when you have more than one party involved.  So if you have one vendor that sort of eliminates a lot of variability. You know, I can't help but to think about this whole spring theme that we have going on and growth being a big word that I associate with Excel. We have growth in services, growth in pop locations. And also we haven't talked about Maryland-based Sulek Global Telecom, GTB, being a new acquisition for you guys. So let's get the inside info there. What can you tell us about this and what it means for Excel? Yeah, that was really exciting for us. That's our first acquisition. GTB's been around for about a quarter of a century, a Sulek in Maryland looking into kids. Very similar to us, a lot of the same services, but a lot of different types of customers. So through that acquisition, we've really gone deeply to healthcare and legal and a few other verticals as well. So we've inherited a lot of institutional knowledge in those verticals. So we're excited to be able to expand upon that and continue going after those verticals. And then of course a lot of engineering and customer support talent we've acquired. It's like we just talked about, it's hard to get talent, we say. So we were fortunate to be able to retain almost all of the talent from GTB and we've integrated with the next help. So it's definitely gonna win. Health care is a big area near and dear to heart. We have the other company, Health Care, and what's your thought about the healthcare industry and the transformation that's happening there? Well, there's a lot going on, right?  I think there's a lot of development with cybersecurity and make sure that the customers remain HIPAA compliant. And there's a lot of different factions within healthcare. You say healthcare, that means a lot of different things. You know, in patient facilities you have, you have hospitals obviously and several other ones as well. So it's a big, large, encompassing vertical. It's a vertical, which is recession proof, which we always kind of like, right? But it definitely requires some type of institutional knowledge, just kind of understanding the lay of the land within that vertical in order to service it appropriately. Nice, yeah. All right, so now it's time for the rapid fire section of our deep dive here with Brian Flynn of Extel Guys. So Brian, whatever first words pop into mind as we ask you some fun little, I get to know you type of question. So all right, being based in the Philly market, which clearly we have some Philly fans on our chat, we're all excited about your guest starring here on Data Movers. But being based in the very active Philly market, we have to ask favorite cheesesteak of course. Oh, cheesesteak, cheesesteak, cheesesteak. Geno's or Pat's? Geno's or Pat's? Cheesesteak, yeah, you have to do the cheesesteak question if you're from Philly, right? So between those two, the answer's Pat's, although there are several Ben-Rocke's out there. Oh, like an inside secret place. Is that what you're about to share? There's several of them that are, not as well known as Pat's and Geno's, but they make a better sandwich. Well, see, we're gonna have to get your endorsement and frame it on their wall or something then, huh? So I'm coming up, how about the Jersey Shore? I imagine that's one of your favorite destinations. Any favorite spots or restaurants on the shore? Well, as far as talents are concerned, Brigham team. For years it was Avalon, but we bought a place in Brigham team a couple of years ago and my family and I, we just kind of fell in love with it. So definitely Brigham team in Jersey. Nice, I love that, I love that. And one word that people like to use to describe it. Well, most of those words probably can't be used. That's the whole likelihood, but I'll go with consistent. I love it, I love it. I was gonna say charming for sure. And so Brian, you're a tech guy, are you Iowa Apple or Android or anything else? Mask, Windows, make your tech sense. Apple all the way, all right. Apple all the way, yeah, it's just easier. Yeah, I'm sending out my little heart right here because I can't get away from Apple. I love it too much, they're too innovative. Okay, so on your Apple iPhone, what app are you using the most? Pretty boring, just text message and Microsoft Outlook. Yeah, totally. Well, there goes that consistent, right? Or consistent. There you go, consistent. And you know what, with cybersecurity, that's what you want, you want consistency. So I love that. There you go. All right guys, I thank you, thank you, thank you, Brian, for joining us today. It's been such an honor. Well, thank you for having me, it's been great. And thank you for putting up with my spotty broadband service. Maybe XL, do you have any relationships to the park here? We'll be up our game, let's talk to Google. We might be on this LTE extension for you. We can spend like this LTE 5G backup service. We can talk about that. Yeah, definitely. All right, I'll put the word in with the socks here. So, great to see you, Brian. I know, and it was so cool to have you log it in. Our Evan Kirstel, of course, the king of Boston, logging in from Hanway.  I'm so excited to have you again. Well, thank you for putting up with my schedule, I love it. And maybe, I don't know, it will do more from location shooting, you know, maybe when you're at Cannes and Monte Carlo and you're in the box, so all this fabulous event, you can be reporting from the field as well. Absolutely, absolutely. We'll absolutely do it. All right, guys. If you enjoyed today's Data Movers podcast, I hope you did. Be sure to check us out, jsa.net slash podcast for upcoming Data Movers episodes, released every other week on Wednesday. So go ahead and check that out. And of course, always follow us. Where are we at? We're on Twitter, of course, Mr. Evan Christel, Mr. King of Twitter, at Evan Christel, I'm Jay Scott-O. I put a lot about cloud communications and, you know, joining the conversation and, you know, tag me and Jay Lee, and we'll see you in the future of the industry. Yeah, absolutely. And check out Xtel on Twitter, LinkedIn, of course, their website. And thank you guys for joining us today. As always, stay safe and happy networking.


So, thank you very much for coming to my talk. Today we will talk about page object pattern, or page object model, or how whenever you will call that. The concept is the same. And the thing that I will talk about is not the best solutions, it's just the solutions that I get during my seven-year experience working in the big company. So I'm Sarkis, nice to see all of you. I have more than a seven-year experience working with the Selenium and the Automation Quality Insurance, and most of my experience I got working when I was working with Workfront, which is the U.S. best company, and let's go and see what I prepared for you today. So, yep, it's from the screen, it's squeezed a bit, but anyway, we'll have a short introduction. Then we'll talk about page object pattern. I don't want to go details in a low level, I will try to expand some stuff in a bit at a high level, and we will talk about what kind of the weight opportunities we have in the Selenium, and then the most fun part, the challenging part is the loadable component and the slow loadable component that will help us to get right from the weights in the Selenium. And I will talk about the common failure that people are always asking me questions about that, and how to do and how to not do, and then we are a bit short of time. I hope we'll have time for the question and answer, if not, I will be around till the end of the conference. Thank you very much for coming to my talk. Today we will talk about page object pattern, or page object model, or how whenever you will call that, the concept is the same. And the thing that I will talk about is not the best solutions, it's just the solutions that I get during my seven-year experience working in the big company. So I'm Sarkis, nice to see all of you. I have more than a seven-year experience working with the Selenium and the automation quality insurance, and most of my experience I got when I was working with Workfront, which is the US-based company, and let's go and see what I prepared for you today. So, yep, it's from the screen, it's squeezed a bit, but anyway, we'll have a short introduction, then we'll talk about page object pattern. I don't want to go details in a low level. I will try to expand some stuff in a bit a high level, and we will talk about what kind of the wait opportunities we have in the Selenium. And then the most fun part, the challenging part is the loadable component, and the slow loadable component that will help us to get right from the wait in the Selenium. And I will talk about the common failure that people are always asking me questions about that and how to do and how to not do. And then we are a bit short of time, I hope we will have time for the question and answer, if not, I will be around till the end of the conference. Tom, this is not good already. Can some technical guy help us with this? I see normally in my screen, but there is a problem. It will become a bit smaller, but what to do? So, demos that I will provide will be coded in Java. And as an example, I use the GitHub UI interface, and we will try to log in and try that there is exception or something like that. Everything that I will present will be applicable in strong type language, for example, if you are using a C sharp, and most of things will be applicable also in dynamic type languages like Ruby, Piton or something. So also, in my presentation, I will use Maven, test engine, and for sure Selenium. So everyone has the basic knowledge of this. So, page object pattern, I will not, again, like high level to remember what is it if someone is out of information. It's a framework design pattern, which has become popular in the Selenium test automation, and it makes it easier to maintain and reduce the code duplication. This is for Selenium, like when we are after, I think like web application, and it makes it easier to create page, maintain page, and whenever we would like to do with the pages. And let's imagine we have a web application, and there is a different pages, login page, registration page, some stuff, and in page pattern, also in the pages there is a services like different, like specific for that page. So what we are doing, we are collecting every single page will be presented as a class, and the web page will be object, there is a classes, and every class will contain the elements with their services and the methods. So, why we need to use it? This is the important question. It promotes reuse of the code, so we'll have less code. It makes readable the whole suite. Also it's improved maintainability, so it's easy to maintain. It makes it easy to change the classes, and you will not change anything in the test class. So if you have page objects in every class name change or something that developers will change, you will change just once in one place. So how it's structured. Each page is defined its own class, actions and are represented in the class as a method and our functions. Each function can return new page object, especially when we are navigating within the pages, this talks only with the page objects. Page objects, this is like extra step that I added, like with the base objects, a lot of people call that abstract page base objects is whenever you call, and base objects talks to driver. Pages are stored as a variable. So we should make sure, anyway, we should make sure that the Selenium talks only with the page objects, especially with the base class, so when we are changing something, it will be easier. So in a graphical appearance, it will look like this. So this is just a Selenium with the test and the browsers and the report and the read application. When we are adding the page objects, so where it should be, we are isolating tests to be interaction with the Selenium. And another extra step that I would suggest to add a lot of specialists will suggest to do, it's adding one more step between Selenium and the page objects, like to collect everything. This is some abstract class in Java, and this is a way to make it easier to collect everything in there. This is also kind of a place to collect some methods that will be interacting with the Selenium. So type or finding the element instead of every time calling it from driver. Because I had a problem when we were upgrading Selenium versions, so usually there is a solution that should be applied to the type. So instead of going to every page objects and changing the type, we are going to the base class and changing there. So in other appearance, it will look like layers. So in this graphic you can see that the main concept is this layer should not be able to talk to this layer. So every layer can and should talk with neighbors. There should not be any allowance to jump from the layer to the layer. This is how it looks in the packages in the Java for the Maven project. And it's a bit again, sorry, it's not my fault. This is basically how the page objects look like. Here is the just example, so I hard-coded the main URL. So in the real world, we are not doing this, yes? We are doing something in the property file and then reading from there to make it easier. Just being a bit more understandable and readable, I did it. And there is a constructor which is applying the driver. I will show where I am creating the driver. And here is the open page which always we will use when we are starting the test. And this is an abstract and it can become any type of the page that you will extend it. Here, okay, for this get maybe you have a question why there is a get. We will talk about that in a loadable component because it's done for that. And there is some abstract methods and you can add more. So because every page will have a get URL, so we are putting in a page object and then overriding them for the specific page. And open is already being. So this is the continuation of the page object. I make it like two parts to be more readable. I collect it here like find type, like different types of type, like loaded methods. And click also some several types. And some methods that we are always using, this is just for the example because I know everyone like using this because the method of the display throws exception when there is no. So this is the kind of the exception handling example and you can add more based on your application. Here there is a Selenium driver class which done like high level stuff like creating driver and it's collected in a separate class. Here I'm just creating, I'm checking that it's not null then creating. And create the, I created a static method and I can call from everywhere which makes for me easier than always creating for every page. And I have a base test class and every test class extends this, so as a becoming subclass of this. And here I'm doing any stuff that's done for every test. For example, after finishing class all the test just close the browser. Here you can add for example after finishing like clear all cookies or anything globally you want to that because to add and repeat in the classes I don't like, there's no make sense. So generally this is the test that looks like this just small test that trying to log into GitHub and with the wrong credentials and shows that there is no such user and checking the exception, not exception but error message. So weights in Selenium, how many of you have a problem with the weights? How many of you using the slips? How many of you like using the retry? I mean if doesn't work retry once, always. So for the basic weights I will generally show you which kind of the weights options can that there is in the Selenium. Then we'll talk about a loadable component which is created for this purpose to solve this problem. So while we are waiting to load the page to make it ready and to make the all transactions and I always say that the slips, they shouldn't be slipped because it's always making a hard time, not adjustable and when we are running on a continuous integration in the Amazon services which is too expensive, we are losing a lot of money, actually company lose but. So Selenium offers like three types of the weights, implicit weight, explicit weight and the fluent weight. This is the three versions that you can use without anything. So implicit weight, this is the amount that you are giving to the Selenium configs saying that every time when you are getting any element, wait for X time like 10 seconds and the problem here when there is no element and you are checking that there shouldn't be any element, it still waits the 10 seconds. So this is not adjustable, also it's undocumented. It only works for finding the elements and you cannot customize anything. We are setting up for the driver and it's non-visible but it's like driver managed time out or explicit weight and then you are giving the weight. The best practice is to not use this. If you have possibility, if you can manage without it, it's a good thing to not use this one. So explicit weight, here we have documented and defined behavior so you can also read it in the website. What it's doing, it's from every 500 milliseconds, it's pinging to application, checking until it will find and it's return success or time out which you can find and works any condition you can provide. So this visible, this clickable, this should be disabled, anything you want and this is the way how it looks like. I will talk about the page load helper. This is another class that I'm creating and it's make easier and you can provide any condition here and just wait until this condition will become true. And the fluent weight is almost the same as the explicit weight but here you are waiting all the time out and the transaction and additionally you need to tell that how it should throw an exception and when they don't find an object as the best practice. So and implementation looks like again it's not visible so later I will share everything so you can read it because of the screen is not the best one and here there is the implementation for fluent weight, you are providing a time out, you are also providing polling every which means like how many time between the calls you need. So in explicit weight we have a hard code, it's like 500 millisecond, it's adjustable. You can put that every one second, go and check and back and you are handling the exception here and this is overridden method which is coming up, sorry. Explicit weight and the disk weight, here is more dynamic, you can set the time between the calls. And also here you should actually, as a best practice, you should handle the thrown exception and this one is more customizable than the explicit weight. Yeah, it's the same, you will like here what it's doing, it will try to find the element that you are giving here during this time and between the calls like the variable that have here. So here that in the apply you are waiting for the element that you are given here and with these parameters you are setting it here. Yeah, it's something, it's almost the same, it's doing the same logic as a explicit weight but with the customizable version of it. So loadable component is starting the challenging part, maybe, who knows about loadable component. The next question is redundant, are you using in a real project or not, it's only for you, you are using, yeah, yeah, nice, okay. The loadable component is a base class, is a base class on the aim to make weighting page objects until they will load. So it will help us to make the page object pattern useability like less painful and it makes more easier to debug the failures because there is customizable stuff and a lot of maintainable stuff. There is currently an implementation in Java, let's come with Selenium but it's easy to implement in any other language and for that reason I will try to configure custom loadable component also in a Java which I'm doing always because I can also provide error messages for more easier debugging and some stuff like that. So I will suggest also not use the native one, just create your own one and do anything you want. Yeah, for that reason there is also slow loadable component that comes in the next one. So here it's basically how you are making the class loadable, nothing is visible, sorry. It's just extend from loadable component and with it there is also two methods that you always need to overwrite when you are extending from the loadable component. This is loaded and loaded. So these two methods you will implement for every page class. So this is the only like a bit of painful part for the aftermation test, there's a lot of people saying that it's making a lot of work to do for every page even I don't need but anyway there is no lot of good stuff without a bit more work. It will become a bit smaller but what to do. So demos that I will provide will be coded in Java and as example I used GitHub UI interface and we will try to log in and try that there is exception or something like that. Everything that I will present will be applicable in strong type language for example if you are using C sharp and most of things will be applicable also in dynamic type languages like Ruby, Piton or something. So also in my presentations I will use Maven, test engine and for sure Selenium. So everyone has the basic knowledge of this. So page object pattern. I will not again like high level to remember what is it if someone is out of information. It's a framework design pattern which has become popular in the Selenium automation and it makes easier to maintain and reduce the code duplication. This is for Selenium like web application and it makes easier to create page, maintain page and whenever we would like to do it with the pages and let's imagine we have a web application and there is different pages, login page, registration page, some stuff and in page pattern also in the pages there is services like different like specific for that page. So what we are doing we are collecting every single page will be presented as a class and the web page will be object, there is a classes and every class will contain the elements with their services and the methods. So why we need to use it? This is the important question. It promotes reuse of the code so we will have less code. It makes readable the whole suite. Also it's improved maintainability so it's easy to maintain. It makes easy to change the classes and you will not change anything in the test class. If you have page objects in every class name change or something that developers will change you will change just once in one place. So how it's structured? Each page is defined its own class, actions and are represented in the class as a method and the functions. Each function can return new page object especially when we are navigating within the pages This talks only with the page objects. Page objects, this is like extra step that I added like with the base objects. A lot of people call that the abstract page base objects is whenever you call. And base objects talks to driver. Elements are stored as a variable. So we should make sure anyway we should make sure that the selenium talks only with the page objects especially with the base class so when we are changing something it will be easier. So in a graphical appearance it will look like this. So this is just a selenium with the test and the browsers and the report and the web application. When we are adding the page objects so where it should be we are isolating tests to be interaction with the selenium. And another extra step that I will suggest to add and a lot of specialists will suggest to do, it is adding one more step between selenium and the page objects like to collect everything. This is some abstract class in Java and this is a way to make it easier to collect everything in there. This is also kind of a place to collect some methods that will be interacting with the selenium. So type or finding the element instead of every time calling it from the driver. Because I had a problem when we were upgrading selenium versions so usually there is solution that should be applied to the type. So instead of going to every page object and changing the type we are going to the base class and changing there. So in other appearance it will look like layers so which one in this graphic you can see that the main concept is this layer should not be able to talk to this layer. So every layer can and should talk with neighbors. There should not be any allowance to jump from the layer to the layer. This is how it looks in the packages in the Java for the Maven project and it's a bit again cut it but sorry it's not my fault. This is basically how the page objects looks like. Here is the example so I hard coded the main URL so in the real world we are not doing this yes collecting something in the property file and then reading from there to make it easier. Just being a bit more understandable and readable I did it. There is a constructor which is applying the driver. I will show where I am creating the driver. Here is the open page which always you will use when you are starting the test and this is an abstract and it can become any type of page that you will extend it. Here okay for this get maybe you have a question why there is a get we will talk about that in a loadable component because it's done for that and there is some abstract methods and you can add more so because every page will have a get URL so we are putting in a page object and then overriding them for the specific page and open it's already been so this is the continuation of the page object I make it like two parts to be more readable. I collect it here like find type like different types of type like loaded methods click also some several types and some methods that you are always using this is just for the example because I know everyone like using this because the method of the display throws exception when there is no so this is the kind of the exception handling example and you can add more based on your application. Here there is a Selenium driver class which done like high level stuff like creating driver and it's collected in a separate class here I'm just creating I'm checking that it's not null then creating and create the I created a static method and I can call from everywhere which makes for me easier than always creating for every page and I have a base test class and every test class extends this so as a becoming a subclass of this and here I'm doing any stuff that's done for every test for example after finishing class all the test just close the browser here you can add for example after finishing like clear all cookies or anything globally you want to that because to add and repeat in the classes I don't like that there's no make sense so generally this is the test that looks like this just small test that trying to log into GitHub and with the wrong credentials and shows that there is no such user and checking the exception that not exception but error message so weights in Selenium how many of you have problem with the weights how many of you using the slips how many of you like using the retry I mean if doesn't work retry once always so for the basic weights I will generally show you which kind of the weights options can that there is in the Selenium then we'll talk about a lot of components which is created for this purpose to solve this problem so why we are waiting to load the page to make it ready and to make the old transactions and I always say that the slips there shouldn't be sleep because it's always making a hard time non-adjustable and when we are running on a continuous integration in the Amazon services which is too expensive you are losing a lot of money actually company lose but so Selenium offers like three types of the weights implicit weight explicit weight and the fluent weight this is the three versions that you can use without anything so implicit weight this is the amount that you are giving to the Selenium conflicts saying that every time when you are getting the any any element weight for X time like 10 seconds and the problem here when there is no an element and we are checking that there shouldn't be any element it still waits the 10 seconds so this is not adjustable also it's undocumented it's only works for finding the elements and you cannot customize anything you are setting up for the driver and it's non-visible but it's like driver manage time out or explicit weight and then you are giving the weight the best practice is to not use this if you have possibility if you have you can manage without it it's a good thing to not use this one so explicit weight here is we have a documented and defined behavior so you can also read in a website this what is that is doing it's from like every 500 milliseconds it's pinging to application checking pinging checking until it will find and it's return success or time out which you can find and works any condition you can provide so this visible this clickable this should be disabled anything you want and this is the way how it looks like I will talk about the page load helper this is another class that I'm creating and it's make easier and you can provide any any condition here and just like wait until this condition will become true and the fluent bait is almost the same as the explicit weight but here you you are overall timeouts you are waiting all the timeouts and the transaction and additionally you need to tell that how awaits that you should throw up exception and when they don't find an object as the best practice so and implementation looks like again it's not visible so that rival share everything so you can read it because of the screen is not the best one and here there is the implementation for fluent wait you are providing a timeout you are also providing polling every which means how like how many time between the calls you need so in explicit wait we have a hard code it is like 500 millisecond he is adjustable you can put that every one second go and check and back and you are handling the exception here and this is overridden method which is come sorry explicit wait and the display here is more dynamic you can you can set the time between the calls and also you can here you can you should actually as a best practice you should handle the throne exception and this one is more customizable than the explicit weight yeah it's the same yeah you will like here what is doing you will it will try to find the element that you are giving here during this time and between the calls like the variable that have here so here that in the apply you are waiting for the element that you are given here and with these parameters you are setting it here yeah it's something it's it's almost the same it's doing the same the logic as a explicit weight but with the customizable version of it so loadable component is starting the challenging part maybe who knows about loadable component there are a few and so the next question is redundant that are you using in a real project or not only for you you are using yep yep nice okay the loadable component is a base class is a base class and the aim to make weighting page objects until they will load so it will help us to make the page object pattern usability like less painful and it's makes more easier to debug the failures because there is a customizable stuff and stuff and a lot of maintainable stuff so there is a currently an implementation in a Java that's coming to Selenium but it's easy to implement in any other language and for that reason I will try to configure custom loadable component also in a Java which I'm doing always because I can also there's provide the error messages for more easy like easier debugging and some stuff like that so I will suggest also not use the native one just create your own one and do anything you want yeah for that reason there's also slow loadable component that coming the next one so it's basically how you are making the class loadable nothing is visible sorry it's just extend from loadable component and with it there is also two methods that you always need to override when you are extending from the loadable component it's a is loaded and loaded so this two method you will implement for every page class so this is the only like a bit of painful part for the after mentioned this there's a lot of people saying that it's making a lot of work to do for every page even I don't need but anyway there is no lot of good stuff without more work so how to use it the pattern also allows you to model your page objects as a tree nested components allows you better navigation between the pages and load methods will use during the navigation and is loaded method will use to determine it when the page is ready to continue this is the get method from the loadable component class this is the 81 that Java has there is is loaded this method will come the next slide there is a is loaded and the loaded so it's twice check is it loaded the page then continues and if it's not it's called lot so this is mostly for navigation so usually when you are just want to check is it loaded or no you are just making the like we are not implementing the loaded method and here there is already in a page object that the over it overrided methods this is a live empty because I'm not trying to navigate between the pages and he is it checks it's wait until the some element will not be clickable after that when it's now we get so if no it's throw the exception so when you are creating the page you just need to call get when you are calling get it's already we'll check the old stuff from the loadable component and you will check that is loaded conditions for you okay this is the thing that I'll also put in a base object class so here we have this and instead of this and also I I I mentioned before the about the page loader helper instead of checking for like in this way I'm suggesting to have a page load helper and click there the old helpers that you will will like help you to wait until something is ready and this is this use the invocation chain and the implementation with the with this kind of if it looks like this so it's more readable and more easy to implement so I just checked the two and you can do dot more this one also loaded loaded this one is clickable this this one is disabled and all this visibility and disabled and enabled methods you can collect in one place and share with the old page objects so here I'm showing the implementation for the base class so the base class extends from the loadable component and then all your pages are extended from the base class and here you are having the common implementation of the loadable component you can see that there is a custom loadable component which mean that I use the custom one so let's check okay I forget show this is the get so in this implementation it when you are creating it any any page object it always will go through the get so it will check is loaded or no in that case you will have exception is coming so in the native implementation there is no that exception stuff it's just catching something when you are creating you can define anything also you won't like time out or some stuff like that and also you can you can use the exception handling for for the method and for debugging you will have a more possibility other page just when you are navigating then you are returning new pages like return new another page don't get when you are doing new you are calling get because we can like be sure that everyone comes from base object and base objects comes from loadable component and it should implement so this is the way how you can implement in any language also and here you can do anything you want this is just the example you can make it more they got debuggable for you slow loadable component is the almost the same but this is waiting exactly for the components this is better for you when you are you have a lot of jacks calls and you know you want to wait for the jacks call this is a subclass of loadable component it has get additionally it has also wait for and is error methods so after a call load is loaded method will continue to fail until component will be loaded this is the main difference with the loadable component okay here there is also you are providing a time also when you are extending from the slow loadable component you have to implement also there like you will implement the super class construct constructor and you will provide the time and and the and the clock so it's basically looks like slow loadable component so it shouldn't be on the base object it should be for the page exactly for the component and I just make it shorter and you in your constructor you should call this like super constructor which is like needs some system clock and the time the time it's the time how many time it should try and the clock and it's the time that it's trying to get several times yes so any questions so far so good I'm running a bit faster because we don't have a time because we start a bit late to not disturb also others but if you have a question that we will yep any any condition that you can think you are we are open-minded you can open your creativity any condition that you want to check you are putting it in is loaded with the wait until like frame will be loaded or something in the frame that will be accessible or something will be disabled or enabled inside the frame so anything that you can think you can apply there that needs to be checked after the creating the instance sorry I have a drop-down a country drop-down which have a lot of values India, Australia, UK, USA something like that so my page is loaded but the drop-down values are not loaded it is sometimes it may take it takes some little bit of microseconds or seconds to load so but my export is pointing to the value not to the element there are two ways of doing it driver dot a fine element go to element that is country and select the value or India you also do like wait until this element will have this value or generally wait until the element will have a value so you can get the element get the value and check that it's not null it's not empty you can try a parent class and wait until that object compared with the child objects this will become a try yeah so with a loadable component we are not trying because loadable component will try itself yeah so you are giving that only condition and asking them asking the loadable component just continue when this is true and it will wait for you you don't need to make a loop you don't need to make a try you just giving the condition and the loadable or the slow loadable component instead of you will try to do something right yeah yeah that that is what I was about to say that's there are some things that need trigger and after trigger you have to wait so what you can do over here is you can you can look for that object and you can wait your weight condition can be dependent on the child objects or the child classes yeah that that way have I have invented in my page object model yeah it's also option it's also option so it's also option and it is quite time-saving that is what my observation is yeah so let's go through also the common failures then we'll use the rest of time for the questions so common failures usually people who say who says me I tried the Selenium it doesn't work for our project we will not use that and the first question I'm always asking you use the Selenium ID with the Selenium one yes so don't use it I I'm working with the Selenium like seven years I never recorded the test even when we were working with a Selenium one it's like some anti-decode that it's fast only for the first stage after that you will crash everything so using the only Selenium one with the recording stuff we'll always fail when you have like amount of the test not building a framework not building a framework it means that people using the Selenium just from the test they are driver click driver open driver do driver that which is will fail when you have like more than a thousand tests so you will for sure use unique selectors this is a bit challenging for the Selenium but the thing that I'm never do I never I'm trying to never use that X-PAP because X-PAP is too slow in the Internet Explorer and when the position is changed your tests are failing so use the IDs which are unique or the class names if I unique that people usually says that there is what if there is no idea or something like that my approach is just work with the developers so push developers to add unique stuff automation also development so it's not a secondary project I know that in most cases they are saying do whenever you want so it shouldn't be the case that you should you are you are also developer you should also work with a software developer push them to add unique stuff and make this like more stability in your tests and also another case in this topic I'm always pushing developers to get familiar with the tests they are not supposed to write but they should be aware how it's working so when they are making changes so they should understand that it can break given not like early notify a notification or doing like fixing themselves do not use that retries you will fail when you have a thousand tests and you are running on the service clouds one day you will fail even if it works for you now do not try automate things that are not automatable okay basically theoretically everything you can automate if not with the same with other frameworks but don't try to do that because sometimes it's easier to check from like every regression cycle so having someone some manual tester and someone to check it like during the half an hour for every release then automate everything spending some days for implementation and spending some hours for the maintaining them so it's better to not have to make like a lot of stuff and run your automation tests sometimes if you have a suite run them break them fix them do everything you want but just run them not wait for a six month and then find out that nothing there's no test are passing in your environment so the breaking the bills and fixing the bills the most fun part of the automation yep so we are running yes we are running out the time just if you have any question I will be here till the end of the Sunday we can talk we can try to go together we can try to find a solution for your problems and whenever you want sorry it's my name surname is visible thank you for coming thank you organizers to making the opportunity and enjoy the rest of the conference do you somewhere in the loving