Scott: One time, I think it was about 15 years ago. I was working on a project called "Foolproof software".This was some software for Windows 3.1. Where we would keep high school students from breaking into Windows machines. High school students would carry floppy disks around boot disks. And if you wanted to circumvent the protections that were on the library computer, well you just boot off the disk. And Foolproof's software job was to prevent that. We we able to write a boot sector virus and we had all sorts of really interesting and clever stuff that was meant to make a library administrator's job foolproof. I was a very junior engineer I was just getting started in the business. I did okay. And then a new guy started. And he started reviewing my code. And the way that he made his name, was he circulated an email called "Top 10 FOOLISH" all caps " bits of code in the Foolproof codebase". [Short musical interlude] And I think I was probably seven or eight of the top 10.
[Musical interlude]
Scott: It was extremely challenging. It was not personal. It's my own fault that I was seven or eight of the top 10 mistakes. But it certainly was an aggressive and powerful maneuver. It introduced a bit of stratego to a what had been up to that point a very fun aspect of uh uh my young professional life.
[Musical interlude]
Scott: Was that challenging? Was this programmer challenging or was it an alpha dog maneuver? I was professionally offended. Or was it personal or did he just move me out of my comfort zone? The older I get, 15 years later, 20 years later. I realize that uh it was probably just a fun way to say there's a problem with the code base. But I sure took it personally.
[Musical interlude]
Scott: Presumably if you're doing any job you'd think you're good at it. You think you're a good programmer and the more experienced you get the less uh likely you might want to suffer fools gladly. You might not want to spend the time and take the effort and apply the patience that's required for a new person or a non technical person to to learn and to get to your level. We've all been mean, we've all snapped. That's the topic of this week's This Developer's Life. Being mean.
[Musical interlude]
Rob: That was Scott Hanselman with a great story about learning the hard way. Well we have two story tellers for you today. The first one is a Microsoft developer. Someone who actually works inside of Microsoft with Scott. The other is a Ruby developer. Someone who is quite outspoken. Someone you've probably heard of before. And fair warning there is some rough language in this episode. I took out the worst of it but there might be some leftover.
Scott: I tend to be a people pleaser. I like things tidy. I want everyone to be happy. Kira who I work with at Microsoft is a little more aggressive.
Kira: I have pissed so many people off.
Kira: That's why all my peers are directors and general managers and vice presidents. Uh from you know that have been here an equivalent amount of time. And um I'm not politically correct. And I take hard positions. And you know it offends people. Lots of times.
Scott: One of the things you quickly learn when you go to work at Microsoft as I did a few years back. There's a lot of smart people there. Sometimes getting your point across isn't easy.
Kira: One of the things I have learned here is um there are multiple domains to make decisions. Um and when I first came here there was one domain. And it was is this technically cool and elegant. Um then it became is this technically cool and elegant and does it solve a cool end user problem.
[Musical interlude]
Kira: Um at some point we reached a tipping point where the number of MBAs had so deluded the technical audiences here. And so deluded the people who cared about the user that it became a big business.
[Musical interlude]
Scott: Kira is an amazingly gifted developer who finds herself in a position where the company she's been working at for close to 20 years is starting to change in front of her. She's confronted with this situation now. What is she gonna to do? Does she try and fight back? Change it back into that company she once knew? Or she change herself?
Kira: This place is an amazing forge that changes people. I think I've matured here faster than I would have matured in any other environment. Just because it is such an aggressive environment. Especially earlier on it was very aggressive now it's more passive aggressive. Um and that's kind of interesting. I mean earlier on I was very timid because there were geniuses roaming the halls like Todd Laney. You know I got to work with Todd Laney and he was just this a Todd Laney was one of the original developers of GDI and he wore sneakers and he was unassuming little quite college kid who just rocked. He knew geometry and math better than any other human being than I ever knew.
Kira: Back in those days I was very timid. Because there were these giants you know walking the hall and I was, you know I hadn't even graduated from college. Barely graduated from high school. Taught myself to code and so I was competing with these guys who were geniuses. Um I eventually realized that I had a good understanding of how to communicate with people. Understood the technical domain. And um I'm growing on the business side of it. And so since and and when I walk the halls now. I see people who are mono dimensional who are purely business, purely technical or or purely user. And and so yeah I'm aggressive now.
[Musical interlude]
Kira: Think it makes me a um a dictator but hopefully a uh uh a dictator with higher principles in mind.
[Musical interlude]
Scott: Well an aggressive response is completely understandable especially when you're working at a company for close to twenty years. And you see people come in that are in effect acting completely blind to the past saying I have a neat new idea that's really gonna make us successful. And you say wait a minute I've been here I know what makes us successful. So you do what you do put your head down and say I'm going this way. You can come with me or you can get knocked over. It's a pretty male oriented approach to solving problems. Some would say it's even juvenile. So Scott asked Kira is adopting this aggressive stance caused you any issues being a female?
Kira: Yeah I mean I see a lot of women who sit in meetings and offer to take notes and you know do all of that bit and and that's not me I don't do that. You know I think that collaborative thing is wonderful and we need to do it but [background talk]. Yes. But I think it's we get foisted into that position a majority of the time. And you know we essentially remove ourselves from a seat at the table.
[Musical interlude]
Scott: You work in a company full of smart strong willed people and you're in a position where you need to get your point across and you've decided you need to be aggressive. There's really two kinds of aggression that you can employ. A lot of people think aggression means outwardly loud in your face. But you could also be quite and unmoving. Unwavering in your ideas and quietly changing the world around you. Sort of a Mr Miyagi approach as compared to somebody more like a drill sergeant. Puts the brim of his hat right in the crease of your brow and shouts in your face. What has Kira decided to do? We called her back and asked her.
Kira: I think that any whose good and I'd like to think that I'm good is um knows how to switch up skills. You know for the moment you know like if if your only skill is drill sergeant then you know all your problems look like troops. Um so I would switch up. I mean there are people who clearly don't enjoy working for me because I know how to turn on drill sergeant. And there are other people who I think are more senior with whom I can have the Mr. Miyagi discussion about how I think. It was in fact uh Chris Welson who's now no longer at Microsoft we were having this very discussion. You know um and he's you know he's just really telling me about what his goals are and I I I said to Chris you really need to decide wether you're James Bond or Jesus Christ. And he was like what do you mean? And I said well you know you either are about standards and web development. Um and you're you're going to you know essentially die on the cross for them at Microsoft. Or you're going to be James Bond and have a surreptitious uh agenda but you're not overtly. And that you're driving cross company. But you just have to recognize the outcome of being Jesus Christ. Um and the day after that he created his own twitter account called fatjesus.
[Musical interlude]
Rob: Kira Richardson works at Microsoft. Many many thanks for your time.
Scott: Was mister Miyagi challenging. Or was he mean? I felt really bad for the karate kid. He had to wax on and wax off the paint the fence. Did that help him grow professionally as a karate kid?
[Musical interlude: (Coming up only to show you wrong)]
Rob: Well once again our next story teller is no stranger to controversy and being outspoken causing waves. Although as Kira you might be reacting to things changing around her our next guest well I think he's reacting to things not being shaken up enough.
[Musical interlude]
Giles Bowkett: I wrote this blog post about how Chad Fowler uh the Ruby community organizer should be um well he that he was a werewolf.
Rob: Meet Giles Bowkett. Our next story teller.
Giles: I am Giles Bowkett uh I mostly well I've been doing a whole bunch of selling videos on my blog and making my living as a blogger slash video maker slash information marketer slash huxter. I don't know what to call it exactly.
Rob: For those of you who have never heard of Giles Bowkett. He is a prominent speaker in the Ruby community. As well as a blogger and an actor and he likes to make a lot of music. In fact he had a thing where he would do a new beat every single day and he would publish it on his blog. Giles has a very interesting and colorful personality and I have to tell you I had a very good time talking to him about this stuff. But uh I do believe there's a story here to get back to. Uh there was something you were talking about Giles about a werewolf?
Giles: There's a game that is frequently played or was frequently played at Ruby conferences in 2008 2007. Um I I hope the fad has died down now I think. Uh although it it was a lot of fun. Uh and the game is called werewolf and the purpose of the game is basically to detect deceivers or uh manipulators through logic.
Rob: A little explanation is in order here. Uh werewolf is a party game and it is well the same game as Mafia if you've ever played that. Where you have a small group of people who are the werewolves and uh they are running around inside of a larger group of people who do not know who the werewolves are. And it's a logic game. Uh the werewolves try and pick off people in the larger group one by one. And the larger group needs to using powers of deduction and logic figure out who the werewolves are. Turns out it's a lot of fun. In fact there's a lot of strategy to be employed. Well as Giles puts it he turned the game on its head. A little bit and decided he'd get a little colorful with the outcome. At least as far as Chad Fowler is concerned.
Giles: And what I did is I I turned the mechanisms of the game uh onto stuff that Chad Fowler had done uh in public uh including things he had said to me. And I was like look people this is really weird. And I ended it with uh okay so I think I proven that Chad Fowler is a werewolf. Therefore we should kill him.
[Sound of children yelling 'Yay']
Rob: Something to clarify quickly. We're not talking about actual homicide here. This is actually part of the game. Giles was carrying the game out of the arena.
Giles: So there's that sort of line between comedy and horror. And I basically I intended to produce a comic effect by um you know enumerating uh a ridiculous amount of violence that should be done to Chad Fowler to kill him. Um and unfortunately this was taken very literally. Um and upset a lot of people. And I have to say for all your podcast listeners that um this was a colossal mistake that I that I can't really recommend. Uh and the colossal mistake of it wasn't actually the getting banned from Ruby conf. It was the negativity. Um just that the bad vibes of it. Um but it really wasn't intended to be quite that awful.
Rob: Ah yes I don't think anyone with a blog would be a stranger to the notion of a post gone awry. We end up offending people. Well you do that often enough, all of a sudden you're a mean person. So I asked Giles next. Do you get called mean often?
Giles: Uh yeah I think I probably have. Um people uh yeah there's all sorts of things that uh people have said about me online and you know 'dick', 'douchebag', 'jerk', 'troll'. Stuff like that. Um so I would say the answer to that question is definitely definitely yes. Um in terms of like how I'm seen in the dev community it's interesting because it varies. Um there are some people think um he's really funny and he shuts people down and there's some people think he's really funny but he's too aggressive. There's some people who think oooo you know he's horrible and evil. Um and in terms of what that means to me. Uh to be honest with you on the one hand I feel as if I should be nicer to people. Uh I often regret getting uh angry at times. Uh but I don't really care that much because I kinda go out of my way to uh. Like I have a rule with trolling right. Like if you do anything that is obviously trolling where you're kind of fanning the flames of a debate or picking a fight or getting attention. The rule is to provide something useful you know that is like a gift in in the rant right and if there's some rant about you know this person's grammar is atrocious and they can't string a sentence together you know. Which happens from time to time. Um I uh find a way to segway from that into something you know useful.
[Musical interlude]
Rob: If you read Giles' blog long enough you will come across a couple of posts where you will see exactly what he is talking about here. One of my favorites of his is one called Codding Horror proves that good is good enough. Of course Coding Horror is Jeff Atwood. And one of Jeff's articles he wrote the line "I am stunned but not entirely surprised". And I remember reading that myself thinking I don't know if that really makes any sense. Whatever. Giles took that as a point. And he's decided to start there. Rip Jeff apart on his grammar but then segway onto a larger point talking about Kennedy's rule that good is good enough and going on to make a philosophical statement about programming. This is Giles' style, lead with the fist.
Giles: I wrote a blog post called "Why Reddit just doesn't mean it". Right, cause I wrote something controversial. And people were like "my god" [incomprehensible complaining] And it was all these all these like angry furious comments and you know. People were just like outraged that I said like debuggers don't matter or something like that. Uh and I went on to show a graph which actually substantiated the idea that Reddit doesn't mean it. And what it showed is that the ginormous spike in the perceived attention that uh my blog took when this big flame war erupted over this controversial thing did not actually correlate to a gigantic spike in hits. Right. The number of people who were actually coming to my blog to read you know or to discover something useful or whatever it was, uh was much higher than sometime maybe two weeks previous earlier in the month over some completely unrelated blog post. Um and and what I took from that is basically the the big disputes are not necessarily things that even are useful to people. Right cause if it's useful like it's interesting they link to it. So you know the broader lesson there right is that when I put like a provocative or aggressive blog post out there I always try to combine it with you know an insight. Like here is something I learned here's some actual research here's something that you can use. Um here's you know even just like a awesome web page they should be looking at instead.
Rob: So he's not doing it for hits on his blog. And he certainly doesn't seem to care to much if people get upset with him. He does like to impart good information and basically teach people things. What in the world is going on here? This is a bit of a mystery. Why does Giles write these posts? Why does he incite people the way he does?
Giles: And I am not violent and dangerous. I'm really this sweet like teddy bear you know. Although I don't know. I mean when like 20 different people tell you your not a teddy bear you should probably listen to them. I don't know. I'm trying to actually like turn a new leaf and be an unranting person.
Rob: As Giles himself mentions occasionally when he goes off on his blog it can be entertaining. But it's also incredibly disabling when you're trying to get your point across. So how does he do it? He's speaking at a conference for instance. Or if he's just trying to have a nice friendly debate with someone he meets on the street. How do you get your point across to someone who might look at you and say you're kind of a douchebag.
Giles: I try to avoid those situations because of um pricing actually. Um the same principle that applies pricing applies to communication. If if your pricing yourself high you are going to get better clients. Um I you know this right? This is something that happens you price yourself high you're gonna get better clients. It's just how it works. Um the same is true with the information right. So if your if you know this supply and demand situation where you're trying to help someone who doesn't want to be helped is not good. Right and if you're like here I can show you how to be better. I don't want to be better I want to keep sucking. Let them keep sucking. You know what I mean? The only people who like to hear that their code is bad are people who are trying to get better right. Those are the only people you want to associate with in the first place and it the the shear amount of demand for technology work like programming is so overwhelmingly vast that if if you don't like kind of set yourself apart uh you are going to end up working on mediocre projects. Right and then they will screw you over. It actually uh it kind of makes you stupid.
[Musical interlude]
Giles: Right if your if your battling away with like some legacy code it's it it trains you in bad habits. Which is not actually the same thing as making yourself less intelligent. But in terms of the only measurable metric which is the work you produce, it has the same result. Because if you've adopted bad habits your code is gonna suck. Right. And as far as anybody can tell your it's gonna be this person's a bad programmer. So it's important to just you know separate yourself from people who don't want to get better. Cause if you go up to someone like uh you know I don't know one of one of these rock stars and you tell them 'Dude you know nothing personal but your code sucks' right. They're gonna want to know exactly what you mean. Right? And either you're gonna convince them to some degree in which case they're gonna thank you. Right? Or you can have like an endless conversation you know about it. And I mean I've seen you know plenty of these things at conferences where you know two people who were both worth listening too disagree on some point of code and every other programmer you know gather around to hear. You know what's being said.
[Musical interlude]
Rob: Makes perfect sense. People who want to listen are by definition easier to talk to. What happens to Giles when he is faced with the people who don't really want to listen. The people as he says that want to keep sucking.
Giles: So in terms of you know if I was in that situation and I had to do it. Um well what I would do actually is I would look for something that people in that situation suffer from. Right? Because you know if you tell people look your code sucks and you know your just bad at your job. Right? They're gonna be like grrrr grrr How dare he grrr. They're gonna be mad right. But if you're like 'This is a common pain point'. Right. How many of you guys have experienced this. And they're like 'Oh god me.', 'Oh its the worst'. Right. Suddenly you've gotten them all united on something that they all want to solve. Right. And then you can say "It's built into the way you're doing your job." Right. Because x y z. Right. And then if you show them you know it's built into the way you're doing your job you're creating this pitfall for yourself. They can be like "Ohh all I have to do is change what I'm doing and I can avoid that pitfall". And then you're gonna get that same separation between the people who actually do something to solve their problems vs the people who don't. Right. But it'll be manifested in a much more peaceful way? Right. Because the people who don't do anything to solve their problems will say "Oh that's a good idea but I probably won't be able to do it". Where as the people who do do stuff to to fix things will start working on it.
Rob: It's all to easy to write people like Giles off as rable rousers, trouble makers, or people who might be a bit to full of themselves for lack of a better word. When asked about a difficult situation and trying to get your point across to someone who may or may not care. That was remarkably diplomatic answer. And so I asked Giles. You have diplomacy that was a great answer. When do you decide you're gonna turn on your diplomacy versus turning on the venom?
Giles: Yeah that's actually a really interesting question. Cause what I wanna do is actually be more diplomatic but the problem with diplomacy is it requires a lot of patience. Um you know where as if you go on the attack uh and uh and then you fall back to diplomacy. Um sometimes it works and sometimes it costs you friendships. Um I have to admit I can't really recommend going on the attack as much as I do. Um I would say in practical terms it's pretty emotional. I mean I uh sometimes just get pissed off and I say what comes to my mind. I've had many many times said things at the wrong time or you know. So basically I I I aim to be diplomatic uh and sometimes I fail and other times well this is something I think I'm doing better at. But other times I've set out with the assumption that uh everybody aims to be completely fair and is only interested in the logic of the situation. Um what I have learned is that is definitely not the case. Right. People are not by default going to judge a situation between people entirely on it's merits. If you if you bring up stuff that particular people are doing it can turn personal very very quickly. Uh so much so that you know what might have been logical moments before goes to the window.
Rob: If it seems like Giles is struggling to answer this question. It's because he is. You see diplomacy requires immense amount of patience. Something that as developers well we are a little short on. It's not cause we're bad people it's just because we're busy trying to solve problems. Our brains are 100% devoted largely to the task at hand. And someone comes in and diverts our attention well patience just isn't readily there for most people. If you have children you probably know the value of acquiring the ability to be more patient. Figuring it out you do it for your children. But how do you do it for yourself? How do you just decide one day I'm gonna be a more patient person? What if you're just flat out afraid of what you can be and who you can be. You don't have patience.
Giles: I mean I would say you go from the diplomatic approach as often as possible. But that is you know because I have this like wild undiplomatic beast like inside of me. That I've like keeping on the leash half the time. And I don't really know the answer to that. And it's something I wrestle with myself.
[Musical interlude]
Rob: I believe we all wrestle with that problem. I don't think anybody has as much patience as they wish they had. But this actually brought to mind the question that we asked Kira earlier about Mr. Miyagi vs a drill sergeant. I was curious about Giles' case because a drill sergeant isn't necessarily a patient person. And uh well mister Miyagi I suppose isn't either. So I asked Giles this question and he told me about a third grade math teacher he had who is actually very very strong and tended to treat the children as well troops. He was a bit of a drill sergeant. Giles had this to say about the experience.
Giles: No he was a terrible. I mean I did I got into like you know good math classes in my high school. Where I was like a little ahead of the curve. But I hated absolutely hated it. And you know um I would say that that one math teacher in third grade like ruined math for me until I was like 17. And like rediscovered it. The guy was a dick. [chuckling] It's things like that that made me think that I just shouldn't you know that I shouldn't be so mean to people.
Rob: There we have a bit of a paradox. That you know your effect on other people all to well because it has been done exactly to you. And it doesn't feel very good. It is an interesting thing. It's not a trait that is shared by people who are inherently mean. It's shared by everybody. If you have children as I mentioned before you probably know precisely what I'm talking about. But you probably remember hearing exact words that you say to your own children. And you remember the effect they had on you. So I asked Giles a little bit more about his childhood. And if he had any other authority figures or influences that pushed him along through school. I actually just wanted to know what was he like as a kid.
Giles: When when I was uh when I was a kid like and arguing was like my favorite thing to do. Everyone thought I was gonna grow up to be a lawyer. And uh to be honest with you like I don't lose very often. The people who are able to you know get anywhere in their argument with me um I usually learn something. Either about arguing tactics or you know ideally about whatever it is we are arguing about. Um yeah I mean arguing for me is is a lot of fun. [chuckling] So but I have never had like a teacher who was mean to me and you know in a productive way. Um and I've never had a coworker who was mean to me in a productive way. And really like the number of coworkers I've had who who could punk me like technologically um is not that high. And I have had a number of tech uh technical workers who thought they could and you know I just wanted them to try. So I could set things straight.
Rob: A very interesting psychological stew. You have a person who is clearly very bright has a bit of bravado, loves to argue, and also enjoys being provocative as well as diplomatic. You put all that together and then throw it into a team environment. I asked Giles the Miyagi vs drill sergeant question we asked Kira earlier. Which one would he rather work for? And had he worked for either one in the past. What happened?
Giles: Honestly I would I would go for a different option. I just want um you know a dialog. Right because the Mr. Miyagi is is good but would be better if you could get you know feedback. Right I mean someone like Mr. Miyagi who has wisdom that you don't have you want to be able to ask them as much as you can in order to get that wisdom from them. And understand what their point of view is so that you know can develop wisdom as well.
Rob: I think we'd all rather have dialog instead of yelling or provocation. But when we're younger and uh full of bravado and enjoy arguing sometimes it takes a bit of a big stick to get through. Sort of a drill sergeant mentality or the unwavering patience of a Mr. Miyagi. So I asked Giles. I said. During some point in your life you must have had a situation where someone basically slapped you upside the head or something to point you in a positive direction. We've all had it. We all have a bit of a come upance as they say. What was yours? Or did you have any times like that?
Giles: I do totally relate to that. Um it didn't come like one overbearing personality. Uh it came from an environment. I I wonder about this actually because I you know I thought about it and one of the best like job experiences I ever had I felt completely unqualified for. And I was like oh my god I can't believe I got in here. And then I felt like I had to do something to prove myself so I worked really really hard to prove myself and created you know. I took the project that I had I rewrote it and made it much much better right. And I partly it was because I was driven to prove myself and after that point people were like "Oh he's the guru he knows everything about this language". And you know because I was young and inexperienced I believed that. Right, people were saying this about me and I believed it about myself.
[Musical interlude]
Giles: I felt like you know I was you know not qualified to be a programmer. Cause I hadn't studied you know I didn't get a CS degree. Uh and you know it was one of my first programming jobs. Um and and being motivated to work that way uh really led to good work.
Rob: This is the second time we've heard this. Kira said the same thing. Self taught, walk the halls, this place was a different place back then. I remember just being humbled by everything around me. The environment kicked me in the butt. And I had to learn. Which is a rather intoxicating thing for someone as smart as Kira and as smart as Giles. As programmers we tend to be fairly bright people. I mean we figure things out for a living. That's what we do we use our brains. What happens when you've figured it out. When our quest to get better ends. Because we're better. The things that used to be hard to solve with whatever tools we're using just aren't hard to solve anymore. We know the answers rather quickly. What do we do then? Then answer is we get bored. When smart people get bored they do weird things. If you're a provocative smart person that likes to argue well maybe you're gonna write some contentious blog posts. Maybe call someone a werewolf and get in trouble for it. Get banned from a conference for life. So I asked Giles about this. Did the act of learning or striving keep him motivated and directed to calm him down? When I asked Giles that he told me a story about a pit bull that he used to have that now lives with his parents. And how he used to manage the aggression in his pit bulls. And I thought his answer was fascinating.
Giles: And pit bulls they fight. But the way to prevent them from fighting is to just exercise the hell out of them. What I did to keep this pit bull from fighting is I just exercised the living crap out of him. Right and I like made her jump for like half an hour. Just jump up and down for half an hour right. Cause you can do that with a dog cause they're not to bright right. But the point is you know they they get aggressive when they they need exercise. It's a way to get you know to to work things out. And I think the same is true for programmers. Yeah it's boredom and what I'm trying to do now is you know I've I haven't mastered it not by a long shot. But what I try to do now is if I see that kind of aggression coming I think "Okay this is something that I have to like rise above or put aside or move beyond". You know because there's nothing that I actually want to be like the moral police of. Right. That's not who I am. You know, I don't own a policeman's uniform and I haven't gone to the police academy. And there's a reason right. So whenever I find myself trying to be like the moral police and be like "You shouldn't do this is not ethical". Or you know this person said this but it's complete horse shit right. You know on on the one hand I know a lot of people find my rants entertaining. So I I don't want to hold back to much. But I want to pick the right target. Sometimes I feel like I'm just beating up on people or picking fights unnecessarily. And and when I find myself doing that what I do or what I try to do most times is find what it is that I want to move beyond. You know that moral that will excite me without me having to be like mister aggro dude.
[Musical interlude]
Rob: You can read more about Giles and what's happening in his world at gilesbowkett.com. Many thanks to Giles for his time today. It's been episode four of This Developer's Life. Sponsored as always by Tekpub preparers of fine screencasts. If you want to learn something interesting and new head over to tekpub.com with a new series on Rails 3. We'll learn neat stuff like Rails 3 and Sinatra, Entity framework and so on. Save a forest watch a screencast. My name's Rob Conery joined today by Scott Hanselman who gave us the opening story about the top ten ways to be foolish in a foolproof application, lookout. Thank you so much for listening.
[Musical ending]