Soft Skills Engineering - Episode 60: Office Arrangements and Disarming A Code Owner

Episode Date: May 17, 2017

We answer these two questions: What is the best seating arrangements for software developers? How do I disarm my CTO who is emotionally attached to his code? ...

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than great code to be a great software engineer this is soft skills engineering episode 60 soft skills engineering is a weekly advice podcast where developers and other engineers write in with questions and we provide answers i'm your host dave smith i'm your host jameson dance silence is the third host i'm just gonna read our first question we have we have nothing just raw knowledge to drop yeah i mean and it starts oh go ahead i was just gonna say we're going for high information density but every word i add reduces our information density i'm gonna densify it right now what is the best seating arrangement for engineers this is from an anonymous listener um and that's all the question right there what's the best seating
Starting point is 00:00:50 arrangement yeah uh ball pits definitely i think um i think right side up has been used ad nauseum and we should try upside down we need to disrupt seating arrangements in terms of the the y-axis that people sit right that's right invert the y-axis yeah uh the z-axis too you should sit with your is that with your back to the computer would that be what the z-axis that's only for back-end developers okay i i worked with a with a guy who had the weirdest chair i've ever seen it was like the chair was in front of you and you sat on it and there was this piece that you leaned your chest up against and okay it i don't know it looked like a torture device but it made him very comfy it sounds like something i would have seen in a public library when i was a kid yeah
Starting point is 00:01:43 yeah in like the 70s i never could figure out how those worked um but probably it costs like 15 times what those things cost because it's an office furniture right i think the ideal seating arrangement is you have a circle and in the middle is a single developer and on the outside there are like three sales people and two marketing people and two products people all sitting around the one developer like orbiting like moving in a circle well they don't even have to orbit but it's just so that they can easily and quickly get a hold of the developer with all of their needs and then the developer can help them with their needs we need to add a feature hey we need to add this tracking
Starting point is 00:02:24 code hey we need to move this button and then it's yeah they're all real close that's perfect really convenient for them it's so convenient for them maximize interruptibility you're lowering the cost of context switching because that's right it's really easy for the salespeople to turn around and tap the developer on the shoulder that's right um that's really good oh so i think a bunch of people would say that the ideal seating arrangement is if they are sitting at home and all their teammates are also sitting at home yeah wherever they freaking want in their home or outside their home and it's like on your couch or on the beach or i saw a tweet the other day from someone who works from home and i think he was sitting on his back porch and
Starting point is 00:03:13 watching his kids jump on the trampoline or something and he was basically humble bragging about about that sounds like he wasn't working very hard that's the fear about remote work isn't it they're not doing anything people are at home watching their kids jump on the trampoline instead of working the classic classic fear yeah uh i think a lot of this will be very subjective because people like different stuff right some people love open offices some people love private offices some people love working from home some people hate working from home but everyone hates cubicles i've never worked in a cubicle i worked in one i'm thinking i think i've worked in two cubicles before my first quote real job as an intern were they like like they were stacked
Starting point is 00:04:06 you had a double decker 3d cubicles there's all this wasted space above the developers heads yeah wait a minute with the fireman pole to slide down i don't know i i don't know i don't really have a strong opinion i just know that people make fun of them a lot yeah so i have my ideal office arrangement um and i think it would match some other people's and some people would hate it my ideal setup is you have kind of a private wing i guess for a team um and this depends on how your teams are organized this this could be a developer team or like a product team where there's people from multiple different roles but the team is all together in the same wing there's a central
Starting point is 00:04:54 communal space with like couches or desks or chairs or whatever where people can all be out in the open and and have that spontaneous communication that people love about open offices but it's surrounded by a ring of private offices and everyone has their own private office so that if you want you can go into your happy quiet place and and just crank stuff out and what's the size of these private offices uh i don't think they have to be big just i don't know big enough so that you can have a desk with a computer on it unless they're mine in that case it's the corner office that has a putting green inside of it um because isn't that what happens i don't i don't know i associate putting greens with like the executive offices yes yes and
Starting point is 00:05:37 jameson's office yeah the putting green is like a mini golf course because there's a ball pit um with a little bridge over it and you have to make it across the bridge like with your putt so it's a combination putting green ball pit uh yeah i don't think they have to be big at all i think it's just a space for you to work that's your own space that you can shut the door and okay have you ever seen that anywhere yes i have um my company was moving office spaces and we moved into a temporary office while our new space was being prepared and that temporary office had this exact setup it was this big open room with a bunch of couches in the middle and some desks and then all around it had this circle of private offices and people just kind of like shuffled in
Starting point is 00:06:24 and out and some people hated the private office thing and they just didn't want one and never went in theirs and some people loved it and and spent most of their time there but the the choice and the flexibility was really good because um yeah some people like different environments and there are different trade-offs so when you went into your private office and closed the door was that a signal to your team members that you were not to be that was pissed off you were fuming no uh yeah i mean people they just didn't open the door we had chat like everyone has so you could you could get slacked or whatever the chat thing was we used back then okay i mean the the value of private offices is you get to focus in and hopefully you get more in the flow and you can
Starting point is 00:07:12 do deep work where you think without interruption and the value of the open office space is um it looks really good to investors when they come visit just kidding it's you have all this spontaneous communication where you're sitting at a table and you overhear someone else say like we're gonna use MongoDB twice upside down and then you're like that's a terrible idea and you go talk it out and it's like stuff you hear that spontaneously creates value but you're way more interruptible so the the flexibility of having both of those feels like the ideal for me so the closest I've ever come to a private office was sitting two to an office which I did for about seven years at one company and I liked it pretty good because a lot of times the two people in the
Starting point is 00:07:55 room that shared a room they wouldn't even necessarily be working on the same team you just happen to cohabitate the same office space and it worked out pretty good i liked it i think like anything there's probably a pendulum and the pendulum to me feels like it's swinging away from open offices but maybe it's not i don't know open offices have been cool for a long time and i hate them and i think they're horrible and then we'll probably swing back to something else and then we'll realize how horrible it is and then swing back to space open offices or whatever i haven't seen any evidence that open office spaces is uh going away if anything i see more and more of it yeah because it's just so freaking cost effective yeah that's it's super cheap and
Starting point is 00:08:38 for a while it had this this aura of startup cool yeah and i think the aura of startup cool is leaving it a little bit i guess maybe this is like twitter influence which is different from what people go out and pay money for yeah okay i guess you're right literally every company i can think of around here has an open office every company i've been to in the last like two years has an open office plan but people are mad about it on twitter and they didn't yeah no one no one likes it but it doesn't matter because they don't know the ceo likes it because he can look out over his domain and observe all the people that are working and he just like feels like look at my team and look at this really weird paternal thing yeah i think that's a lot of it that's actually
Starting point is 00:09:22 funny you say that about the ceo because my last company got a new ceo um like about a year ago or less and he came in and had one of these all hands you know q a and one of the comments he made in the first all hands meeting was we're gonna get rid of this private office thing and um and we're gonna we're just gonna go to like a big open community thing and everyone of course groaned you know so it's timely great great uh what was the reaction to it oh people were the engineers were just like ready to stage a coup like instant it was just like instant rage you know it was pretty funny so there's a company around here called mx that has an enclosed developer area but it's an open office inside that area so it's more of a firewall yeah it really is and there
Starting point is 00:10:22 are locks on the doors oh my god there are key card locks and non-engineering key cards do not open the door oh my goodness it's because they used to have apparently this is apocryphal but apparently they used to have such a big problem with salespeople coming in and bugging developers and tapping them on the shoulder that that the cto literally walled off the development team and said like you cannot just come in and bug us all the time and did the cto stack up like a bunch of furniture like les mis barricade style in your daily stand-up uh today i'm gonna man the barricades that's a great metaphor for preserving productivity of your engineering team Especially since all of those people ended up dead.
Starting point is 00:11:08 Yeah. I'm going to go murder some salespeople. Don't do that. But I think, I mean, the concerns around office space and seating arrangements are all like, how do we promote teamwork and unity? How do we allow people to be productive and get stuff done? And different people have different values of productivity. Like to the product team, productivity is I want to talk to the developers all the time so I can see what's going on and give them feedback and tell them what the product needs to do. And to the developers, it could be I want a whiteboard the size of a football field so I can draw my microservices architecture in complete detail.
Starting point is 00:11:52 And I don't know. Have you ever seen any kind of credible research on this topic? yeah peopleware um is an older book from the 80s but it has some studies about developer productivity there's one from ibm too if i were a smarter podcaster i would have read these before this episode and been able to cite them productively instead just fake your way through it yeah i'll make stuff up and you'll just believe me um i think people where specifically cites that like hub and spoke thing where there's a central hub with private kind of spokes i don't know if they say single person or multiple person offices but it's like the central shared space
Starting point is 00:12:31 private space around it and then the ibm study is also from the 80s and i can't remember its conclusion i'm just gonna assume it supports my my biases which is that open office space sucks and cubicles cubicles suck i have i have heard of some research being done in this area but i don't ever remember feeling convinced like oh yeah that's that's definitely the definitive answer and so i think my my general approach to this question is in the absence of good hard data go with what your people want so they'll feel good when they come to work yeah that seems good it could also be a cultural thing like fog creek is famous for saying every developer gets a private office and and yeah they have their beliefs that that's better but to some extent that's a that's
Starting point is 00:13:21 a flag that they plant that says like here is who we are and how we're different um base camp is all about remote work and everyone's 100 remote and that's their flag and some people uh say you should feel a lot like you're working in a garment sweatshop where everyone is in this giant warehouse on desk together that's their flag oh i know one company like that it just looks awful when you walk in oh man it's the word dystopian springs to mind yeah but again that's my personal opinion and i've talked to people who work there and they're like no i don't i don't mind i like it yeah i mean i guess if you're working on interesting problems with people you like the din of yeah 3 000 other people in the room also working fades away but
Starting point is 00:14:05 your passion will crowd out the noise don't worry we'll give you these noise canceling headphones so that the the miles of open space around you where everywhere you look you see busy activity will not distract you anymore noise canceling headphones plus vr that might be the answer to open office space you feel like you're in a beautiful meadow and you can't hear your co-workers but the reality is there's a sweaty developer two inches away from you you know that scene in the matrix where they're all in those pods uh-huh perfect like it reveals what the real world is where they're in these like little yeah egg sack things yeah that's you could cram a lot of people in one room think about the dollars per square footage you get out of that out of
Starting point is 00:14:51 the matrix it's so good impressive it would look to to to executives if you walk in you just saw these productivity columns of people uh is this wisdom i was gonna say no it's not but yeah it is i think you have wisdom any any matrix reference so i i think at the end of the day for me i've worked in so many different environments now so right now i'm working in an open floor plan really tightly packed in with some amount of partitioning between teams so there's like these like head height walls between teams but other than that it's just kind of an open area i've worked in the semi-private office two to an office i've worked in a less private office like four five six to an office with a common collaboration area in the center like you described the hub and
Starting point is 00:15:37 spoke at the end of the day i was able to be a productive developer in all of these environments and and i it was never like a deciding factor about going to or leaving a job it was just kind of a secondary thing but i'll tell you what at my last company we had the hub and spoke thing with semi-private offices around the perimeter and i walked through i walked so many candidates through that space as we were interviewing them and i kind of extolled the virtues of having this open collaboration area with these semi-private offices that are quiet working spaces for your team and people had very strong positive reactions to that they really seemed to like it so i think it was a good selling point for them but again i don't think it really made or break made or broke
Starting point is 00:16:16 the deal for them deciding to take the job i'm trying to imagine if there is there's this theoretical job out there that i'm really excited about and then they have a giant open office space and how would it make me feel about it and i would definitely be less excited about it i don't know if i would be less excited enough to say no but there would probably have to be one or two other things i'm guessing for you to say no yeah if that was the only thing i don't know it would definitely be a negative for me right um but i have worked with brilliant engineers not just like random people not random not just the commoners i've worked with with brilliant engineers who legitimately love open office setups and and they love just walking around
Starting point is 00:17:05 and talking to people and bouncing ideas off anybody and the collaboration that it brings. We call those extroverts, Jameson. That is so true. No extroverts allowed in this place. I guess maybe you have to think about those terms when you're designing your office space. Like, am I going to exclude introverts or extroverts?
Starting point is 00:17:28 You know, can I create a... I suspect that the people who decide what office space looks like are more extroverted. Oh, yeah. but also they get their own private corner office so they don't care well there you go so is there what is the best seating arrangement who freaking knows that's your answer i know my ideal i'm gonna build it and then people who like my ideal will come work there but if you build it i don't think that's universal all right question next question sort
Starting point is 00:18:00 have pretty much answered question joked about question used by jameson to expose his anti authoritarian tendencies okay i'll read our next question so this one comes from an anonymous listener and i think you'll know why after we do this um it's so funny actually we get so many questions and uh it's like i i'll read i'll be one or two sentences into the question and i'll be able to predict whether they checked the keep me anonymous box you know yep we could probably train a machine learning model on the question text and be able to predict the toggle state of that checkbox pretty well uh yeah we'll be off a couple months no more new episodes while we embark on a project okay so um this is one of my favorite questions of all time when jameson and i
Starting point is 00:18:47 read it we both just were like totally perked up and we're like we definitely have to answer that even though we don't know how to answer it don't say that oh right sorry okay here we go quote how can i disarm someone who is emotionally attached to their code i work with a cto who wrote a large part of our production on his own but the code is very buggy hard to test has zero documentation or comments is very brittle and hard to understand when we bring up changing it he gets angry and tells us that we're not focused on delivering a finished product oh man so many good things here did you love the word disarm in this one yeah they did i would it made me have all these images and of memories of talking to people and and tension was escalating and if i had just thought okay you
Starting point is 00:19:33 need to disarm this oh that would have been awesome well sometimes you disarm them by attacking like liam neeson just karate chop some dude's arm like literally remove their arm then they drop the gun they're disarmed and then they feel vulnerable and they can feel empathy again yeah then once you've karate chopped them into submission then you can have a productive conversation yeah then then you just open up look i don't think we're seeing eye to eye but if i put you in some pain i think you'll see we'll see each other better uh i've been in this situation with um co-workers but never with like my boss this this adds another wrinkle to it oh yeah because i think it's i think it's fairly common for people to get defensive
Starting point is 00:20:21 about their code and feel ownership over this this uh this artifact they've created and then someone someone criticizes it and they're criticizing them because they're the creator yeah i think the meta point here is to take and we'll get back to the actual answer i think but meta point for me is to take a lesson from this you are not your code and if someone wants to delete your code they probably have legitimate reasons for doing it so hear them out you know talk to them if you're ever on the other side of this thing don't get all don't get your ego all wrapped up in it yeah i mean we've already talked about karate chops in the meta point i think we've answered the question right completely what is what does this anonymous listener do in this
Starting point is 00:21:07 specific situation okay so i was in this situation about five years ago but a little different and i would say the quality wasn't so bad but basically my my cto had written a bunch of code they were in the process of porting uh the code from one language to another language and um they had just kind of directly ported a lot of the code from the old system to the new but there it wasn't clear how much of the old system was going to be used in the new system so there was a lot of extra code just sitting around and it was a problem not because it was buggy or low quality it was polluting my grep results you know like i like search for a variable name and i find 20 false positives because it's in this dead branch of code not branch like a dead section of the code that's
Starting point is 00:21:52 not going to be used immediately and i went to my cto and i was like can i delete this code and he was he was like no that code was developed and i'll quote here at great expense like he was worried about losing the investment that had gone into bringing that code to life and i was like oh man i like it's just okay can i so finally i i said well how about this i know you want to keep that code around for reference when we eventually need it but we don't need it right now so can i make like a backup copy of the code so i did did your cto know about version control well he did but he also knew that once you delete something you'll you'll never go back in version control and find it again you know what i mean it's so hard when you're like oh yeah there was a file
Starting point is 00:22:35 all we have to do is like resurrect all 5 000 previous revisions and search each one right like you'll never find it so i was like look let me just like make a clone of our project put it in a different git repository and then it'll be there and easy to search and then we can um we can uh we can just delete it from our working repository and he agreed to that so i basically came up with a compromise to where we could meet his needs and meet my needs and little tip here we never used the code it stayed deleted so uh what you're saying is fork your company's project yes now this case is a little harder because it's actually production code it looks like that's in use yeah it sounds like that
Starting point is 00:23:27 and so it's never easy to propose a rewrite and it's doubly hard when the cto feels personal ownership over the stuff you want to rewrite it sounds like zero documentation or comments very brittle hard to understand um hard to test buggy it my my impression from reading this is that the cto might be kind of the cowboy coder like chief developer type and and that can be really valuable for an early stage startup where you're just trying to get as much stuff done as possible and you sacrifice some stuff to do that um and and the company might be transitioning into a different stage where the cto role is not right the bulk of the product it's help your team develop the product and and the cto sounds like there's still a little bit heads down in the code
Starting point is 00:24:19 like the fact that i guess it depends on the size of your company but the fact that your cto would know very directly as you're changing his code um sounds like they're they're pretty heads down in the code still which is not i mean if they have enough time to be that heads down in the code they they have enough time to to work with the team to build code the team can understand and my impression is they're so busy that they're not really a part of the team they're in meetings all the time and trying to do a bunch of other stuff and then they'll just like drop some code bombs every once in a while um with which the team has to deal with and and that's that's harmful to the team that's the opposite of what your job is as a cto i the term i would put on that is unsustainable
Starting point is 00:25:03 yeah i think again we harp on this point but no one most people in engineering management do not know how to do it because they they get put in there because they were there early are there good developers they've never seen good management um and and this is a thing that i could see i i could see this as a mistake caused by lack of management experience either directly or having been modeled to to the cto now it might be that the cto oh sorry go ahead i was just gonna say it's pretty clear there's a right way to do this which is not hold your team hostage because they're scared to tell you your code is hard for them to work with but you also don't have the bandwidth to be a developer that can help the team out i don't know that's the wrong way so let me
Starting point is 00:25:52 play devil's advocate with you here so what if it's a small small team situation and if you don't get a product out the door soon your company's going to go out of business like you're going to run out of funding now you just put up with it and move move on then you should tell the team that as a cto you should say i know this code is crap but we're gonna go out of business if we try to rewrite it yeah it's it's i understand i wrote code that is hard for you for other people to work in and that's the cost of keeping the company alive and we'll go back and fix it later but just just the cto getting defensive and saying like you can't change my code it's the best well he kind of said that he says in the question he gets angry and tells us that we're not focused
Starting point is 00:26:35 on delivering a finished product like is he right when he says that i don't know obviously we don't but i would ask yourself that question really hard like is this just a knee-jerk reaction that he's using as a straw man to deflect the true argument or is he right yeah i mean yeah every product has code in it that is horrible that is true maybe even most of the go yeah yeah i i guess it it comes down to what is the cost to the team and can you afford to pay that cost and can you verbalize that cost to your cto yeah yeah well you just i was getting all heated and you like you popped me like a balloon like maybe you're right oh there's always two sides to this story i once had a i once heard that silly i'm gonna call it a dad phrase a dad
Starting point is 00:27:36 figure of speech um no matter how thin you slice a pancake it still has two sides that's amazing dad wisdom i'm gonna try and use that out of context as much as possible just means nothing people look at me weird my dad will just appear out of nowhere and be like you've made it so good job now you see i i think okay you could be right that they're in a life or death situation um i think the truth probably lies somewhere in the middle where yeah there's pressure to get stuff done but also it's it's harmful for the engineering team and the cto is holding on a little
Starting point is 00:28:20 bit too strongly to his own code and also his role as a developer on the team yeah that i think that's very likely so as a cto of a growing team i'm going to assume it's growing because the questionnaire said it was a startup um you should be involved just enough technically to stay connected with the team so you don't lose sight of what they're doing and how they're working but not so much that you get in their way. And it's really easy to get in their way and not even realize you've gotten in the way. And that may be what's happening here. And in which case, it's probably time to confront your CTO and have a discussion about expectation of role. Yeah, I mean, it's it's possible, like Dave mentioned, it's possible that your CTO is right, that you're too distracted on
Starting point is 00:29:01 code quality or by code quality and not focused enough on the product. But it's also possible that your cto doesn't realize the damage that this is doing to the team because to them they're in meetings all day and then they go back and see some code and they're like ah and then they like dive in to try and fix it they get distracted and pulled off into other stuff and it's in this weird half done state i've seen that i've done that actually a lot um me too and and it's it's when you have so many different things pulling at you it's hard to see it can be hard to step back and like oh this specific thing i'm doing is harming my team when you have all this other stuff you're doing at the same time um hence the karate we've come full circle you disarm them i mean how how
Starting point is 00:29:49 would you have that conversation productively without it sounds like the cto getting defensive is a risk how would you approach that to try and and make it less uh less less difficult fundamentally you have a conflict here with your cto and the best way to resolve a conflict is to reduce the amount of pressure you put on the person to perform in some kind of theatrical mode, right? So don't put them in a situation where they're sitting in front of the whole team and you stand up out of nowhere and accuse them of being a code hoarder, you know, or a code hoarder.
Starting point is 00:30:22 Instead, I would schedule some one-on-one time where you can speak privately about them. And I found that people respond to concerns much better when you do it this way. And try not to be hostile, try not to be aggressive. and instead state the problem with objective facts as much as you can. Things like, it took me a lot longer to do X feature because of this code. If we could take some time to rewrite it bit by bit
Starting point is 00:30:47 over the coming X number of months, then I think maybe we could definitely improve our velocity and it would, in the end, be better for the customer. Or, you know, pick some value that matters to your company. And, you know, the one that you honestly think as being the most impacted and follow it to a conclusion yeah that makes sense to me you gotta you gotta de-escalate and then when the cto offers a counterpoint really listen and try to understand and restate out loud what you understood them to say you know if the cto says look maybe they will
Starting point is 00:31:22 say we're gonna be out of business in three weeks unless we get some product out the door like tomorrow you know then suddenly you don't care as much about their code having no comments um or they might have some other very much legitimate reason and really listen and understand and show them you can't just listen and understand you have to show them that you understood for them to feel like you're playing on the on the level playing field yeah that makes sense just go for the karate chop just go for the the karate chop all this listening is hard work chop chop an emphatic karate chop to end the meeting uh is it time to give an emphatic karate chop to
Starting point is 00:32:10 end this question have we answered it i think so oh nope one last thing if all of that fails go over the ceo's head and tell the ceo that you should be the cto because your cto's code sucks that works every time you have battled in the arena of vim and come out victorious vimtorious yeah but then your cto could just say this code is above your understanding and if you were a better developer you would realize its true beauty and clarity you don't understand yeah it's anything you don't understand is a monad and then you're just dumbfounded and defeated but at that moment you will be enlightened all right i think we've answered the question yep good luck and please
Starting point is 00:33:02 if if you do anything about this let us know how it goes this is a tricky situation and also one i think is is fairly common i think so maybe not with your cto but definitely with your peers code yeah this archetype of i mean of working in people's code where they're defensive about it absolutely and any code that i didn't write in the last hour is crappy right yeah yep that is true just instantly it's it's got a half-life of an hour yeah about an hour okay where can people go dave if they want to submit more questions go to our website
Starting point is 00:33:40 softskills.audio many many of you have done that there are some fantastic questions in our backlog you can also go there to check out past episodes and you can comment on them we have a nice discuss comment system so you can go and write stuff if you want to add things many of you have done that it's been really fun to go past to go review
Starting point is 00:34:00 past episodes and read what people have written to fill in the gaps that we left behind super cool so thanks for that yeah thank you so much as always we would love it if you shared this show we really love doing it and And we want to help answer more questions from people.
Starting point is 00:34:18 We like being exposed to all the variety of concerns and problems that exist. Lots of these are interesting to think about, even if they might kind of suck to suffer through. Yeah. Your loss is our gain. Yeah. We're like vampires, I guess, in that way. Preying on your emotional distress. So continue to feed us so we grow ever more powerful.
Starting point is 00:34:44 um and do that by tweeting about the show oh boy that got a little lost tweet about the show share with your friends uh do anything you can to to share it if you enjoy it if you see someone's phone sitting open on their desk and unlocked just go open the podcast app and subscribe before you tweet hashtag poopin that's the traditional thing you do first but subscribe to the show first okay all right i think we're done catch you next week bye everyone

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.