|author||Lars Wirzenius <email@example.com>||2017-03-01 17:11:40 +0200|
|committer||Lars Wirzenius <firstname.lastname@example.org>||2017-03-01 17:11:40 +0200|
Add chapter 3 (conflict)
2 files changed, 508 insertions, 0 deletions
diff --git a/conflict.mdwn b/conflict.mdwn
new file mode 100644
@@ -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
+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
+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
+"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
+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
+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
+"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
+Sam looks at Robin, then at Anders. "Anders, you idiot, what did you
+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
+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
+"Robin, I apologise for that. I clearly haven't made it clear to all
+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
+Back at the Team office, Robin and Andy come straight to my office. I
+can see Robin's upset.
+"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
+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
+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
+"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
+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.
+"I wanted to talk with you privately about what happened today. You up
+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
+"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
+"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.
@@ -19,6 +19,7 @@ There may be contradictions. Retconning in the future is possible.
* [[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]]).