From 8820ca604470ffcc36a2a098f498afcc9e9bf84e Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 1 Mar 2017 17:11:40 +0200 Subject: Add chapter 3 (conflict) --- conflict.mdwn | 505 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ index.mdwn | 3 + 2 files changed, 508 insertions(+) create mode 100644 conflict.mdwn diff --git a/conflict.mdwn b/conflict.mdwn new file mode 100644 index 0000000..9531b17 --- /dev/null +++ b/conflict.mdwn @@ -0,0 +1,505 @@ +# First conflict with SmartHome + +I sleep well, and I get up a bit later than usual, feeling very refreshed. +I spend a bit of time in my own kitchen, drinking tea and reading the +news. I used to love reading the paper on paper in the morning. I no +longer get the paper on paper, since it creates incredible mountains +of waste at home. Instead, I have a tablet computer in my kitchen on +which I read my favourite online news sites. The tablet is +intentionally not configured to have access to IRC, email, Twitter, or +other social media accounts. Reading social media in the morning isn't +relaxing, so I do that at work instead. + +I get to the office ready to tackle SmartHome's RPM fetish. I log into +my work computer, and send Robin a private message on IRC. "Hey, +Robin, do you have a quarter of an hour to help me sketch a response +to shoot down a request from SmartHome to switch to RPM? If you're in +the middle of something, finish that, I can start on my own." + +In a minute, I hear Robin's combat boots stomping towards my office. +She throws open my door, not bothering to knock. Oh good, I've upset +her. Robin steps into my office and stands in front of my desk. In +addition to black, leather boots, she's wearing cargo trousers, and a +photographer's multi-pocketed vest over a thin, green, army sweater and +a uniform dress shirt. It's one of her favourite outfits, on days when +she doesn't expect to have to deal with customers in person. + +"What is going on? RPM packages? Who'S having a painful brain fart?" + +Robin is a dear friend, but it's taken me a lot of effort to get used +to her habit of not bothering with social niceties when she's upset. I +know she's not upset at me, which helps, but the loud voice, and the +wording easily puts the other on the defensive. While I've gotten used +to it, we've also made sure Robin avoids this behaviour in front of +others, including the Team. +Originally she said she felt like a fraud when she hid her +true feelings, but I convinced her that it's OK. + +"Robin, you're more upset than this deserves. Please take three deep +breaths, and sit down." Three deep breaths works, it causes a +physiological reaction that calms one down, and we've done this enough +times that it's also a psychological trigger for Robin. Robin +breathes, sits down, and says, in a normal voice, "OK, so what's going +on?" + +I explain about Sam's email from yesterday. "Clearly, we're not +switching to RPM. We've built our system based on .deb packages, But +we need to explain to SmartHome why we're not switching. I thought +we'd outline a response together, and I'll flesh it out and reply by +email. Here's what I have in mind so far." + +I stand up and walk to my whiteboard. Whiteboards are an essential +tool for our work, so we all have them in our rooms. + +"First, we'll point out that RPM and .deb are functionally pretty much +equivalent, right? RPM can do per-package digital signatures, but .deb +gets the same benefit from APT repository signing. And so on. Are we agreed?" + +"Of course. We've told other customers the same thing. I'm now +thinking we should write a small white paper on why we use .deb and +why we're not switching, so we're prepared for this the next time +someone asks." + +I nod. "Good idea, I'll put it on the list to do between clients. Or +better yet, since we need it for SmartHome, we'll write it for them, +and bill the hours to them. The contract says we can reuse that kind +of thing in the future." + +Robin also nods, and shifts to a more comfortable position in the +chair. + +"Next, I'm not going to go deep into the detailed differences between +the two packaging formats, since they don't really matter. I think the +other big point is the cost in time and quality of switching. It's not +just about the format of individual packages, we've built our platform +entirely on top of Debian, and switching to RPM would mean we'd need +to switch to something like RHEL. And then everything changes, since +the systems are quite different, for all they're built from the same +upstream components. Things like system wide policies differ, and +figuring all of those out is many months of work. Agreed?" + +Robin nods again. "Agreed. Can we sell SmartHome some training on how +to make .deb packages?" + +I smile. Robin's past her anger now. "That's a good idea. I'll +suggest that to Sam, in case their developers are hesitant about .deb +packages. Who should give the training, you?" + +"I think I'm going to be busy enough. Would Nina be OK?" + +"I think so. I'll check with her. We're agreed then." + +Robin stands up and leaves, I sit in my chair and flex my fingers over +the keyboard, and hit on "reply" for Sam's mail. + +"Dear Sam, we had a little discussion with Robin about switching to +RPM and I'm afraid it's something we advise against. Let me explain +why..." + +----------------------------------------------------------------------------- + +The following morning, Nick comes visit. He uses the doorbell, and +I happen to be closes to the door so I open it. +He stands there with his hat in his hands, +looking as nervous as a teenager picking up a date from their home for +the first time. + +"Hi, Nick, how can I help you?" + +"Hi, Anna, I'm here to see Nina. Is she in?" + +"Why yes, I believe she is. Come in and we'll see together." + +I'm intensely curious. Nina has basically never had a visitor before, +and Nick seems much more nervous than a professional visit would +warrant. What's going on? + +We walk together to Nina's lab, and knock on the door. In a moment, +Nina opens it. She sees Nick. + +"Hi, Nick, I'm glad you came, Thanks, Anna, I invited Nick to talk +over a few things with him." + +"OK, I'll leave you two to get on with it, then." I nod at Nick, and +walk to my own room. An hour or so later, I need to go see Robin about +something, and I choose the route past Nina's lab. The door is open +and I can hear Nina explain about the trunks. She's not trying to sell +them, just proudly presenting them geek-to-geek, +going over very technical detail. +I don't stop, not +wanting to disturb the two, and continue to Robin's room. + +"Hi, Robin, did you know Nick is here visiting Nina? They're talking +in her lab?" + +Robin grins. "Anna, you old matchmaker. What did you do?" + +"Nothing! It wasn't me and you can't prove otherwise. This took me +completely by surprise." + +Robin is still grinning. I can tell that she thinks I'm trying to get the +two young ones become interested in each other. Not without +justification, as I've done something similar before, though never in +a professional context. And not this time. + +"So what are they talking about?" + +"She's telling him about trunks, and he seems interested." + +"Hah. A geek date, maybe?" + +"We'll see. Anyway, I wanted to ask you about the SmartHome +situation." + +We discuss for a few minutes, and then I walk back to +my office, carefully avoiding Nina's lab. I sit down and process +emails for a while, until someone knocks at my door. It's Nina. + +"Hi, Anna, I'm going out for lunch with Nick. I'll be back in a couple +of hours." + +"Sure, Nina, go ahead." I hesitate a moment. "Please excuse an old +lady, but what's going on?" + +Nina smiles her crooked smile. She can read me and knows I am curious +if there's something going on between her and Nick. "Oh, nothing, I +just felt the, er, urge to spend some time with Nick. He's a smart +guy, under the surface." + +I smile back at Nina. Her answer has told me nothing useful. "Go on +then. See you later." + +----------------------------------------------------------------------------- + +Robin has called together a workshop to discuss porting our framework +onto SmartHome's hardware platform. It's half a day, with her, Andy, +and Bert. I tag along to get a feeling of the situation. Turns out +the three have already figured out a battle plan, based on an initial +spike and previous porting for earlier clients. + +Robin stands up in in front of the whiteboard, and goes into full-on +lecturer mode. "OK, our kernel porting has gone well, we have a +booting kernel, and a CI that can build and install a kernel from our +git server, and test that the kernel boots and interacts with the +outside world. The hardware is similar to most of the embedded ARM +devices we've worked with before, even if it's a new SoC. There's a 3G +modem for communication." + +Bert lifts his hand. He's still young enough to remember when he was +in school. "Is the hardware supported by Debian?" + +"Not yet, but apart from the kernel it should be only a few packages +we need to tweak, to get a core Debian system running on the box. +After that, it should be plain sailing. We'll create an image using +debootstrap and our own wrapper, flash the device with the new image, +and boot into a real Debian system, albeit with a custom kernel. The +usual thing, in other words." + +I stand up. "Looks like you have things well in hand. I'm old enough +to have learnt that the universe likes to throw nasty surprises even +in the simplest things, so I'm going to assume it'll take a while +before we actually have Debian running on the SmartHome hardware. +That's OK, but please do the work in tight weekly sprints so we can +demonstrate progress often to the client. And ourselves." + +"Will do." Robin's also been doing this work a long time and knows +things will always be more difficult than one foresees. "And we'll +prepare patches to send to Debian for everything that's generally +useful, I assume." + +"Yep, that's the way. The less we have to keep maintaining ourselves, +the better. Also, if others can benefit from our changes, it's the +right thing to share them." + +----------------------------------------------------------------------------- + +Robin and Andy are at the SmartHome office, in the meeting room +already well-known to us. With the Team's IoT platform porting to the +client hardware platform underway, it's time to present a plan to the +client for how to re-architect and re-implement their applications. + +Robin has her laptop connected to the projector, and stands at the end +of the big, oval meeting table. She's wearing dark blue trousers, a +white shirt with a tie, and a dark-coloured vest. This is a business +meeting with a client, so she's skipped her usual comfy, army-surplus +chic. Andy is likewise dressed in a suit, though without a tie. + +The SmartHome engineers are slowly dripping into the room, in ones and +twos. They are talking with each other, about other things they're in +middle of in their own jobs. Among the final ones, a couple of +20-somethings, dressed in loud Hawaii shirts and ripped jeans, enter +the the room, stop, and look at Robin. + +One of them pokes the other in the arm, and speaks, not loudly, but +loud enough to be heard over the quiet discussion of the others. "See, +I told you she's lesbian. Look at her outfit." + +The room goes quiet. Most of the engineers squirm in their chairs and +look uncomfortable. Robin looks up, stands up, puts her arms behind +her back, and stares at the two who came in. "What's your name?" + +"Er, I'm Anders." The guy seems to realise he's crossed a line. + +Right at that moment Sam walks in. Robin looks at him. "Hi Sam, we +have problem. Anders here thought it would be funny to make comments +about my sexual orientation, and the whole room heard it. Please +handle it." + +Sam looks at Robin, then at Anders. "Anders, you idiot, what did you +do?" + +Anders looks surprised. "I merely said she looks lesbian. You know, +woman in a suit and tie and so on. Also, she's always so aggressive, +telling us to what to do." Robin keeps her face as stony as she can, +but it's clear she's fuming. + +Sam shakes his head. "I'm afraid I'm going to have to ask you to leave +the meeting. I'll talk with you after the meeting. Our contract with +the Team is clear, your behaviour is unacceptable when we work with +them." + +Andy is calm. Andy is always calm. Andy calmly does not take crap. +"It's not just against the contract. It's wrong. It's not how +professionals treat people." + +This doesn't make Anders any calmer. "Come on Sam, look at her! No +woman would wear that unless she's a lesbian. And if she is, what's +the harm in saying it? Don't I have any freedom of speech here +anymore? And all you others, you're with me, right? Are we going to +let an uppity woman treat us like this?" + +The others are clearly not willing to stick their necks out to help +poor Anders. Robin is still fuming. + +"Boy, listen very carefully. My persona, sexual orientation, or +anything else outside the work I'm supposed to do here for your +employer are completely outside the scope of allowed conversation for +you. Even a junior should understand that." + +Anders turns around to face Robin. "Oh yeah? Says who?" + +Robin smiles a little, a tight smile that bends her mouth only a +little, and does not reach her eyes. Her voice is steady, slow, and +cold. "The contract your employer signed with us, to start with. Basic +politeness to end with. The contract says that your employer is +responsible for making sure all their employees behave professionally +when working with us, and if lapses in professionalism aren't dealt +with in a reasonable way, we can walk away and leave the project. But +SmartHome will pay our fee anyway." + +Robin takes a breath, and frowns a little. "Would you like me to +insist that Sam fires your ass? I think that would be a reasonable way +of dealing with you?" + +Sam takes Anders by the arm and pulls him towards the door. "Anders, +you shut up now, and wait at your desk. You're in trouble now." Anders +starts saying something. "No, shut up, I'll talk to you later." + +Anders leaves the room. He's talking loudly to himself, clearly now +very angry. He can be heard in the meeting room, until Sam closes the +door. + +"Robin, I apologise for that. I clearly haven't made it clear to all +of us +inside SmartHome what we expect from them in this project. Do you want +to continue your presentation? Or is it better if we reschedule until +later in the week?" + +Robin is quiet for a while, and looks at Andy. "I think we'll continue +with the presentation. But first, I'd like to say that I don't require +anything more than basic professional courtesy from those I work with. +I'm sorry for what happened today. It's relatively mild compared to +some of the things I've encountered in my work life, but I'm not +willing to endure any disrespect anymore. I hope the rest of you can +understand that, and that we can work together." + +The engineers still look a little uneasy, but the general atmosphere +eases up a bit. Robin presses a button on her laptop, and the first +slide of her slideshow shows up on the projector screen. It's a cute +kitten. + +----------------------------------------------------------------------------- + +Back at the Team office, Robin and Andy come straight to my office. I +can see Robin's upset. + +"What's wrong?" + +"There was a confrontation at SmartHome. Andy, perhaps you should +tell the story, I might get upset all over again." + +Andy briefly tells what's happened. Although the presentation went +well, in the end, and nothing further was said of the situation with +Anders, it's clearly going to be a problem in the near future. + +"I see. Robin, I'm sorry, you were right to be hesitant about taking +on SmartHome as a client." + +Robin shakes her head. "It can't be helped. And for the record, I +don't like how things went down today. Not sure Sam handled it +properly." + +Andy stands up, and puts his hands in his trouser pockets. "I feel I +must say something, and that is that Robin didn't do anything wrong. +The guy was way out of line, and it was right to ask his boss to +handle the situation. Sam should've taken Anders out of the room, and +tell him to sit out of the meeting." + +I nod, and look Robin right in the eyes. "Andy's right, you didn't do +anything wrong. It was Sam's job to handle the situation. He handled +it badly, that's not our fault. That said, and please don't take this is +any kind of attack or complaint against yourself, I wish it would've +been possible to handle this in entirely privately. It might have +resulted in less confrontation." + +After an impressive grimace, Robin agrees. "Maybe I should've done +that. But I wasn't feeling like giving the buy a break. However, even +so, I'm not out for his neck. Would it be possible for you to let Sam +know that I'm OK if Anders isn't fired?" + +"Thanks, I'll tell him. Do you want him to be kept out of the +project?" + +Robin shrugs. "I don't really care. I doubt he'll be offensive again, +but he'll resent me for the rest of his life, I'm sure. Anyway, I +doubt he's the only sexist jerk there." + +"In that case I'll tell Sam that Anders can stay in the project too. +Let's hope he's learnt his lesson and that he and others don't take +that as an excuse to be jerks, since they see get to keep their +jobs anyway. Robin, you've had a rough day, you should probably go home and +relax. You too, Andy." + +The two go, and I call Sam. Some things are better handled via voice, +instead of email. + +"Hi, Sam, I heard there was an incident today involving Anders." + +Sam's voice is sombre, but not angry. "Yeah. I've had a talk with him. +How's the situation at your end?" + +I keep my voice sombre as well. No point in being excited right now. +"I just heard from Robin. She agrees that if Anders promises to behave +himself in the future, he can stay on." + +"I just told him that he's going to be formally fired tomorrow." + +"That won't be necessary." I take deep breath, intentionally making it +noisy so that Sam hears it even over the phone. "Between you and me, +Robin could've handled this privately, but then so could you, Sam. +It's enough of a mess, so I think, we at the Team think, it's gone far +enough. Don't you agree?" + +"Well, I'm glad to hear you say so. I'd like to keep Anders. He's one +of our rock stars. I'll call him tonight." + +I make a grimace of my own, though not as bad as Robin's. Rock star is +a term we've learnt to loathe. It tends to be a harbinger of attitude +problems. + +"Just tell him that he's getting off with a warning, and that he +shouldn't expect anyone from the Team let sexist behaviour or other +harassment to pass. Not even as a joke." + +"I understand. I'll call him now. If I wait until the morning he might +spend the night getting angrier, and do something stupid." + +We hang up. It's getting late, but I have one more chore to do, and +I'd better to it while I still have things clearly in my mind. I write +a description of the incident in our company internal blog, which acts +as an internal knowledge base. This will let everyone in the Team know +what has happened. It also means we won't forget it, and we can use +this as a data point when considering brogrammer clients in the +future. + +----------------------------------------------------------------------------- + +I wander around the offices, and spot that Andy is still there. He +sits at his workstation, and seems to be reading news sites. + +"Andy, do you have moment?" + +He is a little startled. Clearly he was deep in his thoughts. + +"Sure." + +"I wanted to talk with you privately about what happened today. You up +for that?" + +We go into my office, and I close the door behind me. I'd rather not +be overheard or disturbed for this. + +"Could you briefly go over what happened after Anders was thrown out? +The presentation, and how it went, and how SmartHome took it?" + +Andy gives a sketchy summary of Robin's talk. It's what we'd discussed +beforehand. SmartHome was dependent on a central cloud service, for +storing measurements and logs, and for controlling the devices, even +though everything is also stored locally on the hub device. The hub even has +a local database, a real one, not just Sqlite. A database with 11 +tables with overlapping data and no unique key to match things between +tables. No access control between tables. +Multiple differenet applications updating the table concurrently. +A pretty mess. The engineers +hadn't liked having their work described that way, but at least most +of them warmed up to the suggestion of having a program provide a simple +HTTP API to the database, with access control, and a much simpler data +model. + +"Thanks. How did Robin do?" + +"She went a bit softer on them than we'd planned. I guess she didn't +want to be harsh after Anders." + +I nod understanding. "OK, sounds like it went reasonably well. I +would've been fine to postpone the presentation by a day or two, to +let everyone calm down, but sounds like Robin and you did it well." + +Andy finally goes home. Even he shows signs of it having been a long, +stressful day. Nobody like confrontations like that. Except maybe the +kind of macho brogrammer jerk that Anders seems to be like. + +I do a final round around the office, and find everywhere to be dark. I get +my things, turn off the remaining lights, and go home. It's dark, and +wet. The street is old cobblestones, shiny, and there's more rain +coming down softly. The stones are slippery, but I'm dressed for the weather. +It's late enough that it's long past rush hour, so while the streets +aren't empty, there's only occasional cars. At the same time it's not +early enough for the party folk from being out and about. Small groups +of teenagers roam the streets, but aren't making a nuisance of +themselves. I guess the rain dampens their enthusiasm for mischief. +It's one of my favourite times to enjoy the city. + +I round a corner and almost run into someone. He grabs me by the +shoulders. + +"Anna, is that you? God, it's been years! How are you?" + +It's Russ. My ex. Well, one of my exes. In a previous life many years +ago we were going out, but it ended. In fact, I was expecting him to +propose, but instead he broke up with me. It was rough on me, but I +got better. We've not seen each other since. But hearing his voice, +and seeing his surprised-happy face brings up pleasant memories. I +guess I really have gotten over the breakup. I smile. + +"Russ! It's you! It's been years. +I'm good! Except it's been a lousy day at work just today." + +"Oh dear. Do you want to talk about it?" + +That's classic Russ. I nod, and he walks with me to a pub close by. +It's a pub in the English style, in Helsinki. Not my usual kind of +place, but it's quiet and dry, so it'll do. We have drinks, and I pour out a +suitably pseudonymised version of the day's events. It feels good, I +don't often get to talk with a sympathetic friend about my work. He +makes the right kind of noises, and tells about his own life. We +carefully avoid touching on the breakup. I do that to avoid ruining +this evening. I can take it up with him whenever, today I just want to +enjoy good company. + +Which I do, for longer than is sensible, and with a glass of whisky too +many maybe. When it gets time, we leave, shake hands, and go our +separate ways. Younger me would've gone home with him. Younger me did. +I've learnt to be sensible since. Russ is very nice tonight, but he +hurt me once. If he's grown and I can trust him to not hurt me again, +we can consider things, but not now. I'm such a romantic. diff --git a/index.mdwn b/index.mdwn index ed20e60..d33cae9 100644 --- a/index.mdwn +++ b/index.mdwn @@ -19,6 +19,7 @@ There may be contradictions. Retconning in the future is possible. * [[Negotiation]] * [[Development setup phase|devsetup]] +* [[First conflict with SmartHome|conflict]] * to be continued # Change log @@ -36,6 +37,8 @@ For exact details, look at [git][]. * 2017-02-20: Typo fixes from many people. +* 2017-03-01: Added chapter three ([[conflict]]). + [git]: http://git.liw.fi/cgi-bin/cgit/cgit.cgi/noir.liw.fi/ # Legalese -- cgit v1.2.1