 What about mine? Should we turn it on somewhere? One one one. I don't know. We can try. What about no? Well, no idea. Well, it's hard to say, but I can, I can, we can assume that it works. I don't know. Okay, then we can say it works. Okay, okay. Perfect. Okay, I mean, let's start. We're out of time. So, hi everyone. Thanks for coming so early. Like it's been incredibly early for me. I'm like, I don't know, I'll try to wake you up if I can, but we'll see how it goes. So, I'm Dimitri and I'm here to talk to you about benchmarking. Now I'm actually curious about how many of you actually have something to do with databases. Yep. And how many of you actually curious about database performance and like, you know, benchmarking stuff, profile and so on? Okay, I see. I've got my audience. That's really cool. Yeah, one note. So, the point is that I know everybody pretty much got like strong opinion about benchmarking and performance. That's why in this talk we'll try to like reduce the scope a little bit. And what we're going to talk about is following. So, usually what happens and what usually I was doing personally is that when you would like to evaluate the performance of your database, like maybe in conjunction with an application or just like, you know, separately within some particular environment, you just pick up some particular workload generation to, you know, like something that runs to PCC or, I don't know, DHE, whatever existed out there. Or maybe if you need to maybe even run your real business application, you run, maybe you even replicate your real business workload, just like, you know, a copy from the production database. And then you start this tool, you run, you get some numbers, you're happy, you report those numbers, maybe in some, I don't know, in some reports high up the line, you know, to let other people know what's going on. And then you forget about this. And then maybe after a week or so, you try to reproduce the benchmark. And you think, oh crap, numbers are quite different, right? So, in this situation, it's very unpleasant situation to be in, unfortunately. And I have to admit, even me personally, every time when I'm trying to evaluate something, every time, every single time I get the situation, literally. It's very embarrassing, but that's why I have learned this stuff. So, usually what happens is that, yeah, you figure out maybe there was some misconfiguration, or maybe there was something that was forgotten, I don't know, cloud infrastructure was behaving strangely. Anyway, you figure this out, if you fix your numbers, you repeat it again, you correct your numbers in the report, and so on, but now, we've got a problem. From now on, from this point on, you do not trust the numbers that you get from the off-the-shelf tooling. So, literally, all those numbers, you start to ask yourself, how can I get more confidence in these results in those reports that I'm getting from those tooling, right? What kind of methods could I use to boost my confidence in this regard? And that is going to be essentially the scope of our talk today. So, we will try to investigate what kind of methods and tooling we get, especially from statistics, to actually get more confidence about what we're doing when we're evaluating performance, especially for databases. So now, before we start, we have to actually establish the mental model. How are we going to think about this problem? I appreciate that everybody is, of course, thinking differently about this problem, and this is just one of the examples, but I find this particular example convenient to use. So, I personally prefer to think about benchmarking and performance evaluation as a problem of evaluating a complex system. So, the database, in this case, is going to be essentially just something that looks like a complex system for us, and we've laid this system on the space, you know, in mathematics, it's called usually a phase space, or in statistics, it's going to be a design space. So, essentially, like a sort of a graphic representation, a rough representation of your system where every single point on this graph represents essentially your system, some state of your system. So, on this graph, you, for example, see on the slide, you can see an example of like one of those phase trajectories for Lorentz attractor taken from some interesting scientific paper, and you see that it produces a very interesting form here, which you can project on one of the directions, on one of the dimensions, and you get even something, you know, something that looks quite interesting, like something that looks like, I don't know, maybe even some, I don't know, performance metrics you can get from your database, but if you pull them together, they produce a very nice picture in this 3D place, and that's what I'm talking about. Now, the problem is that, unfortunately, it's not so easy, and when we're talking about databases, they're extremely complicated, right? There's going to be a huge amount of various dimensions we're talking about. So, obviously, database parameters, right? Every single parameter you're going to change, you're going to change your, essentially, you're going to change your system, your behavior. Obviously, we are constrained to a certain degree with hardware resources as well, which means that like amount of available memory or CPU cores and so on, it's also going to be obviously part of our phase space. Now, interestingly enough, the workload itself is also going to be part of our phase space because it's pretty much like intuitively you can get it. So, if you run, for example, one query per minute, you will get pretty much different result when you're going to run like a millions of queries per second or something like this. And now, finally, performance results are actually going to be one part of our model as well. It's something that we're actually going to get out of the system. So, like, for example, query latency is throughput or something like this. Now, what usually happens is that, obviously, there's a lot of dimensions. So, when we benchmark something, we essentially say that we would like almost all of them. We're going to say that they're not interesting for us for something that we're testing. And we evaluate only how the database is performing within some subset of those dimensions. Like, we pick up literally a couple of those, like in this case, we evaluate how Postgres is performing in regards of query latency, shared buffers that we allow for the database to use and queries thread that we apply. And here, so it's not a real data, it's something you can theoretically expect. So, the idea here is that essentially, if you give a Postgres some reasonable amount of shared buffers, not too much, not too few, you're probably going to get best performance. And at the same time, obviously, when you're going to increase query rate, you're going to make everything slower, you're going to take more resources. So, your query latency is probably going to go high. So, that's what it looks like. But now, it's still not a full story, unfortunately. So, the point is that some of those dimensions, I was talking about, they are regular dimensions. They are deterministic, shared buffers. You just set the value and that is how it is. Now, unfortunately, some of those dimensions are non-deterministic. So, like query latency, for example, is not going to be the same over and over, no matter how frequently you run it. So, it's going to be a variety, obviously, which means that here, here's the point where we actually have to use statistics to define those things. We have to model these dimensions as random variables. So, with the corresponding distribution behind, with the corresponding statistics, and so on and so forth. So, that's pretty much it for the model. And to summarize, when we're doing benchmarking, essentially, we are dealing with two factors. When we evaluate performance of a database, we have some already known part we are aware about, like some known details. For example, we know how shared buffers influence the overall performance, and we try to relate those factors in the presence of some unknown factors. Like, for example, we have no idea, let's say, how work mem is affecting database, or there is some noise in the system that we have no idea about. Or, for example, cloud infrastructure is doing something strange, right? So, this duality is very important for benchmarking, and in fact, throughout the whole presentation, throughout the whole slides, I will try to emphasize this, and this duality comes quite close together with another duality, when we're saying that when we benchmark something and we'd like to understand the results, we always have to combine two skills. We have to combine the common skills, general skills, like statistics or something, or experimental designing skills, and we would like to address this unknown part. And, at the same time, we would like to use some particular domain model knowledge, like, for example, Postgres internal knowledge, to extend your known part and to reduce your unknown part. So, you cannot go without another one, you know? So, now, to emphasize this part, we're going to essentially, the rest, part of this talk, the rest slides are going to be divided into two categories. The first, we're going to talk about some Postgres specifics, and the second about, like, the common parts about the unknown things. So, let's talk about how to actually not screw up when you benchmark Postgres. Now, how many parameters do you know that you usually have to configure for Postgres database when you, like, create it and run it? Any ideas? Any clues? Just chat from the days. I think the latest version was containing about between 300 and 400 parameters or something like this, or, like, these global unified configurables, options. Obviously, not all of them are very important. I don't know, it doesn't really matter how much you're going to configure, how you're going to configure, for example, authentication. But I've put on the slides some, just from top of my hand, some relatively important things you have to be looking at when you would like to evaluate the performance. Interestingly enough, there is a paper from the author TuneFox. You've probably heard about them there, trying to apply machine learning algorithms to tune the databases, like MySQL, Postgres, and so on. And in their recent paper, they have actually mentioned that the win performance when they can get from machine learning algorithms, the biggest chunk of it could be actually acquired by configuring only two knobs. And I have put them at the top of the list of shared buffers and max wall size. So that's essentially the most important or, like, the biggest chunk of the performance win you can get just by configuring those two things. But, obviously, the rest are still important, workman, checkpoint, or all the flash after parameters. They are sort of important to fine tune your database. And what usually happens, obviously, when you configure this stuff, you get, like, maybe some parameters too low or too high. Unfortunately, there's always this sweet spot you have to achieve, and it's hard to find it out, unfortunately. Now, the tricky part is that Postgres relies quite a lot on the operating system, Linux, or whatever you run it. And the problem is that if you would like to really get the best performance, you cannot get away without configuring the operating system as well. So if you're talking about Linux, for example, most of the time, when, like, everything what has to do with file system cache, for example, or IO, it's obviously something that you have to look at. So, like, for example, yeah, you cannot get away, yeah, you cannot forget, like, huge pages anymore on the big servers. You have to configure probably a dirty amount of, like, how the file system cache flashing is working and so on. And obviously, like, IO scheduler and so on, it's always interesting to experiment with. Now, another important part, quite frequently, it happens that people are essentially ignoring the noise in the system. So they're saying, yeah, it's my real system, the system and so on and so forth. I strongly disagree with this point, and I always suggest when you benchmark something, try to reduce the noise as much as possible, obviously, because even in the real system, you would not like to get your performance for a quite a lot. So where the noise is coming from? Unfortunately, the answer to this question lies quite significantly, it depends on the workload you're using. So, for example, if you're doing some CPU-bounded load, most likely you have to thinking about, for example, the meaning of the CPU or NUMA cores, so like, you know, to minimize the context which is and so on. You have to think, if you're like really doing this on a bare metal, you have to think about P-State or similar 24MD or frequency scaling, so like, you know, power consumption versus power consumption policies. Now, if you go one level higher and you're thinking, and you're creating an IO-bounded benchmark, now you probably have to think about different matters. So the different scale of things start to play role, and for example, you have to think about the file system you're using. So, for example, most likely you would like to run your benchmark with already pre-created wall segments because creation of the files, including wall segments, is actually an annoyingly slow operation just because of this like journaling and the file system and so on and so forth. And obviously, like, you have to configure your NVMe device, it should not be trimming while you're doing something and so on. And the last part, probably the most nasty one is about cloud infrastructure. Whether we like it or not, unfortunately, most of the benchmarking that we're doing nowadays is happening in a cloud infrastructure which means that we have to always think about keeping mind noise in neighbors and as much as possible try to isolate our environment. And at the same time, we also need to understand virtualized infrastructure quirks. So, for example, when, for example, hypervisor stops you or something like this, unfortunately, it's not always possible to configure these things, but at least you need to be aware about them. Now, one interesting thing is that people also have been asking about, especially those folks who used to do performance evaluation for stateless applications before, is that how long should you run benchmark, actually? So, the question is very... Well, it depends quite a lot because it depends on what kind of effects you would like to capture in your benchmark. For example, such important things as auto vacuum that I put on the slide. If you would like to capture it for the real database, you have to configure it and you have to wait long enough. So, sometimes it depends. Sometimes, for example, there are advisers for one day or something. So, of course, it depends. It should not be always such an extreme, but at least you need to understand what kind of factors in your Postgres database are capturing, whether it's a checkpoint or auto vacuum and such. Now, we're starting to go to fun stuff. So, one sometimes forgotten thing is the workload generator plays quite important role as well. So, the point is that people not always think about this, but workload generator could be a bottleneck and, for example, PgBench has its own history, unfortunately, of being, you know, a little bit slow than necessary. For example, the very first example I was showing before with two different results, that was actually obtained simply by running PgBench, but the second version was recording latencies for every query. So, even this operation, relatively fast operation, was enough to actually slow down like real throughput numbers from the database. But that's only part of the story. There is something more. So, the point is that usually when we think about benchmarking or like when we're thinking about the real workload, what happens is that queries that we receive for the database are relatively independent from the database responses. So, they're just arriving at some certain rate and departing at some certain rate. Now, in a queuing theory, there is such thinness, open and closed system, maybe if you've heard about this already, and they're quite different in behavior how they behave, and the real system is usually open system or open-ish system. The problem is that usually when we run some workload generator like PgBench or something similar, we're usually simulating a closed system, unfortunately. Because what happens is that the generator fires a query, it waits for the response, and then fires another one. So, what happens is that we have a fixed amount of queries on the fly. And this is essentially by definition a closed system, and the problem is the difference is that, for example, you'll get quite different latencies based on such difference between closed systems. The tricky part here is, unfortunately, almost all of the workload generators that I know, they always simulate closed system and do not allow you to configure this except a bench base. I have seen that they allow you to do a Poisson distribution for queries, so it's essentially going to be an open system. Now we're done with the first part, with the particulars, and now let's go to some unknown details. How to actually use statistics to find some factors you have no idea about. Now the first thing I wanted to mention is that actually the problem is not new, and industry have faced this problem already in many different ways in the last century. So, you see, for example, here I reference an article from a student from more than 100 years ago, when essentially what he wrote is that, yeah, like all the benchmarking, of course, experimentation matters as much as you only get some value out of it if you understand the statistical distributions behind it. And essentially this is a paper when that, for example, a famous student T-test was introduced. So, you see, the problem is being tackled already for quite a long time. Now the problem is, well, okay, it's not a problem, I'm going to continue here, so what does it mean? So this is essentially the whole statistics I'm going to show you, well, most of the statistics I'm going to show in the slides, and this is what you usually see when you, like, read some performance reports or something, so usually people just operate with those terms without thinking about them too much, but what happens is that essentially we're saying, yeah, okay, our values are random variables with certain populations behind them, and those populations have some parameters, like, I don't know, mean values, deviations, so on, and then with benchmark we sample those populations, we acquire some amount of observations, this observation in turn has some statistics, like averages, standard deviations, and so on, and based on these numbers we essentially could get some confidence, well, assurance for our data, so we could, for example, if we compare two different datasets, we could use a t-test to verify how different are they or not, or we, for example, as the second one we could build a confidence interval for our data, how confident are we that the real value of this population lies within what we have observed? Now, you don't have to remember, obviously, those formulas, they pretty much exist in any single data processing software you use, so, yeah, you don't have to worry about that, but that is probably a part of the problem, because you can easily misuse them, unfortunately, if you do not really know, or if you apply, for example, them in the context when it's not really suitable, let's say, this way, so I'm going to explain. Unfortunately, all those methods were actually developed for the situations where people were doing some experimentation on natural science, like, you know, chemistry, biology, physics, whatever, and usually they are distributed normally, they're unfortunately, so there is a significant assumption behind all those two linear was shown before, so there are two assumptions, one is normality distribution, and another one is what is called independent identically distributed variables, so essentially it says that there are a lot of small details that contributes to the noise, but they essentially contribute both in an equal way, and on this graph I'm showing you a probability distribution, this bell curve, the blue one, what the distribution looks like. Now, in computer science we have a big problem. In computer science almost everything that we're going to test is not normally distributed, unfortunately, so you see this red line, that's essentially how it looks like normally, and the problem is that it's heavily skewed, so there are quite a huge tails usually, and you see there is a significant skew to the right and intuitively you can even understand why is it happening, so the thing is that in the queue in the computer system everything is a queue essentially, this line you can get, the best case, and then whenever the queue is getting congested or something that you are getting slowed down and essentially it means that we can get only slower usually, that's why we have this skew, a significant skew, and things could just not be suddenly magically faster. Now, this problem means that for us that unfortunately we could not use or we are not theoretically allowed to use all those methods or all those tooling I was showing before, which is quite unfortunate. Now probably a little bit controversial topic, but although you may hurt in like, you know, there are a lot of advices or like things that people are saying, yeah, do not use those things for non-normal distributions and so on, there is a trick. I have put a couple of references on the slide so that like I'm not going to pull this controversial topic out of myself, there is some research behind this, but the point is that you can actually try to say I'm not going to use a normality distribution, but I'm like normality assumption, but I'm going to use a normal distribution. Now you shift your questions toward the question how good is the approximation and so on, but nevertheless you can at least try to use those methods anyway, and you still can get some reasonable results. So for example in the first reference you can get there is authors are showing some interesting data about how various statistics are actually how much they are robust or not robust or normality, and to show you that it's not like a thing that you can find in the field. So the second one is about, for example, a project or hunter when thoughts are essentially trying to do performance analysis for the ACI and they are searching for change points, and they have explicitly modified the algorithm to actually use a TSTAT T test, student T test, because it was more robust in their guest and they were just like fine with it, so it was working for them. And the same is for example for click house, so they have in their benchmarking it's not like it's not like it's completely you should not do this ever, ever, ever on this one, it's just something you have to keep in mind and sometimes you can try it out but you have to be aware that it's not always have to be working. Now again to show you that it's a very practical matter, you can extremely easily end up with a situation when your probability distribution is not normal. So here is on the slide I can show I am showing you the probability distribution of the latency for one benchmark I was doing literally on my laptop and the thing is that the amount of memory for Postgres was quite limited there, so for file system cache and for Postgres itself, and you see that we see here two spikes for latencies. It means that one was essentially when we were satisfying our queries from the file system cache or for database from shared buffers, and another one is when memory was not enough to read something from the disk. So that's why we see quite a significant difference between those two spikes and you see it's completely not normal it's even worse than that, it's a B model so if you would like to get some like averages or medians you will not get reasonable results whatsoever and the usual advice like repeat your results repeat your runs and then try to find the converging consequence it's not going to work here at all. Now to prove that it's actually coming from the IEO it's actually important to verify your benchmark so I'm showing this in one slide, there is a difference about like 150 microseconds between those two spikes and you can for example verify it with DPF trace, there is this tool for IEO latencies and sure enough when we take those distributions we see that most of the distributions are actually lying within this window we're looking for so that's indeed an IEO effect and this is a situation when we have a slow path versus a fast path, that's actually quite frequent in a computer science now I've told you that you are not allowed to use normal tools so what should you do when you have this situation, this type of situations well fortunately to a certain degree things are still straight forward and you just have to replace not necessarily one to one but you have to use different tools so things already of course they have been investigated for quite a while and it's not the first time when people are you know facing this type of problems and again fortunately for us although they are more complicated than usually there are things that exist out there and again pretty much every single data processing a framework sci-pi are whatever that you could use to actually do the very same things as I was shown before but for non-normal distributions so for example you can replace in averages with just a median because it's a little bit more robust and non-normality it's still not going to work for a B model but it's a little bit better you have to probably stop thinking about like standard deviations and you probably think about quantiles and if you have seen for example an industry we're always talking about percentiles and quantiles and actually that's a part of the story we're always interested in the outliers or not necessarily outliers but like what is the 99 percentile of the whole value because we're curious about the different like variance of our data if you would like for example to figure out the outliers you have to start thinking about using inter-quantile range because that's essentially the best tool you can get for non-normal distributions and the things like for example student t-test you could replace with something like Man-Witney test which is a little bit more complicated so that's why I'm posting here a sci-pi functions for it but the idea is the same you get two data series and then you compare them but then you're assuming that like you're doing this non-parametric test so it's going to be finer that data is non-normally distributed now a couple more details one interesting question that pops up every now and then again about statistic is how much data do I need to collect actually how many runs do I need to do for my data and unfortunately it's hard to answer in general case but here I'm quoting for you some interesting article about this topic when folks were investigating how much noise do they get from the cloud infrastructure it was not able to do something different but nevertheless that's like a pure hardware noise and this variable e with this a lot of numbers there essentially that says how much runs do we need to get you need to perform to get within a 95 confidence interval so that the value lies within 1% of the average value so it's like essentially in the normal English it says that your confidence is good enough and for the coefficient variance of 0.3 so like the variance of the data was very slow it was a cpu-bounded benchmark they were saying yeah okay 10 runs is enough for us so 10 runs is nothing but you know you can get like a millions of this and it means that essentially for a stable enough data you're fine if you'll just get a little bit you know efforts and run something 10 times now when they were running something with a coefficient variance of 9% they already had to run 240 benchmarks and I think this was the case when they were even getting something against they were testing some IO workloads with IO against like the devices they were using there and there they were even they even had to run 640 or something so along these lines so those are ballpark numbers you can expect when answering these questions obviously as I mentioned before it's very much depends on your particular situation but at least this is your expectations what you can see from your benchmarks and now another very interesting question is about like and this is actually partially an inspiration for this whole talk because Mark Alagon was asking this question once like from the statistical perspective what does it make sense to run several shorter benchmarks or one longer benchmark so is there any difference so obviously at least I'm still convinced that most of the time especially when you're talking about databases those are two different cases you cannot really compare them but from the queuing theory there's a very interesting thing that you can take a look at where essentially we're saying that when you run a longer benchmark and we run several shorter benchmarks it's going to be equivalent if we assume that our system is ergodic in this case ergodic essentially means that history is repeating itself at some point so when for example we have a queue and then the results of this queue at some point are essentially start to repeat itself and intuitively you can get that yeah it makes sense because yeah you can essentially at some point just start to discard your history and then obviously it doesn't really matter if you run shorter benchmark or longer benchmark but yeah so it's an interesting result you may essentially replace one with another one but at the same time yeah again it depends very much on your situation and the last but not least things I've mentioned a lot of details about how to reduce noise and how to fight with this using against various statistical approaches and so on but still sometimes there's just noise you have to live with unfortunately or for example auto correlations you cannot get rid of and something that you just not in your control and in this case it does not happen that quite frequently but some people are doing this but you could try to use a randomized testing the idea is essentially that you have for example two setups to database setups you would like to test with and then you do not test them like one and then another one but you send queries to one and another one randomly at the same time so for example click house folks they even go to a little bit more they go to a little bit more higher degree for example they even run both database on the same virtual machine when they are doing this but essentially randomized part is you just have to switch queries every now and then and the point is that via this you're introducing some normal distribution that is going to essentially spread this noise normally across two different tests that you're performing and overall the noise is going to contribute the same amount of influence on the benchmark and now final thoughts a couple of takeaways for you folks to remember probably the most important one is I would like to remember is that benchmarking is not so dry and you know about numbers and statistics benchmarking is exploring it's extreme fun actually and every time when you evaluate something you learn something literally that's really cool and this idea about known versus unknown and common versus particular is actually very important because you cannot get away doing evaluation only knowing all the statistics but without knowing the details of the posgras for example and the same time other way around if you know all the things about the posgras and journals but have no clear about statistics unfortunately and the last thing I have not mentioned explicitly but you could see this throughout the slides is that statistics is very important as a language so if you use those primitives and those tools you can always ideally you can always convey the idea of what have you found actually in a more concise manner and so that everybody can understand you so that's pretty much it I hope you have some amount of questions I guess we have a couple of minutes so yeah any questions yeah please I can actually recommend in this regard that I have a reference somewhere here I think with the moment where was it yeah this one this is a talk down there well it's a paper and talk as well from HPC folks and they're doing more fancy stuff exactly for networking there because networking for HPC is always important to distribute work log and so on so check this out that's definitely interesting okay I get it just too early in the morning so probably you're just asleep so yeah thanks nevertheless and yeah have a nice day okay so hi everyone and thank you for being here my name is Marav Dean and this is my colleague Gometi Anandan and we're going to talk today about women leadership cohort so before we start a quick question to the audience how many of you have been part of or are still part of the cohort that is like a group of people that support each other in to achieve a certain goal okay so I think this talk is going to be very beneficial for most of you we're going to give a brief background and tell you how this cohort was formed we're going to talk about the benefit of the cohort we're going to give you the secret ingredient of how to form such a successful cohort and there's a key takeaway one key takeaway okay so I would hold start we have we all work in red hat and we have senior leader Perry Myers who we're very lucky to have him on the crowd today back to him afterwards and Perry has in his group two wonderful well accomplished women leaders that's Gometi and Kate and Perry was also mentoring me so I'm from a different org and then we had a great idea so we knew all of us and in your background and we knew we were all at the next level of management so he figured why don't I connect the dots and let them know each other and this is basically how our cohort has started this cohort is working extremely well so just to give you an understanding of what does it mean so we meet once a month and in this during these discussions we bring up to the table very important topics I listed a few here just to give you the feeling of it so one example is to inspire ideas that were previously discounted as too ambitious so as women we sometimes tend to not to aim high but rather to aim low and this is a place where you kind of took these targets and break them down to something more achievable doable another important topic is that we kind of advise each other because one of the hardest topic is how to be a mom and have a career at the same time how do we manage that we advise each other we have the ability to expand the network via this cohort so for example Gomathie here is mentoring one of the associate managers in my org and I thought it was a good match because they're both trying to doing the same path in their career before they become a manager and of course we require variety of perspective and learning opportunities so in short this cohort is extremely why because in the first place none of us really looked for help or support to tell you the truth who are very good at where we were we know our job we're very professional we're good at what we do and still this cohort added something that wasn't there before so we kind of tried to this talk reverse engineer to try to understand what makes it so good what added value does it give us and it was kind of surprising to profoundly understand this what basically lies underneath that is that this cohort helps us to address gender related challenges together and in order not to leave you in this very high level statement we're going to give you some down to earth examples three good concrete examples and I'm going to hand it over to Gomathie let's go into examples let me ask you a question first how many of you here have felt like self-doubt you think that you do not have the abilities to do the job that you are doing there you go guess what I'm part of that group as well and that feeling has a name it's called imposter syndrome and it is basically you being insecure of your abilities that make you feel that you don't deserve to be in the role that you are in even though you have all the qualities to be in the role and perform really well there was a poll conducted by one poll which basically surveyed 4000 adults two-thirds of the adults said two-thirds of women in that group said that they really feel truly confident about their abilities and always had some sort of self-doubt and the self-doubt most often arose in workplace settings so imposter syndrome workplace settings it goes very well together how does this cohort help me address this imposter syndrome basically they provided the support that I need because I was able to trust Kate and Mirav and it helped me strengthen my self-esteem during the meetings we meet once a month as Mirav mentioned earlier and during the meetings we talk about our insecurities we highlight each other's abilities quote examples hey by the way you did that that's awesome you know how much that means when you are feeling self-doubt someone whom you think are really well established and talented state that to you in a personalized setting that makes a world of difference and I hope you are able to have a group similar to what we have together to address your insecurities as well let's go to a different example women also women tend to shy away from self-advocacy and personal brand ring I'm going to quote another study here you have to bear with me you're going to get a lot of numbers now Harvard Business School did a research where they studied 4,000 working adults and 10,000 school-aged youth in that study they found out that 62% that's more or less two-thirds of the women who women and girls that they studied felt like they always rated themselves and their abilities far less favorably than the male men and boys in that group the researchers were surprised by their finding so they did more research and they found out that these insecurities are the way people rate or women and girls rate themselves less favorably started at a very young age as young as being in sixth grade so that is a huge problem they started having these self-doubt and inability to rate ourselves for what we are worth so they did more research and they found out that the way they rate themselves less favorably stems from the fact that women and girls think that they have their skills and abilities are far less than their counterparts men and boys so they wanted to we wanted to talk about this when we were having one of our discussions we talked about how we don't promote ourselves how we don't empower ourselves and do what we wanted to do so I'll give you a specific example when we started talking in the first few months Mirab here got promoted to a senior manager we both were so happy for her we talked about her journey on how she got to being a senior manager and at that point I shared with Kate and Mirab that I feel I hold myself back sometimes because when it comes to my career development and progression because I feel that people might see me being aggressive when I warrant or talk for myself and I didn't want to be seemed aggressive and immediately after I shared that they both crushed those insecurities for me again I wouldn't have shared these of course I shared with my family and friends but sharing with someone who is in a similar role as you in a workplace makes a huge difference right so what happened after that we talked a little bit more about what we wanted to do in our career and beyond and at the end of the meeting Kate and I came back came out of the meeting with a concrete plan of what we want to do how we want to initiate these discussions with our respective manager for the next level in our careers and we also set a timeline for that before we meet the next time we will have this discussion with our respective managers you know what happens is the specificity gets lost sometimes when you talk to friends you need to talk to your manager your friends encourage you, your family encourages you but you don't get the specific timelines so you don't stick to it the difference here is as all very very talented managers we write down plenty of notes we capture the notes and we assign action items in the document so we both had an action in the document that was assigned to us which said we talked to our respective managers about our career progression the next level to come up with a plan for it not to say I want to get promoted but to come up with a plan for it because that's the first step about personal branding that's another example I'm going to talk about so we talk about personal branding and branding in general so I think the discussion started like somebody doesn't know me in the different org and I was telling I normally do this and I figured if I take some tasks which is not related to my role in my day-to-day responsibilities for instance when I joined this group the new group that I am it's not new really I've been there more than two years now I started running a program a reward zone program where basically we distribute rewards for associates to recognize the work that they've done in that specific quarter and I said I normally take these kinds of additional tasks or responsibilities just to put my name out there I've learned that when people know your name they tend to connect better the next time you reach out to them for anything doesn't necessarily have to be a favor but it makes the conversation it makes the relationship much better when you reach out to someone and they already know your name in their head the connection goes on oh this is Gometi I've talked to her I've seen an email from her and then they are much more open to responding to you at least that's how I feel so I figured someone else would feel that way too so I shared that with Mira and Kate and they thought it was a great idea and they said they would look for other opportunities that's our way of promoting our self-brand as I said build confidence practice self-empowerment it the next minute women tend to not have strong networks I kind of learned something new I'll show you a visual I hope everyone can see this well I did not know this statistic before I started preparing for this presentation this is a LinkedIn research and based on this research they say that women tend to have 14 to 38 percent less of a stronger network than men around the world so it's not one country it's not one geography everywhere all around the world women tend to have a weaker network than men so why is networking so important? social networks are critical to professional advancement so let's talk about specific needs because they're different apparently again I did not know that when it comes to creating a network or using your network to your benefit men need centrality what does that mean? centrality means you have a lot of contacts you have huge network and those contacts in your network will help you create more networking contacts so you have a huge network women also need centrality but women also need an extra additional thing which is an inner circle they need a trusted inner circle to help empower them support them and give the little boost that they need to reach out there to their central networks and help them enhance and leverage those networks for their professional development we talked about inner circle it's my cohort hopefully you all have and if you don't create your own inner circles as well to bring those build those stronger networks I'm going to give you an example about this and about networking how it helped us I'm going to call out another person in our audience now so we were talking in our discussions again we were talking about our networks and how we know other people within red hat in different groups and I think Mirab had that idea of we should bring in one of the senior leaders women leaders to our group so we can raise these questions and get their perspective and Mirab said we should bring Karen I know Karen she'll be happy to come to talk to us and Karen did come to talk to us and it was a very useful session because she happens to be in the crowd and she has a lot of questions I think confirms some of our beliefs helped boost our confidence did everything that we thought she would and did a little bit more and after Karen left we all got together and said that was really good that was really useful maybe we should try think about someone else and then Kate said oh I know someone else from a different business unit so I'll reach out to her and we'll have her on our meeting next time we'll have her from a different business unit point of view again we wouldn't have reached I personally wouldn't have reached out to Karen to talk to her raise my questions share my thoughts if not for this network what else? another visual one of my favorite one so yesterday in our social event I explained this to someone I was talking to someone whom I never talked to what is your talk about I was like oh it's about women leadership and he's like I really don't understand I think in 2023 everybody has equal opportunities what is that we are talking about here it seems like two backwards that we are talking still talking about women need additional opportunities and so on and so forth so I told him the difference is equality and equity what is equality is giving equal opportunities the same opportunities to everyone that's equality what's equity equity is giving the opportunities that people need addressing those gaps along with those opportunities so that whoever is not having the enough opportunity to whoever has those gaps those gaps are addressed and eventually everybody is equal so when there is equal opportunity there are those opportunities as well I hope those examples were helpful I'm going to hand it back to Maral okay so I hope that at this point you are all convinced that having a cohort is an extremely beneficial thing for you all some of you are asking yourselves okay so let's say I want to start one what does it take so we wrote some criteria but please take it with a grain of salt because this is based on our own experience we tested in lab or in research or anything basically we think three conditions should be met the first one is that all the members should have some sort of a common ground that could be a similar place, a position at work that want to go to the next one similar to what we have could be around a specific goal so for example a group of people can form a cohort so that they can stand here next year and do a talk and tell to stand here so that's the first criteria the second one is that the group has to be small we think three to five that should be the optimal number and the reason is two-fold at first some intimate things are being shared in these discussions so it's very hard to do it in front of a very large audience so it needs to be small and on the other hand it also gives everyone sufficient time to talk and express themselves last but not least is of course the technical stuff you need to have easy means to communicate time zone or any other elements of communication okay so almost last slide the key takeaway the key takeaway that we ask you to take from this talk, remember Perry from the beginning so we ask you to kind of be Perry in the sense of do a similar Perry played a crucial role in forming this cohort so this is kind of a call out to all leaders to try and connect others into similar cohorts because we believe it's going to be extremely extremely beneficial to them as it is to us that's it, thank you yes fantastic question, I'm just going to repeat it for the recording so we have a question how about having a man into the cohort not necessarily be a part of the cohort but someone that you can ask questions to extend the network and get his perspective and get to know us so that is a fantastic idea and yes, the plan is I guess to have some men I don't think that a man can be a part of the cohort because then something gets lost, there's a certain thing of being a woman with women maybe there could be another different cohort there's men and women, that's a good idea yeah, I think I have a little bit more to add so as you say, we have plans to reach out to other senior leaders who are not women and bring him a different pronoun to our group it doesn't matter who it is all we want is to learn from others it could be men, it could be women it could be any marginalized group that's our goal what I want to add is the common ground that we had is that we are women so obviously you could form a group which you have a common ground so it could be men and two women or someone else and they can form a cohort the key is they have some common ground some common criteria that they are working towards because I think for us that's what made this more successful if you want to answer his question okay, go ahead yes, of course hi, I don't know what's up you're talking about you might want to have a men's perspective we work in a very man-dominant field we always get the men's perspective so when we find women it's not like every woman has the same perspective I have my perspective when we talk we totally agree with each other we're very different and I do agree that yes we can have cohorts with men too definitely, we want that we want that communication, we want that network but we already have it we have the men I work with a majority of men we are like a few women in our team and we're trying to build all that right we don't need more I would say we have that support from a fellow woman in our team in our workspace and I totally agree with you I totally agree that it is important but it's missing the point it's missing the point to this talk in my opinion I appreciate working with these females and I appreciate working with all the men in my team and I mean without the man this wouldn't even exist so the man is already there so thank you Perry I think that's kind of my sum up to my answer this is really awkward go ahead I have a couple of okay okay I saw a few hands go ahead please alright so I don't think there's a question there's just a statement that you made I'm going to repeat what she said okay it doesn't have to be it just occurred to be that our group formed the way it formed she's a senior manager we both are managers so it doesn't matter it doesn't have to be similar levels or anything like that alright go ahead so the question is you work as an engineer and you don't have a lot of women engineers in your group within your extended network I don't know where you work from in your workplace so what do you do in that situation this is exactly where your leaders play a key role help you extend your network I'm going to answer this and you can add on Mirab after so I think you reach out to a leader that you look up to in your organization and ask them help me find other people and other from their own network of contacts to connect you with them I'm not saying it will work because we are all humans after all after a couple of sessions it may work, it may not work but at least you get that contact so you get that introduction with someone whom you don't know that exists in other organizations I did not know Mirab works in different organizations until I was introduced to Peri to Mirab so essentially you need to reach out to one of your leaders in your organization and I'm sure they will be open to helping you find that contact and form the group that you want to Yes, please do So that is a great question and I can just entirely relate to that but just mind you the similar ratio is I think in women managers because there are a few of us who are great, I know so I think the best way would be to kind of find some other software engineers women engineers and then form yourself together and I don't know kind of expand it like the ideas that can come out of this cohort could be great, like how do we go and prepare the next generation like I don't know even from a university but yeah feel free to reach out to us afterwards Okay so your initial question your initial question was like how did did Perry know whether we had common way of approaching things like we have common things that would help us form a group better and then there was a subsequent question of how are things in terms of do we have differences of opinion or do we get along well, is that correct? So I don't know if Perry knew or not all Perry knew was we were all getting new managers under us so we were going to be new managers so he said oh you guys can learn from each other and so I'm going to connect you and he said did an email introduction to us that was the key the common ground was we were all going to be new manager of managers so that was the common ground to answer your subsequent question which now it's completely blank yeah we do have different opinions but it is not like we get into arguments during our cohorts we raise our opinions and we say oh I feel differently about this and I consider Mirab as my friend now and more than my co-worker she's my friend now and same with Kate so I think we get along really well okay you want to add anything else? I said pretty well alright any more questions I had someone else raise their hands strong network so you can define it as something you know depending on the size of the network oh actually let me reiterate the question first so you would like to know or understand what a strong network means so a strong network is something that you have you can count it as number of people but in my opinion I think it's how effective the people that you have in your network so for instance you need something you need an opportunity or need to get a career but some information that you don't know yourself these are the people that you have around you whom you can reach out to and potentially get the information you need so it's like multiple sources of information who has different perspectives so if I have to define a strong network it has to be diverse it has to be something that is easily reachable and you are gaining and also providing information to your network in other words you are giving as well as receiving benefits from the network yes please I think a strong network would be a bit different because I think it was referred to men in that context I think men are more bold in reaching out and extending the network and going high far more than women so this is something that we should improve did that answer your question better any other questions alright so feel free to reach out to us if you want to discuss about this if you disagree with us we definitely want to hear about that as well because that's how we learn and we grow thank you for listening to us and giving us the opportunity to talk thank you for our leaders who came to support us and the friends and everyone 11am hello everybody thanks a lot for joining my session it's impressive that so many people are interested in a non-technical session and the previous one here was also very interesting hi to the online viewers so I'm doing a session on ethics specifically for software engineering and I'll start first with some I'll start first with some notes about my context of who I am and also my motivation for that so my name is I come from Bulgaria and I've been in the software engineering industry for something like 25 years started as a developer did virtually everything within the life cycle so I was also an architect, QA business analyst I started leading projects then leading the relationships with big clients etc and something like 10 years ago I moved to the dark side so I started engaging with business and sales so here we go a sales guy talking about ethics currently I work for a company called Musalasoft we are 700 plus people and we do software engineering services for enterprise clients among our clients we have companies like IBM, VMware, SAP Automotives like Volkswagen, BMW and others so my responsibility in the company covers acquiring new clients growing the business with existing clients and also keeping the relation with some of the strategic clients of the company then let's continue with my motivation so I'll start with a story when I was a student at high school I was going to Sofia, the capital of Bulgaria for Olympiads in Mathematics and Informatics and one thing always impressed me when I arrived at the railway station and hearing the bus to the student city where they usually put us to stay they accommodated us there we went through I saw through the bus so many buildings that were either for governmental institutions or governmental or other because back then there were no private companies so governmental companies that deal with stuff starting with geo like geology, geochemistry, geophysics geodays, geoducts and I always wondered why is this so prevalent I mean to me it was like it was not understandable why that attention to those things and then it took me something like I don't know, 10 years and at some point I had this breakthrough in my mind that actually whatever you see around you it comes from work there is no any chance that anything that you see that a man made actually was not created through some extraction of materials or something that was achieved through agriculture or anything so geo stuff actually deals with everything in our life everything material so because this is so then actually that's the reason that this is such an important topic fast forward a few years later this when one person Mark Anderson at some point said software is hitting the world in all sectors around this time what came to my mind this was 2011 I think what came to my mind it was similar to this geo breakthrough that understood and it was the mere fact that again whatever you see around you whatever nowadays 5 years ago also software is involved in some way with it be it designing this or selling that or communicating so that we can make this thing happen so everything that you see nowadays software is involved so I'm not sure to what extent this is being realized by people in the industry but this is a fact so this also means that we are software engineers and people in the software engineering industry we have a big impact all over the world and I would say in terms of a profession next to politicians I'm not sure if there is another maybe we are second place with the geo guys another profession that actually has such an impact worldwide I tend to say that we are not special in one sense but we are a lot of engineers I don't know about your environment your social bubbles what I see is that in the last years many people in IT industry they think they are special because they have we are in big demand and companies are looking to recruit people and we have a good social status because the demand is bigger than the supply people tend to start thinking more than a driver etc I don't believe this is so and it's a bad thing for our industry and for the people in the industry so I believe that from this context we are not special on the other hand I believe that we are also special why we are special for two reasons first the one that I just told you we as a profession have an immense impact on everything that happens in our societies because what we do is something that impacts everything around us and the second reason why we are special is because on our side because of the fact that we have this as I said big demand and low supply lower supply than needed actually we have an opportunity to have easier choices to do the things right because we are in a situation much better than people in other industries where it is hard to find a job it is hard to raise a family with us it's not like this so standing up for what you believe is right is a bit easier for us than other guys so that's a strong reason for me that we do this another part of the motivation so just like with everything that I mentioned that we have has impact we are also part of some big issues things that we've heard of from the news that we know here are some examples of things where software and software engineers play a significant role yeah with the issues with Boeing and Cambridge Analytica and Facebook Dieselgate the issues in Myanmar that maybe Facebook could have done better and also the things around the legit usage of Grebo software by Uber for yeah kind of handling in a way of their own with the legislation requirements so let's talk about ethics then that's my motivation so let's start talking about ethics the words comes from ancient Greek and actually the two things that are from the etymology of the word are the things that are the most important to me in this context so moral and character so it's about values and it's also about character so having the guts, having the courage, having the character to stand by your values so quickly I'll go through this so in ancient Greek they talked and thought about the moral values what is virtuous behaviour what actions are morally right and wrong so there's been a lot of progress I'll just mention quickly nowadays people focus also on actually what are the ethical dilemmas and try to be more specific on how to handle them and also what could be the decision making process for actually finding the right way and the moral reasoning behind this Socrates worked on ethical inquiry and critical thinking Plato tried to conceptualise the idea of good and actually Aristotle started cultivating and setting up a framework that was emphasising the the vertex so I was planning to find a few quotes from people in our industry so that I can show you what people that we like actually say about it but I couldn't skip the quote that I really like most which is the first one it's from Potter Stewart who used to be a justice in the Supreme Court and he says ethics is knowing the difference between what you have a right to do and what is right to do so it's this grey area about stuff that might not be illegal but are not right to do and then a couple of other quotes so Grady Butch every line of quote represents a ethical and moral decision and that encompasses where and for whom one chooses to work to write that quote the choice that I just I was talking about so it's up to us to actually decide for who and what we do and it's not that hard of a choice in our case at this moment again, not that we are special it's just, it happened that we are doing this the times are like this and this is why this is the situation but we should embrace it and the last one is from a guy that is an author and VP of content he is from O'Reilly Media a company that I like very much for the educational content that they are publishing so he mostly says that it's about, just like it's not the goal but it's the journey, this cliche in a way so he says actually ethics is about hearing an intelligent discussion about it rather than hearing answers to the questions again it's about an area where there is no really right and wrong in most of the cases and talking about this is the way forward and also the goal because we cannot be one and the same with one and the same understandings about everything we cannot get to the same solutions or to the same conclusions all the time but if everybody tries to get closer to what he believes is right, things will be better so this is what he says intelligent discussion talking about this so let's take a look at what type of dilemmas and hard decisions and hard choices people in our industry need to take usually as I said we are different and also we have different perspectives so something in my eyes and something in your eyes is different just a few images as I'm speaking about the perspective so this doesn't look morally good or ethical but it's just a perspective so those two are one and the same pictures at one and the same moment photos from different perspective just like we have different perspective on things another one that really well shows this how different people can see different things and the last one when it doesn't really make sense to argue about stuff which can be interpreted in different ways based on your perspective so moving on with some examples of the ethical dilemmas and hard choices so in our business and what we do also again this talk the idea is not to give solutions as I said there are no solutions but to make you think hopefully start a discussion about it and so I'll give some examples of areas so that you have my point of view about awareness in what areas can be important in our industry so I'll just go quickly through them so data privacy in the context of protecting sensitive user data while still delivering functionality that requires more and more user data so what you do when you need to do this when you need to design things in a way to balance this so second one algorithmic bias everybody I'm sure knows especially currently with some progress and everything around artificial intelligence utilization having biases is something that is a big issue so in this context making sure that all the time you think about it and check about it and try to eliminate bias and discrimination against certain groups is something that is part of this addictive design but in the context of what is good to do what works in gambling or gaming or gaming like computer games those companies are trying to push the limits of what is good to do what is right to do always think on the legal side but still in many cases we hear that the law will actually lead to addiction that can lead to all those things that I mentioned here like reduced cognitive abilities social isolation those are things that are not just out of somebody's mind those are things that based on studies have been proven to happen my favorite number four conflicting interests stakeholder interests so how do you balance the user's interests when there is a tough situation and I know that's another characteristic of our industry is that our projects very rarely if ever our hearts are not on time are not stressful and anything so we very often get into these situations so when you get into such a situation you need to compromise so what are you thinking about is treating your users or working and doing the extra mile on your side and does your company support it security again so how much security is enough how much investing in security is enough for making sure that you allow as little risk as possible another thing we often hear about vulnerabilities that have been found in this or that company leaks of user data when we hear it sometime later we understand that actually they knew two days before or sometime before so when do you announce this product safety balancing budgets time to time and safety in critical industries like health care and autonomous driving things like for example also another ethical dilemma when you have a life threatening situation what should the AI do make a step make a reaction that will save the people in the future those are pedestrians for example hard to answer ethical use of AI misuse bias that we mentioned also explainability and transparency those of you who deal with AI you know one of the big let's say not issues but challenges with AI models is that many of them don't allow explainability so you get the result and you have to understand why this is the result and in many industries and in many cases this is not enough and sometimes people go for it even if this is the case which not always a good idea of course surveillance and privacy you are doing stuff that you see can actually be utilized for surveillance for the people so all those things actually or most of those things relate to the products that we built on the other hand we know the statements around guns that guns don't kill people it's people killing people so more or less it's the same you hear can have the same argument so it's not the software that will do the harm but it's not really knowing lead to go for things that will definitely harm people or will not be accurate enough I think I'm a little bit behind schedule so I'll be a little bit quicker next is trying to give you some vision about how ethics can be structured so the NECM got together like 20 plus years ago and they came up with code of ethics which is with a commitment to health safety welfare the public this is the focus entities with eight principles and those eight principles are decoded with smaller not smaller but more detailed information after that so the first principle is around public so focus number one with this framework is on public interest the second one is your employer your client so working the software engineers and people in IT because this of course actually when we talk about software engineering a huge number of companies are working on this and the third one is analysts and product owners because it's a lot of things about how we design software that actually bring the potential challenges and issues in this area the same for architects so the third one is about product so meet the highest professional standards in the industry to maintain integrity and independence in their professional judgment here the think independence to me is the most important one so everybody to feel free and enabled to take a stance when the time comes for any reason so to not be biased not to feel that not speaking up for example or speaking up would be an issue with your job and your family or whatever the rest management promote ethical approach for the management side profession as an industry as a profession to promote the reputation in this context number seven is to address the problem of work and actually treating which is a general one so it's not related to software engineering to promote treating properly your colleagues and the last one is about life long learning and promoting ethical approach in general for doing your profession another thing that can be used to see how companies that are having internal policies about this are doing it so I included here three examples of big companies like Oracle Adobe and Salesforce and two other companies that I personally like GitLab I don't know maybe you know they're publishing a lot of things around their processes and everything so they're quite advanced and sharing with the society and Buffer which is a company that actually embraces open books strategy so everything is open so not only internally like they know each other's salaries how much they make how much they get from each client and everything but they open it also to the world so you can actually see how much everybody makes them and this and that so those are links to their code of ethics and at the end I will tell my perspective on what are the important things that we can do as IT professionals in this direction they are kind of related to the eight principles but I'm trying to do it in a more limited way so the most important thing is to have courage and integrity as I said we should feel free to actually do what is right this involves a little bit of courage and also integrity always try to know and understand the big picture there are so many people still in the industry that just follow instructions they open the task in the morning in JIRA or whatever tool they are using and they follow the instructions there and this is what they do this is a bad thing because they are not effective without understanding why they are doing this and what are the functionalities what are the processes what's the reason behind it but also in the context of aesthetics you cannot really understand all those things that I just mentioned as potential challenges unless you know the big picture unless you know what does this software do who would be using it how is your company promoting this software in general the big picture so knowing the big picture always about what you do is important thing speak up if needed if you have the limits of your understanding about any attribute of ethics speak up even if nobody else is doing it and especially if nobody else is doing it what I didn't say is that I've been with this company for 10 years and I'm doing sales as part of my job and also strategic land management and also I do things with emerging technologies like IoT, artificial intelligence big data, AR, VR robotics etc for 10 years I never had to make a compromise I always spoke up when I had an issue and I'm really happy that I'm really happy that I can do this but I'm telling you that this can happen it's not like you always need to think about what you're saying it's a state of mind and if you believe that you are in a team and in a company that actually lives by the values because not every company might have code of ethics or policies but everybody has values and vision and this and that so if they are not just on paper and you have a good team then you should feel free to speak up you should feel free to stand up but it's mistreated no matter if it's a colleague if it's a client being mistreated in any way pushing for people to cheat on him or to whatever things might happen so with this balance that I mentioned about balancing interests between your company and company, clients vendors employees etc so dig deeper into the topics of ethics I don't know how many of you actually came with some previous knowledge and some previous perhaps they say experience in this area but if at least a little bit of what you heard today is something that rings a bell or makes sense to you dig a little bit deeper into this and understand more about it of course this is a 30-minute session I'm just scratching the surface so dig a little bit and this will allow you to come up with your own internal framework about the limits on the different aspects that you're okay with life-long learning with a course so everybody says that in our industry unless we learn every day we cannot keep up today with our profession this and that and this and that here's another reason and I would say a course so in order to maintain this integrity and this freedom and this ability to feel that you can afford yourself even from the perspective of your life and family and everything you should be able to be up-to-date and also you should be able to be up-to-date to also find for example vulnerabilities or no potential misuses and this and that so another reason to keep this life-long learning and also consider ethics is choosing next employer so everybody is having great team buildings and everybody on Facebook and LinkedIn they're smiling and the teams are great and everything but usually the story has some additional details so if it matters check them talk to people ask the interviewers questions about how they deal with ethics do they have a whistle-blowing policy do we have do they encourage people to speak up can they give you examples of how they pursuit issues that actually violate their values and their codes get into some specifics and you understand even if you can't find somebody that can tell you what can you do within your company race awareness, promoter topic do you have any discussions with colleagues do an internal session if this makes sense to you make a small session do it internally with people that are interested as I said the quote that I like most is the one that this is a discussion the way forward to get things better is about discussing not finding the right solutions because this way especially when people hear about those things from management and from colleagues they feel much more it's much easier for people to be speaking up as I said and everything so get management attention if within your company you don't have a code of ethics maybe it would be great to have one it might be titled in a different way but still to address those policies and it should be also an action plan so in the long term it's like just having a document without reviewing or checking the last quarter on this did we had any signals or anything it doesn't make sense there should be something that is regular also incorporate ethics questions in the regular company assessment how many of you in your companies do you have for example annual assessment survey where the company asks you questions about how the year went so that the company can understand okay just keep your hand so how many of you have questions about ethics like the things that I mentioned incorporated in this in this survey like for example do you feel that we treat people equally and do you say from one to five so how many of you so it's like 60% of the people that raise their hands so this is what I was mentioning here so and the last one beyond yourself and your company spread the word and trace awareness and your profession within the society of IT do a meetup session or a conference session just like I'm doing about a topic share experience and also engage with ethics related initiatives in the IT community so wrapping up and bungee jumping the most important thing to me as I said in the first point of my list is integrity so doing the right thing and even more importantly even when it hurts so the tough decisions on doing the right thing usually would hurt but as I said we're in a position where it hurts much less than other people that are doing it in their industries so if you believe that something something is going in the wrong way speak up take action and the last thing is a story about something that works for me so how we are human beings we have our weaknesses and in my life I also struggle with making the right decision or making the right thing when the situation is tough so I have my principles, my virtues the things that I believe in I try to live my life following them but of course when the tough time comes you are tempted to do the easy thing to back off or to do the wrong thing so I will give you how I'm getting better and it's actually doing the right thing so the principles that I have I think about them in advance so I know that in those situations the right thing to do is this for example so it's like and at some point it came to my mind that it's like bungee jumping bungee jumping so nobody goes to do a bungee jump think I'll go and actually when you are there you are tempted to back off and you are tempted to sit off and the thing that works I believe the first time at least for the first two, three times is that you do the steps behind them so you don't think if you think as I said we are weak we are human beings you will be tempted to back off etc the same goes for ethical and principle things that guide your life because in the tough situations you have this temptation and the easy road to do so this is the same I'm trying to follow the same principle so I just recognize the situation it's something to say I say it will be a hell I don't think I'm at the end when you do the first step just like in bungee jumping so when you do the first step usually it's no way back so it's something that works for me and I wanted to share it with you so remember we are special we have a big impact on the world and also we are well positioned to make a positive change so have courage when you do the first step when you need to thank you very much for your attention open to questions to challenges to opinions about I think in a different way anything so the question is about privacy tools and in general generalize a little bit so what about tools that you really know that they might be used for good things but also for bad things we can't stop things to happen it's been since the world I mean since the sun came up for the first time be it for the people that used to light the lamps on the street with a fire and now they don't have a job because we have electricity so we can't stop progress and we can't stop bad people using stuff that is meant also for I tell you one thing also additional there was a movement a couple of years ago about people that are doing open source stuff to actually make a different licensing model that limits certain industries and certain people to actually use it or for certain reasons I don't think it achieved significant progress but to me this is not the way forward but to me it's making sure that you do as close to what you believe is ethical within your context and with your understanding there is no direct harm with it apart from that you can't change the world from going like it went for the last 10,000 years and if we get closer to this goal it will be much like it would be a really good result anyway one more question there is another session thank you very much guys I appreciate your attention right welcome everyone to my talk about asking for help and thanks for sticking here for the last day afternoon my name is Jakub Schultz I work as engineer at Redhead and I'm also a developer I work with the company called Streamsy which is cloud native computing foundation project which is about running a pachi Kafka on Kubernetes and I guess as many of us I kind of have the experience with asking for help from both sides on the Streamsy part I'm often the go to guy who has all the answers I kind of see a lot of inefficiencies in how this works usually so that's why I kind of decided to give a try with this talk to improve it a bit so I think that helping others is kind of one of the most common parts of the open source community life right it's quite normal that there are people who come and ask whether some feature is supported there are people who ask about how to use some feature how to implement something how to architecture something and there are of course also many people who come they already run the project in production and then suddenly run into some issues they don't know how to solve it and they come screaming help help my production is down so these are just some examples of how people might be asking for help in the different communities we work in and in general this is an important part of the community life and of the community process because it obviously helps us get new users it helps us onboard the users and kind of make them from people interested in the project into the users of the project but it also facilitates feedback when we see that a lot of people are asking about some features so if we have the feature then maybe this is something what the people are interested in and we should consider adding support for it or if it's feature which we have support for but a lot of people are asking about it then maybe our documentation or maybe the way it's implemented the usability is not really good enough so that's another kind of feedback and finally if someone has some problems somewhere in production there's a big part of that and another part is that when people ask about something in some forum then usually that's kind of safe that's archived and it's searchable so it serves also as a kind of knowledge base and as a material for further learning so other people might not see the questions they might read the answers and see oh this is something I didn't know about and this is really something that's not something that happens in the open source communities because that happens everywhere colleagues are asking for help or if you have paid support for some software then you might be asking some support hotline for help what makes this a bit unique for open source communities is that a lot of this happens on a voluntary basis even at Red Hat then many of us are basically paid to work in the open source communities there's still a lot of time and a lot of meetings trying to answer some questions which is not really paid so really a lot of this is for free and voluntary and this makes it a bit special and that's why is one of the reasons why I think we should kind of try to make sure that this is as efficient as possible and doesn't consume time which it doesn't need to so how does this consume the time or how can this be inefficient if people ask the questions in the wrong way then maybe there will be several loops and several iterations where someone has to kind of okay you said this but can you please share the configuration can you please share the lock and so on and all of this takes time in between that people need to kind of switch focus so maybe they were working on writing some code now someone asked the question so they have to switch the focus try to answer something maybe quite inefficient and I believe that improving this and making this as efficient as possible is kind of a win-win situation for both sides because if you look at what the users typically want then yeah sure if they ask for some help in any form they usually want to get the help as quickly as possible if it's some production issue then it's maybe super urgent if they are just asking about some feature they don't really care whether the answer is in one hour or in one day but yeah they usually want to get these answers but at the same time they want probably the software the project to get backfixes they also want the project to get some new features because if you are using some kind of project some software or if you are planning to use it you don't really want to start using something what will not get any backfixes for the next six months because everyone in the community is busy answering questions right so it's in their interest that the kind of answering the question and answering providing the help doesn't consume all the time but that there is time for other things as well to keep the project alive and similarly if you are some kind of committer in the project then of course you are interested in helping your users one of the reasons why we are doing this is that we want to have users we want to have usually as many users as possible so yeah we want to provide the help and we want the users in general to be quite happy but at the same time a lot of the people in the community the committer they don't really want to spend all their time just answering some questions some of them might prefer to write code most of the time some of them maybe want to do some testing some of them want to write docs or do some other parts of the community work but not everyone wants to just spend the time answering answering answering answering answering some questions in some forums so they also want this process to be as efficient as possible so that's a win-win for everyone now how can you improve it and I believe that the right way or easiest way how to improve it is by asking the questions in a different way and actually that means that maybe if possible you should try not to ask the question at all and you should first try to help yourself that means that for example you can try to google the question and try to get the answer from google but it can also mean that you should use the documentation most projects have some documentation people invested usually quite a lot of effort into writing the documentation so please try to use it and don't worry it doesn't mean that you have to spend hours and hours reading hundreds of pages of some documentation most projects have this kind of single page version of the documentation so you can just open it press the magical control F button and then try to search in it and maybe you find the answer maybe you don't but you at least try it and it didn't help I think it's great to kind of mention it in the next step when you actually ask the question because A, let's be pragmatic if the people trying to help you see that you actually try to help yourself first and you try to do something on your own it will be kind of a bonus point for you right but there's also more pragmatic part about it and that's that when you for example start a question I'm looking for this and I searched in the documentation for this term it again provides a feedback to the project maybe the documentation calls this feature with one term and it turns out all people are coming and searching for a completely different term so the community can kind of go and change the documentation to do some reboarding and use the other terms there as well to make it easier to find for the next users it wouldn't be a 2020 free talk without mentioning chat GPT right so I actually see it used from time to time by our users to kind of ask the question to chat GPT instead of the community my experience with it is very mixed it sometimes gives very good answer but sometimes it makes up some complete nonsense in any case it's always absolutely super confident that it's 100% correct and it's always answering the absolutely right thing so yeah maybe that's an option maybe not maybe it will get better in the future one thing which this definitely doesn't do is that the community doesn't really know what you were asking to the chat GPT so all this kind of feedback loop knowing what features are people interested in what problems they are running in that's kind of lost because it will be only chat GPT we will know and the community will not see it in some selection okay so you tried to help yourself first but didn't find the answer so you have to ask so the first thing to start with is finding the right place because there are quite often many different places where you can ask there are mailing lists there are stack overflow there are github issues there are slacks, discords there are discussions linked in all these different places some people try to ask for help even with DMs on Twitter for example but there's always many options and you should try to find the right place and that can depend on several different things first of all is what is the community actually using and it's quite common that in the readme file in the github repo for example most communities in the github section which is like ask for help or discussions and mailing lists and so on so you can kind of find that and check the information there which is about whether they are using slack or something else whether they are using some mailing lists and all these things are often there you should also think a bit about what type of question you are asking and how suited it is to the place where you are going to ask it where your workflow is a great place who from us didn't use it for at least something but it's kind of well suited for specific kinds of questions if you for example want to ask whether some feature is supported or for something fairly simple with fairly clear answers it works well but if you have a production problem there kind of analyzing it and debugging it it doesn't really work that well because the lengths of the posts are very limited you can't really attach easily locks to it and it doesn't have really that well integrated kind of the flow for the questions and answers so for that stakeholder flow might not be the best option maybe some github discussion where you can easily attach things or some slack might be much better option and obviously a little bit it also depends on your preferences some people simply prefer to send the email and then read the answers next day some people prefer more real-time communication and then they would for example go for slack where they can kind of get questions and answers in a more conversation style something to think about is also whether you really want to ask the same question on five different places there are people who go and ask the same question on stack overflow slack github issues, github discussions mailing list and all of that within two minutes what is the expectation from the people in the community to handle this do you really expect them to kind of prepare the answer and copy paste it into all these different places or do you expect that someone will reply here, someone will reply there and you get kind of like a second opinion or they reply just in one place and all the other places will remain unanswered but probably searched by the index by the search engines and then popping up in the search queries so really think about whether this is the right approach and whether it isn't better to ask in one place and then give it some time for the answers before asking somewhere else and it's also important to ask in the right community like I have here some friends from the Dibisium community and a lot of Dibisium users use Dibisium with the STRIMSI project which I'm working on and in our community we get a lot of questions about the Dibisium project and we don't know really how to answer them and there's not really many people who know how to answer it in our community because it's not really our software it's more this other project so by finding the right project you can also save people's time because you ask it in the right place that you get the answer because if you ask in the place where the people have the answers for your question then you can actually get the answer of course sometimes it's quite hard to kind of know the boundary, know which project you are actually asking about so it's not possible to do this always perfectly but you should at least try another thing is that you should share as much as possible you should share what versions are you using you should share the configurations you should share the locks you should share the steps how to reproduce it you should share what you actually expected to happen you should share how the environment looks like and all these things right away I have two examples of questions which I see very often in our community and you might not understand the details if you don't know Apache Gavka but they hopefully give kind of the idea of the wrong type of questions my Gavka producer fails with following error not authorized to produce messages to topic my topic anyone has idea what the problem might be and I have their idea right away the problem is that the producer is not authorized to produce messages to topic my topic and if you look at the questions like this that's pretty much the only answer you can give to it typically this represents some bigger issue the person asking this how to use the authorization might not know kind of the right way how to use the authorization they may have misconfigured something or there might be some bug but without kind of having all the other informations it's basically impossible to say the right answer so how this will end up is that someone will come and ask for more details ask for the locks ask for the configurations and it's again it's all these kind of empty cycles we just waste time and don't add anything that's real here is a similar question my Kafka consumer is not receiving any messages and this is what I see in my locks and then single randomly picked line which the person thinks is actually the problem right and you might know Kafka but I know Kafka and trust me this is not the problem this is just a regular info message so when you are asking questions like this you obviously don't know the answer but if you assume that you know exactly which line from the lock will lead to the answer so sharing the full lock, sharing the configuration again can be super helpful to actually find out what the issue is and this is again another question which I see very often but which will basically just follow up with some interrogation about sharing more information and more details so yeah if you ask the question make sure to read what you are actually sharing and if you think whether kind of some magical answer can be provided based on that or not and you should not assume if you don't know the answer that you know what will lead to the answer so you should really try to share everything what you can or the configurations locks but you should also try to share the kind of more soft things like what were the steps you were doing when this problem happened to you or what were actually your expectations when something happens they think it's wrong but it's actually the thing which others expected to happen and which is there for some reason many of the projects use issue templates on github which kind of can give you hints for what might be the points which you should share like typically there might be some kind of form with questions what version are you using how you install it on what Kubernetes version for example are using and so on this often as a guidance what might be the important information you should share right away and then a lot of projects have also some kind of troubleshooting tool which generates a report for you and kind of collects all these information so you can check that out as well and if they have it then you can kind of use this to easily collect all the important information so share as much as possible and what's also important is using github format probably several of us at least here use quite often Kubernetes and use YAML and what's special about that is that the white spaces in the YAML document are super important and if you just copy paste some YAML into some github issue without proper formatting then it doesn't show the white spaces and it's basically unreadable and nobody who sees it it's hard to read but nobody can even say whether the indentation is not whether the YAML is correct so formatting it to making it readable is super important and ideally you should also think such as locks try to share them as a file so that they can be searchable or that they can be easily read on devices such as smartphones or tablets instead of for example making a screenshot of your whole screen ideally with the phone instead of using some print screen tool so you should share as much as possible but you should try to keep the secrets right so one of the dangers with sharing everything is that quite often you share things which are confidential it should not be shared and some of these things are quite obvious like you shouldn't share any passports you shouldn't share any TLS certificates and private keys and stuff like that so you can kind of try to look for these obvious things but there's kind of bit more to that right different organizations might have different rules for what they consider as a confidential so in some cases you might be actually not even allowed to ask a question in some open source community with your company email because they don't want everyone know that they are using this project and that they have some problem or question in many cases IP addresses or host names will be considered and so on so it's good to understand based on your organization what you can actually share and what's not allowed to share and what you might maybe anonymize and sometimes there's no other way how to do that then go through the locks anonymize it replace all the places but keep in mind that details matter and that you should use for example if you are replacing IP addresses you should always use IP address holder you should not just flat out replace every IP address with some IP place holder you should for example use IP one for one IP address IP to you for the next one and so on so that it can still possible to see from the locks who communicated with whom and things like that a lot of people try to work around these limitations by saying oh hey I will send you the lock in a direct message on Slack for example so that you can share the locks publicly to not share the locks publicly. Now first thing to consider is whether the community really wants to do this and whether the people trying to help you really want to do this so for example when it comes to me I'm not really doing the community support as a private support for individual persons on direct messages but other people might be fine with it but you should still consider the question and the kind of discussion will be not really useful for any kind of learning or any kind of knowledge base because if you have some discussion then some lock shared somewhere else and then the discussion continues you don't really know what was in the lock so if you are trying to solve something that seemingly the same problem but the lock is missing you don't know is it really applicable to me is it not important? Are you actually allowed to share this thing with some random person on the internet through a direct message and usually the answer will be no in the same way as you are not allowed to share the locks with IP addresses and so on in some public channel you will probably not be allowed to send it to some random person on the internet just because he works on some open source community project. The person will have to send it to the internet you don't know how is this computer secure maybe he downloads it there and the next day someone hacks him or maybe it's just his son using the computer at the time and so on so you should really consider whether this is actually something you should do in the first place or not. Okay one thing one other thing to talk about is kind of this language barrier. Who have you seen the WDYM? Raise your hand nobody saw them? Yeah also we probably know what it means. So this WDYM stands for what do you mean and so this title basically says what do you mean with what do you mean right and it's actually kind of something what I was asked by a user in our community but it's often the situation that in our teams in our kind of daily communication we are quite what do you mean? As far as I know, thank you if I remember correctly for your information and so on. But other people might not really know what do these mean and might not understand them. So one of the things you can do is you can try to avoid them and you can try to write them in a full word because that will be more understandable to everyone on the internet. It's obviously using short cuts and acronyms. It's not the not the only problem which comes with regards to language. I'm afraid the only help which I have with regards to the language is that again if you share the things, if you stick to the things such as the locks, the commands, the configurations these things are usually not translated, right? So if you have some kubectl command or if you have some linux shell commands or things like that they are usually always the same in Czech, in English and probably in most other languages as well. The same applies for lock, like maybe you will have in different language the kind of error or info and so on translated but the message is issued by the applications they are often always in English so you can kind of use these and share these and they really help to understand the issues because that's something what you can read and from my own experience you can quite often answer a question which is for example written in Chinese without knowing anything about Chinese but you for example see the commands, you see the lock and the configuration, you know, oh this is probably this problem which someone else had before, right? And just from kind of these well-known things you can figure it out. One other thing I would add is that a lot of the people answering the questions on trying to help you they might not have bad intentions, they are just probably used to use the language differently with their colleagues, they might not be always able to easily kind of switch to a different mode and use a simple language when answering so don't be afraid to ask something to be repeated or maybe to be repeated in some easier language or don't be afraid to kind of try to rephrase your question if you think it was not understood. Usually the people are kind of fine with people who maybe don't have such a great language skills as they do and they will try to do their best. It's just sometimes that they need to kind of realize that they should do this. Another advice is to be patient and give the community some time to actually get back to you to answer it. This is often different person by person. Some people don't like to kind of switch in context between different things and for example at the end of the day have one hour spare for answering questions on some select channels and answering emails and so on. So sometimes you have to wait for them to kind of get into this time which they have scheduled for this and then they will reply. For smaller projects it's also quite common that for example all the people working on them are in North America or in Europe or in Asia and they don't really cover all the different time zones. So if you live in the wrong time zone so to say and ask the question wrong time everyone might be maybe sleeping and they reply only when they wake up. So be patient but you should also be aware that just because nobody answered doesn't mean that nobody cares about your question or that nobody saw your question. It can also happen that just nobody knows the answer and they just don't know what to reply. The last thing I would like to mention is that you should also try to give back to the communities when asking for help because yeah let's be realistic. People always tend to help more to their friends and people they know than someone who's completely strange to them right and you don't really need to spend weeks contributing some some software patches or new features to the project. You can do several simple things. If you already know something about the project you can for example try to help others who have some simple questions right and then when you ask something yourself the people will know oh this is the person who was answering all these questions let's help him know. Similarly a lot of the open source projects have some kind of adopters list or some set some kind of website with the logos of the users and again you can quite easily open a PR to add your organization to that list and then when you need some help then the rest of the community will know oh this is the person from this organization we have their logo on the website they are our users let's try to make sure that it works for them and let's try to fix their production issue for example. So these are kind of some things which you can do very easily and which can kind of help to give back to the community. And that's it hope this was at least a little bit useful and I think we should have a few minutes for questions. So the question was that sometimes you try to help someone and you maybe help them successfully and then they start to kind of ask you more and more questions and they start to kind of use you as a personal search engine personal Wikipedia and kind of ask at any time of the day and so on so how you can kind of try to do deal with this in a polite way I hope I capture it correctly yeah so I think that's not easy and to be honest I'm maybe not the right person to ask about doing things in the polite way so I think one thing which I do often is as I said if someone tries to DM me for example on slack with questions I usually tell them you should ask this in the in the channel shared with everyone and not ask this on the DM's often people simply just kind of CC you on slack personally instead of just asking everyone in the community and then you get notifications and then other people might feel like that's specially for you and they should not reply so again I try to kind of politely say please don't do this don't kind of mention people in random questions if there is no real connection to the person and ask really just the community and to be honest sometimes it works sometimes it doesn't I have a person who when I told them to kind of that something is documented they should look there for details they told me that they will not look into documentation because asking and getting answer from someone else is much easier so yeah sometimes it's hard to answer politely and and kind of solve this in polite way maybe to just try to rephrase what was said in the discussion from publicum that it's important to kind of try to keep your time and your energy under control and kind of try to make the people to understand that something is for example involuntarily and they cannot expect the same reply times and kind of handling as in some paid support for example and and so on does that somehow capture it yeah I think it's completely fine to simply explain that yeah you don't have time that this is a voluntary based support I one of the things you can also do is kind of you can try to take more and more time to reply which kind of instead of replying every time in 10 seconds then if you reply in few hours next time and then in few days next time sometimes kind of you undo the the the thing that you are always being asked you had a question so the question was if if someone asks a question in the wrong channel better the the kind of question can be somehow easily transferred or something like that yeah so so to be honest I it depends a bit on where you ask like I don't think you can move the messages between channels on slack that easily for example you can just reshare them in some other channel on on github for example if someone opens a bug instead of opening a github discussion you can normally use github functionality to kind of transfer the issue into a discussion so it depends on the on the platform but what I kind of try when I when someone does it on kind of if someone doesn't doesn't ask the wrong question 10 times per day that I kind of try to tell them look this might not be the right community there might not be that many people who will have the answer for you maybe you should try to ask in the right community so so like I usually try to kind of direct them but yeah again that's something what costs time and sometimes until someone gets to that it might take a long time but I don't I'm afraid there's no better and easier solution anyone else so the question is basically whether some community communication guidelines might help to kind of reduce these things I to be honest I didn't try that so I don't have a real answer from the experience I think it might be interesting thing to try and it might make it kind of easier to kind of point to these guidelines but at the same time I like I hope talks like this would help to convince the people to first start looking into things like documentation so I'm not really sure I would expect people to first read some communication guidelines before asking these questions so so like I think they can make it easier to reply but they might not make it easy to kind of avoid the questions in the first place yeah I think that's it's interesting idea which might be worth trying here anyone has any other question yeah so the question was whether there is some tool or some service which would kind of automatically hide the things such as IPs and to be honest I don't know about any like in the stringy project for example we have this kind of report tool which collects the information so we make sure that we don't kind of copy there the passwords and the certificates but we for example don't mask any IPs there or anything like that and I'm not sure about I'm not aware of any other tools which would be doing that okay we are out of time so thanks a lot for for staying here and for watching I hope it was useful for you you're gonna do it 123 okay hi everybody it's good to see all of you thank you for coming to my session Sunday afternoon I know it's the last day of dev comp cz and it's so beautiful outside glad that you're gonna spend the next 30 minutes or so with me wait for folks to sit down right so I'm here to talk about DEI from a global context right so we talk about DEI and it's something that feels difficult to a lot of people because it's like how do we begin to even have a conversation about diversity equity and inclusion on a global context and I personally believe that there are commonalities across having conversations that any team can use it doesn't matter which region you're in really it's determined by several factors that I'm gonna go through today but before I get started I'm gonna introduce myself so I'm Jen Madriaga this is me shamanee that's near Mont Blanc I've been working at the source for nearly nine years so this is like I guess my third or fourth career before I worked in tech I worked in higher education administration so I did stuff like academic advising I did stuff related to basically working with students and I also worked to the number of nonprofits as well as arts organizations so and somehow I don't know I landed in the tech industry I've lived a bunch of different places including abroad so I lived in the Philippines for a little bit I also lived in France for a bit and I've been all over the United States and each of the regions United States could be its own country honestly culturally so I was born in Hawaii and I lived in California Virginia North Carolina Red Island and I'm actually back in North Carolina and I'm about 30 minutes north of Red Hat Tower in Raleigh so for those of you who have not met me before so I am in charge of community developer and emerging tech events on a global scale I tried to allocate it to people in region but there was really not an interest to manage community events because they said it was not Legion oriented so the good news is that I get to travel all over the world to be able to meet people in the region I have to talk to folks about what it's like in their region you know what are what are their needs what are their priorities in the community space and honestly it's a super fun job I'm glad to be traveling again it was really hard to be home for three years and so I'm like really happy to be in Brno particularly because it's warm for the first time ever for me so I've been working in the diversity equity inclusion space for a really long time I actually was working as an undergraduate and also as a graduate student and so I did a lot of work related to issues of diversity equity inclusion from a lot of different contexts and I actually got a certificate in it and I used to actually do it for a living when I left grad school it's a really hard area to be in so I left it thinking I would never ever touch that space again and here I am now talking about it years later so I think everything does come full circle so I'm one of the co-founders of the Red Hat Asia Network and I currently serve as the chair and one of the things that I am very interested in is intersectionality and intersectionality of course involves how do we have conversations about different things that create identity because every single person in this room is intersectional okay so I wanted to go through a version a definition of diversity equity inclusion and there's also justice in here you don't hear the terminology around justice very often but I actually really really like the way that this these definitions are phrased in the form of questions right because it's kind of open-ended it's not yes or no by its very nature DEI can't be yes or no it's it really is about questioning right so you know you've got diversity like who's in the room who's here with us you know and then equity is like okay we've got a bunch of people in the room but there are people outside the room you know why you know how do we bring them into the room right and if once you have people in the room are people allowed to speak up and share what's on their mind right and then justice that's a very interesting component that we don't talk about very often so we hear about DEI we don't hear about the justice part and actually I think the justice part really speaks also to issues of equity and inclusion right because part of what we want to make sure is that when people's voices are heard that they're taken seriously that you know we treat them with the same amount of credibility that we would from a stakeholder or a person involved that you know really well right so I wanted to talk about examples of team diversity right because like one of the things that I hear on a pretty common basis is that the way that we talk about DEI or it had is very a mirror centric it's all about the United States and we want to talk about from a global context and so I wanted to talk about examples of team diversity right so the United States is very true we probably think about the demographic diversity the most you know which is basically you have a bunch of identity groups we would call them underrepresented communities at Red Hat they're working together that may not have worked together in the past and so you know it's stuff that we talked about traditionally which is cultural gender race age sexual orientation gender identity and so there is the demographic version of team diversity but then there are other types of diversities that we can address with some of the things that I'm going to walk through today one is expertise diversity which is like you've got someone who is really an expert at what they do and then someone who's completely new to community and they have no idea what they're doing like there are you can use the same tactics the same methodologies to treat a team that has varying levels of experience right the third variety is location and we have been dealing with this a lot because a lot of this work on distributed teams like I work with folks all over North America and APAC and EMEA and and even LATAM and so part of it's like how do we account for the fact that people are in different regions and how are they able to have a conversation how are they able to drive consensus again the things that I'm going to be walking through should apply to that and then status is the final one and it talks about you know disparities you know like they're different levels I think it's slightly related to expertise but this is a little bit different right this is about an emphasis on job titles so if you're like I guess like a vice president and then I'm just an individual contributor you may have a hierarchy or a way of communicating that does not encourage interaction that's authentic or valuable right so we're going to talk through different factors that I think you can use in evaluating whatever team diversity you have you may have all four you may only have one you may have two but I think what I'm going to talk about is going to be relevant to all these types of diversity and just as a net this table is taken from an article it's called reading leveraging diversity through psychological safety it's by a person named Amy Edmondson and she was the one that helped create the term of psychological safety which is what we're going to be talking about next right so I just want to talk about what people care about at least from my conversations like I said I've been working in this space a really long time like I've worked it worked on it from an education context I worked from it in a nonprofit context and now I'm working on it here at Red Hat as an ancillary to my day job but I am a community builder my identity first and foremost is building communities and so when I talk to people I realize there are things that everyone seems to care about doesn't matter what your background is it doesn't matter what country you're from doesn't matter if you're a man or woman non-binary these are the things that I hear time and time again from people and the number one thing is a need for belonging you know what's my place in the world can others understand my experience right so it's really related to the next need which is the need to be seen and validated you know like I want to feel that my contributions matter and I'm recognized appropriately for them right and also you know can I bring my whole self into situations without fear or self-consciousness because one thing about building a community is you want it to be a true community where people feel like they're a part of something you know something that feels very very safe and then also fairness like I think the one thing that always comes up when I talk about DEI is the issue of fairness what does fairness mean and so for me I define fairness as I want access to resources and support I want access to opportunities and that everyone should have the same access to resources resources support and opportunities right and I think if you look at it from that vantage point the fairness aspect you know okay now I start understanding why we're talking about stuff related to diversity equity inclusion because we can see situations whatever the situation is that people do not have access to the same resources alright so I'm going to talk about psychological safety I feel like we've been talking about psychological safety for a long time at Red Hat but I don't know that it's been particularly well defined so I wanted to talk a little bit about how psychological safety is defined within a team setting because it really it's about the team setting when we talk about psychological safety right so what it really is is giving permission for people to fail you know so instead of saying I blame you for the failure of this project you frame it in terms of what did we learn you know you know I don't know how long people have been a Red Hat or how many Haters in here but we used to have a saying and we had it on stickers that was that said failed better you know and then he took it away because they felt like people are misinterpreting what it meant to fail better but I thought the sentiment behind feel better is really really important we have to allow people to make mistakes we have to make an allowance for people to grow and learn right so you know someone takes a risk and it doesn't work out people should not be punished for taking that risk and I think for years I think Red Hat has done what it's done well because we took risks and then if something didn't work we were kind of like okay that didn't work we know not to do that again let's go ahead and try another avenue of doing things and that's one of the things that I really really really loved about Red Hat I think that's actually related very closely to open source methodologies and so I think the context of psychological safety is actually something we're already very familiar with you know as a company and also if you're in the kidney space you know you're always having to iterate you're always having to see what works and does not work right so when you have psychological safety you can talk about your failures in a way that becomes very solution oriented and I think that is super super super important to realize that that's what we mean by socket psychological safety and then like I said when you talk about psychological safety it's always within the context of a team right so the one thing about psychological safety if it's present for one person it should be present for everybody on the team you know so if you only have one person that feels psychological safety and no one else feels it you don't have psychological safety you actually don't it doesn't meet the definition of team psychological safety if only one person is comfortable enough to talk about the things you know that may be uncomfortable if there's only one person that's interested in talking about failure or what to do next and no one else speaks up you do not have psychological safety right so it is a group feeling so that's one thing I want you to remember is that you know a lot of times I think we contextualize psychological safety in terms of an individual but it's really really important to note that it actually applies to teens so you have one person that doesn't feel like they are safe on the team you have not achieved team psychological safety okay so we keep hearing about diversity hey diversity is really important you know why because it's going to outperform less diverse teams you're going to have different perspectives it's going to be awesome this is why we want diversity right what's really interesting is that just because you have diversity in our team does not mean your team is going to do better in fact there are numerous studies that say that the first teams often underperform relative to teams that are homogenous you know and do people find that shocking maybe find that shocking that those teams that have a variety of people involved don't perform their best so obviously diversity is not what causes teams to excel in fact it can detract from achievement it can detract from getting things done and why would that be like if we think diversity is so important we talk about how important is to have diversity in our team why are they not doing as well is because we have to have practices of equity inclusion and justice along with the factor diversity right and this is really about ensuring psychological safety across your team right and so from this particular article also co-authored by Amy Edmondson she was one like I said who coined the term psychological safety she and this other collaborate on request man basically said there are three things that you want to talk about things that you need to do as practices to ensure psychological safety right and so the first one is framing right so you have to make sure that when you frame meetings the meetings are meant for information sharing and the information sharing can be good it can be bad but everybody is going to have information that they're going to share and then the group is going to listen and they're going to weigh okay here's all the information that we have and you know what because you have a variety of stakeholders on your team they're going to describe things differently they're not necessarily going to experience information in the same way like you may give a piece of information and someone said I had no idea like I didn't even think that that was a factor right and so that's part of what's important when you have made meetings you frame it as information sharing information gathering and it's without judgment you just basically make a list of things that people want to share and you think that people need to know about right and so actually collect all that information and you're like I didn't know about that I didn't know about that okay now we've got all these pieces of information what do we do with those pieces of information we have to listen right because you may be sitting in the room and someone shares a piece of information and you're like shaking your head like no no no no no no it is not that way right and sometimes it's hard if we have an opinion or we're very wed to a certain viewpoint to do the deep listening and so one of the things if you have a team where you're sharing information and then you have to have people elaborate on why they are seeing what they see you have to allow space for people to first of all speak about it and then everyone has to listen so there's this really cool practice that the native and indigenous DEI group does at Red Hat when they have group meetings they have something called a talking stick and so if someone is holding the talking stick no one else is allowed to talk except the person with the talking stick and it's a good visual reminder that hey when the person holds the floor we give them the space we give them time to be able to explain themselves without interrupting and I think there is a tendency to interrupt like I grew up with that kind of practice it's not a good practice right and so this entailed a lot of mindfulness and then when we're allowed to ask questions the question should be open they should not be yes or no questions because that automatically shuts down conversation and so and then we also have to ask you know how did things get to this point right like if we're if we hear things that this is happening we want to hear about well what's causing it and what role do I play on the team that contributes or doesn't contribute you know how can we shift it so that people are doing their roles properly so that we can get things done right there's bridging boundaries right this is a little bit about learning about people on your team you know like we don't necessarily want to share everything about ourselves and where at work like that can feel very vulnerable but asking about issues that are you know larger than a task at hand I think is really important so you want to ask about people's hopes and goals you know for a project like what would you like to see happen you know for me my continuing hope and goal is that corporate marketing is going to care about those communities and start incorporating it in our corporate events right what do you bring to the table I work for communities all the time I would love to help out in this space you know concerns of obstacles what are you up against nobody seems to care about communities anymore and some of the segments of corporate marketing what am I worried about I'm worried that red hats not going to be seen as an open source company I'm worried that they're not going to be seen as a place that's safe for open source communities to thrive and flourish right so when you ask those kinds of questions related to your project you start realizing what people's priorities are and then it comes a lot easier to map things out so when people talk about personalities like one thing that I'm really proud of at red hat is my reputation to deal with difficult people that's like they always say that they're like Jen you can deal with like people who are really difficult or really challenging you know how do you do that the way that I do it is I ask each of my stakeholders you know what are we working towards and how can I help you get there and how can you help me get there and because we can come to sort of consensus what we're working towards I can get a lot of stuff done even with people I mean not personally like them and I think you know I don't think I'd be friends with them outside of work doesn't matter because we're working towards something singular and purpose right so one thing that's also really really interesting so you know we talked about the importance of psychological safety you know in 18 setting as you know we also have to figure out a way to evaluate people and whether or not they're able to do these and so this is targeted towards managers but I think individual contributors can benefit from this too right like I'm thinking because you're here at the POMCZ you're already part of the community right and so everyone has a role to play and so one of the things that I thought was pretty useful was this rubric that was done by someone named Chelsea Troy and they've been doing work around DEI for a long time in the tech space like this is actually several years old but I think a lot of it is still really really relevant to today so there are certain criteria that Chelsea says that we should be talking about one is moderation and moderation is basically referring back to what I was on this on the last slide about allowing space for people right you know and you know like is everyone's voice being heard so that carcass back to those definitions we talked about with diversity equity inclusion and injustice earlier right you know do people have their fair share of time and then if people disagree do they allow the space to talk about the disagreement right like we always talk about how good we argue at Red Hat I don't know that that's always true but I think you know this moderation piece framed by these questions I think is helpful related to moderating conversation or discussion is soliciting opinions right are we making sure that people are in a state of inquiry around things right and you know we have all been in meetings where people are the self-proclaimed expert about something and they're talking and you're like I don't think they know what they're talking about but you don't say anything really a manager to create a space where everybody's heard right and also people process very differently one of the things that I always ask people to do if we're in a group conversation and people don't speak up they don't necessarily have to say something in the meeting I think it's very very important to give people permission different ways to provide feedback because sometimes people need to sit with what they've heard and maybe they're better at writing it out or maybe they want to do a one-on-one would you you know afterwards once they've had that time to process and so part of this we can't continue to value just the people that speak up at meetings like that's really celebrated in a lot of spaces but it doesn't necessarily mean that we're getting the best information what it does is it shuts down avenues to make an informed decision and so I want to encourage people to really think about that like I love having a real-time conversation with people but that doesn't necessarily bring other people's best selves out and so I think we have to be really really mindful about that attribution so earlier I said people really care about their contributions mattering but also they want to be recognized for their contributions like I can't tell you like how upsetting it is for someone to work really hard on something they share it and then they get no credit like at a team meeting for the work that they've been doing you know I mean that's a demoralizing feeling to feel like you're working really really hard at something and then there's no attribution or recognition of the skills and talents you bring to the team right and so you need to be careful of people that won't attribute right and they need to be called out so if someone says hey yeah you know miss was working on this project you know he did really great work but then Carol is not recognized and Russia can raise her hands and you know what we actually need to mention Carol too because Carol did significant work in this space and so that's what I mean like managers have to provide the space but individual contributors can speak up about it and if you don't want to do it in real-time in a conversation you can always send an email because that way it's documented right I like I like email trails all right so most advanced assumption again this is like related to the people that want to be the self-proclaimed knowledge experts right I mean one of the things that I think is important about open source and about community you know we always talk about the best idea winning well how can the best idea win if you don't hear all the ideas you know and so we have to be cautious about and I'm guilty of this too because I've been working in this space for several years is that we can't be trapped by the expectation because I've done this a long time I have all the answers like I call myself out all the time on this there are things that we cannot see in our space you know it's kind of like driving a car you can see straight ahead that you can't necessarily see what's behind you you might be able to see it in the rear view mirror but you don't have the complete 360 view right and so it's important to hear from like our interns it's important to hear from our junior engineers because their problem sets are probably very different from what you see as a manager because you don't have to deal with it on a daily basis you have to be really familiar with the pain points of what people are experiencing and that is a way to practice inclusion you know so so hopefully you're seeing that I think that we can apply this in any situation so again this is kind of a continuation what I've been talking about capitalizing alternative perspectives you know so this is really about driving consensus right so this is bargaining back to the stuff that I was talking about with teens psychological safety right is that we have to be careful about rigidity sometimes people are right however we still have to give space to alternative opinions because you know what it may be that be that you're right but you know what your arguments even stronger or more relevant because someone else has contributed a piece of information that you're missing and now the information that you are providing is even more complete right so I also just want to talk about structure like I I've studied systems and structure so I've talked about managers I've talked about individual contributors I've talked about teens but I will say that the reality is that if you don't have an organization that has formal structural processes around this you know they don't set it as a value system that you know it's really really hard to keep it going so I do believe in the power of individual you know as one of the co-founders of the Asian Network there were five of us and we were able to implement a lot of things you know we've created some really great things but it's so reliant on us as individuals so like one of our leadership team just sigh who's a chairman's award winner was part of the layoffs and he was such an instrumental part of creating committees and we have no way to really account for his absence anymore right so the power of individual is awesome but the leadership matters like you have to have an organization that is willing to create structural change and you know what it's gonna make people mad because you know people do not like change I don't like change I mean you recognize that things have to change and that I have to change my habits but you have to have leadership that's that says this is important and the way that I would explain it is that people pass laws for a reason right so we like pass laws and you have to have a driver's license to drive you know you have to basically you know not harm anybody like you can't go on the tram and like punch somebody for you know random reason like and if you do there are consequences associated with that right so you have to have a structure related to process and also consequence and if you don't have that organizationally unfortunately the individual efforts that are created are very very limited what happens is that people have very inconsistent experiences across the organization and then like I said if you have someone that leaves you know you may not see that lasting change you know I still want to say that those ad hoc things really matter like it matters to individuals greatly but if like the entire Asian Network leadership decided to like leave I don't know that you know that any of the work that we have done would actually stay around so I want to talk a little bit about contact there and I know that I'm running out of time but I think this is really really important so contact through is related to race relations it was again another Harvard professor that talked about this and this is a really interesting article I'll make my slides really available but this there was a article this was a journalist who discovered that he was biracial he thought he was just a black American he ended up realizing that his mother was white and so he had to learn about his white family and his white family had to learn about him and there was a lot of discomfort because you know when his mother got involved with his father there was a lot of opposition and nobody ever talked about it and then she was hospitalized with psychiatric issues because she had schizophrenia and so he never met her until he was much older and his father said you know what you have a white mother and he talks about the pain of like interacting with his white family the first time and he's like why didn't you come to find me and nobody wanted to answer that question because it made them look bad you know I don't want to interact with him because you're a different race from me but one of the things that he found out was that both he and his white family had a greater purpose and that was we want to build a relationship together we want to come together for a larger purpose which is to get to know each other and create a real family together and that actually is the embodiment of contact theory so as a reminder diversity does not ensure equity or inclusion by itself but if you can work towards a common goal that's larger than you as an individual it's very very very powerful and not just in a business context but also any personal context so again you know I want to come back to diversity equity inclusion and justice and remind you to be asking questions and I'm not going to go through this part of it in detail but I want to talk a little about the Asian Network and why it's important why it's important to have DEI communities at least for me personally we don't have structures in place right now around DEI and so it's important to create safe spaces for people and one of the things that I think has been most gratifying about the work that I do when I volunteer basis is people telling me I now have a space to talk about things that I worry about maybe my manager doesn't care about it but I now have a space where I can talk about those things and so one of the things that I would encourage people who are in this room is where your safe spaces you know where the places where you can have people bring everything to the table you know bring their best selves and maybe their worst selves but they know that we can be encouraging to let people know that they're in a safe place where they can learn to be better so we have three minutes left I'm going to stop here and just see if anyone has any questions. So basically someone was asking as a senior most person on a team how do they make interns feel comfortable with speaking up because they may not share what's on their minds because they're afraid right that's really really common I think all of us have that fear and one of the things that I think is important is that you ask like I said open-ended questions right so you you know you ask hey you know what have you been working on you know you know what do you think went well is there anything that's preventing you from doing the things that you want to do you know is it because you're you know you're missing a resource is it because you know you're not getting what you need from another team member and so it's asking the open-ended questions that's really really key and I will tell you that sometimes people don't want to do the open-ended questions because it leads to complexity like it's so much easier to say hey everything's okay right yes or no and then oh no oh well you know you'll just have to to deal with it so part of it is like also encouraging them to help them find solutions so if they say I have an issue with a team member or I'm not getting what I need to be able to fix you know create the solution ask them well what do you think you need you know what is it that you you think needs to be provided instead of going right into solution making yourself as a senior leader ask them what they think it is because they're the ones that are you know working on it on a very direct basis and so I would say the process of open-ended questions is really really key that takes practice on the part of managers as well but I mean I would just say that remember what it was like when you were an individual contributor you know remember like how you know intimidating it could be a particularly if you're very very junior and so one of the things that I think is very important when we talk with team members who are more junior who are still gaining experience is that we provide an atmosphere of mentorship that we really care about you developing your skills and you know we want you to help us find what works for you right so again open source ethos collaboration transparency like I just feel like all this work has a lot of the value system associated with the source are there any other questions yeah yeah that is such a great question right because it also talks about what the nature allyship is allyship is right and you know the thing is is that Asian Network we officially have a North American chapter but really ideal of associates globally you know like I'm dealing I'm working with people with an APAC Amia and Latam which we weren't expecting because all of us who are in the leadership team and actually I'm gonna show my leadership team because they are amazing people we represent all parts of the Asian diaspora so I represent Southeast Asia others represent East Asia and then we have to actually represent South Asia but you know the fact that you're asking that question is actually really really important because I think one of the things that people don't like when allies come in is they're like we're gonna fix this for you and again it's actually related to the question I just answered with like the junior engineers is you have to ask them what do you think is needed and what role can I play in that you know and part of it maybe you just need to go ahead and like read up on something you know like I have a familiarity with all sorts of things globally just because I travel so much is something that maybe some of the United States wouldn't pay attention to I would have a deep familiarity with because I've gone to the region or I have colleagues or friends that live in that area and so one of the things that we just have as a priority in the community is again providing that safe space for everyone to have a conversation and I think it's always very important for people to come from a place of curiosity for me when I deal with folks who are unfamiliar with the experiences of being like an Asian associate and a place where there's hostility or if I'm fearing for my physical safety you know one of the things that I think is really really important is to remember you know just because you're not experiencing it doesn't mean it's not real right and so we have to hold space for experiences that we may never experience so my husband is a white man from Knoxville Tennessee and he's like I've never thought about these things like when I see you I don't think about that stuff I just think about you're the person I love and that's it but we have to acknowledge that we're shaped by all those are shaped by our experiences right and we've had very hard conversations you know but I don't put it in the context of right or wrong I put it in the context of there's a lot for us to learn about what is it that I can learn you know and what can I teach but first I think the learning part is very very important particularly if you're entering as an ally you're entering spaces that are meant to be safe spaces for others and it's very very important to respect that as an ally you know and allyship is a very very key to the work that we do in the DEI space because usually allies are in a position of greater privilege than people in DEI communities like it's meaningful for my husband who works at finance at Red Hat to talk about it with his own team they're like why are you talking about this and he's like because it's important you know and so when we're managers and we have privilege use it use it in a way to basically encourage a way of being and a way of interacting so it's so that sometimes it's very small steps it's very very you know I don't want to say easy but it can be a very small step all right I know I'm way over if you want to talk to me afterwards I'm glad to have a conversation with you but keep in touch thank you okay hello everybody I hope this works I'm I often get really nervous when I hold these things it makes me feel like a rock star that's for sure but let's see how that works okay hello once again I'm Mark engineer manager at STRV and I'm very thankful for you here because I'm gonna talk about code as culture which is the topic that touches organization structure team structure and stuff like that and I always tend to get very excited when I get to get a chance to talk about these things I often talk too much so we are gonna be victims of it today let's see how that works out so why I'm gonna discuss it why am I gonna talk about code as culture why am I gonna even talk about organization structures when we tend to get the standardized ones right so in my opinion code is often viewed as sort of an artifact sort of split separated and divorced from social and cultural context and that is a real shame I think that the code somehow reflects the organization structure and personalities of engineers who created so engineers in my opinion are like artists the technologies that they use these are their color palettes and the code is sort of their brush and I believe that you know every artist sort of reflects himself in his painting and I think that it's the same for engineers so what can we do for them to make their reflections a little bit easier right let's start from scratch let's start with an org chart I'm pretty sure you're familiar with this it's a pretty standard org chart at the top there is a let's see one if the point works cool at the top there's CEO CTOs then there are some head of departments and later some engineering managers and their teams pretty standard structure I'm asking what is the org chart for so you can say that it's a single view of the teams in the organization and the people it's sort of a hierarchical structure right for the purpose of reporting and it facilitates compliance cool but if I look at the org chart can I really at least know what the company is doing can I know what the company is working on what the engineers do hardly at least not this kind of org chart so what is it really for well to submit vacation requests that's all it is good for at this point fair I assume so I have three issues mainly with the org chart people communicate horizontally issue number one you know if we have the back-end engineers structured vertically what is it for well the product that they create is not just back-end it's back-end plus front-end plus mobile plus QA people communicate horizontally the products are horizontal why do we have vertical structures issue number two people don't restrict their communication to those lines in the org chart they just communicate with whoever whoever whoever whoever whatever they want with and they always choose the line or the path of least effort and the issue number three it doesn't represent the actual work that gets done Matthew Skelton the author of team topologies by the way great book wrote that organizations that rely too heavily on org charts often fail to create the necessary conditions to embrace innovation well how do we then create the conditions to embrace innovation how do we support these artists in the team well number one think team first the principles of team first thinking just very briefly because this is a complex topic firstly the team is a smallest delivery unit in your organization not an individual the team and as such your organization should always assign work to the teams not individuals then focus on team dynamics instead of focusing on individual engineers in your team build psychological safety environment trust and optimize the performance of the team you see there has been a long-running research made by Google called project Aristotle and they actually found that neither skill not a specific personality matters to the performance of the team what matters effectively are factors factors such as friendship curiously enough and the common denominator of success in those teams was equality in distribution of conversational third thinking meaning how much do I get to say in the team how much other people respect me those were the performance factors not how much I know or how much this guy knows also respect the size of the team and there are some limits we're gonna get we're gonna get to them and respect the limits of individual mental capacity known as the cognitive load so the team size how do we respect the team size what does it even mean well the limits are derived from evolutionary biology there is a limit called Dunbar's number and Mr. Dunbar he described multiple limits based on the level of relationship and trust that you can build with people according to this theory one person can trust at most 15 people deeply and of those 15 people we can only have deep interpersonal personal relationship and trust with five of them so there is this magic number seven to nine people that is considered to be the good standard of a size of the team and if you talk to managers they intuitively get it you know they tell you I think that 10 people is optimal for me some tell you 15 is okay some extremists tell you I can I can manage 20 that's fine but intuitively they oscillate around those 10 people fun fact Amazon is known to limit the size of its team to the size that can be fed by two pizzas also good metrics fine by me so is there everything there is to it just think team first and we're gonna design a great organization structure well let's see so this is the structure that I presented earlier on the org chart there is back and front and DevOps and QA in this organization and we split it into three units simple enough those units can be anything from individuals to teams those units work on product A B and C a five units B four units C also four units there's also times on separation where those units below the line are in US East one those are remote and these eight units up there are in EU Central one so it's organization design really that simple we just you know we just followed the team first thinking the units are small enough and they have separate products to work on sort of so is it really that simple well let's see I mentioned that people follow communication patterns we're all humans so what happens if we specifically trace those communication paths well for EU Central one if we just connect the people that have to talk to each other because they are on the same project just because they are on the same project you can look like this and we can already see that this poor guy is sort of starting to hit it so this poor guy as well and that's just one time zone let's add the second one and it kind of gets creepy because those people are starting to swamp this back and guy and this DevOps guy really doesn't know where his head is but the thing is that we follow the path of the least effort so what probably happens is that those communication paths in real life simply doesn't happen because what those engineers those remotes in US East one can do instead is that they will talk to the DevOps and QA in their time zone notice these are not even in their projects they they don't work on the same product but why wouldn't I talk to this person he's even more even he's allocated only on 50% he's got the time right what this poor guy can do on the right down there similarly in the EU in the EU time zone I can talk to these people they don't have anything to do so new communication paths are created and also since the teams are structured vertically these people that don't work on the same project either but both are foreign engineers in the same team they started to talk to each other again and these communication parents have sort of unexpected consequences let's talk about what consequences okay I see people nodding and laughing so who here heard of Conway's law cool 20% of people very good so Conway's law states exactly this organizations are constrained constrained to produce systems which are copies of the communication structure of those organizations in other words the communication structure gets cemented in the way these people develop the products it was outlined in 1968 a lot has happened since then since then containers microservices all of it and it still matters because a product's architecture according to this law tends to mirror the structure of the organization and if we want our organization to explore or adopt certain engineering patterns we have to reshape the organization to remove those obstructions simple example now this is a little bit better right there are two horizontal teams team A team B there's full stack developer two full stack developers in each of them and there is a database administrator that works on those two teams and operations engineers as operation engineers as well according to the Conway's law what do you think would happen well there will be probably one repository containing backend and frontend there would be shared database because why not why wouldn't I just make my effort easier and create a shared database for those two products if I'm working on two of them on both of them and there will be shared infrastructure that's the path of least effort do we want this kind of architecture maybe but likely not now here it gets even tricker and what could happen here this was a little bit tricky but something like this can happen so there will be shared or loosely sorry tightly coupled product A at product B on the backend side on the frontend side probably there will also share infra but in this I should point here right why didn't you tell me correct bay B A and B a coupled tightly on the back end on the frontend they will share CICD some automation with both of these products and there will be even shared infrastructure and down here the situation would be similar and if you remember there were engineers that were unallocated to their project now imagine what would happen if those engineers were allocated to a product D it would get exponentially more complicated just because of the way we structure the teams so if we think of software architecture as a standalone concept that can be designed in isolation well we're fundamentally wrong so what can we do with it now let's try code first thinking we can combine the principles of think first a team first thinking with the approach to software architecture itself we can design teams that are specialized according to their responsibilities in the SDL cycle and the way they collaborate with others and we can also define these teams as aligned with the Conway's law to match the desired product architecture they are supposed to produce in a code first thinking we also respect the team size just like we mentioned before but now the team size should be established together with the size of the product in other words that since the team should take full ownership of the product the full product should also be sized accordingly fun fact there are squads maybe some of you heard about the Spotify model from 2012 so in their model of organization structure they have squads as a basic development unit and these are of size of six people and squads by definition from the perspective of Spotify is a mini startup so the product scope matches the size of six people that's how big their products or small their products are so what kind of team types should we introduce here we already know that back end department front end department that is pretty standard not good so what kind of team types well topologically we can have full ownership of the product well topologically we can have four fundamental team types and we call them streamline type enabling subsystem or complicated subsystem team and platform team let's take a closer look so this is how they should interact and you will soon see why so the streamline type that's the primary type in our organization we have multiple of these there are disjoint coexist in parallel consists of journalists and specialists and these are the teams that focus on a single business domain in code first thinking this business domain could for example be owning a single product or a set of features these teams define a single API these themes aim to produce a steady flow of delivery and they deliver end to end through software from software design through quality and user experience the enabling teams are purely specialists in a given technical or product domain and what's curious about these these teams they should aim for their own extinction the key to successful enabling team is for them to not be needed anymore so they are called to action when needed they enable teams goals by enabling certain functionality and they always support the streamline team in fact the whole purpose of this structure is to have the streamline team in the center and all of the teams just making their lives easier just reducing the cognitive load of this team most importantly there shouldn't be any permanent dependency on the enabling team in code first thinking again what you can imagine the code the enabling team to do well for example set up a skeleton for a deployment or an API service or just provide a guide about best practices or integrate once with a third-party service they just pass over the knowledge how to do that to the team and are done with it the subsystem team is sort of similar but this one is persistent it consists also of specialists in a particular subsystem but these are also responsible for maintaining it as opposed to the enabling team examples video processing codec mathematical models reporting systems real-time trade reconciliation algorithm those are very very special domains and require high level of expertise the streamline teams could do that but it will require a lot of effort and a lot of time instead it is offloaded to the subsystem team and the last one platform teams these are very similar again but this time to the streamline teams but their whole purpose is to support the streamline team by providing sort of a self-service API for the platform so in this case they even though the streamline team has the full ownership of building running and fixing the application the platform the infrastructure that they are building it on this is the responsibility of the of the platform team and their focus should always be uh reusability and reliability this can be for example platform as a service for the streamline team delivering networking capabilities providing a maintenance and maintaining certificates as easy as possible for the streamline team those platform teams are complicated and uh there is uh it's called fractal topology where the platform teams themselves can be sort of split into streamlined and subsystem and platform teams all over again so this is it and an example of tasks that are assigned to those teams again teams not individuals platform team can maintain public infrastructure and provide an infrastructure as a code deployment template the streamline team implements the business logic of the application um the enabling team once setups a skeleton for the deployment and the complicated subsystem team designs and maintains a real-time reporting system those are examples of of the tasks okay now back to the org chart this is a little bit of a different one but similar uh made it a little bit easier for you so we have back and front and qa data science devops this is the do and android and ios um the product is we should create a complex back and api that consists of user administration three time three real-time recommendation engines content management system and payment system we should have a distributed persistent storage there will be ai models for the recommendation system uh for the recommendation engine uh some etl pipeline um web-based admin and mobile android and ios applications there is estimated headcount of 25 engineers split into eight back end guys two devops uh two data science two devops four front end engineers uh two plus two mobiles that is uh two is two android and five qa this is the estimated headcount the task distribution uh so back end create api data science implement the predictive model front end obvious android uh ios obvious devops uh these poor guys have really a lot to do because they have to create the storage for the back end services infrastructure blah blah blah a lot to do and don't even get me started on the qa so what do you think the issues are well the devops engineers are like this is this fine i can do that and the resulting architecture what do you think the architectural components will look like given the organization structure that i just presented so likely there will be a shared infrastructure because the devops guys are just you know we just need to make it happen somehow and that's it share database because the back end engineers are in a single team it is likely that the one single team will create share database and a monolithic api here conways long remember there will be data science pipeline uh because uh there are just two data science engineers that's not much for the whole project so i would assume they will have a lot to do as well especially given that they have to create the predictive algorithms and three recommendation systems to feed into into into this back end service and uh likely uh the devops guys won't really assist much uh won't really be much of an assistance to to the data science guys so probably just one data science pipeline here since mobile department is also not split into 100 and ios perhaps we can also but this is a pure speculation uh there could also be cross-platform mobile application so if this was your desired architecture fine okay but what if it was supposed to look like this instead meaning separate infrastructures single purpose database specialized microservices gateway three recommendations models built on three different pipelines data store that is separated for uh the data sense input and and to separate mobile applications what if i told you that this is what it should look like well perhaps um we based on these expectations these expectations can design the teams to produce this desired architecture and we do that by calling an uno reverse and apply what's called a reverse conways maneuver i know it sounds like a masterful military strategy um of moving some worship 180 degrees per second luckily it's not that complicated because all it says is instead of thinking teams first and architecture second think architecture first and teams second if that reminds you of code first thinking that i presented good because that's exactly that so step one identify the stream aligned teams these are the products that we have to build literally real-time recommendations payments cms user administration android app ios app web app stream aligned teams the business domains identify the complicated subsystem team the predictive modeling definitely and it will be connected to the real-time recommendations because they have to work in close collaboration but it is a part of a complicated subsystem team now identify the enabling team well devops we have to somehow uh make lives for the devops team easier and we can do that by turning them into an enabling team whose purpose is basically to just hand over the knowledge that they have and we can do that uh we can let them hand over the knowledge to the back and centric team because they have very close relationship to devops already so why not turn the team into enabling team but notice we only have five queries available not good for a team of size of 20 minus the qa well what we can do here is we can turn some of the members of the qa into enabling team as well because what we need is the qas to be permanent members of android ios and web where they have to provide day-to-day basis feedback by testing their applications but not necessarily to the back and centric part because there we can just hand over the knowledge of setting up the automation testing the cincd why not we can hand it over to the back end and be done with it and focus the rest of the efforts to the data science let's say or to the mobile applications and lastly the platform team uh in this case this is tricky uh but it's probably going to be identically identical with the devops enabling team or it can also be the data science engineers building the data pipelines so i'm just going to put it here knowing that i'm not really sure what the platform team would be here but probably would have a significant overlap with with the enabling team okay so what to do with the org chart now let's not do anything with it it's still reasonable to keep it at this point for the compliance purposes aka the vacations requests and reporting and continuing this further would require uh transformational change so it falls into this into the scope of change management um yeah you don't want to get me started on that uh that that's a difficult topic but since we already have this uh we can at least with high level of anticipation expect that we will be much closer to the architecture itself and then it's up to the competence of the management to see whether they can actually support this kind of architecture or not um organizational architecture um and whether they need transformational change aka change management to completely restructure the organization but this is the first step so recap um code let's not just look at the code as a technical artifact uh because it does reflect organizational structure let's just don't rely on the org charts instead leave the distribution and control of work to the teams and think in teams first manner uh form a good team by establishing psychological safety and focus here on encouraging a culture of dependability and mutual respect optimize for the team size optimize for the cognitive load respect gone way slow because it tells us how organizations produce code and when designing organization structure just think team first and code first in a code first organizational design teams define a team as api that's the topic that i didn't touch by it's a contract for communication those teams are split according to their to the teams api that provide um they are called stream aligned enabling subsystem and platform the stream aligned focus completely on the business logic enabling uh they aim for extinction complicated subsystem team of specialized experts platform team they should always aim to maximize collaboration and you can design those teams by going backwards by applying the reverse reverse conways maneuver and proceeding from the desired software architecture to the organization structure and just know that like code norgas infrastructure is perfect just make sure that it doesn't get in the way of the culture you want to build with that thank you so much i hope that this at least gives at least gives you the idea of what you can do with your organization it's a complex topic uh is complicated to force these changes but perhaps you can do that with your organization as well thank you and here's place for your questions cool okay uh yeah so roughly uh so what's the solution how to split up the org chart yeah yeah okay so the question is i have floating managers all around after i split the org chart what do i do with them that's the transformational change part so typically uh splitting it's it's kind of funny but when i sort of went through a transformational change of an organization when you split into smaller teams typically smaller because the departments are 30 people 40 people and you split it into much smaller teams it's gonna present some management overhead the more teams you have to manage the more managerly tasks it requires and then you're gonna get into okay um how many people can these managers really manage how many how many teams can these managers really manage those are two different questions by the way and when you present the engineering managers with the issue at hand so i know you just had 40 well 20 okay be realistic 20 people in your team instead could you manage four teams of five people they will probably tell you yes so as long as uh as long as uh you are able to sort of fit into this amount of people that they are accustomed to it's not that big of a change for them if you know what i mean so so that's one thing then what typically happens is that you have to add uh unfortunately you have to add one layer on top of it um you no longer have just engineering managers that synchronize all these teams you're probably gonna have team leans and that's a wonderful opportunity to identify talented individuals that can lead those teams ideally within the engineers you don't want to introduce another management layer you want to introduce sort of a leadership structure within the team so ideally you want the teams to be self-organized but still identify the the individuals that can help the self-organization so that's that that's sort of another thing and we can move on but hopefully that at least tells you a little bit of it cool cool thank you all right let's start on time thanks for joining the last session on the conference it's a bad thing because the conference is over but the good thing is that it's the last one so as i most probably be late we can stay for an hour and talk or something like this i'm joking of course i'll try to be quick and we finish not only on time but hopefully a bit earlier so my name is Yancho i come from Bulgaria from a software engineering company in the company i deal with things around sales and also taking care of strategic land and also things around innovation technologies my background is software engineer so i started as a software engineer for 10 years 15 years i did almost everything in the in the in terms of the roles in the lifecycle of software engineering and at some point i turned to business and started combining business and IT so what i want to tell you about is a story about how a company that is actually not supposed generally to be able to spend time a full time people from the team of the company to work dedicated on a software an open source project how we did it so it might be interesting for you and i'd be really happy if this encourages you to think about it and maybe try it in your own companies so i'll start with my motivation why i discussed this i'll tell you our story and i will give you my vision about how you can try this in your company so why discuss this my motivation we're a conference where open source is a core topic so no need to explain why open source is good but on the other hand dedicated software engineering initiatives within companies are actually rare and they're especially rare in occasions of when we're talking about services companies so companies that don't have their own product but are providing software engineering services there are a bunch of types of companies that actually are for them it's a no-brainer to invest in software open source software development so one type is companies that are really focused on open source software like the ones that we see here another another usual suspects are the big ones that anyway are open sourcing parts of the things that they create and yeah those are the the big players also we have companies that are heavily using a certain open source software or platform and actually it's of their interest to be able to steer where this goes in terms of the decision making on how it will be enhanced and driven and roadmap and and everything so in those cases it's normal that they engage on the development so that they're able to actually do this steering they are the non-profit organizations that are focused on open source projects like Eclipse Foundation the Linux Foundation and also there are many academic projects that are being open sourced that are funded by universities and other institutes so those are the usual suspects for companies that it makes sense to invest in having full-time people working on open source only what if your company doesn't fit what if it's you you don't fit into any of those profiles how can it happen so how can it happen so that you in your company it makes sense and it actually you actually have a team working on open source for a company that is therefore making money and being successful why do they do something that costs that will cost money most of the time because there is a business reason behind it so the question is how do you find in such non-trivial cases the business reason for actually this to be meaningful for the company so how can it happen first of all you need to come up with a business case so imagine about it come up with it and make something that's in the short mid and long term would make business sense second you need to gather feedback and supporters so here opinion of people around you within the company and find your idea then you need to pitch it to the decision makers or the budget owners if it's a smaller company it could be the CEO if it's a company that is bigger it might be your direct manager pitch it to them convince them that it makes sense and then start small start experimenting with this with a trial phase make sure that in the beginning it's successful and then get the go for the long-term initiative when the initial phase is over or the trial phase is over and you have positive results then you need to maintain it in a sustainable way so I would say this is common sense for anything that you want your company to do as an initiative more or less you need to do something like this so it doesn't really relate to open source software engineering so I will tell you our story actually how we did it so that you can visualize how this plan can be implemented with a specific scenario so a little bit about Musalasoft so Musalasoft is a company that has been around for more than 20 years now founded in Sofia in the year 2000 currently we are more than 700 experts with delivery locations in Bulgaria Macedonia and Egypt we do a lot of stuff in emerging technologies so we are early adopters of AI, big data, IoT, specifically smartphone, augmented reality virtual reality robotics and the likes and in terms of development the core capacity that we have in terms of delivery is java and dotnet also with a lot of front-end mobile data analytics etc our target markets in terms of clients are European Union and North America and the three verticals where we mostly work in terms of clients are telecom banking and financial services and automotives and we work for big clients like the logos that you see on the right side and we work for them long term so the average duration of a relation with our current top 10 clients where we have IBM, VMware, SAP, Cummelsbank, Volkswagen and the likes currently is more than nine years so you can imagine we have clients that we've been serving for 15 years for 10 years for six years and it's not like 15 years ago we did one project then 10 years ago second now no we started 15 years ago never stopped till now so this is the profile of our company what we are not we are not building and selling our own products so we are a services company we are not providing services around a specific open source platform so we are vendor agnostic we use both commercial and open source platforms but we are not specializing in anything so it's not like we have an inclination about this or that open source tool there is no open source tool that we are particularly dependent on like it's a core tool that we use in our everyday business so it's really important that that tool for us so that it makes sense to maybe contribute also there no nothing like this we are a services company in terms of tooling we work with Maria tools because usually you need to adapt to to your clients preferences and yeah we are not a really big company like currently we're 700 plus people when this initiative happened we were more than 400 people so then what was the context within which we actually initiated the idea which was initiated by my colleague that you see Martin Momov who is director delivery in the company the things that combine this context that allowed this to happen were our focus and our strong experience and business with smartphone and tauti so we do a lot of stuff without you we do a lot of stuff with smartphone projects back then doge telecom smartphone was the biggest project that we had so we had something like a team of I don't know 60 plus people for more than six years and we were a core part of the the initiative and we also as a company invest a lot in people so we we are very well positioned with universities we get early let's say guys that are out of the university or with small experience small amount of experience and we build them with internal initiatives putting them on projects etc so this thing on the left side is the context that somehow combined in the in the head of my colleague Martin and then I'll I'm just copying here the slide that I showed you what we are and then we'll highlight the things that actually go together with an open source initiative that involved this so there was an open source initiative an open source project that actually related to a significant part of the strategic targets and the strategic the strategic let's say goals of the company so it was a project that related to iot to smartphone it was mostly java it was mostly focused and supported by people in the union and also it was it was used and it related to two of the core core industries that we were serving telecom and automotive and in addition it was a big and active project so an active open source project with significant delivery significant contributions and usage it was in a tech area that fitted really well with us so java and to SGI so back then quite dependent on the smartphone things that we've been doing were on OSGI and to the thing that we were looking to find alternative ways effective ways to train new people in the company that are either not experienced so not experienced developers or developers that have experience but don't have experience in this area of smartphone and out specifically which was a target area for growth of our business and then we came up with martin came up with this with this idea why don't we actually gather a team of people put them on a create a team and have this team start contributing full-time on an open source project that actually combines those things that are strategically interesting to us and one goal to be to build those people if they are early in their career they will have core development skills built second if they are experienced and at the moment they don't have a project we can put them for a few months on this one and actually prepare them for getting into one of our iot projects or in our smartphone project so those things started emerging in in his head we had a discussion and we went to our CEO to convince him to invest in this initiative as i said it's aligned with quite a few of the strategic areas of the of the company we positioned it as a enabler for professional development as i explained and also this was a way to add one more project of this type to our portfolio because you know when when you're growing in one one area the references or the the things that you've been doing the more they are the better also we told our CEO we don't want something big now and we are not sure if it will work out so we just want to start small try it with one or two people in the beginning mostly less experienced colleagues so it will not cost much for the company and just see how it goes so we want to give this a try for an initial phase of three to six months we'll monitor results regularly and if it works then we'll talk again so we didn't want much we just wanted to see if and how this will go we also we also mentioned that this will help a lot with our employer branding because you know with companies trying to to hire people and in general developers being happy for working on open source projects putting this additional detail about our company that our company is actually actively supporting with full-time team an open source project would have definitely benefited our recruitment efforts and also without any specific expectations we said it could be also an enabler for getting new business because we will have exposure to other companies that are doing that are working on this open source project as supporters there's no way that we don't get networks networking with them and most probably if there is a fit we could have also new business so with describing all those all those benefits we actually convinced our CEO to give this a try so to invest with starting with this initiative so the project itself is open hub so open hub is an open source smart home system and back then when we started it was also closely related to eclipse smart home so eclipse foundations smart home platform so it's about home automation open source software one of the most popular around the world let's say top three vendor and technology agnostic outdated data but back then it kept 16 more than 16 000 registered users and the the my open hub service was used by more than 20 hundred and the foundation that was behind it so the organization that was driving its its progress was founded in 2016 it had individual like tens back then it had tens of individual members currently i believe they are more than 100 or even even even more than more than that currently there are 13 companies one of them is musalesofts that are backing the foundation one university and also one research center it is focused on advancing open source in general smart home and specifically open hub so it's a foundation the organization that stands behind this project as i said quite active and significant in terms of in terms of yeah backers of the initiative the open hub platform itself the smart home platform that i'm talking about is really widely used for research by academics they're doing research projects on top of it people are doing bachelors masters and even phd tesis using the platform and of course dependent not dependent because of this there are also articles and conference papers so it is well used well recognized as a tool for actually experimenting and doing research for open for smart home different topics of research home automation smart city and etc eclipsed smart home i will not get into details but yeah as you know one of the big open source so eclipsed smart home was an initiative within the eclipsed foundation and it was an open source framework again related as i said open hub and and out and eclipsed foundation which i made a mistake and start talking about is as you know one of the big few worldwide known foundations that are backing open source software so we had the confirmation by our co okay give this a try so what did we do after that so it started in april 2016 and in the beginning we started with one full-time developer only and one senior developer that was mentoring him part time then in a couple of months we got to three developers full time mostly let's say upper juniors so people with some development experience already something like a year and a half two years with no experience without plus again one senior developer and then for information i will continue with details of the story but we were maintaining for almost three years something between three and five developers full-time developers at any moment and one one senior guy that was leading scrum team we told the proper issue tracking and and planning and everything here you can see in one year after we started those are the people this this colleague that is that is down is the the colleague was leading on our side and supporting the initiative and you see people that were by this moment either part of the initiative part of the open source team or they were alumni we're there for let's say four five six months and after that they they left so i believe that this thing that we did is a win win win situation so win for the community and the project the team and the company and i'll give you my reasoning about that what's the impact that we've made on the project so just within a year and something we created a static static code analysis tool for the project so there are a lot of integrations that are being implemented for this smartphone platform and all those integrations need to follow strict rules of how they are developed so because otherwise they might break the break the software that they will be running on so this is why it's a tedious work for people to go and check a lot of stuff for every integration that is being contributed by somebody on the other hand the rules are clear and there was a way to actually create a specific static code analysis tool that can just eliminate this tedious work from the contributors and the supporters we engage with forgotten tasks tasks that i don't know how many of you are working on open source projects but with almost any open source project there are things that have been waiting for a long time to to happen there's an agreement that they need to be done but nobody ever actually does them so we engage with those tasks also there were tasks that nobody really felt like doing because they are not that interesting etc we have a team for for working on that we were not like selective we engaged on that also so this this is how actually we gained also trust and how should I say appreciation by the rest of the people because we were doing stuff that helped them a lot we did service and device integrations we did stuff that again in open source projects are almost always lacking unit tests good unit test coverage and documentation so this sample of the report from the code analysis tools to those are things around some of the integrations that we did this is some of part of the documentation back then that our people started doing etc so one year later this is the statistic one year after the start this is the statistic of actually what we did and what we achieved for for the project and here again back then you can see some some comments from from long term people in the in the project to our people thanks simple and elegant clever solution for uncomfortable looks like some fantastic piece of work etc etc so we got recognition and definitely we did I mean the team actually contributed significantly to the project so to me the first bullet is ticked it was definitely win for the community and the project so let's look at the team so back then as I said this is how the the team looked like on the first side on the first row and the second row people that actually went to the team stayed for something like three to six months and then moved on with their next project we asked some of we asked all of the people three questions before preparing this presentation which originated a few years ago and first question was how do you feel about being part of the open source team amazing experience very interesting heart and inspiring the best place to be for an embarrassed junior like me motivated each day professionals from all over the world giving feedback and making having them grow I learned a lot from them just will stay on this one for a second it's totally different especially if you're only in your career if you're working in a team and you're gathering feedback from people around you and it's a different story if your code goes public and you actually get how should I say detailed reviews by people that are with from all different backgrounds and with usually long long-term experience so we believe that this really really elevated the effectiveness of our junior colleagues growing within this initiative second question was the what are the most useful skills you get in the open source team new concepts and technologies learn to write clean and high quality code because of course everybody was commenting on the code reviews and everything moved away from the fear of working on big big projects very important to me I've learned to cut the complex tasks into solvable pieces so being able to decompose in a meaningful way bigger tasks and actually this way succeed in doing them and me also as a old school developer the last one I really also like I've learned to test my code back in my times we were testing our codes and the deliverables of our work anyway all the developers and the third one what was the most exciting part of you working on the projects they played with real devices because it's a smartphone thank you the fact that it's an open source project the ability to engage with international community meeting a lot of new people and learning a lot so again from this I definitely see I definitely would say that it was a win for the team also another thing to mention is that this was the initiative where the people that get that got the best results in terms of building people both in terms of how much time they needed to grow their skills so that they become they become independent contributors so let's say because on our site when we say meat level developer this means that he can independently work consistently and when they meet when they face really hard problems they didn't then they need help so that's the difference the main difference to me about between junior and mid-level people so the people that came out of this initiative and went on their let's say first commercial project after that they had the biggest the highest percentage of acceptance really great feedback from their team leads and also the client etc so definitely this compared to combination of let's say online training plus being part of teams that like you have for example six people team and then you put one junior guy around them to contribute and and grow this way on a client project of course they will be neglected when there are hard times of the project of course they will not get that much attention when people are busy catching the next deadline and everything so this was the most effective way to train people with the best results great motivation the word spread around the company we used it of course to to popularize this also publicly now to to spread the news publicly and also other people that were around and were also as I said really happy that actually Musala is doing something like this so let's see about the company so what happened from the context of the company now the results so far as I said this is outdated so back then within a year and a half in terms of professional development of people it was full success I just explained it so we'll not get into into that but still very important the thing about process communication skills so getting into such active environment when you connect with people with from international backgrounds all over the world we work all let's say almost exclusively internationally so all our commercial projects are for international clients but still if you are part like an added part of a project for a for a client you don't get this direct communication with the client you don't get this being that active in that here they got full exposure and needed to take full accountability of what they are doing in front of people that were actually how should I say veterans in the in the industry and things like this so growing their soft skills like communication knowing the process etc was also really really effective in terms of employer brand interpretation we got extended external exposure by conferences and other events this session I'm doing I myself I'm doing it for the fifth or sixth time so I did it in Belfast in Germany in Bulgaria I don't remember where else so you you get exposure about what you're doing can't more or less a positive vibe and appreciation as I said very much appreciate it internally so people that are not part of this were willing to get into this and we're also happy that we are doing it and all the people that worked on that were highly motivated because again working on a client project but being an addition to this it doesn't feel really well always working on internal projects for example on some of our our internal systems that we're building sometimes it's it's hard for many reasons to again get the attention that you need so in terms of motivation it was perfect in terms of business also so we had two direct opportunities from new clients based on the networking that we're doing with the other companies with the fact that we were doing this initiative with smart home and we contracted one of them apart from that we get we got four indirect project opportunities through references from new clients and two of them were contracted so we had three within one year and a half actually we got three engagements that were commercial that originated either directly or indirectly from this initiative it was greatly appreciated by existing clients and also potential clients so when we're telling our clients that we did something like this they were impressed potential clients when it's just part of the whole let's say introduction or presentation especially if it's in the topic of IoT it's again something that makes a really good impression so it helped from this perspective also it definitely helped us broaden the expertise and capacity that we had in this area you saw how many people were within a year and a half we kept it like for three years and yeah the extended exposure now from the perspective of business development and sales so we managed to do it really a win-win-win so it was a win for the community and project I showed you within one year what were the results the team both the specific people that went through this initiative and also the the rest of the colleagues in the company and the company from the pure business perspective so I'd say yes it's a win-win-win we managed to do it so how you can try this in your company so strategically you need to put yourself in the shoes of your management so consider what are the key priorities for them what are the pain points what are the important things and try to relate something within such an initiative to those key points so you in order to convince them it will be it should be something like a business case just like I said come up with an open source initiative that makes sense in the long term for the company so choose a project choose an initiative that actually will fit in the long term like we chose smart com and tauti at the moment for 11 years already we are very active in this area and it's it will continue to be like this so choose something that will fit the strategic long term goals and focus of your company yeah as many as as many as possible of the of the goal so it can be like type of system like for example smart com then technologies is it with the technologies that you are moving forward in terms of geography because sometimes open source projects are kind of focused in certain geographies are those geographies your target geographies no matter if it's for people or if it's for business so think about it holistically as many parts of the strategy of the company if you can relate to them with this initiative it would be good fit and then also very important try to align this initiative with the non-technical people from management that are like talent development cells operations and PR just go to them ask them what they think so go to them and don't actually don't ask them what they think tell them that you have this idea and ask for their advice so people if you ask them what what they think some guys will tell that's not a good idea or whatever but if you not just make them feel but you really want their advice they engage and they will consider okay from from the PR perspective yes it's a good thing because I will make be able to do at least let's say two two press releases or we can do at least four articles in for our block and LinkedIn post or whatever this year and you will start hearing things that you can incorporate in your reasoning to the CEO start small as I said don't ask for okay now we'll make the big thing five people focused on that no start small and don't ask for an initiative ask for a trial so ask for something that is very limited instead of getting a commitment for something long-term ask for a small commitment you do your job you all the extra amount to make sure that within those two three months it is it is successful and then move on based on what you put as expected goals that you decide that you expect and kind of commit to work on keep this and on a weekly and monthly basis track and measure your progress and talk once a month to the person that's actually allowed to for this to happen or committed the budget and provide them candid feedback like don't exaggerate but just directly see what the situation is and treat it from your perspective as a long-term initiative for day one even though you have a commitment for let's say two months or three months or something like this if you consider that it's something long-term internally as somebody that is doing it and then your attention to it and your efforts are different so i'm almost out of time so i'll just quickly go through this so this is strategically and then in terms of plan do an analysis based on the strategic points that you did and shape shape a plan choose a few a few projects that could be good candidates as i said based on the the feedback actually adapt the plan that you're having like what i'm saying here is that not come up with something can directly go and try to pitch it to management come up with something talk to people get additional ideas some people tell you like valuable feedback that you can incorporate or fix things and then describe this whole thing show the relation to the strategic goals so i'm doing this and i believe this will help with that this will help with that come up with the idea about the direct and indirect benefits that you expect and also do a good estimation of the expected costs don't try to depreciate because costs are important instead of trying to depreciate them just show your commitment about achieving valuable benefits be it direct on indirect create initial plan pitch the idea don't get discouraged if it doesn't get supported from the first time polish it try again and then yeah always as i said as i said strategic and have have idea have idea about the the big picture so i'm finishing then when you have a confirmation have a project champion somebody that will drive the initiative so somebody that will burn inside to do this then do the initial period two three months make sure that you're it's successful so you tick at least half of the things that you expected to to be there the third bullet here is all in red because as i said work work hard on the the site project tasks like tracking the non-technical benefits the things with hr and pr and etc so that you reap the benefits from this perspective also communicate internally and externally newsworthy stories about this and regularly track actually the project spend so actually how much it costs and report it to the decision makers so what's next try it for your own if you happen to be in a similar situation it might not be a services company it might be another thing but it's just i hope i managed to convince you that a company that if you look it from the site it doesn't make any sense to do something like this can actually do it and keep it for years to have a full time dedicated open source team contributing to an open source project thank you for your attention there is no time for questions so i'm here if anybody wants yeah it's it's the last session so i hope you enjoy the conference and wishing you all the best those are my contacts if anybody wants to connect please do and yeah i'm here to to communicate if you wish thank you thank you sorry i messed it up a bit so it's it's the last presentation but not the last session