Soft Skills Engineering - Episode 15: Working with non-technical people and keeping up with the latest technology (with Brad Green)

Episode Date: June 20, 2016

In episode 15, Jamison and Dave join Brad Green, engineering director at Google and Angular team manager, to answer these questions: How do I deal with non-technical people at work? I often get ques...tions that put me into a position where I have to explain really basic concepts to non-technical people like sales and marketing. They seem to rely on me like a crutch, and it gets tiring to have to explain things over and over. How do I strike the right balance of being helpful, but not so helpful that they become dependent on me? I want to be helpful, but I don’t want to spend 90% of my time acting as tech support. How do I keep up with new technology but avoid being sucked in by hype?

Transcript
Discussion (0)
Starting point is 00:00:00 Hello, everyone, and welcome to Episode 15 of the Soft Skills Engineering Podcast, the podcast where we talk about all the non-technical sides of software development. I am one of your hosts, Jameson Dance. I am one of your other hosts, Dave Smith. And today we have a special guest, Brad Green. He is an engineering director at Google. He manages the Angular team, and then he does a bunch of other stuff. Did I get any of that right, Brad?
Starting point is 00:00:26 That's all exactly right. Thanks for having me, folks. Ah, good to have you. Let's just dive into our first question. So Dave, do you want to ask it? Yeah, sure. So this question says, how do I deal with non-technical people at work? I often get questions that put me into a position where I have to explain really basic concepts to non-technical people like sales and marketing.
Starting point is 00:00:47 They seem to rely on me like a crutch, and it gets tiring to have to explain things over and over. How do I strike the right balance of being helpful, but not so helpful that they become dependent on me? I want to be helpful, but I don't want to spend 90% of my time acting as tech support. Yeah, it's tough stuff. You know, I think as engineers, we're often very far down in our stack away from explaining stuff to other folks. And so to pop up, it is a big drain.
Starting point is 00:01:14 It takes me a long time to get back into coding, into the zone. But I actually think there's a lot of value in it, both for them and for you. um for for them it's you know this is stuff they don't know and for you you know you're you're trying to do something bigger than you can do alone and like you know your work may never see the light of day you may be doing the most fantastic code ever and if it doesn't get out there and get used then you might as well not have done it yeah but isn't it don't i just want to write awesome code i don't care if it gets used the code is its own reward there is that perspective we live in this this world of driving value though i mean
Starting point is 00:02:00 like what i might as well i could write something else or i could go carve a rock that i've put face down and nobody sees it i don't know but if it's beautiful if it's beautiful to me it might be enough they also talk about spending time as tech support so maybe maybe this is like hey how do i print this pdf oh boy instead of like hey can you help me understand that's why this product printer is not a task anyone enjoys yeah and i don't think anyone actually knows how to do that no yeah it turns out we doesn't matter how technical you are cannot be done maybe they're being like nerd sniped into someone is just giving them a technical problem and they don't understand it but they can't pass by not understanding it so they just like go and figure it out and they
Starting point is 00:02:47 feel hijacked like hey i can't figure out how to configure this printer can you solve it and they don't want to be like no i i can't i'm just a developer like yeah and then they spend two hours googling installing drivers and then i'm gonna choose to interpret this question a different way good choice i think you're right which is which is hey actually it is attacks and it is annoying when i have to pop up out of my stack you know i think if this is the case where it's hey, how should users view this thing we're building and what is it we're trying to accomplish with this part of the software? I think it's actually valuable to me as a coder also for understanding
Starting point is 00:03:28 what our users need because whether I'm front-end or back-end or building hardware, I actually need to know this if I'm going to do a good job because if I'm not using it, and a lot of folks work on software that they're not primary users of, I really need to have some way to have a model for what is good for my users and what's going to be really helpful in their lives absolutely I totally agree with that Brad you kind of mentioned this before when you were talking about the the give and take where if if you don't talk to the product people it can be really easy for non-technical people to design and sell solutions
Starting point is 00:04:05 that have pretty big technical constraints or downsides and and that's not a thing you want to get stuck with either like they just come back and they're like hey so the customer uh said they just needed this thing that can like look at this image and then interpret it into a space shuttle and you're like well uh i guess i'm talking to a google engineer so you're probably more okay with that than like we do that all the time yeah like oh that's that's the same everywhere uh we have all these and i think the thing is like needs to be a discussion like you know the you know folks on the outside have valuable info folks doing development have valuable info like we need to pull together yeah yeah absolutely that's an opportunity for you to get feedback as well
Starting point is 00:04:50 one other thing i was thinking of is meetings get a really bad rap and and lots of it is deserved but if you are worried about kind of getting interrupted all the time and tapped on the shoulder uh a meeting is not the worst way to solve that problem oh yeah instead of every time someone has a technical question they just come and bug you if you just have like a scheduled 10 minute meeting then you know you have to focus on this thing you know you can plan around it and then you can just get it done uh and that's kind of a way to batch up the interruptions office hours set it up so you can uh i know at this point my schedule it's not coding time i'm gonna get some coffee and yeah let's go get caffeined up and do this totally yeah
Starting point is 00:05:33 so i have a little story i used to work at a company where literally 90 of the staff were engineers or former engineers and our customers were engineers it was very technical and you know my manager was an engineer the ceo was an engineer and so as a result we didn't really have a strong sales or marketing team or any really because it was like oh we understand our customers it's no problem we don't need like ancillary support people and i worked there for enough years that I developed a bit of a prejudice against sales and marketing and basically anyone non-technical. And then I changed jobs to a more typical product development company that produces actual software for non-engineers, for pretty much anyone to use. And I encountered an amazing
Starting point is 00:06:22 sales and marketing team. And these people really knew their stuff about marketing and sales. And I was just blown away because prior to that, I thought, ah, I'm an engineer. I can do their job. I don't need to help them. You know, like I don't even need them. It's kind of what I thought. And then when I actually encountered a real proper professional sales and marketing team, I was just floored with how good they were at their job and how I'm like, I could never do that. And, and I, it really opened my mind to being a willing to like share information with these people. And, um, and I realized like they need information for me and I desperately need them to be successful and so it helped me to get into this mindset of like yeah i will take time with
Starting point is 00:07:00 you and explain technical stuff or whatever you need you know because i know you're contributing a hugely valuable uh part of our team yeah absolutely and you know some of this might be stuff you can help with like if if your sales marketing team isn't that great you might in a polite way explain some things you think could be done better oh yeah this engineer comes in hey guys i got an idea about how to trick your business yeah well do you think we've answered this question have we have we shed light on the i think we have i think there's probably more that needs to be said here like um i mean i think we've talked a lot about the mindset and how it can be hard but like and we've only talked about one technique for really making it better which is
Starting point is 00:07:47 try to batch these things into like a meeting where you have like a regularly scheduled time But what do you do when someone comes to you and they're like, hey, how do I click this button or how do I use this feature? And you're an engineer and you know there are channels for them to get this answer, but you don't want to be rude. Well, are there? Well, there could be a FAQ. If it's not all long-tail questions, it could be recorded in one place. Good idea. Maybe produce some documentation for them.
Starting point is 00:08:15 yeah not that people will go there if they know where you live and they've asked you a question before see yeah that's true that's the balance that i think is really important to strike because as engineers we sometimes like so far we've talked about it being annoying but sometimes we just want to be really helpful so people come to us with questions you're like yes i can help you with this and then they just keep coming back right they're like oh i know dave he always answers my questions and so i'll go to him um and so there is a balance to be struck there and i think producing documentation or having like a a help channel um where you know some means where people can actually get answers to questions without having to go directly to the engineers
Starting point is 00:08:51 every time um can be really helpful i think an faq is great idea for that and even maybe having like a designated helper on the team it's like okay this is your week to end to field questions from uh people outside of engineering this is also a thing i've seen done by some kind of tech lead role where um they they kind of shield the team a little bit more from interruptions and distractions and so part of their job is to know all the kind of technical stuff that's going on and also communicate that to other people i don't know if that's how it works everywhere but um and that doesn't mean that you can never ever like the engineers are these zoo animals behind the glass you can never talk to but but it can be helpful to have an expectation that there is
Starting point is 00:09:31 some defined role who deals with more of this stuff it's true but then it sucks to be that person really maybe maybe that person likes that kind of thing yeah that's true i think it's hard for them to grow them it's hard for them to have technical time to deep dive i kind of like the rotation idea better because you know everyone needs communication skills work we cannot be too good at it oh okay so it's just kind of a maybe i wasn't listening earlier uh so it's just kind of a role that someone takes on for a while yeah like maybe you've got a team of five engineers and you each take a week yeah that's cool so it's almost like on call but on call for the product people or the sales people our slot this week just here's yeah maybe have like a rotating
Starting point is 00:10:17 dock here's questions that have been asked here's what's likely to come up that's cool yeah and i think the faq is a great idea because it's like in addition to a rotation where you can like be the person who fields questions you can have like a write through cache of this faq where it's like oh you know this is already answered in our faq check take a look there and if it's not already answered guess what you're on the rotation so you'll be writing the answer yeah that's a great idea okay so to sum it up and answered yeah to sum it up there there's some attitude things where you can kind of work to develop more uh empathy for the product people and understand that talking and communicating will lead to better technical and product decisions and then there's some kind
Starting point is 00:10:57 of tactical things like uh batch up the the meetings have office hours have a rotation so it's not all dumped on one person have an faq hopefully some of that stuff helps yeah cool all right i will read the second question um this is from antonis he actually had a question the other week yeah this is a good job antonis double question i didn't realize that when we picked this but i recognize the name all right how do i keep up with new technology but avoid being sucked in by hype dude hype is all there is this is specifically about javascript frameworks right if it's hyped it's probably really good and you should just do it yeah that's true how could that many twitter thought leaders be wrong though really well that's how it works
Starting point is 00:11:45 with music right like it's it's the number one song so it's a good song it must be good yeah and you should switch to it uh so dave and i have dumb jokes brad had wise thoughts about this maybe we should hear brad's wise thoughts it it is you know i i may feel like the world is passing me by if i'm not looking at the latest and greatest thing you know like i'm i'm on angular one or i'm on backbone or i'm on you know something that isn't the latest thing right now i you know i think there's there's a new technology every day because these things are fun and semi easy to write to get started i think the the important thing for me if i'm thinking about like put my career building hat on what what do i want out of this well obviously i can't go adopt
Starting point is 00:12:34 every new framework every new library whatever tool that it is interesting i think though to figure out what what kind of problem are they trying to solve and what what are the patterns inside it that are interesting because it might mean that those patterns are attractive enough the infrastructure they've built around those patterns are valuable enough for me to want to switch which is a giant cost often alternatively it might be that these patterns are something i could use in the current stack that i'm on and you know i think it's the the that thinking that's replicatable across whatever current technology that i'm using that's really valuable to me because those are the skills that that i grow with over time as an engineer i really like that
Starting point is 00:13:23 thought so you're saying you look at like elm for some example and it has all these cool ideas and and some people might look at it and then look at their code base and be sad because there are all these things that are in elm that you can't do and you're saying uh and then it's it's tough to just like throw away everything and rewrite it in some new framework and you're saying look for the things that you can take from that and apply it to your to your code base instead of just say, like, boy, I sure wish we were using this other thing. Sucks we can't. Yes.
Starting point is 00:13:54 I really like that, too. I had a friend a few years ago who decided to get a master's degree in computer science. He had been working for, like, 10 years. And talk about, like, the ultimate problem here because it's like you're learning all these new concepts and you want to put them in place, but you can't. Now, master's degrees aren't really known for new technology, but it's, like, the same kind of problem. And what he told me was like six months or to a year after he got his new degree, he says to me, you know, I can't point my finger specifically at like any particular technologies
Starting point is 00:14:23 or tools that I'm doing differently now, but I have taken principles from my new education and applied them. And he showed me a few examples and I'm like, that is so cool. And maybe that's the same kind of thing we should be doing with new technologies rather than saying, oh man, I got to get on this new whiz bang tool. Instead, understand the tool, figure out what makes the tool great. and then see if you can build that into you instead of building it into your product directly.
Starting point is 00:14:48 Yeah, there's a saying about, like, given semantics or syntax, what will people have opinions and argue about? And it's always about the syntax. Where the semantics are really the interesting thing because it's what allows for a good architecture or not and it's what allows for me to understand what I'm trying to express or not. And, like, JavaScript is famous for being able to be flexible with semantics and allow me to take on these new idioms
Starting point is 00:15:16 really in whatever particular library I'm in. So there's this concept called fatigue that we hear about a bit in the JavaScript community anyway. And I know Brad leads the Angular team or manages the Angular team, so we're talking JavaScript a little bit. But let's talk about that because I've actually been feeling that a little bit lately where my team had just begun adopting Redux, which is this new hot framework for managing your data in your front-end web app and then
Starting point is 00:15:47 suddenly this new thing just hit the scene called mob x and it's like everyone's talking about how awesome it is including the author of redux and i'm just like oh man here we are again yeah and so i think it's important for you to just be like look no like okay i've been on this merry-go-round like you know i've gone around the block four times now no let's just stick with the tools we have and see what happens you know build there are you familiar with the the hedonic treadmill or hedonic adaption i don't think so that sounds like a five dollar word it is a five dollar word i'm about to make myself sound so smart it's this idea that uh humans get used to things so you have a small crappy apartment you move into a really nice apartment and it briefly
Starting point is 00:16:36 makes you happier but eventually you just get used to it and then you're not really any happier in the absolute you're just like your apartment is nicer but day-to-day experience is is about the same and i wonder if there's that same kind of thing in technology too like you you change to some new thing and maybe it actually is like in some absolute sense better um at some point you just get used to it and then you don't notice that it's better anymore and then you keep looking for the next better thing oh interesting interesting yeah i think we're all guilty of that it's like new is fun right new is perfect also because i've never run into the real problems in it yeah yeah yeah yeah no one has written the angry blog post about why i'm leaving mob x because it
Starting point is 00:17:27 has all these horrible things because no one's left it yet it's only a few months old that's that's that's a couple years away still there's also so there's the the kind of positive side where new is really attractive and then there's also this negative side where it can feel painful to be left behind yes like the world has moved on without you yes and there's a very real cost to that too because if you are using technology for example on the web that's 10 years old you will have a very hard time attracting and retaining engineers for your team yeah that's just how it is but also i mean brad talked about backbone or angular one i bet there are just gigantic piles of teams still writing backbone it's just that it's very well understood and and
Starting point is 00:18:11 people aren't talking about solving like crazy new problems in it anymore look if you're if you're in finance you're still likely writing cobalt yeah yeah yep yeah so there's there's kind of a disconnect between where the hype is and where the people actually are yeah and the hype definitely leads the adoption by a huge margin so you can feel like oh man i'm behind i'm not on mob x yet no one is even using redux yet people are just talking about it a lot but a tiny percentage of people writing react apps i bet are using redux or or angular apps or whatever yeah yeah so some of it is recognizing that uh you're you're not behind really people just like to jump ahead the other thing that this hype uh cycle does to your mindset is it makes you focus on the tools
Starting point is 00:19:01 your yield that you're using to build the valuable things you're building instead of the valuable things you're building and i think as engineers we often take our eyes off that prize you know like brad was talking about earlier like we're in this value-driven state or at least we should be instead of looking inward and saying, but yeah, but the screwdriver I'm using to build this tool or this product is a crappy screwdriver. But it's like, think about the end user. They don't care what technology you're on.
Starting point is 00:19:28 Try to take more pride in building something awesome for your end user than you do in the tools you use to build that thing. Totally. I mean, it's so easy to get in the trap of, I built some great technology, and now I need to find a problem for it to solve. We do that here at Google.
Starting point is 00:19:45 i mean we love technology it happens yeah it's it's also uh if you jump from new thing to new thing it's hard to get deep into a product kind of going with what dave was saying if if you build a to-do app in every new framework it's hard to really like polish and make that the best to-do app ever because you have to throw it away and start over with every new every new thing that comes out so um i think you can build a lot better and more solid products by diving deeply into something let's talk a little bit about how you actually take time to learn about new tools and technologies and really assess them instead of just reading tweets about them how do you do that you know i i someone i used to work at this company called next computer and i remember
Starting point is 00:20:36 there was this guy named Alan Markham there. And he made a point, this was, you know, I had been at work for a year 1991. And he said, hey, look, as a software professional, part of your job is to go be learning new things. Go be building on new technologies, learning these new patterns. Because if you're not, you're actually not really a software professional you're a coder's assistant oh assistant to the coder which yeah like because
Starting point is 00:21:12 you know if i don't know enough to think about architecture and design and have a whole bunch of techniques i can use then i either just implement with rudimentary skills or there's someone else at my company who is dictating that stuff and i don't ever get to grow into it I think we should have a lot of motivation to go do this. Enlightened companies will give me space to do it and actually have a culture of sharing knowledge. Maybe I could bring that enlightenment to my company. If not, I do have to do that on my own.
Starting point is 00:21:48 I have to make space to go do it somehow. Open source projects are a nice way to do it if there's things that I can go contribute to. But it is hard. it's hard to make space and have a balanced life is that i think a lot of oh go ahead no no you no no no you okay is that something that google explicitly does i know there's a bunch of talk about 20 time uh how how do you do that is that a team by team thing or is it a company-wide thing or we used to have 20 time and what what we found was that uh you know we used to have this thing
Starting point is 00:22:23 called the Project Database Insight Google. And at some point, there was two projects for every engineer. And so you can assume that they were all great, but no, they weren't. That's huge. And so we don't really have formal 20% time, but we still have this culture of learning new bits and sharing them with tech talks. And I think if you approach your manager and say, hey, I really want a week to go investigate this new thing, it's pretty easy to get. but the model i like better is where we have a sort of team-wide like innovation week or hack week or something where in a group i can go explore things because i feel like i get a lot
Starting point is 00:23:02 further if i if i try to build something bigger with a team sure yeah that's uh that's what we do at my current company there's a week every quarter where the whole company just just does whatever they want and you have to kind of show something off at the end of the week so you can't just go play badminton all week but uh badminton week yeah the constraints are badminton week are very there aren't very many constraints i guess you just get to pick some problem try and build anything to solve whatever problem is interesting to you and it is are they supposed to be related to the company's mission yeah they're supposed to be related um but that's a pretty it it turns out there are a lot of things you can do and then convince people they're
Starting point is 00:23:45 related to the company's mission it's not a very constrained thing to use new technologies during this time you can some people do some people are more interested in exploring product focused things where they're like just just trying out some new solution and some people are interested in exploring technical things but it's up to up to the whoever's doing it yeah i think it's good it also back to the earlier question it puts the tech support stuff on pause uh because hey we're all focused on this new thing my meetings stop it makes space for me okay there you go yep so that's like an extra answer to the first question just do hack week you won't have any questions anymore so when you're looking at new technologies what kind of metrics do you use to actually
Starting point is 00:24:32 determine is this going to be better than what we currently have i don't think there's any way to No, I think like empirical evidence is the only way. And also maybe don't judge a new technology too early. Just given how much Angular 1 sucked at the beginning. Like people always say, hey, well, Angular just really appeared on the scene and went crazy. And I think they didn't see the first three years of it where it was unusable and horrible. That's a good point. That's a good point.
Starting point is 00:25:04 um i i also have similar experience with the early reaction to react which was like xml in my javascript and then like on click handlers everywhere and and there are a lot of things that um look horrible because they remind you of some horrible thing but it's hard to understand why it's different now at the very beginning you just see see something that looks like a pattern that sucked before and you assume it sucks now have you ever heard of a company that adopts a new technology after doing some kind of empirical measurement on it to to prove that it's actually better in some way no what they do is they build a spreadsheet then they they put numbers and they already the person who's building the spreadsheet knows the answer they want to get to
Starting point is 00:25:48 and so it's always cooked yeah there's no objective evaluation method not really well you see react has five stars in this spreadsheet yeah i added the columns up look obviously you know they say the hardest part about being data driven is finding data to validate your assumptions no i have also never heard of it and it makes me wonder like why are we always chasing these rainbows you know like why are we why is there so much hype when it all just comes down to like well i like it well i think it's because there is no objective evaluation criteria and so then we fall back to well how could i move this thing forward and it's it's help yeah i i think new
Starting point is 00:26:34 technologies at a company in my experience seem to be driven by evangelism much more than by absolute empirical data because like brad said it that's hard to come up with someone just likes it and they're convincing and then other people like it and become convinced so it comes down to marketing yeah i mean there's some things you can do like you could build a benchmark but i've never seen a benchmark that actually plays out at macro scale to mean that much so until you really build the real thing and put it in production it's hard to know as a leader on on my team what i have done and this is actually really hard to do up front you can only really do it after you've chosen to adopt a new technology is i ask the developers
Starting point is 00:27:18 how happy they are with it and basically if i get a lot of nods and smiles and then i think it was a good technology choice and if i get a lot of like you know face palms and and epic size then i think it was a bad technology choice to another problem which is developer happiness doesn't always correspond to getting business goals done like what if they're really happy reinventing wheels because they're on some new technology that doesn't have uh like a uh an express clone yet or a Sinatra clone or whatever, then they get to be the person that writes that and it feels really good.
Starting point is 00:27:53 That's a good point. But that's a solved problem already in many other technologies. So, yeah. I live in fear of making a decision. Yeah, but that old one didn't do the thing I care about exactly right, so. Yeah.
Starting point is 00:28:08 I'm going to go rebuild the math.round function. Yeah. Math.bradround. It's an upgrade. It's so round. So I want to talk about one more thing here. So I think we're pretty much coming down on the side of being on the front, the bleeding edge of the hype cycle is a really bad place to be.
Starting point is 00:28:31 And I'll just give you an example of why that is. So at my company, we are pretty aggressive, not the most aggressive, but we're pretty aggressive about adopting new technologies. And as I think back over the last four years and count the major patterns in our web front end, there are literally four and maybe more um and this is one product right so as a web front-end developer on my team when you jump into a piece of code you might have to ramp up on one of four very different technologies depending on where you land in the code base and that's because it's actually really hard to thoroughly adopt a new technology when you actually have a business with
Starting point is 00:29:09 real requirements you know and so i think it's an important thing to ask yourself if you're considering adopting a new technology is as a business or a team can we afford to fully adopt this technology or are we going to end up with like a melting pot of lots of different technologies and tools in our app yeah it's very expensive to to do a switch or to fully adopt something if you think end to end all of the implications yeah absolutely dave you you said it's bad i i would be a little more i'd hedge my bets a little more and say it's it's expensive um but someone is doing it right i mean every new technology technology some company jumps on it and then writes all these breathless blog posts about it and then they become like the the that technology
Starting point is 00:29:55 company and there are benefits to it uh like recruiting and and marketing and and then maybe some technical ones if if the technical stuff turns out to be really solid but it definitely is expensive yeah i agree with that okay do you want to sum up our uh our thoughts on this question dave uh new technology is awesome you should adopt all of them if they're hyped they're good do it okay did i get it right uh brad do you want to sum up our thoughts on this question So I think the things that I would care most about is, for me, I should take my own education in my own hands. And if there is something new and seems at the top of the hype stack, I should not necessarily think I need to adopt it, but I should go learn what's behind it. What problems are they trying to solve and how are they approaching it?
Starting point is 00:30:54 I think that's really solid advice. Fundamentals. Semantics. I love it. Okay, I think that wraps up our questions for today. Brad, if people like the stuff you say and they want to learn more about you or hear more from you, how do they do that?
Starting point is 00:31:10 I am on Twitter, Bradley Green, B-R-A-D-L-Y. I'm an adverb, green. And I actually talked a little bit about this at an ACM conference in New York a couple weeks ago where I was talking about engineering teams and the power of being inclusive. and that should be hitting youtube in a couple weeks i'll share it on you on twitter cool and as always if you like what we're doing here if you can rate us on itunes that helps us
Starting point is 00:31:41 out if you can tweet about the show that helps us out a lot we really appreciate your support and if you have questions that you would like us to answer direct message or twitter twitter us direct message us or tweet us at soft skills eng and then we'll throw them in the queue thank you so much for coming brad we really appreciate the wisdom that you lend to us oh it was super fun thanks and we will talk to y'all later bye all right thanks everybody

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