Gwen Diagram
Duration: 32 min
Views: 154
2 likes
Published: November 11, 2020

Transcript

[00:00:15] Brilliant. Hello, it is absolutely amazing to see you all. Thank you so much for coming. I, uh, I heard that it's a public holiday in France, so for any of you that are in France, thank you so much for, uh, coming along. So, today I'm talking about cynicism doesn't build products. My name's Gwen Diagram, you can tweet me at Gwen Diagram. And I work for a little company called Sonosin where I'm an engineering manager. So, uh, it is just so lovely to be at Flowcon. I've not been before, so this is my first taste of it, and there have been so many good talks and there's like, so many more coming up, so, yeah, it's great. Thank you so much for having me. So, a little bit about me. In normal times I'm a co-organizer of a little conference called the Leeds Testing Attelia, which is like a little free punk rock testing conference in the city of Leeds in the UK. Um, so we hold it at uh, like a a workers co-op bar, and it's, it's a bit chaotic. And that's how I like things. And I also host meetups for the Ministry of Testing.
[00:01:18] And I usually travel around the world going to conferences and have a really good time. And yeah, I work at Sonosin as I mentioned, which is a really cute little company in leads, which helps people learn by taking better notes. So, in these times, I'm not traveling to conferences, as most of us aren't. Uh, so instead, I bought a guitar this year, so I practice guitar. Um, and I play video games now, which I didn't so much last year, but now I do. And, uh, when we're not in lockdown, I do attempt to see other humans, but, uh, yeah, that's not going too well. So, yeah. A little bit about this talk. So I'm going to be covering a little bit of philosophy history and talking about how that works with software development. And how we can learn from it within our roles. So a little bit of a warning, I have practiced saying all the words in this a lot. But occasionally I will get it wrong and mispronounce. Um, so my Greek isn't my strong point, actually, it's really not my strong point. But I try. So apologies if I offend you with my mispronunciations.
[00:02:27] So, do we have many people here who identify as a cynic?
[00:02:33] And how about a skeptic? And do we have any optimists here? Have a think and hold that in your head. What do you think you are?
[00:02:41] So, I've worked in so many teams by now, and each team has a different culture. And each member of that team has a different attitude. Sometimes there's a cynic or two. So what exactly is a cynic? So cynicism, like a lot of philosophies, it actually started off in Greece. And they all started from this one chap, Socrates.
[00:03:09] Socrates was executed. He was held to trial. and found guilty for corrupting the mind of the youth of Athens.
[00:03:19] And impiety, which is not believing in the God of the state. So, who were these youth that he corrupted? Well, I am so glad that you asked. Introducing Antisthenes. Antisthenes believed in virtue, that is living a simple life and discounting pleasure.
[00:03:42] And one of his pupils was Diogenes.
[00:03:46] Diogenes was a guy who really brought cynicism to light. Diogenes was said to live in a tub in the street of Athens. And the word cynic is derived from Kinds, which is Greek for dog.
[00:04:01] Due to Antisthenes apparently teaching in the Cynosarges gymnasium. Cynosarges means white dog in Greek.
[00:04:10] But Diogenes took the reference to dog really quite seriously.
[00:04:16] He ate, slept, and made love in the streets.
[00:04:20] Just like a dog. And he was a total troll. One of the things that Diogenes was famous for was carrying a lamp through the street during the day.
[00:04:33] Looking for an honest man.
[00:04:37] So, generally, Diogenes wasn't very well liked. He had rejected any social values, and he considered all people sheep.
[00:04:46] He had a strong disdain for people for following social norms. And once in the market square,
[00:04:53] people were taunting him for his dog-like behavior by throwing bones at him and calling him a dog.
[00:05:01] Instead of Diogenes being offended, Diogenes lifted his leg up and urinated on them all.
[00:05:09] So, eventually, he was captured by pirates and sold as a slave.
[00:05:14] When he was questioned about what his job was, he answered that he governed men.
[00:05:21] So, I mean, this makes him seem like a total and utter jerk. But he had some really good insights as well.
[00:05:31] He wanted to live as close to nature as possible. Hence why he lived like a dog. So, great. What exactly does this have to do with software development?
[00:05:45] The Greek cynic is with a capital C. The cynic now is different. It's with a lower case C.
[00:05:54] Some of the values are the same, such as rejecting all thoughts that aren't yours.
[00:06:00] But cynics don't usually pee on people. Cynic as defined by Merriam Webster, is a fault-finding captious critic. Especially one who believes that human conduct is motivated wholly by self-interest.
[00:06:16] The modern definition of a cynic, that is, being a fault-finding captious critic, brings images to mind of the commonly known internet neckbeard.
[00:06:26] The outsider human fault finders snearing on people enjoying life.
[00:06:33] So, is that what we need? Well, there's a few ways to look at this. As knowledge workers, we hold an incredible amount of power. And the world is now built on what each of us works on. We are the modern buildings. No, we're not buildings, we're building the modern buildings. But instead of physical entities, our buildings are now online.
[00:07:03] And they cannot be built without us.
[00:07:07] We have the say in where the world ends up. Simply by building the software that it runs on.
[00:07:16] So, let's have a look in some ethical slips in software.
[00:07:24] I imagine a few of you own a Volkswagen, right? So Volkswagens are totally fine cars. The Golf Mark one is like a total babe.
[00:07:38] In 2015, the United States Environmental Protection Agency issued a notice to Volkswagen for a violation of the Clean Air Act. I'm sure you know this story because it's absolutely terrifying for us. A developer coded the cars to report lower emissions when they were tested to enable Volkswagen to receive green car status in the US. So, the developer that coded this is James Li. James Liang. And he was sentenced to 40 months in prison.
[00:08:17] And the judge said he was too loyal to his company. What we work on can actually have really high impact.
[00:08:26] We can change the world. So maybe some cynicism is actually required.
[00:08:33] How about Facebook? I mean, the question just keeps getting bigger and bigger. How about Facebook? So, it's really interesting, like, when I talk to people, like, I always assume that more people have deleted Facebook than they have. I found it really interesting when I ask like, who has deleted Facebook? And it's actually a lot less people than you think of. But a lot of people deleted Facebook after the Cambridge Analytica scandal, which was quite a few years ago now. And that was because Facebook, they just haven't been that responsible with data in the past.
[00:09:07] And it's really interesting because could you actually imagine being Mark Zuckerberg?
[00:09:16] He looks absolutely haunted now. And yeah.
[00:09:25] The more and more pictures of you him you see, like, he's haunted.
[00:09:30] Because it's terrifying what we can create and what it can become. Because the thing about Facebook is people that were just knowledge workers like us, just like us, they coded Facebook.
[00:09:46] We have the choice of who to work for and to question their practices.
[00:09:53] So, CNBC reported that Facebook is struggling to hire knowledge workers now. So, graduates are questioning the ethics.
[00:10:05] There was a, um, there was research done and among top schools, Facebook's acceptance rate for full-time positions offered to new graduates had fallen from an average of 85% for the 2017 to 2018 school year.
[00:10:22] To between 35 and 55% as of December, um, that year, which is absolutely insane.
[00:10:34] But it's not only the graduates that are starting to reject like the offers that they get from Facebook. It's the rest of us as well. The company has seen a decline in its job offer acceptance rates to software engineer candidates from nearly 90% in late 2016 to almost 50% in early 2019, which is huge. 40% drop.
[00:11:00] So some of their engineers are just leaving. They used to have some quite famous people in like the agile and tech industry and some of them have left.
[00:11:11] And that's due to a few of the issues with Facebook such as the refusal to delete Trump's racist comments earlier this year. Um, and the allowance of hate speech towards the Rohingya minority in, uh, Myanmar. So, looking at it from that angle, cynicism doesn't build software. And if we point our cynicism in the right way, we can change the direction of the world.
[00:11:45] However, what about when cynicism gets in the way of building non-evil software?
[00:11:51] So if that's interesting, let us determine what is like how do we determine what is non-evil software?
[00:11:59] So we can refer to the Greeks here. The Hippocratic oath is an oath taken by physicians. Which is long and it looks something like this. Well, it looks like this. I mean, this is it.
[00:12:11] But it boils down to do no harm.
[00:12:17] Which is complex as everything that we do has the ability to cause harm.
[00:12:25] But have a think about what you're working on and if it is ethical. So, in the past, I haven't. I think I almost built a social media platform for China that figured out your credit score through what you were a fan of. As ethical as you try and be, sometimes you're not told the full story because I surely was not. But I'm lucky enough to work somewhere now where the company matches my values. So, as I mentioned earlier, I work for a company called Sonosin. We build products that I like. I think they add a lot of value to people's lives.
[00:13:07] So there's loads of people that struggle to study at university and they find it really hard. It can be for a lot of reasons, and a lot of people that use our software have a disability, which makes learning harder for them. But also studying in general is just hard as a lot of us know. So we build software that helps them record their lectures and it allows them to reflect back on their notes easily. You know, like, yeah, that's pretty awesome. That's something I want to build. It doesn't look evil. Like, yeah, no evil seen there. Like, so to me, cynicism probably isn't needed here. However, some skepticism can always come in handy. Considering if what we're building does indeed cause no harm.
[00:14:02] Let us think of issues around the recording and note software that could actually do harm.
[00:14:09] Such as, do we actually have permission to record lectures? So we're recording these lectures on our phones, like, or on your device. Do we have permission for that? And could sharing courses between students in our software expose our customers to harm? And should organizations be able to monitor students' coursework via accessing their recordings?
[00:14:35] So, skepticism is something we should be using day-to-day.
[00:14:40] So, have a think about whether you identified originally as a skeptic.
[00:14:46] So, let's have a look at what the difference is between a cynic and a skeptic. So a skeptic questions with an open mind. Um, sorry, I just love this picture so much. I think it's really foul, it's very creepy and it brings me joy. Whereas a cynic discounts with a closed mind. So as Bill Nye, the science guy says,
[00:15:11] Bill Nye, do you believe in ghosts? No. However, I would love to see one. Bring it on.
[00:15:20] But you may have seen in development people looking at legacy software and discounting the knowledge that went into it immediately. In the belief that it can be built better by the people that are there now. Because they would never be so stupid to build it in the way that it was built.
[00:15:42] So, I wonder how many people here have worked on a failed rewrite? I've worked on three now. Um, my first one was actually my first tester role.
[00:15:54] And it failed so quickly. Because you can never build exactly what was built before, no matter how much you try, quickly enough to be useful. One of my favorite rewrites though. Was when I worked in Brisbane. And we were the third team that were working on it. And each time, the team before was fired and they started building the entire thing again with entirely different and new tech from the ground up. I've got no idea if it was released yet. But figuring from what I saw there, how everyone was fired and the rewrite started over each and every time. I'm going to say be a cynic and I'm going to say, yeah, it's probably not.
[00:16:43] The next company I worked at. The teams previously hadn't been fired. However, they had left.
[00:16:51] The original was this massive PHP monolith. And according to developers that don't write PHP, no one writes PHP. Right? Besides the fact that according to W3tex,
[00:17:05] PHP is used by 78.9% of all the websites whose server-side programming language we know. And that's gone down .1 of a percent since last year.
[00:17:19] Like not very much at all. It's nuts.
[00:17:23] So, if you want to rebuild something, you need to work with it.
[00:17:29] Not discount it entirely.
[00:17:32] So, who here know, well, yeah. I wonder how many people are fans of the strangler pattern. It's one of my favorite things. It makes me really happy. Uh, Martin Kaller, Martin Kaller, Martin Fowler first coined this term. He named it the strangler fig application.
[00:17:50] So funnily enough, that was from when he went to Queensland, Australia, which is where I'm from. Um,
[00:17:57] And he saw the strangler figs. Which do not reproduce like normal figs, um, which are insane how normal figs reproduce anyway. Um, they use wasps. It's really interesting. But strangler figs reproduce by stranglings. Like, yeah, it's amazing. Um, so they strangle a host tree and then eventually become a free tree, a free standing tree by themselves.
[00:18:28] Which is actually a really amazing pattern to work with legacy software. It's one way you accept the old and also bring in the new. So, tidy the code, and build with it. Keep what sparks joy. Thank the old and take care of the new.
[00:18:48] Look at the old code of skepticism. Look for solutions to work with it instead of purely discounting what was created before.
[00:18:59] How about building software with optimism? Optimism is not actually Greek. Optimism came from a German man.
[00:19:12] Gottfried Wilhelm Leibniz. I always screw that one up, um, so sorry if I screwed up Leibniz too much. He he was a mathematician. And a philosopher, and a religious man.
[00:19:30] When you look at A.C. Grayling's The History of Philosophy,
[00:19:36] the author of which is a like really cool British philosopher of our time. Optimism isn't mentioned as a philosophy. Although Leibniz is mentioned. And outside of just this book, optimism is not considered a philosophy at all.
[00:19:55] Which is really interesting because apparently the opposite of cynicism is optimism.
[00:20:02] But it isn't considered a topic in professional philosophy. But Leibniz's basic thoughts were, God is omnipotent, omniscient, and omnipresent. Omnibenevolent. God created the existing world. God could have created, sorry. A different world or not at all, I.E. there are other possible worlds.
[00:19:46] And outside of just this book, optimism is not considered a philosophy at all. Which is really interesting because apparently the opposite of cynicism is optimism. But it isn't considered a topic in professional philosophy. But Labner's basic thoughts were, God is omnipotent, omniscient, and omni-benellivant. God created the existing world. God could have created, sorry, a different world or not at all. I e, there are other possible worlds.
[00:20:34] Because God is omnipotent and omniscient. He knew which possible world was the best and was able to create it. And because he is omnibenovelent, he chose to create that world. Therefore, the existing world, the one that God created is the best of all possible worlds. Which can totally be argued, I mean, huh, yeah. It can definitely be argued. But we will not do that here.
[00:21:10] Labner's was born at a really interesting time, it was 1646. And this seemed to stifle his genius where he focused on proving God, where his work on physics and mathematics was groundbreaking. It's actually still used. So please don't discount him due to his ideas on optimism. So, let's have a look at a project which embodied optimism. So, have many people here been to the Vasa Museum in Stockholm? I can't see what you're writing, but uh, yeah, it, it's marvelous. It's just so wonderful and it contains one of my absolute favorite stories about project management. And it's named after the famous Vasa ship, which it holds inside. The Vasa ship was built between 1626 and 1628. So before was born. Which was also before we had a good understanding of mathematics, which is wild. Like until I went to the museum, I didn't, I didn't realize. Shipbuilders at the time based their designs on feel instead of proven mathematics. And the Vasa was a ship like no other.
[00:22:43] Originally, the king, Gustaf Adolf of Sweden requested four ships to be built, two 108 kill length ships and two 135 kill length ships. Over a course of four years. However, requirements changed several times. As the Swedish lost 10 ships on the 10th September 1625, the builders had to build two new ships and really, really fast. Instead of two 108-foot keel ships, the order was changed to two 111-foot ships. And so the construction of an 11 111-foot ship with a single gun deck began. However, the king had heard that the Danish were building a ship with two gun decks. Therefore, as kings do, he ordered that his ship had two gun decks as well. So no one in Sweden had previously built a ship with two gun decks, completely new ground.
[00:23:56] And as mentioned before, mathematics were not as advanced in 1626. And the shipbuilders were artisans who worked by feel instead of by drawing out plans. The original 108-foot ship was a standard build. So when these changes were made, no plans for the new features, making it a 111-foot and instead of one gun deck, having two, none of that were drawn out. Originally it was a 108-foot keel ship with one gun deck. Then it was a 111-foot ship with one gun deck. Which the builders started the construction of.
[00:24:41] The 111-foot ship had already started, the keel had been laid.
[00:24:49] Then it became a 135-foot ship with two gun decks. Since it was scaled up from a 111-foot to 135-foot, the ship was a lot narrower than it should have been. A new keel wasn't built, the keel was just extended.
[00:25:10] Since this was unplanned and the designs were not drawn out, instead, they were just felt. Due to the width of the keel, the ship became unstable because there was a high center of gravity. Because although the keel was not extended widthways, the top of the ship was, so it looks kind of like a muffin, it's the same kind of thing as a muffin. And then, unfortunately, in 1627, the ship's primary designer died, a year before the completion of the ship.
[00:25:45] The plans were undocumented.
[00:25:50] The specifications were not documented.
[00:25:54] And there were communication issues. Five different teams worked on the hull without communicating with each other. And on top of the changing ship size, the amount of guns it was to carry as well, it changed several times. Which meant that the upper gun, oh, sorry, it meant that the upper deck had guns that were twice as heavy as the original plan. So hang on, I know what you're thinking, I see no optimism here, just changing requirements and bad documentation.
[00:26:28] Well, this is where the testing comes in. So this is a waterfall project, right?
[00:26:35] Gather requirements, design it, build it, test it, ship it. And so, the ship has been built to these changing specifications and now it's time to test it. So, uh, I'm a tester, so I've been a tester for like, I don't know, 10 years or something. So this is like where I'm just like very excited. Um, so Admiral Fleming, he was basically the product owner of the ship.
[00:27:04] So he ordered these tests. And so the tests were carried out in front of Fleming and the ship's captain.
[00:27:11] So, yeah, this is where I, like, it just gets super interesting for me. Um, because the test was a lurch test.
[00:27:20] So this involved 30 men running side to side across the ship and seeing if it lurched. After this was repeated twice, it had to be cut short because the ship was rocking. So violently they thought it would kill over.
[00:27:39] There wasn't a way to stabilize the ship because there was no room for additional ballast due to the thin keel. And adding more weight would have put the second gun portals near or under the waterline. So the Vasa was carrying around 120 tons of ballast to stabilize the ship, it would have needed twice that. The Bosun, when questioned by Admiral Fleming about the stability said, God grant that the ship will stand upright on her keel.
[00:28:20] Which sounds like pure optimism to me. And Fleming replied, the shipbuilder has built ships before and you should not be worried. And due to pressure by the king, the ship had to be launched. The Bosun and the admiral forced themselves into optimism. Perhaps due to culture where telling the king the truth could have had dire consequences. But I can't tell you for sure the reason for their optimism.
[00:28:54] Because I can study it, but I'm sure as hell not a shipbuilder from the 1600s. Anyway. On the 10th of August, 1628, the Vasa set sail on its maiden voyage.
[00:29:12] After sailing for 20 minutes, a light breeze caused the Vasa to heal over. And 25 minutes after leaving port, the Vasa was on the bottom of Stockholm Harbor.
[00:29:30] So, there were many problems here.
[00:29:36] But optimism from pressure was definitely the final nail in the coffin for the Vasa.
[00:29:44] So if you're interested in the Vasa, um, when you can travel again, please visit the museum when travel's safe because it's like, it's so wonderful. And they only brought it up from the sea in like the '50s and they've got, so people died, obviously, like, well, not obviously, but people died in it, so they have, like, they've retrieved the bodies of the people that died. And, like, it's just fantastic, fantastic. But anyway.
[00:30:16] Back to the 21st century.
[00:30:20] We don't look at optimism the same way that Lebners did.
[00:30:26] Modern optimism is looking at the world with rose-tinted glasses, shall we say. Looking on at the world on the basis that it's the best that can exist. Which, looking back to the problems with VW and Facebook, probably is not a healthy attitude. As we need to look at software with a healthy dose of skepticism to protect not only ourselves, but to protect the people using that software as well. So, as knowledge workers, we have the power. To look at not only systems, but products from any angle that you choose. You can look at a system or a product with skepticism. Where you can choose not to build that product. When you see a problem, speak up.
[00:31:25] And question the design and use of a product or a system from technical and ethical angles. Or you can choose to look at it from a positive angle as well. The world runs on our work. So choose what you want to build. And question everything. So thanks for listening, I really appreciate it. And uh, we can go to questions now.