Transcript from the "Business of Technology" Lesson
>> Let's talk about the business technology. So quick question, anybody in the audience, what does your company do?
>> We sell hotels, cars, lights and experiences, like tours and activities and stuff.
>> Okay, and how do you make money?
>> We sell it for more than we buy it for.
>> Spoken like an engineering manager, yeah. Any software engineers out there? What does your company do?
>> Third party logistics.
>> How do you make money?
>> Yeah, we hook up people who need to ship goods with people who can do the shipping and then we cut a little gravy on that transaction.
>> [LAUGH] Gravy. Let's start using that, a little bit of gravy. I like that. But the truth is a lot of software engineers, and when I say a lot, I mean mostly me. I had no idea how the company made money, I didn't care. It was all about the code, the code and perfection and arguing on the Internet over frameworks and IDEs and all these things, that was important, right?
[00:01:05] Getting PRs done, closing bugs, seeing how many tickets I can close in a month, shipping, shipping products, that was the important part. And that's how I thought about things for a very, very long time. I code, something happens in the middle, it doesn't really matter to me. They make money, they pay me more next year cuz I did a great job and the stock goes up, and so on and so forth.
[00:01:28] And that's how a lot of software engineers view the world. They never think, well, what happens in that part two, the biggest part of the equation? I was very myopic, I thought everything was about the code, that's it. Nothing else. That's the most important thing. And it is, like I said, if you're early in your career, focus on the code.
[00:01:48] It is about the code. It's about your skills and building that up. But as you grow and grow and grow, and it doesn't matter which career ladder you go on, people in management or technical, you will have to understand that software engineering and technology is a business. And that has such big impacts on your life and you probably haven't even thought about it.
[00:02:05] At least I hadn't for a long time. So let's talk about products, any products, probably some sort of software. What does it take to deliver a product? Well, you need someone to sell it to, right? We can all come together right now and say we're gonna build the Frontend Masters AI app.
[00:02:24] And it's supercharged and it's awesome. Who cares? Who's gonna buy it? Who are we gonna sell it to? How are we gonna sell it? How do we know who to sell it to? Where's the money coming to pay us to actually build this app? When it breaks, who are you gonna call?
[00:02:43] Are you gonna be customer support? We gonna hire more people if we're gonna build this really awesome application. We need computers and technology and networking and VPNs and firewalls. We need documentation, we need people to translate into other languages. We need lawyers to make sure our product is legally defensible and we own it.
[00:03:02] But what else? I'm probably missing some, what else does it take to deliver products?
>> It's a pretty good list, yeah, I think.
>> [LAUGH] That's a first. The point here, there's a lot of people that it takes to SIP technology SIP software that you probably never met, probably never will meet, and me when I was a software engineer I never thought of these people.
[00:03:27] I was like marketing [SOUND] they didn't do anything. What do they do? They make a good copy and they make ads, like what? Code, code, it's all about the code. Lawyers, think, what do I need lawyers for? Look at this code, it's beautiful. I don't need a legal team or contracts.
[00:03:46] And that's fine. If that's your view of the world, that's cool. But the truth is, there's a lot of people in between that code and then the money part that's paying you your salary. It is good to think about it from time to time, about the whole business of software engineering.
[00:04:03] But even when it comes to, let's say, building a product, yeah, you're writing code. As a front engineer, I was writing code. But who are all the other people involved in building a product? Well, yeah, you need the UI. People gotta interact with something, okay, unless you're selling command-line products, which you can argue is UI as well.
[00:04:23] You need designers. There are some people who are good at design. I'm not, so I definitely need designers. You need backend engineers doing the APIs. You need QA engineers to make sure your code didn't break. Of course not, and you write excellent code. Yeah, of course. But just in case, you need at least one QA engineer.
[00:04:41] You need infrastructure engineers to power all the servers. You need someone to run the database. Fun, fun facts, 90% of the code you write is just reading and writing from database at the end of the day. That's just the truth of it. So you need a database engineer.
[00:04:56] You need technical program managers. If you're building a really big project, you gotta have someone herding all these cats. Are you gonna do it as a software engineer? Probably not, you probably don't want to. You need SREs. Make sure your app stays up. Make sure your website stays up.
[00:05:10] The people that are on call 24/7 365. You probably haven't thought about, but there are, if you're building a big enough product, there's a whole team of people making sure that the code you push doesn't take down the entire website or application. You need product managers. Underappreciated role in technology.
[00:05:28] You're building code or you're building software, who told you what to build? Maybe you came up with it. How do you know it's the right products? How do you know who your customers are? How do you know what all the features you should build? What's important, what's not?
[00:05:41] You need product managers. If you're a really big company, you need prototypers, you gotta be able to iterate through designs really quickly. Of course, you need engineering leaders. For those of you who have been in college for CS, or have taken any sort of course, a group project on software engineering, what was your experience there?
[00:06:02] Say you had five software engineers in a room trying to build something, what happened?
>> Product look really bad.
>> The product look really bad, yeah.
>> Oftentimes, I've found in group projects like that folks go off on their own to do something really cool.
[00:06:26] But also not really aligned with what everyone else was doing, and that can make bringing it back together challenging.
>> Aman Dimitri, he said, I've seen many startups fail because the idea was really good, the product was fine, but there was no one to buy it.
>> Yeah, it's a good observation. Silicon Valley is littered with examples of really good engineering, it's beautiful. The code is extensible and accessible. But they ran out of money because they they couldn't actually agree on like what the final version look like where they shipped it. And they didn't hire any any business development people, any salespeople to actually sell to anybody.
[00:07:17] It doesn't matter how elegant your backend is if nobody's around to see it.
>> Yeah, I built an entire rental listing engine, search engine, and all this and then when it came down to selling it I had to sell to property managers. And property managers were not the type of people that I liked to deal with, they only cared about cost-cutting and saving money.
[00:07:42] And so it was like, I didn't actually like the customer. [LAUGH]
>> So the person I was selling to it turned out mattered. So, yeah, my future businesses from there, that was the first thing and it was like, who do I actually sell to? And do I like them?
[00:08:00] So in this case, I love working with developers. It's great, but yeah, learned that mistake.
>> [LAUGH] It's a good insight. And then one that's hard fought. You had to go through a lot to figure out, I don't actually like selling to people. I don't like talking to people half the time, not me personally.
[00:08:18] I love talking to people, but there's a lot that goes into products. And there's a lot of other engineers around you that a lot of times people hadn't thought of and considered. Yeah, I know maybe one person, maybe another team, but there's a whole bunch of other teams.
[00:08:34] My favourite example is Windows, the piece of software, maybe the most widely used piece of software in the world and one the most people lined. But think how complex building something like that is, how many thousands and thousands and thousands of people it took to ship Windows, or android or any major piece of technology that we use, thousands of people went into that.
[00:08:57] And it's something, especially in my early days of software engineering, I just didn't even think of. I didn't even consider anybody else around me. But there's a lot that goes into our products. So, you need engineering leaders. You need someone to corral the people together, say like what are we doing?
[00:09:14] Who's getting lunch today? How are you getting paid? Are you taken care of? Do you have the right software? Do you have the right laptop? So many things that go into software engineering. I think the managers and leaders are probably easily forgotten because we're not directly writing code most of the time.
[00:09:33] And it's easy to take it for granted. And it's something I do. I'm like, yeah, of course, my manager just exists. Kind of like my kids just assume that there's food in the refrigerator all the time.
>> It just magically appears. They don't even consider, I had to work for it, go to the store, make sure it's the right food and all these other things go into it, it just appears.
[00:09:49] And that's the perspective of a lot of software engineers. Yeah, managers are just there. You always have one, always will, great, but there's a lot more to it than that