Hello and welcome. My name is Shannon Kamp and I'm the Chief Digital Manager of Data Diversity. We are proud to produce this webinar series of Data Governance Case Studies for the Data Governance Professionals Organization. I would like to thank you for joining today's CGPO, Data Governance from Chaos to Harmony sponsored today by Calibra. And as you can see, WebEx has undergone a significant UI update. Feel free to look around. You'll find most of the needed icon buttons in the bottom middle of your screen. There's a couple of points to get us started due to the large number of people that attend these sessions. He will be muted during the webinar. For questions, we'll be collecting them via the Q&A panel in the bottom right-hand corner of your screen. Or if you'd like to treat, we encourage you to share how it's a question via Twitter using hashtag DGPO. And to find and open the Q&A panel, just click the three dots icon in the selection of icons at the bottom middle of your screen. And if you'd like to chat with us or with each other, we certainly encourage you to do so. Click the chat icon, which is likewise in the bottom middle of your screen. So let me turn the webinar over to Michelle Cook from the Data Governance Professionals Organization to introduce today's webinars and speakers. Michelle, hello and welcome. Hi. Thanks, Shannon. It's good to be here again. And a reminder for our attendees, the recording for the webinar will be posted in the DGPO members-only section of the DGPO website in a few days. So the Data Governance Professional Organization is a community of Data Governance Professionals whose mission is to share knowledge, content, and best practices with its members to build a community of practice. And that's why we participate in these webinars every month. To learn more about the DGPO, I welcome you to visit our website at dgpo.org. Now, a word from our sponsor, Calibra. And presenting for Calibra is Erin Lowe. Welcome, Erin. Thank you, Michelle. And good morning and afternoon to everyone. I appreciate your time and am excited to briefly introduce you to Calibra. Our webinar topic today will be addressing how introducing enterprise data governments to your organization and multiple stakeholders can be really challenging. And there's a natural pushback as organizations need to buy in to change or was perceived as additional work. At Calibra, we have found in our conversations with our champions and at our client organizations that demonstrating true business value has been the easiest way of gaining alignment and kind of knocking down that wall. Of course, data governance can also deliver efficiencies for everyday processes, but truly helping an end-business user execute better and be the hero is what we are looking to enable through data governance. So we're really excited to hear Sean speak to how JL accomplishes this. Also, at Calibra, we are the leader in the data governance and catalog software space, helping organizations globally gain a competitive advantage by maximizing the value of their data across their enterprise. And we are the only purpose-built solution to address the needs of the data citizens, including data stewardship, governance, and management needs of the most complex and data-intensive industries. Our flexible and configurable cloud-based on-premise solution put people and processes first, so it's really about empowering every data citizen to be able to find, understand, and trust the data to unlock business value. So really being grounded in data governance, our perspective on data governance can be summed up as data is a raw material and governance data is an asset for your organization. And in today's world of data privacy and concerns, ungoverned data is really becoming a liability. Organizations need data governance and it's becoming a mandate across the teams as there's a digital transformation, digital growth, really a lot of data flying around everywhere in front and center as we've seen through Gartner's report and study of global CEOs. It's what CEOs are now saying they need their IT departments to really have a larger impact as this continues to grow. And today's answer for unlocking the value of data through BI and data management really isn't sufficient anymore as additional challenges still remain. How can my end business users find and understand the data that's out there and at their fingertips if it's even available to them? Why should they trust what is being presented to them? Unfortunately, a lack of trust leads to a lack of consumption or adoption which is counterintuitive or not beneficial to the organization. We talk about this as everybody's becoming more data-driven. And we touched on this before but managing risk around data today is really at the forefront and protecting our customers and their data can be seen as the ability to build a stronger relationship than trust. So where can we turn to? At Calibra we see it as providing foundational governance with a strong operating model and sharing best practices, having a set process flows and policies to ensure that data goes through these rigors and can be trusted. A robust solution for stewards to perform their tasks and enrich the data. The ability to add in reference data and finally the ability for owners to or the data owners to be able to certify their assets. And if you think of data governance as a journey and what you're really aspiring to of creating that business value, you actually look at it to create data experiences one day and with the help and adoption create that business value for multiple stakeholders across the organization. So at Calibra we strive to help our data citizens find, understand and trust their data through our purpose-built data governance platform. And whether your data is in the cloud or on-premise we offer the tools that efficiently organize your data through processes and governance to help those. Data scientists effectively spend their time optimizing and surfacing assets with the data versus just finding the data. And with governance as a foundation you can provide your scientists with an analyst with the time savings and risk management eventually creating value in ROI with end business users and even creating new revenue opportunities in a safe way or manner. So Calibra is a leader in data governance and it's because we've had this singular focus. We are recognized by Forrester and Gartner as a leader in this space. And as we know that data governance is a journey we employ many resources to help what we consider data citizens improve their journey and we built a community of experts out there such as yourselves to have these conversations with each other and share ideas. We offer university courses, personal one-on-one coaching and best practices as well as agnostic approach to the ecosystem where we understand that one organization's solution fits everybody else's needs. So being able to partner out there with the leading technologies. And just a quick glimpse into in addition to offering a business glossary and dictionary for organizational alignment we also have the ability to surface reports with ratings and recommendations tools that encourage collaboration. We have features that can help you import data quality scores linked to assets for easy usability as well as to improve your view of lineage and robust diagrams. Then finally we look to certify workloads, the policies, everything that makes things easier and instilled trust by the end user. So I encourage everyone after this webinar to join our community and continue the conversation as we have organizations in the same position as you looking to develop their data governance initiative and how to get started. And with that I'm going to hand it off to Sean to kick off his presentation. Thanks Erin. This is Michelle. Let me introduce Sean before we get started. Sean is from JLL. He's the Vice President of Global Data Governance. He studied Computer Operated Business Information Systems at Howard University in D.C. and had a unique opportunity to work in a family business developing a budgeting system for colleges and universities. He built upon that experience creating similar systems for country clubs. So realizing that his true passion was the data captured by the applications. Sean focused his journey in the data arena. From database administration to data architecture to business intelligence and finally data governance, Sean has served in all roles surrounding data. He earned MBA degrees in finance and marketing from Drexel University to increases business acumen and he combined those degrees with his data skills. He's helped Fortune 50 and Fortune 500 companies such as Comcast, JLL and DeVita realize improved data quality and real value from their data driving revenue gains. So it's my pleasure to introduce Sean. Thank you for presenting for us today. Thank you, Michelle. Thank you Erin and Shannon as well. And everyone that's on the call hopefully you'll be able to get something meaningful after the presentation. I know we have limited time so I'm going to go ahead and get started. There'll be some time for questions and answers after the presentation. Okay, so the topic that we're talking about data governance from chaos to harmony. I titled this a JLL case study. Basically what we'll be doing is kind of going from our journey five years ago when we started our data governance organization by Jones Lang LaSalle as a formal organization. And this is kind of the things that we had to go through to get to where we are now. So it's not one specific item that we went through but a collection of our experiences. So a little bit about Jones Lang LaSalle. So a Fortune 500 company. We're a professional service firm specializing in real estate and investment management. And I'm going to try to make sure I don't talk too fast. I have a tendency sometimes to do key tricks and talk too fast. I'll make sure I keep the pace. We have about 82,000 employees. It's a global company. So we'll have all the challenges that you have with a global company of different cultures as well as different types of data that's going to come across, different types of data values that are going to come across. So we'll get into that as we go through the presentation. So this is just a quick slide in its size. Kind of tell you about the complexity of the data as well. So this is me. Like she said, Vice President of Global Data Governance, Corporate Solutions. I've been in JLF for four years and our department has been about five years. The phrase that I like to kind of go by and I know my kids are tired of me telling this to them but how you do anything is how you do everything from T-Heart, ECR, basically saying even in the small things practices that you have in the large things to come and have the forming that you're actually doing the right things because how you do anything is really how you do everything. So let's start off with the beginning. So we talk about a journey. A lot of times when we talk about data when we give presentations, people on our team may have seen some other people on my team present. We always talk about a journey and so we talk about where we are and where we want to get to. So in this particular case, we're talking about a journey from a chaotic situation, chaos to harmony. And so here's where I'll give a quick disclaimer. I think it's when I first made this presentation and I put out the term chaos, I was told by some of the people I worked with to just be very careful that I wasn't offending anyone. So I don't want to offend anyone and say that chaos is really what this definition says here complete disorder and confusion because that's not actually the case. You very rarely will find a case that comes to the extreme. More and more correct or more to a point there's some type of disorganization going on, maybe some confusion going on. So I wouldn't say that we came into JLL. There was chaos, a complete chaos, but there were some situations that were very in need of somebody coming in and alleviating some confusion, putting some standards in, putting some order into the situation. And I think you'll see the same thing where you work. You feel like at times that this is complete chaos, but the reality is there's probably some things that are working and there's probably some things that really aren't working. And so that was one of the ones that we're going to take a challenge on. And other things that are working, and that's where it is. So let's talk about chaos and we want to do it through the lens of data governance. So looking at the lens of data governance, some things that we can look at as chaos, siloed lines of business. Now that can be a look at as a chaotic situation, but it also can be looked at as, you know, something that's being successful. There are a lot of businesses that are siloed on purpose. And that used to be the way a lot of businesses ran. You know, I ran, this is my lease administration system, property management system. We're doing renovation projects to have their own system or their own line of business all the way from somebody who leaves the business to marketing sales all the way down to whatever kind of data governance activities that they're doing. And that's fine. That's what they want to do. They're running their business. They're being successful. And it's kind of hard to look at them and tell them they're not doing it right because the bottom line is that they're being successful. And so if you look at it that way, the siloed on businesses are successful. But as we have evolved in businesses and we've seen the synergies that we can get, and in fact, have the demand from our customers come back to us and say, we want you to be able to share these data, this data that we have across these systems so that we can actually find synergistic gains from this data. Then we started getting challenges on the data governance side of saying, you know, how are we going to share this data across? How do we define, say, for example, a customer across all of them so we know that this customer is the same as this customer is the same as this customer? All those things started becoming data governance activities. A lack of standards. So what do we call a data? A very clear example could be, how do we call the United States? One person may call the United States in their system. Another person may call it America. Another person may call it U.S. So just in that simple example, we have three different ways somebody has decided to define a country and what it's referred to. Now, we can easily hear it maybe as Americans or that we know what that means or anywhere else somebody may be able to understand it because it's very popular, but when we start getting to other things, it doesn't become so clear and you may have different ideas of what that is. And so the lack of standards start becoming more pronounced in those cases. So that becomes an issue. It could be a very chaotic situation. One we came across was CASEL. And CASEL could be anything. So if you try to standardize what a CASEL is, could you really do it? It may be an entertainment thing for somebody to look at as a property type. It may be a business office. It could be a bunch of things. And so standardizing becomes an issue. And finally, data quality issues. So what is the quality of your data? Are you actually addressing that? To know the quality of your data? Do you have the business rules? Do you have the validation rules?  And in the lack of having these things, you have what most people would term it as a type of chaotic situation. So let's go into getting a little deeper in there. We talked about this lack of data integration across applications. Duplication of responsibility. So you have all these different lines of business that have traditionally worked on their own. So you have each one of those people doing similar things. And in the case that we had, we have data governance coming in again doing similar things as well. Inconsistent data. So having the data that is represented in one system, not consistently being represented across all the other systems, maybe different values, maybe different standards. No communication. And this one is a big one. And I hesitate to say anyone is bigger than the other one, but when you have organizations or parts of your business that don't talk to each other at all, by the time that's maybe the first place you have to start to be able to open up that line of communication so that people can work together. Now I have an example that we came across here at JLL. And then the final one, unclear and non-existent data governance processes. So how are you introducing new concepts? How are you approving new things that are brought into the system? Do you have you identified who the stewards are of data? Have you identified it? What number of people need to vote on the data? Who your subject matter experts are? It all falls under there. Here we go. And so we're at the end of our journey. So we know where the beginning of our journey is. Let's talk about what we think that end of our journey is. And so I use the term harmony, agreement or concord. My favorite word is consensus. Consensus is not necessarily agreement. It basically means that no one has a strong disagreement. So we may not all be able to come and say, okay, I agree that we should all call everything United States. But we come to a consensus to say that our standard may be United States. You may not have all of our systems that can agree with the standard. And so a common argument that I hear from data governance people is, if I come up with a standard and everybody doesn't adopt it, is it really a standard? And there's a whole bunch of different answers to that. I won't get into whatever the answer is to that debate. However, what I will say is there's reality, right? And then there's utopia. So if we look at it from the pure data governance perspective, we say we come up with a standard. Everybody should be able to have it. The reality is people are running their business. Their systems are connected to other third-party systems. They may not be able to adopt your standard at the immediate time that you came up with that standard. And so therefore maybe there's some other workaround using reference data solutions where you're able to take the data that's in that particular system and map it to a standard so that you have systems that will know that when this system is talking about a customer, it's this. And when this system is talking about a customer, it's this. Or a better example I find I can give is property address, right? And so the property address in one system may be the physical address and another one may be something that's a contractual address. So we'll just look at it. We're looking here and we're talking about harmony. I'm basically talking about consensus. So data, and we always put this in our presentation. So we can go all level set what we think data and when data is useful. And it's kind of in line. You'll see a lot of the similarities with some things that Aaron talked about because we all agree to a very high level of what we're trying to get to. So data is only useful when it's clearly understood. We know this is the data we have. This is what the values mean. It's accessible. People can actually get to it. I think there was a portion that he showed on his slide. Finding the data. That's important. Protect it so there has to be some type of security. Making sure the right people are able to see it and the wrong people aren't able to see it. And that the data is trusted. If I look at it today, it's going to be the same thing as I looked at it when it was yesterday. And I have all of the data values and things like that. And so we have to have the structures in place. The mandates mean there will be times when I tell you do you have no choice but to do this. Processes in place. We've talked about the structure. So what is the structure of your data governance team? Is it distributed? Is it all in some type of central organization? These all become important. And then what platforms are you going to use to do your data governance processes? One thing to talk about on structure. So let's kind of look at the example of we had. So we were a new organization, a new part of a longstanding organization as it came in as a data governance group. So three people, I think, is what the organization started off. Ho-Chun Ho was the leader and two other people. I came shortly after that into the organization. So about four or five people new to the organization. We don't know anybody. We haven't built any relationships. And we're coming in saying we're going to do data governance inside this organization. So there's a lot of resistance there. There's a lot of personality conflicts that could come up here. There are people who had responsibilities for data governance before we came in. Successful people. So you can't necessarily assume I'm going to come in and be the savior for this organization because if you come in with your attitude, you may turn off a lot of people and you may not be able to get anything done.  It's almost to be included into the conversation of where you need to put the data governance processes and activities. Because until people actually like and trust you, you have a hard time getting into the meetings. And that's what we found. So we spent a lot of time in the beginning getting to know people, meet people, and before we could even get to the data governance process part. That's people skills. That shows the importance of people skills. So here was our challenge. We had a business that was very successful but to a certain degree very siloed because it's just the way the world was running, right? The lease application, they specialized in leases. They did everything they needed to do for a lease and top of the industry. Same thing with projects, with the running renovation projects and things that were very successful. And then there became the need to say, well, you want to be able to do business KPIs and analytics across all these systems to find where the opportunities are that one system's data inform another line of the business. And so the thought was we'll come up with this that goes across all these KPIs, right? We'll have some type of multi-platform data environment. We'll have some type of master data here for all the properties that go across all these systems. And we'll have reference data. We know we have third party systems that we have to bring in. And when we do this, all the data come in and work harmoniously, right? And that's the thought, right? That's not the reality. The reality is there's a lot of complexity in bringing all these together, right? And so you'll see that, and what we saw was in a lot of cases, some of the assumptions that were made across these systems, it just didn't work. And so that was our challenges. We had very capable people, but maybe they just needed some direction from some data governance experts to come in and just kind of guide the process in a certain direction. So not to say that we knew anymore than anyone else, you know, it's just a new role, a new task, a new job that had to be done. Let's talk about the first thing, breaking the silos. That's the first thing.  We're walking in. These teams have been working very well. They're successful. And now you're saying you all have to work together, right? And they're like, we don't have to work together. And so here's the things that we're going for. Business and support teams, collaboration. The big key part of that is collaboration, a shared responsibility, a common understanding of the data, and where are the opportunities to integrate your systems. So the story that I'll talk about on this one is whether teams feel like they need to collaborate. There's a whole bunch of issues that may be existing inside a company when you come in. It could be personal issues. Like, you know, they make people really not like each other because of something that happened before you came along. It could also be just a distrust. Like, we feel like we're better than that group. And we don't, or we don't know that group, right? So we don't know what they're doing. Or we have enough work on our own. Why do we have to bring in another group and the complexity of that group and things like that? So all of those things were going on when we came in. There was a specific issue that we had to, we came across, and it had to do with addresses. So there's two different systems. There's a property system and there's a lease administration system. So if you think about that, there's two different teams. There's a lease administration team and a property portfolio team. And like I said, they're all doing great jobs at their individual systems. And now these systems have to actually meet with each other. So the first thought could be, I'm just going to give you my data and you just pull it into your system. Now, if I do that without communicating with you, there are a couple of issues that could come up. One is, I will get your data and I won't understand it. Or maybe I'll misunderstand what you sent me. So if you send me something that is called equipment code, and I have something called equipment code, I might think it's the same thing. But it may not be, right? And so therefore, because we didn't communicate, I'm pulling that in and then maybe six months down a line, I figure out, oh, wait a minute. Are you telling me that your equipment code is the same as the equipment code I have when the same company? But you know, one person may have taken it for one system and one from another. So that's common understanding of data, right? And so we came across that issue. But the big problem was the teams did not want to meet. They didn't feel like they had to meet. And you also wonder whose responsibility is it to know. You gave me this with the equipment code. Should you put a definition in there before you send it to me? Should I have to come to you and figure out what the data is? It's your data. You just told me what it is. So it was very clear. All those things come up. But the problem is the company really needs to know, right? The company that needs you to figure it out and the reality that we came across was the teams did not want to meet. So I literally had to get on a plane and fly and meet with people, maybe even go to lunch. And this is something I brought up in a previous conference when we had this conversation. You know, these are the people skills that you don't necessarily talk about when you're talking about how we're going to do data governance. By coming down and sitting with people and making a personal relationship with them. I'm not saying a deep personal relationship. We're not doing Thanksgiving or Christmas together.   No, the two kids, Cheo and I, she's there in sports and one is acting.  And then maybe they give you the benefit of a doubt when you're talking about, I need you to meet with this other group and realize that you can't solve the problem without meeting with them. And so in this case, we had two different properties. The way lease administration works is the property on the lease administration side has to be what's on the contract. It's just the law. And on the property side, you're going to put the address, the real physical address. So I'll use an example. I live in a place called Lavrock. And that's what we call it. We have a sign up that says, welcome to Lavrock. However, if you go to any post office system, it will say it's Glenside. So the people in the town call it Lavrock. The post office system will resolve Lavrock to Glenside, Pennsylvania. And that's just fine. If I mail your letter, it'll get there as Lavrock and it'll get there as Glenside. But we have two different addresses. So if I go into a contract for a lease, I'm probably going to put Lavrock. I'm the homeowner. I'm leasing out my home. I'm going to put Lavrock there. The post office, when they put the system down and they go through something like address doctor or something to figure out what the real property address is, they're going to put Glenside. Same property, two different addresses, two different systems. Now I've decided I'm going to integrate these two systems. Now here comes my problem. I'm in the lease administration system and I'm trying to look up this lease to see if I want to add a new one. And I type in Lavrock. It goes to the property portfolio system and see, do you already have Lavrock in there? Does address it Lavrock? No, it doesn't. Turns into Glenside, creates it, comes back. Sends it back to the other system. The other system says, okay, I have the address for Glenside. Now I go to look for it again. Lavrock, let me look for it. It looks in the property portfolio system. So it still doesn't see it. It just keeps changing it. And so that's the problem we had. The two systems had to change the way they operated. However, they each saw it as the other system's problem. We were able to break down the barriers, have a meeting. Everyone saw that it was a shared responsibility. We were able to store the addresses for both systems on both sides. So now when you do a search, it'll search both systems for both addresses and it resolves correctly. So again, it was really just a case of getting everybody in the room. Everybody involved was highly capable. Very, very skilled professionals. It was just getting them to see that the problem could not be solved with just one side. Just breaking the silos down. Classic example of being able to break the silos down. The next part would be data standard consensus. Maybe when you're starting your organization as we were, we had to introduce the concept of data stewardship groups. This was already being done informally in the group. And so what we were talking about was creating formal data stewardship groups where people across the different parts of the company would come across, come together, and they would make decisions on data stewardship activities. We wanted to come up with company standards. We wanted to understand which industry standards we wanted to bring in. They didn't exist. Maybe we actually become part of boards and start creating them, right? And then what reference data we wanted to bring in. Reference data, being systems that have context from the perspective of an application or some specific part of the organization. When you're thinking from an application or a third-party data, we could say that to be reference data that you would kind of map to a standard that you have inside your organization. So getting deeper into data stewardship groups, what are some of the different things that we had? What was chaos in our organization? One, people weren't used to working together necessarily in data stewardship groups because they were in silo parts of the organization. I might not care what standard that you had in your system if all of my personal and management incentives are all from my line of business, right? I don't care what value you use.  I know this is the value I have to use for my system and when it comes down to make a judgment on whether I did my job or not, they're going to judge me on what I have inside this system.  So some of the things that we really had to be careful was one, the message that we were putting out is we said somebody was not using a standard and they should be. We had to make sure that the message was clear that maybe they had a reason why they weren't using a standard. If we wanted them to use a standard, you don't want to throw anybody under the bus. So you're building relationships back to that people's skills part. And so we brought everybody in data stewardship group and I'll be honest, when we first started, it was very quiet.  So inconvenient times for some people. Very new concept. And it wasn't so much that they didn't want to participate. Maybe they just didn't know how. And I just know it was very quiet in a lot of those original meetings. What do you think about this? We're going to use this as our standard for country. We have this property type. We have this subtype. And here's where we're going to feel like this subtype maps, like maybe castle maps to entertainment, multi-purpose building. Does everybody agree? And you get silence, right? So you're not actually getting people to participate. What we had to do, again, going back to the people's skills, was build trust. And sometimes that was sitting down, flying out, meeting with somebody during the day, maybe all going out to lunch as a group, just to talk and get to know each other. But it broke down a lot of those barriers. And then once we realized, we're not trying to throw you under the bus. If we're telling you about data governance or data issues, we're all trying to make sure that we address them, but in a way where we're not trying to make you look bad. I think we all know that our data is not perfect. But we don't want to come off as if we're these savers that are coming in and you've been doing such a bad job, because that's not the case. 99% of the time, that's not the case that people are doing a bad job. It just needs to be a little bit more redirected into a common focus. So that's what we came up with. So now we have a data stewardship group program. And it's successful. It's running and people know their roles. We know who our stewards are. We know who our subject matter experts are. We know who actually is like the administrator of the system. And we do use Calibra for our reference data. I'm doing that. You feel okay saying that we are using them as a system for mapping our reference data, kind of managing our data stewardship activities and our approvals. Data quality being the next one. It's different ways you can do data quality inside your system. You can buy a data quality tool. Or you can build a data quality tool. The important part is being able to have the business rules and the validation rules that actually will power your data quality tool. In our case, we thought it would be better if we built a data quality tool. So that's what we did. We actually won an award inside of our organization for the data quality tool that we built. We wanted to build it ourselves because we wanted the flexibility to be able to do certain things. There are a couple of issues that come across. One is license. You know, if you buy a tool outside, can you have other companies as your client? Can you actually give them that tool? Now, those are things that we came across and had trouble doing with other systems, but if we built it ourselves, then we don't have that same limitation. Being able to customize it towards a different company. The larger company is building it across for everyone. So it depends on what you need for your data quality tool. You decide whether you would build or buy. In our case, you decide to build. So to kept us agile on our feet and able to do the things we need to do. But that's also one of the kind of things that we'll all have no matter if you buy or build coming up with business rules and validation rules.  You have your critical data elements. You have some kind of initiative, as you should have some type of initiative to identify what your critical data elements are inside the system. So these are the data elements that people use to make the important business decisions. And your business rules and your validation rules to definitely be, definitely in line with your critical data elements. Therefore, knowing that the data element that you'll be using for crucial decisions inside the company have a high data quality. And then again, then furthermore, your data quality tool is telling you what the value, I mean, what the quality of that data that you're feeding into it is. We probably won't have 100%, but you want to know that you're directionally correct.  So just throwing up some numbers, I mean, presentation has to have numbers, right? So what is the business loss of bad data? So Gartner says the average financial impact of poor data quality on organizations is about $9.7 million a year. And that was said at a point in time this year. However, you know, that's going to keep going up as we understand how important data is to making decisions, right? And to open resources, 30% of revenues, poor data quality, poor quality data is costing businesses at least 30% of revenues. So just putting some numbers out there to give people understanding. There is an impact, right? These are the numbers that you can tell people that we don't have good data, and data quality knows costing us. Most people at this point understand this point. Who are we as data governance, right? And so I'll give an example. There's a common thing that we all go through as data governance professionals, of where do we sit inside an organization? Are we part of the revenue-generating portion of the organization, or are we part of the cost part of the organization? Anybody who has been in line with the cost part of the organization knows that every year you will go through some type of cutting process. Cutting costs have historically always been a goal of most companies. How do we cut costs? How do we cut costs? And so if you're in line of that cost-cutting organization, I'm pretty sure you have dealt the loss of team members, right? Materially, the team members, but also maybe systems, maybe resources. And so let's re-look at ourselves. Like, are we really here? Do data governance really cost just a cost-part organization, or is it revenue generation? And we have the opinion on our team that we are part of the revenue generation, and we have a very good discussion about it. So if we talk about the sales and the marketing teams, right, nobody would ever dispute that sales and marketing are directly part of the revenue generation part of the organization. Sales is going to go out and make sales. The marketing is going to actually educate the market, the customer, even build the market. So if we look at the example of an iPhone, right, they're going to go out and let everybody know what an iPhone is, how great it is, the different functions of teachers that it can do so that when somebody goes out to do sales, they know exactly where, what we're talking about. The sales team shouldn't have to teach you what an iPhone is, right? They shouldn't have to build up a market to say that these are the people who should do want to buy an iPhone. That's probably done by the marketing department. So they're hand in hand and look at, you know, this is what's going to generate our revenue. However, let's say the data, the quality of the data that is used is bad. Let's say the marketing team got a list of people that they actually want to use to send out, to build the market, right? And the data they have is bad quality. So it tells them, send all the iPhone marketing out to, let's say, my mom. My mother, you know, is not really into the latest phones. I think she has like the iPhone too, something like that. I was plugging the charger in yesterday and I couldn't even believe that chargers still exist. But that's the phone that she's happy with. She doesn't want the big fancy new phone.  And so let's say the marketing team sends all the iPhone X marketing out and it all comes to people like my mother and her peers. And then the salesperson goes out and tries to sell the iPhone X to my mother. She's going to turn them down flatly. However, my daughter is sitting over here and she never got to any kind of marketing activity. It didn't come to me, you know, so she could pick it up out of the mail before I got it and come back to me and tell me to go buy it for her. Right? And so the sales team, listen to the marketing team, they start pointing fingers. So that's why I say, you know, if we look at it all like a family situation, the data governance can be looked almost as the family therapist. We are the little man, right? We can actually make sure that the data is correct. We can talk to the people about here's the data that you have that's coming from this system to that system. Here are the issues. We put the processes in place. We put the standards in place that actually will prevent them from having similar errors occur, right? And so that's data governance. So if you look at that way, we're directly in the family of revenue generation. Right? So that's just the point. Something that people can take that, and they tell you your part of the cost. How do we escape chaos? So the key point here, I think, is to look for low-hanging fruit and try to bite off too much. And so where is the low-hanging fruit? Data quality is one of them. You can start taking just one person's data and keep data to their business rules and put them into an cycle algorithm and figure out what the data quality is and provide that to them. Another would be standards. They can go out and get ISO standards or some other organization to bring them in, have a discussion with people about whether they'll stand just sit or not. If they don't sit, come with your own company standards. Reference data. So reference data is from the systems. Bring the application system in. We use Kaliber to just bring data in. Just bring it in. Keep bringing it in. And then we'll see how it fits back to any kind of standard with a mapping project. Approve projects. You own any project. So you've been approved. So it has funding. You can put data governance initiatives in to one place and then take it out to show other people what you've done so they can see the viability for their different areas. But you already have an approved project that's based on standards. So that's just escaping chaos. So what does harmony look like? What does our endpoint look like? What integrated teams, people that work together, that know when to work together. They know how to work together because we have defined data governance processes. We know what the voting looks like. Two-thirds of the people need to vote on it for it to be approved, for example. So we have defined processes to have to define people as part of those processes. We have defined workflows for approval of the data. And so we use Kaliber for workflows as well. And people can go in and we know who's going to and it'll automatically send it. If you have some paperwork flow application, it could be anything, you know, that'll automatically send from one person to the next person and then go through the approval process. It's very helpful for approving data. Reference data, map to the standards.  It's just reality. So therefore, we have a process whereby we reference map or reference data to a standard. We have an understanding of the data. So we have some type of business class resolution that's going to give us that transparent data quality. So some type of data quality tool that's telling everybody on a daily basis where they stand as far as they're matching up with validation and business rules. So I'll tell everybody, it's not going to be easy. The real honest answer is doing a successful data governance program in the towns, you're going to take a hit. I said that in the last time when I spoke about this. I laugh about it, but I personally did take a hit doing the proper thing, which was to bring organizations, people who didn't want to work together together. But it took time. It was costly. I had to get on a plane and meet with people, and it kind of stressed out the timeline a little bit. So then when we actually got to where we got to, we had to look back and say it was a portion of the time that didn't seem productive. However, it had to occur. We had to get these teams working together. However, that won't show up on your bottom line, that you now have these two teams that know when to work together and always do work together. They won't see that. So I took a hit a little bit as the manager to say, no, this project should have taken less time. It should have did this, right? Okay, but that's not taking into account the fact that there was some people portion of it that needed to take place. There won't show up when you're deliverable. However, the company will benefit from it going forward. These two teams not only work together now, they know how to work together. They only know how to work together. They do it well. And that wouldn't have occurred had we not gone through that process. So you may take a hit, but the company benefits in the long term. And sometimes, like I say, they will be rewarding, but it's not going to be easy. Just some parting thoughts before we go to questions. Just think about what are your objectives for your data governance program? Is this your first attempt? If it is, like I always tell my kids, there's a better way to learn things other than necessarily doing it yourself. So maybe look at other examples that are out there, people who've gone through things and learn from their experiences. What are your core competencies? What are you able to do within? Maybe you're not that technical. So if you're not, maybe that's something you put off a little bit of other outside people to come in and help you with that piece of it. How do you sell data governance inside your company? It won't sell the same in every company, so that's something you're taking into account. And then finally, how do you measure success?  Is it a number of programs that you put in? Is it a number of people that are being involved? Is it a fact that you have a stewardship program, a metadata management program, a certain program that you wanted to have in place? Just have it in your mind, know how you're going to measure that you have a successful initiative. And so I'll, at this point, open it up to questions. I see some have come across. Thank you very much, Sean. I do have some questions for you, and as you were saying, I think changing the culture, you know, it's very difficult and it does take time. And I do agree with you that going out and meeting people in person goes a long way, so hats off to you for doing that. One of the questions we have is how do you balance command control with autonomous governance or shared responsibility in a structured way? You know, balancing between the two. Okay. Yeah, so if I understand the question, I think we're still talking about being able to mandate that people do, and let me know if I'm wrong about this, but being able to mandate that people follow certain processes and things as opposed to using maybe their own type of data governance type of things. Is that what we're talking about? From top down versus bottom up? I'm not sure, because somebody posted that question. So it didn't come from... Well, let's talk about it from that way, and if it's not, then somebody else can clarify for us. But I would look at it as... That's difficult, because I remember us having the conversation, the standards. Everyone has to do it. They have no choice in the matter. And the fact is, they do have a choice in the matter. It'd be nice if we could force everybody to do what we want them to do, but the reality of the situation is that we can't and we couldn't.  We're not going to do it. So you just kind of realize what battles that you actually want to fight and then allow them to do the things that they have some data governance. Figure out how that may work. And maybe it's a gradual thing. So now you want to adopt our standards. Let's figure out what your barriers are. Why can't you adopt our standards? Is it beneficial for all of us later on for you to adopt those standards? And then let's try to make a path to get there. And that way it's not coming down so much as telling you what to do, but we're partners and we're working towards this end goal. So I hope that answered it. Okay, thanks. Yeah, that's good advice. The next question is, what is the commonality of interest in each data stewardship group that you have? Are the groups by line of business or are they by data domain or how did you segregate the groups? Excellent question. And we went across data domains. So we went across applications to data domains and we had people who had interest inside of those data values. And when we met, we made our coach on how, he actually, when he first came in, you know, one of the things that he had to do was go around almost like on a tour around the company, introducing himself to people, meeting people, finding out who in the company could do anything, those things I meant to say, and what the responsibility were so that when he could come back, when we had questions of, you know, we're about to deal with property data and we're about to standardize property data in the fields that are inside of our property data. Who should be involved? We had somebody who had a road, not a roadmap, but a map of the company, of people who deal with property data, who probably would be interested. Who is responsible for the lease administration? Who is responsible for it in our master data situation? And so knowing that, now if you don't have anybody that went out and filled out that map, then your challenge would be to be able to find out who those people are inside the company. But it was definitely across domain, it was across region. So these people don't have the same responsibilities and they really don't have any responsibility to us. And so therefore you have to make sure that they understand the importance to them that they're part of this conversation. Okay, thank you. I know that you had a slide on sort of industry guidelines on metrics. Have you been able at JLL to identify any business value metrics for your organization? Have you been able to go there far yet? Business value metrics. Yes. I don't see no, we haven't gone there yet. You got my industry standard to say these are the business value metrics that we're putting out. I'm going to defer that one. So maybe one of my colleagues can put that back out there and some other larger discussion. But I would say we haven't gone there yet. Okay. All right, thank you.  What other methods of communication did you find worked the best for your organization? I was thinking for anyone out there and other big organizations, do you have any lessons learned about how you were able to, you know, form a cohesive group and work across all those multiple locations? Yeah, because it's a global company so I'll be honest with you. I did not need to leave the United States to go visit anyone. And I had a very hard time with the mobile part of it. I worked at a company that was, I guess I could say I was already set up already, worked at Comcast. And Comcast was very, coming to the office, meet face to face. That's just the way it worked. And so now I went to a company that was very remote and everybody was talking on the phone and I struggled a lot on how to build these relationships with people that I'd never saw before and I had no opportunity to jump on a plane and meet. And there was a specific situation where something I said came off, not how I meant it, and it really made the person very upset. And I knew I didn't need that way, but they didn't know that way and I felt like they probably had written me off.  What I did that actually worked was I decided what can I do from a remote situation. So I can work in their time zone. It's not convenient to me. It's five in the morning to me, but if I make the meeting very convenient to them, at least they can see that I'm reaching forward. That I'm really probably not that bad of a guy that I really want to try to make this work. So it's kind of the same concept, but it's a different way to do it. Another thing is, I was used to, if you did a meeting on the phone, it was straight to business. We didn't talk small talk, no personal talk. We just went straight to business because it was on the phone. That doesn't really work in a remote environment. And so we did have to start spending portions of the meeting when the meeting began. How are you doing? How's the weather up there? I got to be watching the world cup. Some people may think these kind of things are silly, but one thing I've learned through my experiences is that these are the things that make teams work. You don't do those things that your team doesn't really work. And it falls apart at the smallest things. Somebody doesn't do something and you just don't like them or trust them. And so you're just extra critical about them and they put scissors and cracks inside your teamwork. And so just caring about the other person, I basically have to do that by phone as opposed to in person. Okay, that's good. Thank you. There's a couple of questions sort of related to the Clube of Software. Sorry, I think either one of you could probably answer these. The first question is, is it two different software packages? One that addresses the data catalog and one that addresses data governance or is it one software application? I'll take that one. Culebra is a single platform that's able to handle both the data governance team as well as a data catalog and what we're calling a catalog of catalogs. Of course, there's different functionality that's brought on because in the beginning, when you're establishing governance, we're not going to turn on every single feature because of the fact that there's just kind of steps in place to get everything organized from what we call a nine-step prescriptive approach to it. We really want to really work and partner with our clients to make sure that they get the most out of the platform and are able to step up depending on their needs and challenges the most. So I hope that answers that question. Yes, it does. All right, thank you. And last but not least, the other one was how does the data quality metrics populate in the lineage piece? How does the data metrics populate in the data lineage piece? Yes. Yes, so we talked about metadata and metadata is a very big topic and I definitely feel like metadata is something that everybody should be doing inside the organization. However, metadata is tough. Metadata is one of those things that once you tackle, we can ever get it right. If you've ever satisfied everyone and the answer is probably no, right? So if you won't. So to a certain degree, we've got to punt it on metadata. I'm just going to be honest. But everybody, we do realize the importance of it and being able to get back to data lineage. So as you talk about the metrics, being able to trace that metric back to where it actually came from and that's kind of, you know, just definitely what, you know, kind of trying to go with it. Sometimes difficult to do inside the company. So depending upon where your team is and how much stuff you have, metadata is not the low hanging fruit. So we haven't got there. It's on our radar. I'm actually responsible for it and we will get there.  And there's a couple of reasons why it's difficult. So if you think about your in-data metrics and then you're tracing it back to where it comes from, a lot of times when you get to your ETL scripts, there will be several procedures that kind of obfuscate what is actually going on to be able to get it back to that source.  But it's a very difficult process to be able to go through. So I would definitely say everybody should do it, but it's just tough. Okay, thanks, Sean. We're out of time, so we have to wrap up, but just want to thank Sean very much and Erin as well. And just a reminder, we will put this recording out on the members only section of the DTPO website in a couple of days. Thank you both. Thank you. Turn it over to you, Shannon. Thanks, Michelle. Thanks, everybody, for the great presentations and thanks to all of our attendees for being so engaged and all the great questions coming in. We just love the engagement. And we hope to see you next month. Thanks, everybody. Thank you, everybody there.


Live from Boston, Massachusetts, it's theCUBE, covering OpenStack Summit 2017, brought to you by the OpenStack Foundation, Red Hat, and additional ecosystem support. Welcome back, I'm Stu Miniman, and if I'm sitting on this side of the table with the long hallway behind me, it means that we're here for the wrap of the second day. John Troyer's here, day two of three days theCUBE here at OpenStack Summit. John, I feel like you're building energy as the show goes on, kind of like the show itself. Yeah, yeah, getting my footing here. Again, my first summit was a good second day, Stu. I think we made it through. We had some fascinating stuff. Yeah, fascinating stuff. Before we jump into some of the analysis here, do want to say, first and foremost, big thanks to the Foundation.  Without the OpenStack Foundation, we would not be here. Their support for a number of years, our fifth year here at the show, as well as the ecosystem here, really interesting and diverse and ever-changing ecosystem. And that fits into our sponsors too. So Red Hats, our headline sponsor here, we had Red Hats Summit last week, and two weeks, lots of Red Hatters, and now lots of stackers here. Additional support brought to us by Cisco, by Netronome, and by Canonical. By the way, no secret, we try to be transparent as to how we make our money if it's a sponsored segment. It lists sponsored by that guest here, and otherwise it is editorial. Day three actually has a lot of editorial, means we have a lot of end users on the program. We do have vendors, you know, cool startups, interesting people, people like Brian Steven from Google. When I can get access to them, I love to have it here. So, you know, big shout out, as always, content, we put it out there, the community, try to have it. But back to the wrap, John, you know, we've kind of looked at some of the pieces here, the maturity, you know, where it fits in the hybrid and multi-cloud world.  Well, my favorite thing from today, and we talked about it a couple of times, just in passing, it kept coming up, is open stack on the edge. So the concept of, that the economics work today, that you can have a device, a box, maybe it's in your closet somewhere, maybe it's bolted to a lamp post or something, but in the old days it would have run some sort of proprietary chip, maybe an embedded Linux, you can put a whole open stack distribution on there. And when you do that, it becomes controllable, it becomes a service layer, you can upgrade it, you can launch more services from there, all from a central location. That kind of blew my mind. So that's my favorite thing from today. I finally got my arms around that. Great, and we saw Beth Cohen from Verizon was in the day one keynote, we're actually going to have her on our program for the third day. And teasing out that edge, most of it telecommunications is a big discussion point here. I understand why. Telcos spend a lot of money, they are at large scale, and that NFV use case has driven a lot of adoption. So Deutsche Telekom is a headline sponsor of the open stack foundation, did big keynote this morning, AT&T's up on the main stage, Verizon's up on the main stage, Red Hat and Canonical, all talk about their customers that are using it. We just talked to Netronome about telecommunications. Everybody here, if you're doing open stack, you probably have a telco place because that's where the early money is. And it tends to be there's the network edge, then there's the IOT edge and some of the devices there. So it was one of the buzzy things going in and definitely is one of the big takeaways from the show so far. Well Stu, I also think it's a major proof point for open stack, right? Bandwidth needs are not going down. That's pretty clear with all the things you mentioned, right? Throughput is going to have to go up, services are going to have to be more powerful. And so, and all these different kind of connected devices and qualities of service and streaming video to your car. So if open stack, if they can build a backplane, a data plane for open stack that can do that, which it looks like they are doing, right? That's a huge proof point downstream from the needs of a telco. So I think that's super important for open stack that it's usable enough and robust enough to do that. One of the reasons I think it gets talked about so much, the nice thing is this year, compared to my comparisons of previous years of open stack summit, telco is not the only game in town, right? Enterprise also got a lot of play and there's a lot of use cases there too. And just to close out on that edge piece, really enjoyed the conversations we had with John and Kendall who had done, worked on the container space. So talking about the maturation of where Cinder had gone, how we went from virtualized environments to containerized environments. And even we teased out a little bit that edge use case. I can have a really small open stack deployment to put it at that edge. Maybe that's where some of the serverless stuff fits in. I know I've been, I tell my team every time I get a good quote on serverless, let's make a gem out of that, put it out there. Cause it's early days, but that is one of those deployments where I need at the edge environments, I need something lightweight, I need something that's going to be less expensive, can do some fast processing and both containers and potentially serverless can be interesting there. I mean, even in our canonical discussion with the product manager for their open stack distribution, containers are all over that. Containers are just a way of packaging. There are some really interesting development pipelines that are now very popular and being talked about and built on in the container space. But containerization actually can come into play multiple points in the stack. Like he said, the canonical distribution gets containerized and pushed out. It's a great way of compartmentalizing and upgrading. That's what the demo on stage today was about. Also, just with a couple of very short scripts, containerizing and pulling down components. So I think, again, my second favorite thing after the edge today was just showing that actually containers and open stack mix pretty well. They're really not two separate things. Right, and I think containerization is one of those things that enables that multi-cloud world. We talked in another number of segments today, everything from Kubernetes with Brian Stevens as to how that enables that. Reminds me at Red Hat Summit last week we talked a lot about OpenShift. OpenShift's that layer on top of OpenStack and sits at that application level layer to allow me to be able to span between public or private clouds, and we need that to be able to enable some real multi- or hybrid cloud environment. I mean, containers and in fact that Kubernetes layer may end up being the thing that drives more OpenStack adoption. Yeah, and the other thing that's been interesting, just hallway conversations bumping into people we know, trying to walk around the show a little bit as to people that are finally getting their arms around, okay, OpenStack from a technology standpoint has matured and they either needed to clean up what was their internal cloud or building something out, so real deployments, we talked about it yesterday in the close though. They're real customers doing real deployments and heartening to hear. Yeah, I mean, one of those conversations, I ran into somebody at a hyperscale company, a friend of mine, and they are building out internal OpenStack clouds to use for real stuff, right? So, wait, hyperscale, come on, John, we can give away. Is this something we have on our phone or something we all buy and use? One of those big folks. Well, interest, there was a large Chinese company that anybody in tech knows that's supposed to be doing a lot with OpenStack. We heard it definitely, Asia, you know, very broad use of OpenStack. Been a theme of the whole show, right, is that outside the U.S. where we tend to talk a lot about the public cloud, you know, OpenStack's being used. I mean, an undertone I've heard is, right, certain companies that start here in the United States, it's sometimes challenging for foreign companies to say I'm going to buy and use that. Absolutely, that is a headwind against a company like Amazon. It ties back to we had a keynote this morning with Edward Snowden and some of those things. What is the relationship between, you know, government and global companies that have a headquartered in the U.S. and beyond? Yeah, I think it's too soon to say where the pendulum is, how far the pendulum is going to swing. I'll be very interested in the commentary for next year to see, you know, have we moved away from more of the centralized services dominating the entire marketplace and workload into more distributed, more private, more customizable, for all those reasons. There's a lot of dynamics that might be pushing the pendulum in that direction. Yeah, and one of the things I've liked hearing is, you know, infrastructure needs to be more agile, it needs to be more distributed, more modularized, especially as the applications are changing. So I feel like more than previous summits I've been at we're at least talking about how those things fit together with everything that's happening with the OpenStack days, the Kubernetes, Cloud Foundry, SAF, you know, other open source projects, how those all fit together. It feels like a more robust, full position as opposed to, you know, we were just kind of building, you know, a software version of, you know, what we're doing in the data center before. My impression was the conversation at times had been a little more internally focused, right? It's a world unto its own. Here at this summit, they're definitely acknowledging there's an ecosystem, there's a landscape, it all has to interoperate. Usability is a part of that, and then interoperability and componentization is a part of that as well. The changing world of applications, we understand the whole reason we have infrastructure is to run those applications, so if we're not getting ready for that, you know, what are we doing? Yeah, I don't want to put words in their mouth, but I think the OpenStack community as a whole, one of their goals is, you know, OpenStack needs to be as easy to run as a public cloud or, you know, the infrastructure needs to be boring. We heard the word boring a lot actually today. Yeah, and what we say is, first of all, the public cloud is the bar that you were measured against. Whether it is easier or cheaper, you know, your mileage may vary because, you know, public cloud was supposed to be simple. They're adding like a thousand new features every year and it seems to get more complicated over time. It's wonderful if we could architect everything and make it simple. Unfortunately, you know, that's why we have technology. I know every time I go home and have some interaction with a financial institution or a healthcare institution, boy, you wish we could make everything simpler, but the world's a complicated place and that's why we need really smart people like we've gotten to interview here at the show. So any final comments, John? I know, I think that sums it up. Those are my favorite things for today. I'm looking forward to talking to a lot of customers tomorrow. Yeah, I'm really excited about that. John, appreciate your help here. So there's the big party here at the show. They're taking everyone to Fenway Park for the stacker party. Last year it was an epic party in Austin. Boston's fun, Fenway's a great venue. Looks like the rain's going to hold off, which is good, but it'll be a little chilly in the normal, but we will be back here with a third day of programming, as John and I have talked about. Got a lot of users on the program, so really great lineup. Two days in the bag, check out all the videos. Got a SiliconANGLE.tv to check it all out. Big shout out to the rest of the team that's at the Dell EMC World and Service Now shows, be able to check those out in all our upcoming shows. And thank you, everyone, for watching theCUBE.


Hey there polycasters, Rob here. So I have a little confession for you today. I've been using the data binding system in Polymer for almost two years now, but up until very recently, I didn't actually know how it worked. Sure I could use the binding syntax to pass data around inside of my app, but because I didn't understand what was going on under the hood, it sort of all felt like magic to me. And ultimately that made the application a lot harder to debug. So I wanted to create this series of videos so you could understand how bindings are working in your own app. Now to do this, we're gonna have to first know about these things called binding annotations.  One way annotations, which are signified by square brackets, allow you to flow data from a host element down to a target, but never back from the target up to the host. To do something like that, you wanna use two-way annotations or what are sometimes called automatic annotations. This lets the host and the target pass data back and forth. Now I'll explain this a little bit more in a minute, but first I just wanna stop and think, what's actually going on inside of my app when Polymer encounters an annotation? Okay, so when Polymer first sees your element, you're trying to register it and everything, Polymer's gonna parse your element's template and actually look for these nodes with these binding annotations. And when it finds these sort of binding annotations, it's gonna create what it calls property effects. And a property effect is a little object that knows which node in the DOM to update whenever this property has changed. So in this example, Polymer's gonna create a property effect for this div right here and another property effect for this paper input element. So we'll have two property effects and all of these property effect objects get stored in an array. Now I like to think of that array of property effects as kind of like a checklist of actions that need to run anytime that property updates. And you can actually go and look at this actual array if you want, you can hop into the dev tools and this is an element that I created. I can use that little trick that I've shown you before where you can select it in the elements panel and then just do dollar sign zero and type dot underscore property effects. Now this is a private part of Polymer. It's not something we should be messing with but we can inspect it, it's kind of fun. And it'll give you this object with this array and you can see here there's two objects inside of here. These are our two property effects and you can see a little bit of info about the property effect itself. It's a text property effect. It's set to use like curly brace mode which I'm assuming means it's in some sort of two way binding mode, et cetera. So it's just kind of interesting that you can go in and you can kind of inspect this checklist a little bit. Now, looking back at our example, I'm gonna simplify things just a little bit so there's less markup to look at. Okay, so this is our template and this is our Polymer element definition. Now the other thing that Polymer is gonna do aside from creating property effects is it's going to create a setter for this property that we've got here, this foo property. So you can see we've got this little set foo setter down here and if you're not familiar with syntax like this, I'll link to a little doc on MDN that talks about JavaScript setters. And I should stress this is not the exact syntax that Polymer uses. It does it kind of a little differently at runtime but essentially what happens is once it's created property effects for a property, it also creates a setter for that property and inside of this setter, there's a few interesting things that take place.   And what Polymer does is it actually stores this foo property in a super duper private variable called underscore underscore data underscore underscore and you can kind of poke around and see this in the DevTools as well. It stores the original value over there and whenever someone changes the property, changes our foo property, if they changed it through JavaScript or changing the attribute or something like that, it's first gonna check to see if the old value and the new value are different because if they're the same, there's no point in doing a bunch of work. If they are different, if we do pass the dirty check, then we're gonna hold on to that new value. And the next thing after that is we're just gonna loop over all of our property effects, give them that new value and then that tells them to go update these nodes in the DOM. So if this is sort of our fake checklist of property effects, and again, this is all just pseudo code, but this is kind of what they look like, right? Someone passes in a new value, we say, hey, it's different from the old value. Cool, let's hold on to it. Now let's just start walking through that checklist of properties and we'll say, all right, let's set that new value up here on this div. Okay, cool, done. Next one, let's set that new value over here in the input element and so on and so on. And if these elements within themselves have property effects, those will kick off and run. And basically that's how data gets passed all the way down the line through all the different children. Now, I'm sure some of you are seeing this and saying, well, what about the property's object? Because I know this is also part of the mix, right? How does this thing get involved? Well, the property's object basically allows you to add what I think of as sort of like metadata to your property's setter, if you will. So here's our example again, and I've got this property's object now and I've got my foo property inside of here. And the setter is already set up. So it's gonna first dirty check for new values, it's gonna run the property effects if things are different. And let's say in my property's object, I add an observer, right? And I say, okay, well, when foo changes, I want you to run this observer function right here. Well, what happens is inside of the setter, Polymer's just going to literally call that function. I know it seems like it might be doing something more magical, but really, this is just it. It's just gonna call that function as soon as it's done doing any other work. If you give it a notify true flag, right? And this enables two-way binding throughout the Polymer system. Well, what this is actually doing is it's just calling this.fire, which dispatches an event, and it's just dispatching an event called foo-changed and passing along the value, the brand new value. So anytime you do this on a property, Polymer will always create this sort of event dispatch and the event is always called something-changed, whatever the property name is, dash-changed. And this is really interesting because it means, if you yourself are binding to an element, like here I'm binding to paper inputs value attribute, what Polymer does when it first boots up is it says, okay, I found an annotation here. Let me create a property effect and everything. Are we bound to some other elements attribute? Ah, yes, we are. I can see that we're bound to this value thing. Okay, so if this then fires a event called value-changed, then hearing that event is gonna tell me to update this property right here. So really, that's all that's happening in properties two-way binding system. Your element fires a changed event, some other element that is bound to it listens to that changed event and it updates its own property because of that. Now, here I've got a two-way binding and so you can actually see this system in play that I just described. So I'm gonna go in here and this is a representation of our element and I can type in to the paper input field and it's gonna fire those changed events and then that means I update foo and because it's gonna go through and play through all of my property effects, that means foo gets updated right here as well and you can see that here, so they end up matching. But what if I'm using a one-way binding, right? So here I'm using square brackets now instead of the curly braces. Well, that just tells Polymer, hey, don't set up the event listener for value-changed. That's really all that happens there. Now I go in, I type in this input field and because I'm not listening for those events, I don't hear anything and this property up here remains what it always was so we're not pushing any new data up there. Okay, so the last thing I wanna talk about are read-only properties. So you can set a read-only flag and that means that an outsider using your element can't push data into it in any way. So what happens there is Polymer just doesn't create the setter, right? It doesn't create a public setter at all because we don't want someone accidentally calling that and instead, because it does still internally need to work with that data, it creates a little private setter that it prefixes with this underscore and you can actually work with these. This is the actual syntax that it uses. So if you need to work with your read-only property from within your element, you can use this private setter to update it and that is how that works. All right, so now you know the basics of data binding but there's still a lot of cool stuff to cover. Binding to arrays and deeply nested objects and computed properties and change records and notifications and well, anyway, I'll save that for another episode. Now, if you've enjoyed this video, be sure to go down and click the subscribe button because that's actually how we get to keep making these. Also, if you have questions for me, leave them down in the comments or ping me on a social network of your choosing, hashtag ask polymer. As always, thank you so much for watching. I'll see you next time.


Again picking up right where we left off this video is part of a series be sure to check out the link in the description This video for the full playlist and I recommend watching the previous videos So they were going to be looking at elevators and lifts and probably ceiling crushers if we have time Let's go ahead and to have out of this. This is the level. We've created so far. Let me just go ahead and Let's turn the grid on snap to grid. I will make another hallway right here that leads to a Another room and inside this sector. I will create another sector and let's go ahead and Move our 3d view into there by putting our mouse somewhere and hitting the apostrophe turning like this Let's go ahead and make the ceilings for this room 256. So they're a bit taller. Let's choose this sector here and Let's raise The floor up a bit right There so it's halfway to the ceiling and let's change the the wall texture on that to be Metal that so it looks kind of like like it should be a lift So I'm just throwing this lift in the middle of the room She probably changed the floor texture to something like that. Okay Now what we want to do is we want to give that a tag. We talked about that previously when we were doing doors Let's go ahead and refresh the tag It gave it a number of two because we'll use a unique ID and tag one is already assigned to our door over here Now we need to activate this lift somehow We have to lift activate when we walk in the room if we want so go ahead and we'll do is we will select this wall here Well, we will give it a tag of two since we know that and now that we've done that remember to click out of this box Otherwise, it may not remember save it So we do that and now you can see this highlighted pink when we select that wall We know they are linked, but we need to give it a type We're going to choose and under categories. We're going to choose a lift basically an elevator and Remember w means walk and s means switch So what we're going to do is we're going to say when you walk through this We're going to lower the lift and we're going to have it do it more than once So we will say are which means it can be repeated So let's go ahead and choose that and now Let's go ahead and control s control t We will walk over there and now when I walk in that room that lift should lower I get on and a few seconds later It should go up easy peasy lemon squeezy. I can walk through it again and it lowers now again If I was to change that wall to one w one lift I Can save that and test it and now when I walk in that room It will lower It will go up a few seconds later and Then that's it. It won't do it again because we said once it will only happen once Another option would be to add a switch or we can have it click We can choose all four of these walls We can give them a tag of two remember to click out of that box choose and we have lift and We can choose that it's a switch. So s are lower or we can do LR Fast so it's going to do something. It's just going to come down a little bit faster Come in over here. We walk in once it will lower But that won't happen again when we walk to that door because it's set to one Let it go back up and now I can click on any of these four walls and you see how fast how much faster it came down On that particular example, so that's that's that's the basics basic basics of Lifts, but you have other options such as lowering floors. So let's say I I'm going to create another little sector here and I will also give that this texture and we'll go that and Sector mode what I'm going to do is I'm going to raise it up like so perfect Now I will give that a tag a fresh tag Fresh so we'll get three and then we will give its walls a tag of three remembering to click out of that box Now we're going to say choose and we can say instead of lift. We have Lower floor or floor lower and we have these different options And again, the first thing is whether it's a switch or walk through once a repeat and then we have that it's lowering and Lef and he F is I forget what E and F But basically is it going to lower to the lowest? Level that it's next to the highest level. It's next to or is it going to do that plus eight So it will stop before it hits the bottom or and we'll do it fast or Regular speed so let's go ahead and I'm going to say that when we switch More than once so SR and of course you can narrow these down So if I go SR it's going to show me all these ones that are switches these ones that say boom are Specific because I chose boom as my port and I'm assuming that they may not work with other ports So you may want to avoid those that's also nothing you can choose generate over here But that might be specific to your port and it may not work in like the original doom executable I'm not sure I'm gonna play around with that much, but just be aware of that But I have it lower down It's the lowest level right here. So I'm gonna say that save it and now I can go in this room that should lower and when I walk over here I can click that and it will lower down slowly down All the way down to the bottom Now I can also do let's do Switch floor down HEF plus eight fast and see what that does So again, I can walk through here that will lower when I come over and click on this Boom it came down fast, but you notice it went and it's eight above the highest floor around it Which is just this one floor which looks a little bit nicer Because when it came all the way down it looked weird that it's It was completely flat with the matching floor now you have other options in here I want to say Shouldn't say this without being sure There is a way to have it so the textures match you can also do basically the same concepts with rays and these ones have texture So you can have stuff raise up. Yeah, the ones say TX. So if this was lower, so let's go ahead and do that Let's go ahead take this sector move way down so it's underground and Now with the walls selected we can say choose. They still have the same tag. Let's go ahead and do S1 and So now we can move it floor up 32 units 24 pixels. You can have it go up I'm assuming L means lowest E So but I think this is the one we want we're gonna switch it and it's gonna be weird having that as a switch Let's instead of switch. Let's do Walk through once we're gonna have it move up to the lowest and match the texture. That's what we want right there So I think if I've done this, right? I should be able to come over here and when I walk through here, it's gonna come up and when it match hits Oh, it's gonna keep going. I kept going Which one did I pick? Up to the lowest texture. I Let's try this one Hey, why don't you do a tutorial about stuff you don't know about? Thing is I you know as a creator of levels. There we go. It was a different texture now It's matched and it's gonna come up and that's the one I wanted. So let's go ahead and Do this again Before I walk through there. I'll look down and show you It has a different texture, but once I walk through there, it's going to match the texture and move up This is sort of thing you might want when you're working with things like water and lava to where it's kind of like Once the floor gets there. It's matching or if that's water when the water comes up It's kind of like the water drained away and now it's you see the ground underneath it. So anyway Lot of different options in here and you you start working with it You're gonna pick ones that you normally use. So, you know, obviously floor up H Is going to come up to the highest and then it's going to you can choose fast and tx for texture I'm not sure why this one says tx and it didn't match I don't know Go to the Eureka Doom editor website. They do have documentation over there, which might explain that but it's probably all documented very well other places But I'm just giving you an idea of how these different options work. So that's it. I do. Thank you for watching Please visit filmsbychrist.com. That's Chris the K. There's a link in the description of the video Check out my videos there and I hope that you have a great day If I didn't say there's also a link to this full playlist in the description of this video You definitely want to check that out If you started here You probably have no clue what I'm talking about. You're gonna want to check out the previous videos and You know have fun making levels. I can't wait to see what you guys create. Have a great day


My name is Thomas and today I want to talk to you about the explorations that we've been doing with the Zoom team over the past few months and some of the specific advanced APIs that we've been exploring together. As you've all probably seen, Zoom has become a stable in many homes and so it's critical that we're able to provide a good experience directly through the browser. Zoom does have a web version today but compared to its native client, it's missing some features and sometimes misses the mark in performance. We wanted to change this and so even before COVID hit, we started working with the Zoom team to understand exactly what changes they would need and what new things in Chrome they would want to create a truly great experience.  You can't talk about video conferencing on the web without talking about WebRTC. WebRTC is a really great full stack solution that provides a complete package for achieving video conferencing on the web. WebRTC was built and standardized about 10 years ago and now ships in all major browsers. This makes it the best choice if you want a complete solution with broad support across browsers.  Zoom would rather want a set of more simple low-level APIs that they can then build their own architecture and system on top of themselves. And the three specific ones that we've been exploring and that I want to talk to you a little bit about today are WebAssembly SIMD, WebTransport and WebCodex. I'll mention from the start that all of these are fairly cutting edge and most of them are in active development. So while they're all in a place where you can start to play with them, these aren't shipping APIs just yet. But hopefully this presentation will cover some of the early parts of it and by the time you're watching this it might be in the future and you'll be able to actually use these directly and the law already shipped. So first of all I want to talk about WebAssembly SIMD and how it can provide really highly performance code. Most of you have probably heard about WebAssembly already but as a recap WebAssembly is a new low-level binary format for the web that is compiled from other languages and offers maximized performance. This means that you can take something like C++ or Rust and then compile it into WebAssembly before shipping it to the client. WebAssembly has been out for a while and has been shipping in all major browsers for a while but we're continuing to expand it with functionalities such as SIMD which stands for single instruction multiple data. To explain SIMD let's look at this incredibly simple loop that just adds two arrays together. Without SIMD the CPU would go through this loop and add their different elements together one by one requiring four full steps but with SIMD the CPU is able to vectorize these elements and then take just a single CPU operation to add them. The best part is that because compilers are so smart they can automatically detect these optimizations and do them for you. In Inscriptin you just need to pass the dash m simd 128 argument to emcc and for Rust you can pass dash c target feature equals plus SIMD 128. This will cause the compilers to automatically find and use SIMD where possible. Sometimes you also want to have more explicit control and this is where you'll want to use SIMD intrinsics which let you use the SIMD instructions directly. This is more detail than I can cover here but if you're interested I highly encourage you to go and check out these links. SIMD can be used for a huge variety of things including highly performant ML models such as this hand tracking, a real-life invisibility cloak, and real-time automated background removal. And this last use case is just one of the things that Zoom is excited about using SIMD for. They have an awesome feature where you're able to automatically remove the background so that people in conferences can't see all the random stuff that you have in your background and then replace it with fun videos or animations. If you're interested in diving into WebAssembly and SIMD here are some of the links that should help you get started. WebAssembly SIMD is doing an origin trial in Chrome M84 which will start rolling out to users in July 14th. If you aren't familiar with origin trials it's basically a mechanism for you to test out features with production users while we may still be making some changes to the API. You can read more about those origin trials at this link as well. So the next API I want to get into is WebTransport which is a next-generation networking API for client-to-server communication. Let's look at the definition of WebTransport. WebTransport provides bidirectional transport through both unreliable datagrams and reliable streams-based mechanisms. That's a mouthful but let's see if we can't break it down and understand it a bit better. First, bidirectional means that it enables easy two-way communication. With something like HTTP the connection has to be initiated by the client and you have to send all of the requests at once and then wait for a response. With WebTransport you don't have these limitations and so you can enable a much more interactive session. Looking at the two different mechanisms unreliable datagrams are one of the mechanisms for sending data through WebTransport. These datagrams are similar to UDP datagrams in that they are packets of information that gets sent but with no guarantees about delivery or ordering. Reliable streams in contrast are similar to TCP streams and provide reliable and ordered data communication. So now that we have an understanding of the definition of WebTransport let's understand what you might actually use it for. Firstly, WebTransport will be the only mechanism to do unreliable data communication without leveraging WebRTC and this is exactly why Zoom is interested in looking into WebTransport because it'll allow them to simplify their deployment and put it a little more in line with the other platforms that they support. It's important to note though that WebTransport won't be just a pure UDP sockets API since it does have some requirements around encryption and congestion control. It does offer an alternative to WebSockets and to understand exactly how it compares to WebSockets and WebRTC let's look at this chart. So to understand the differences let's dig into each of these pieces. First, WebTransport and WebRTC offer both reliable and unreliable while WebSockets only offer reliable delivery. WebTransport is an in development API while both WebSockets and WebRTC are widely available. While WebRTC provides a fairly high level complete solution to the problem of video conferencing, WebTransport and WebSockets are both much lower level APIs that doesn't solve everything for you but gives you more of that basic access. WebTransport also enables multiple cancelable streams whereas WebSockets can only do a single stream and WebRTC can also do multiple streams but they aren't cancelable. So here is a quick example setup for how you can actually use WebTransport. In this part of the code we really just set up our new quick transport which is specific subtype of WebTransport and create that object passing in the URL that we want to connect to. Then we just set up some simple logging function and await the transport being ready for us to use. Then we can simply grab the writer from the sendDatagrams function of our transport object which we can then use to send data at any point. Remember that this data that we send does not have any guarantees of delivery or the order that it will be delivered in. Next let's look at how you can actually read data from the server. Here you see a simple example where we get the reader from the getReader function and then in a classic while true loop we just read things from that reader and then detect them when we're done and console log out the actual values that we're able to read. WebTransport is still very much in development but we do have a blog post already published about how you can use it and you can find that and more information at these various links. So now it's time for us to jump into our last and exciting API the WebCodex API which aims to offer direct codec access on the web. But first let's back up and remind ourselves what exactly a codec is. A codec is a device or computer program which encodes and decodes a digital stream or signal. While many of us have not worked directly with codecs we've all seen common examples like mp3, vp9, h264 and many others. Codecs are actually used in tons of places throughout Chrome such as the audio and video tags, web audio, webRTC and the media recorder API. However in all these places where it's used you can't really configure and get pure access to just the codec part. For example web audio allows for decoding a media file but needs to work on the complete file and doesn't support a streaming-based approach. Media recorder has some controls but they're very high level and you can't really configure it to support extremely low latency use cases. As mentioned previously webRTC does give you a lot of this control but it needs you to bring the whole package of webRTC along and without doing that it's hard to get access to just the encoding and decoding parts that you want. As a result of this lack of configuration some apps have started compiling these codecs to JavaScript and WebAssembly. Some of you may remember that this is how the awesome application Squoosh lets you resize and re-encode images. This approach is really cool and workable today but has some specific drawbacks. Specifically it increases your bundle size lowers the performance causes slower startup time and reduces the power efficiency. Really what you want is to avoid shipping these codecs all together and just get the direct access that you need through the codecs that are already shipping as part of the browser. And that's exactly what the goal of WebCodecs is and in their own words the goal of WebCodecs is to provide web apps with efficient access to built-in both software and hardware media encoders and decoders for encoding and decoding media. WebCodecs main advantage is that it lets you get the direct access that you need to again build your own systems on top of the basic codec access. This completely unlocks some use cases like video editing since you really need that frame by frame access and faster than real-time encoding and decoding to do this properly something that's currently completely impossible on the web platform except for maybe shipping codecs with WebAssembly. Additionally many existing things that are possible to stay on the web but only if you use WebRTC things like cloud gaming live streaming and video conferencing will get more flexibility about how they can interact with these codecs. Zoom for example is looking into using this API in conjunction with the web transport API. They're hoping that they'll be able to take encoded video frames and send them up to the server using web transport at the same time that they'll be fetching down encoded frames and then decoding them to show to the client providing a really smooth integrated experience. Next let's look at some of the simple examples for how you can use the decoder part of this. Here in this canvas setup part we're really just grabbing a canvas's context and then making this very simple function to paint a video frame to that canvas from converting it to an image bib map. Now when you want to set up the decoder part you just call this new video decoder element and you set up the output function that we defined previously as well as just constant logging out in the errors. Then you configure it with the codec that you want to use and then you have this incredibly simple function that you just pass in your encoded chunk and call the decode function from your video decoder and then it does the rest of the work for you. Web codecs is still extremely new but for those of you who are curious you can go and check out the explainer to see what the team is currently working on. We will also be doing a web.dev post about web codecs so if you're seeing this in the future be sure to go and check out that and that brings us to our overview of these three new exciting APIs that we've been exploring with Zoom. You hopefully get a better understanding of some of these new and advanced APIs and hopefully an understanding of how they will be bringing all of us closer together in the future. Thank you so much for your time and I hope you enjoy the rest of the sessions.