Closing the enterprise feedback loop
ETHCC 3 · March 2020 · 34:44
Nicolas Massart discusses closing the feedback loop for enterprise blockchain work.
Speakers
Topics
From ETHCC 3, hosted by Ethereum France.
Transcript
you you
hello everyone just before we start streaming going to show you a slide because there's some interactive content you can connect with your phone and a QR code so let me know it's okay it's okay great first we just like to thank Chris Ward for the title of the talk it's not mine so if undertook the the title for me I know it's not there today but he probably washes recording so I'm Nicola Mossad and I work for Pegasus part of consensus and I'm working specifically on the documentation and on the customer support so today I'm going to show you
things about the feedback and how we use your feedback customer feedback but also internal feedback to improve the products improve the processes and improve the way we work on Pegasus products so I said it's an interactive talk so you can just connect to slider there's a code 1337 and if you don't have the password for Wi-Fi yet it's it's Tsongas on the on the page this will give you the ability to ask questions during the talk you can even ask an animist question if you don't want you to show your name and during
the talk you see there's some interaction with with you and I expects I hope you will be interacting a bit so to talk about the feedback I wanted to do something like you know on the YouTube you can see top six of a lot of things so here is going to be the top six of support issues so as in the customer support but also in the community support we had very very frequent questions always about the same thing so I'm going first to you to show you this kind of question and then I'm going to explain how we deal with it how
we improve our products give the issues we encountered and the first one for the people who try to contribute to our products and I specifically to hyper ledger baizhu which is an open-source software uh stood by happy ledger for nation we have an issue in the contribution which makes must e all the contributors fail on the first contribution because of what we call the DCO so the DCO is a developer certificate of origin and it's something you have to do when you do York Mets in the github
repository specifically specifically for Basel it's something we we have from the Linux Foundation it's it's a rule for legal reasons and there's a lot of reasons I'm not going to explain that today but the sign of the missing sign of is one of the big issues so usually it ends either for us to lose time to explain to the contributor how to fix that or event sometime and most of the time the contributors just abandons the contribution and it's it's a shame because it's really not a technical issue and we will like people to contribute more so this is our first issue and we really try to improve about
that it's probably more communication than technical things but there is some also some ways to improve it technically but this was the sixth issue on the list we're going to increase an end to the best issue the second the the fifth one is about networks ports protocol one interfaces for those who started using am clients you probably ended with this it's a common matter that people don't really know how they have to open the firewall their ports which port is for
TCP which 44 is for UDP if you on discovery on p2p do you have to use the piece in the TCP or the UDP it's complex clearly but we really try to make some effort mostly in the documentation to explain that this is something we are aware that and this is one of the most frequent question we have on the customer support I'm not going to explain what are each of these it's just showing you the question if you have questions about that either go to basic documentation or come and see me after Stoke and I can talk about more
about this the force is the inner dresses so you probably know that every node is able to contact nodes on the network because they display an address and this address looks something like that it's a format where you have to build this address from your node private key and from this private key you're going to have a public key and then you build this address and you have to know the host IP and you can't use a DNS because it's IP only and you have to know the port on which you're expressing this service so it may be complicated if you just go on on base you dock we made
this effort to explain how to have each part of the in order dress and how to export the public key that you can use in your inner address the third is something that lasts from the 2016 the DAO hack and that handed including chain ID and network IDs in a theorem so it's it's from the IP 155 and it introduced a new number to make a difference between the transaction on the if they're on it
chain and the etc' theorem theorem classic chain just to make sure you can't replay the transaction so must must Lee we have questions about is a Shan ID the same that network and you do they have to be the same what's the difference what happens if we use some chain ID or network ID that are already used on on the public network even if we're on a private network so this is the kind of question we deal with in baizhu specifically we have also some sometime weird way to use criminal options one of them is the network ID
option which is an option that overrides the network ID but by default if you don't use this you have a network ID that will be the same as chain ID and the chain ID is defined in the Genesis file and if you use the - - network option which is the same but without the - ID so the names looks pretty much the same you have a predefined network ID and chain ID matching the public network so it's pretty complicated and it's one of the issue we have with few of our customers and also on the community and
the first one the second one sorry is how to handle the Genesis configuration so you I'm going to have a quiz here for for the people who have access to the slider you can join the quiz directly and there's a few questions and I like you like one minute - - to fill that so during this I'm going to explain a bit about this Genesis issue the Genesis issue is that the file is pretty complex and people deal with terms that are very tightly
linked to the core way of basically to work and it talks about block time about also the the type of consensus algorithms either it's proof of work or IB FTP away there's also predefined accounts the one you can find for people pray had if they're on the press L so this file is pretty complex the question was is a configuration configuration format which
is the official version must of you said there's no standard and it's the correct answer because obviously we can't rely on something command for all the clients to configure their their Genesis 5 so this is an issue we have also is because most people are used to use get clearly we have only 12 after on baizhu sorry taffey on was the previous name of this MC I'm still very attached to it and with we have only 12 basic note on the main nets it's very very small compared to two other clients so people try to
migrate or use the same Genesis files and this is usually a source of confusion you come back to the Pegasus booth after that and people who win will probably have some goodies so of course there's no standard and the basic configuration also includes the Genesis configuration but also network configuration so we made an attempt to clarify that in the dark it's not perfect yet we're still working on it maybe it will change in the future we will adapt another format we'll get
inspired from what if m2 is I know but this is a second issue and the first issue we have is about boot notes because baizhu I Paulo job issue is a bit different than others about how they handle but notes so but notice the sorry I'm not going to give you the answer you can answer that if not a contest it's just you have three questions you can check the one you are and tell me what's a big net for you and so one answer three five great so we know this a regular note that we use as
a venue for discovery this is true but it's also true that's a special mode with a chain data but not for busy for other contexts for other clients for guests for instance it's also the first node of a network otherwise except huge statically set the IPS and the email addresses of you nodes they don't have any way to discover each other so this is also true that is so the three of them is true are true but not every time not in all clients not in all contexts on bazoo the root node is just a regular node it syncs with the the network it has the full chain in its database it
can be an obvious node it can be also a graphical one point it can be an endpoint for metrics can be just any node one thing that you have to take care about is because it's good notes so it's node where all the nodes are meeting it has to be up over time if you are not sure that your node is able to be up Android percent of the time maybe it's a good idea to have not more than more than one node perhaps freeze a good number and use the tools you have on your infrastructure like communities to restart a node if you only have to because one failure and and make sure
that they use static addresses to make all the nodes able to discover that themself so this was the issue and now we have this feedback process feedback process just very quick note on what is feedback we use it in the informational term meaning that we get your information back after you use the process and that we take your advice in account and this is really what it is we expect you to communicate either we are using the community chat getter even the forms we have on the dock side the
system we use is very classic one the difference is how we're going to process the data so first we do things we just code we just deliver the the software or we deliver the doc we consider the doc as the same level as a software if you have a software and you have a crappy doc you're not going to be able to use it and if you have a great duck then the software is buggy it's going to be an issue too so we really have to have the both of them once you deliver all this things you have to measure them you have to make sure it works and once you have the metrics you have to analyze them see
if it's really working or not if it's just some bias or or some effects of people using it a strange way and you have to correct and by that I mean that you have to correct in the good way and in the bad way so to do we test we develop we document we release the the software and and of course we promote it for the measures we wrench back we were in benchmarks like of transaction per seconds number of nodes ability to communicate together without crash we try to have users feedback so on the duck site for
instance you have a hot draw a Java jet which helps us to have feedback on each dock page but you can also give feedback on the software using glitter or a pillager I could add your Orkut chat and we have that immediate feedback we also get statistics mostly using Google Analytics it's bit central life but it's what we have and once we are we have all these data so we try to analyze the causes of failures but also the cases of successes because most of the time is very easy from the statistics from the logs to see what fell but you may pass by something that word unexpectedly
something like a side effect making yourself to a better and you're not aware of it and the worst is not to be aware of it and just discuss it at the next release because people are going to be used to it and you when not even aware it was a feature or a sort of your software so we already try to measure that - then we try to correct to fix of course if it's an unexpected announcement we don't fix it but we try to improve it and to make it documented and make sure that it's going to be in the next release and even in the next software if we work on a client for a theorem - and then we we reuse this same
concepts and same things and of course without creating new issues that's what we try to do I'm if you develop the software you know that's not as not always the case but we really try to and what happens is that with all this feedback you and with laughs actors talking together so it goes from the R&D team to the documentation team to the developers also the customers the marketing team and the community users everyone is talking together and on this you add some tools to communicate we have at least two JIRA from a photo moment right
at email sometime Twitter Stack Exchange this code server for a firm - we have private slack for Pegasus and we also have get up issues and get her and a pillager rocket shot so it's starting to be a bit difficult to be aware of all the feedback and not let some fall into the cracks there's an obvious fast you fix this having everything in one place we could have everyone organized around the central repository for feedback but one issue with that is this central place cannot fail and given we're
working in the decentralized environment we try to it all own dogfood as I say and and relying on a centralized system is probably not the right thing because some trusses means one to one and three point that's great it's cheaper sometime but it also reduces diversity of feedbacks people don't give the same feedback given the tools you may give a more formal feedback in an email than you give on an alligator or on an instant chat it makes a strong dependency on the system which has to be up all the time liveliness is very important and it
cannot fail and also there's too much noise because you're going to have feedback on everything on every part on the protocol on the communication with the apps on the database on every aspect of the software and of course there will always be uncontrolled casts so trying to organize something in a very straight centralized way is probably trying to fight nature so one way we deal with that is that we worked with interest classes meaning people are going to interact with each other I ran a subject a specific matter
and the groups are going to be smaller there's the interest clusters here are the great parts on the the diagram they can overlap some time but if you're interested in the eruption you are not going to have a noise from the UX part or if you're interested in stability and performances you may not look at the innovation part everyone is going to be able to communicate but we try to to compartment to to make some specific subjects for for everyone the pros of that is that it is stronger stronger and
more autonomous because people can deal with the way they want to give feedback on a specific subject specific matter in a different way bananas team the cons of course is some communication some more communication and there's also more communication channels but you don't have to be in each of them and it also requires flexibility but I think this drawback is really what makes the strengths of what we call the mesh on a theorem and this distant rise network it requires some work it requires some flexibility and to adapt to this new system it's pretty new for a lot of people who came from the very
centralized and perhaps more even more in France and where you have a top-down decision system so it's hard but really I think we have to do that at least you two to have processes that match the products we work on and because this week we must Lee use what we call the coin or we don't call this one it's not a name we fought it's called a coin well so we analyzed the context of every situation and we try to give factual a description of other things of the event we also give the impact this is a more personal way
to see the event for me it it made me feel like I was annoyed by this feature or by the way you deal with this we dealt with this burg and but because we we're human and we can't really be objective on everything so we have to to know that and just deal with it and the next step is how knowing that we're going to improve we're going to fix this issue this is a pretty well running process it works for the software but it also works between individuals and that's something we do between
colleagues frequently asking for feedback about the way we work about the way we we deal with others it's not just for software the rule for feedback speaking about how people work or about the software is always that you have to create a safe environment make the people confident that is not going to be blamed you've got probably know this blame function on must get clients this is named I really don't like don't like because it's not just blaming sometimes it's just finding an issue issues happens we have to know that we have to
say also positive things when you have something bad to say it may be interesting also not force yourself to find positive things sometimes there are no positive things but even if there's no positive things on the feature or on the way software work there may be some positive like you expect it to improve for instance and not just say it's a bad feature or you did bad word and also you have to be specific don't say I I don't like the way you work I it's more at this specific moment with this feature
you did this and I think it made me it made my work my daily work a bit harder and I had issues with the color with the customer for instance it also has to be mediate and and make sure that you don't let the thing roast for free menses before saying it and as I said in explain the impact the fact that for instance you had an issue with customer you lost the deal you just lost a customer it happens it's not a good thing but its impact are of perhaps a bug and try to assume good intent and be nice with people I don't think people try to make mistakes on purpose and one last thing about that I just had a dream
I know a lot of people are starting their talk with hired a dream I just finish it like this I had a dream that Gita was renaming the issue tab into feedback or comments because when you see the issue tab you're incentivized to just put bad things in it bugs or features that you would like to see because it's not working as expected because it's not fulfilling your needs but if we had some feedback or comments tab instead for us we would have more people saying that they like the product it's also a way to make the developers prouder of what they do and they work
well when they like what we do there's some questions so I don't know I don't know if people in this room and asked this question because it's live stream so maybe it's someone on the internet I don't know first is there some live questions in the room anyone want to have the my two to ask one create my backup plan with online question word so can you show an example of this you know because I'm in
full-screen with my presentation and it's it's going to be a mess honestly so I don't want to do that but if you join me or or contact me just after this walk I will show you if it's someone online we're going to I'm going to bust answers to this question online aside of the talk what happens when feedback is clearly wrong they have the wrong idea but something yeah it happens first you really have to to think if it's really wrong my first question is what are we doing wrong to make this user thing that
this strong idea is good it may be something we did not think about on the way to use the software and maybe your way we wrote the documentation that let the user think that you could do this improvement which is clearly not one from all perspective we also have to discuss with the customer or the community why we think this issue is bad I would say that if we do that a good a good part of the thing we could consider as bad feedback is not completely bad this is on the content of the feedback
on the form of the feedback if the person is aggressive for instance if is just a troll for trolls you know the the same we don't fit troll so in this case we just you know them if it's aggressive we just try to calm down and yeah don't respond to violence by violence it doesn't bring good things so sometime it doesn't work we just have to shut down the conversation and ignore it best mud must have the time we have customers who are bit aggressive we honestly we never had people very aggressive we have people a bit aggressive but then if you explain that
you're going to take his idea into Christian direction first that you're going to listen to this person it usually smoothing smoothing things out very honestly we never had very big incidents that we're not able to be sold can you change the DCO process to seal a no that's something we can't work on very honestly because it's a prerequisite from the Linux Foundation so accept living the Linux condition which is currently not possible without living baizhu and we don't want that it's it's all baby we want to keep to continue taking care of it so this is a
legal requirement we can we can change what we can do is first communicate more had some ideas about how to intercept new contributors before they do this mistake for instance having a trigger that tells me when someone Forks the basic repo and so just try to connect with this person is using github or trying to find the right profile on LinkedIn on Twitter it worked a few times and then we were able to explain how to contribute correctly Felipe here is also making a great work trying to explain how the community
works and and bring some new developers so if you have this kind of question you can ask and but honestly no we can't just erase the DCO of course it's just for base you and the base you dark repository we have two repositories and why we have to register it will be another talk and for the other Pegasus products like Orion a signer or what we're building for a theorem to you which is called tech ooh you don't have the DCO it's a CLA so you won't have this that's it no there's this last last pool if you want
to unanimously and it's not going to show on the screen say that you like or not there's a for-real rating on 4 stars for for this talk and and I would like to thank you for the people participate and try to make this a bit more interactive thank you [Applause]