In spite of the prevalence of software engineering nowadays, I still have many friends and family members that don’t know what it is that I do. So, the following is a made-up conversation to hopefully help clarify what it is that I (and many other web developers/software engineers) do.

Friend: “So, what is it that you do nowadays?”

Me: “I’m a software engineer”

Friend: “What exactly does that mean?”

Me: “It means I write computer code to build software. I don’t deal with computer hardware, but I help build the applications you use on your laptop, phone, tv, and so on. Specifically, I help develop web, or internet, applications.”

Friend: “So, do you design websites?”

Me: “Well, I help write the code for web applications, but I don’t design how it is supposed to look. For that, we have designers, usually called user experience (or UX) designers.”

Friend: “What’s the difference between a web application and a website? And what about web pages?”

Me: “The answer is kind of complex. ‘Website’ is a general term for a collection of web pages. A ‘web page’ is the content shown at a specific URL. As an example, your Facebook Profile is one web page and your Facebook News Feed is another web page, but both of them together help make up the Facebook website. A web application can either be an entire website or a single web page which offers complex interactivity to a user. So, Facebook could be considered a web application as could Twitter, Google Docs, Amazon, and so forth. However, things like a college website or many blogs, are not usually considered web applications since they don’t usually involve complex user interactions like sending messages or sharing content.”

Friend: “Okay, I think that makes sense. What does user experience mean?”

Me: “User experience is a weird phrase. It’s self-explanatory once you understand what the two individual words are referring to. The term ‘user’ simply means the person or entity you’re expecting to interact with your application. The term ‘experience’ refers to the experience being presented by the application. Therefore, user experience is the experience you’re presenting to your users.”

Friend: “Okay…that’s still kind of confusing though.”

Me: “Well, let’s use an example. Remember when Facebook updated the design of the News Feed?”

Friend: “Yeah, that was annoying.”

Me: “What we could say is that they changed the user experience.”

Friend: “Ah, I see.”

Me: “So, user experience, or UX, designers are the people responsible for figuring out what the best design is to give users the best possible experience when using the application. It’s a complex and nuanced field, but for the most part it boils down to what users see in the application and how they interact with it.”

Friend: “But the changes Facebook made didn’t seem better to me.”

Me: “Well user experience is highly subjective. One thing we do frequently is collect data about how users use the website to see if changes are actually making things better. So, while you may not think the changes are better, the data we collect may say otherwise when looked at from the perspective of all the users.”

Friend: “Sounds complicated. But, back to what you do, does this mean you could make me a website for this app idea I have?”

Me: “Totally, but it’ll probably cost you several thousand dollars or more and you’ll likely need to hire additional people.”

Friend: “Why? It’s just a website!”

Me: “Well, the answer to that is also complex, but it comes down to the fact that making websites of all kinds, and web applications especially, requires a lot of specialized skills. The supply of people with those skills is really low compared with the demand for those people. You can get a cookie-cutter website or application using a pre-bought theme, but the chances of that providing a compelling experience to your potential users is slim.”

Friend: “That makes sense. I guess I don’t really understand how websites are built; I always assumed it only took a few people.”

Me: “That’s not uncommon. The prevalence of applications and the fact that they’re easy to use contributes to the misperception. It’s also likely a by-product that mobile phone apps have always been marketed as ‘not that hard’ to create. This is true, but in order to have a successful and compelling product it is tremendously difficult.”

Friend: “Why is it so difficult?”

Me: “Well there are the reasons I mentioned before, but beyond that there are a myriad of really difficult challenges to solve when creating a successful application. You’ll need software engineers, designers, product managers, business partners, and more. Then there is also the oft-cited challenge of ‘scaling’ an application.”

Friend: “Yeah, I’ve heard the phrase ‘scale’ or ‘at scale’ before, but never really understood what it meant. Can you explain it?”

Me: “Scaling means different things depending on the context but they all boil down to this idea of accomplishing tasks under increased demand. For example, remember all the issues people experienced with Pokemon Go when it launched?”

Friend: “Yeah, it was pretty rough getting connected the first time I played.”

Me: “Well those problems were mainly due to the fact that they went from a small group of beta testers to the same number of daily users as Twitter in a matter of days. In other words, they had trouble scaling their network.”

Friend: “So scale really just means lots of people?”

Me: “Sort of. As I said, it’s really about demand and, in general, more people means more demand. Anyway, those are some of the issues that companies face when developing software.”

Friend: “Sounds complex, but thanks for the taking the time to explain things to me!”

Me: “No problem, if you ever have any more questions, feel free to email me.”

Seriously, if there is anything else you think I should mention or elaborate on further in this hypothetical conversation, let me know!