UMBC Mic'd Up

The Criticality of Ethical, Reliable, and Beautiful Software Engineering

June 24, 2022 UMBC Mic'd Up with Dennise Cardona and Dr. Mohammad Samarah Season 2 Episode 31
UMBC Mic'd Up
The Criticality of Ethical, Reliable, and Beautiful Software Engineering
Show Notes Transcript

Software is used in every aspect of our daily life. From the moment we wake up to the moment we go to sleep. Software is that invisible writing that connects us to ourselves and others and the world. Software is not just about a window or a page on the screen; it's about the interaction with hardware, and the contacts of users and environment. The world needs qualified software engineers who have a passion and a drive to make the world a better, smarter place, using ethics as a guiding principle. 

If you'd like to learn how to make an impact through software engineering, check out UMBC's Software Engineering graduate programs.

About Software Engineering at UMBC:
UMBC’s Master of Professional Studies in Software Engineering and graduate certificate programs provide an education based in software engineering knowledge, technologies, and skills that are widely sought after in today’s economy. After successfully completing these programs, you will acquire strong competencies in modern approaches to software development, implementation, quality assurance, and software testing. In addition, you will gain increased exposure to coursework in leadership, communications, management, and ethics. 



Dennise Cardona  0:00  
Welcome to this episode of UMBC Mic'd Up. My name is Dennise Cardona from the Office of Professional Programs. We are joined by Dr. Mohammad Samarah, professor and graduate program director of UMBC's Software Engineering graduate program. We hope you enjoy this episode of UMBC's Mic'd Up. Welcome Dr. Samarah. It's so wonderful to have you here on the podcast to be able to talk about a great field that I know you're very passionate about, because we've spoken in the past about it. And that is software engineering.

Dr. Mohammad Samarah  0:31  
I'm delighted to be here. Thank you so much.

Dennise Cardona  0:33  
You are welcome. Yeah. So let's just get right into the conversation of software engineering. What role do you feel software engineering plays in our everyday lives? And in the future of business?

Dr. Mohammad Samarah  0:49  
Yeah, that's a great question. You know, software is used in every aspect of our daily life. From the moment we wake up to the moment we go to sleep. In fact, most of us when we wake up, we touch software, we touch these apps. Now, that gives us an alarm clock. And these apps are powered by software, we go into our kitchen, perhaps and we may experience software, again, in an appliance, in a toaster that knows you know, how crispy we would like our toast to be. In the meantime, we may be checking to see what's happening with our electric vehicle. Is it being charged? Is it fully charged? Through an app on our phone, that's, again, powered by software. So really, if we look at what's happening with software now not only entered every aspect of our lives, but it's touching every person, in every situation they're in, in every context. And the people that it's touching, broad spectrum, everyone in the world from babies who are nine months old, to folks who are advancing their age, and their 90s, right. And you see people throughout the world, for the first time ever experiencing software, on their smart devices, or mobile devices. These devices are smart, because they'll be contained software, you take the software out, and they're not really smart anymore. So now, you look at business, every business uses software, and consumes it, and also produc es it in terms of apps, or insights, or data, and any business who's going to advance whether they are small or large, they will have to take advantage of software, and make it part of their future. So in many ways, software is that invisible writing that connects us to ourselves and others and the world.

Dennise Cardona  2:51  
That is a powerful way to put it, a powerful analogy. You know, I laugh when I think about the evolution of software in my own life. So when I was in college, what I do for a living now, as a podcast host as a video producer, a blogger, social media manager, all of those hats I wear, those weren't even things that were in my mind at all. When I was in college. I mean, I was working off a DOS computer at the time. That's what I was learning in my computer classes was DOS. Windows wasn't even a thing yet. So I am aging myself here. But it's really fascinating that there is this whole field that is still emerging, because it's constantly changing. Software is constantly changing technology. And the demands that people have, the world and businesses have with software are changing constantly. And 30 years ago, what what was not even conceived is just everyday life at this point. And like you said, cell phones, smartphones, I mean, I use my app to wake me up in the morning, I use it to fall asleep at night, listening to guided meditations. These things were not even a grain in in thoughts in my mind or the lives of anybody who was alive, say 30 years ago. And so it's fascinating to see. I'm curious what you think the new the next phase the evolution is going to take? Where's it going to take us? Where is the software world taking us?

Dr. Mohammad Samarah  4:19  
Right? Yeah, that's a great analogy. You bring up DOS, you know, for our viewers, that's the Disk Operating System. So why this is important, the disk operating system, the software is contained in this plastic vinyl disc. And that was it. It lived there. It could not move elsewhere. It could not affect much more than the person who's interacting with that particular computer. But now software is everywhere, including on the air, you know, things get updated and how does it get updated? There are bits which which are software running around. So really the next evolution of software is that the interface, the computer will become invisible. And the boundaries will be blurred between what is software, what's human, what's the contexts. Because ideally, if we are successful, software is going to serve us to become better and achieve our goal and bring humanity to the next level. And in many ways for it to be in our face is not ideal, it needs to disappear. So the computer, the machine will become more and more invisible. In many ways we have not yet imagined.

Dennise Cardona  5:37  
Wow, that's so powerful. In your opinion, why is software eating the world?

Unknown Speaker  5:44  
Well, Software is eating the world and still is eating the world. You know, nowadays, we talk about these products, we call them software intensive products. And those products have software as a significant component and as an advantage, and a differentiator. And the Software is eating the world because now software is not just controlling the hardware, or the machine, but it's also controlling the contacts and the environment where the user was working and interacting with it. And we can see that in medicine, we can see it in safety, we can see it in transportation, in children development, health and fitness and the list goes on. You know, if we look at a very popular example, transportation and the automobile industry, for example, we ask ourself what's happening with electric vehicles, versus traditional internal combustion engine vehicles, sort of EVs versus I says, often, we put it, we see software, controlling these EVs, electric vehicles, more and more and more. In fact, many people argue that software is a bigger component in an EV, than hardware. And so I believe there was an article in the Wall Street Journal not long ago, I believe it was in November 2021. And it argued that your car will become more and more like an iPhone than just a traditional car. Now cars, even the traditional cars have a lot of software in them, in one estimate, about 150 million lines of code, that's a traditional car. So the an electric vehicle, will have a lot more than perhaps double that. If we compare, you know, the actual hardware inside an electric vehicle versus a traditional car, you know, perhaps, say, a Ford Focus may have 300 chips in it. But an electric vehicle from Ford may have 3000 chips in it, well, what's going to power those chips is software. So this is just one example, in transportation, where Software is eating that domain. Literally, the manufacturers are in an arms race, not just to produce EVs, but to acquire software engineering talent, because there's a shortage of software engineers, who are able to understand this kind of big picture. The software is not just about, you know, a window or a page on the screen, it's about the interaction with hardware, and the contacts of users and environment.

Dennise Cardona  8:44  
Gone are the days of being able to fix your car in your driveway. I mean, I think about I think back to when I was a teenager, and my father would something was wrong with one of the cars that we had in the family. And he was under the hood. And he was, you know, rolling underneath the bottom of the car and fixing it for us. And I remember when cars became started to become new, he was like, I can't fix this anymore. I can't do it anymore. I've got to send it to the mechanic. And so that's just another example of how software has changed life as it used to be back when things were much more hardware centric, I guess. So there's a way to put that. Now, let's talk about the traits of software in that. Why does software, in your opinion, need to be ethical, reliable, and beautiful? And what will happen if it isn't that way?

Dr. Mohammad Samarah  9:37  
Yeah. So if we look at software, Dennise, it's making more decisions in more situations now than ever before. Software is able to make us make choices to marry someone. It controls our credit worthiness. It may tell us to go outside or not. It controls not just what we buy, and what we purchase, but who we are, in many ways in many situations. So in order for software to start serving its purpose being a tool for better humanity, we have to first and foremost start with that question is the construction and the architecture, and usability of the software created in an ethical way? Is the software here to maximize profits for its creators, or is it here to maximize our purpose and goal in life. And in order for us to achieve that goal, not only we have to have as a as a value and a principle, we need to bring people who are diverse from every corner of the globe, from every background, and have it be part of the software engineering profession having to be part of software engineering research. Because only with those diverse perspectives, we will be able to ensure that the software we're building is ethical, is here to serve us rather than the other way around. Now, software is doing many great things for us. But there are many gaps and many shortcomings, and many issues that are brought about by our software intensive world. And so we want to correct that. But in order to correct the course, I think we have to go to first principle. And that is, we start with ethics. Beyond that, you know, the software needs to be reliable, it needs to be dependable, it needs to be safe, it needs to be lasting, and it needs to be efficient in operation and cost. And again, we can only achieve that by bringing diverse perspectives and backgrounds into it. And thirdly, it needs to be beautiful, not just to look at and interact with, but simple to use intuitive, we need to be able to maintain it in an efficient way. Oftentimes, when we talk about beauty of the software, it's not just the external beauty, but also the internal beauty, the costs of maintaining software is huge. So all of these things come together. You know, oftentimes, when we build software, we never talk about ethics, as a first principle. I myself built many applications and information systems, both in the industry and for nonprofits. And even those contacts, ethics were not perhaps we were we thought about it as a second or a third tier principle. But it wasn't the first principle.

Dennise Cardona  12:48  
It sounds like with with software, the emergence of software, the workforce, there's a huge demand for people, professionals to be able to take on this new adventure into creating, maintaining and making sure that software is ethical, reliable, and beautiful. And that being said, you know, when it comes to training, comes to education, when it comes to education, when it comes to professional development, it's really important. And I know that UMBC has a graduate program in software engineering. But there's also some non credit courses for folks who want to learn more about software engineering. And I'm wondering if we can talk a little bit about those non credit courses that are available and how those courses may be able to help someone already in the workforce, be able to get their company ahead or give them an advantage in a competitive environment?

Dr. Mohammad Samarah  13:43  
Most definitely. So we offer several courses. One of them, for example, is advanced software engineering. And so really, the objective here, if I'm a professional seeking to take a non credit course, is for me to get a window into modern software engineering and the advances in software engineering and how I can bring those back into my office, my workspace and take myself, my team and the company to the next level by creating more meaning and hopefully, money will follow. So for example, the advanced software engineering course, we teach students how to build a modern software application. And by modern we mean an application that serves a user and application that's ethical and reliable and beautiful. And we go through the entire lifecycle of software engineering. So oftentimes when people talk about software engineering, they think it's about coding, just you know, sitting on your computer and cranking out code, one hour after the other day, day in day out. Well yes, there is coding, but that's one part. The most critical part is to understand the problem. So I say that software engineering is about understanding, you have to understand the user, you have to understand the context and the environment, in order to create an application an app that people want to use, right, that killer app sort of term that we use, right? It has to be a value, it has to fulfill a need. And it has to do it in a way that is modern, that is efficient, that is meaningful. So in this course, we teach you how to do that. In fact, the the term project starts the second week into the course. Because create meaning, I'm sorry, to break the news, it's not easy. There are no shortcuts, has to be deliberate. And you have to work at it. One week after the other, we don't wait until the last two weeks to say, oh, there's a term project, by the way, go at it. I'll see you in two weeks. No, after the add and drop deadline is over, we assemble the teams, and they go working. And what we want to do is solve a real world problem. And create a solution for it by understanding the users not necessarily how we want it to be solved, but understanding the users and bringing our own perspectives and experiences into it. So that's just one example of one of the courses that someone could take as an uncredited and bring it back to their company or nonprofit or their organization, or take it and run with it and start their own company, their own startup and change the world.

Dennise Cardona  16:32  
And change the world. I mean, that's such an applicable an applicable course, it sounds like where you're going to be able to take what you're learning in the classroom on Tuesday and bring it to work on Wednesday and really make some great strides in the in the work that you're doing. So that is really great for those individuals who want to make a difference and want to make a mark in their professional career as software engineers. Now what in your opinion, makes the UMBC software engineering graduate program different from the myriad of other programs that are out there?

Dr. Mohammad Samarah  17:07  
Right, yeah, there are quite a few other software engineering programs that are good and very good. We differentiate ourselves by focusing on only one thing, only one thing, that is software engineering, in practice, and how to achieve this goal that you and I have been talking about for the past 30 minutes or so of software that is ethical, reliable, and beautiful. So really, it's seven words, software must be ethical, reliable, and beautiful. That's what sets this program apart. And, you know, from core classes to electives, that's what we teach you, not just how to construct and build these modern software applications, but how to do it in a way that achieves our goal. Because our objective as a program, and as an institution is to bring to the world graduates, who are world class software engineers, software, architects, data engineers, and software engineering managers. And that's what really sets us apart. The other programs are great. If you would like to have a chance at becoming a world class, professional in this field, this is the program for you. If you would like to have an opportunity to create a startup that will change the world, this program is for you. If you're looking for a traditional program with traditional courses, apply elsewhere.

Dennise Cardona  18:34  
Yes, for those people who are listening right now, and may be sitting there thinking, gosh, that sounds like such an interesting career choice. Am I even somebody who could do this? What would you say to somebody who might be asking themselves that question, what does the ideal student look like?

Dr. Mohammad Samarah  18:52  
Right? Yeah, there are, as in life, one size never fits all, as a medium sized person I can attest to that. Probably there are multiple paths that allow you to come here. The only requirement is having the passion and the drive to be a world class professional. So we're looking for students who have you know, computer science background or software engineering background or an engineering background. We're looking for students who have non engineering backgrounds. In fact, we have several students who are non engineering background, or career changers, really, the only requirements is to have that drive and passion and not to settle for less and to want to change the world by being part of this. It's hard work, but it's very satisfying work. And it's not, again, it's not about coding. It's about understanding the whole spectrum of what makes software engineering. Software Engineering is actually 12 different subfields of disciplines. And so you can pick your specializations and we made it really simple in this program. We have three main pathways and three main specializations, Software Architect data engineers not to be confused data science, and then soft engineering management. And then we have two alternative tracks for folks who want to go out on their own as a consultant. So software engineering, consulting and training, and software engineering education. And so by having the drive in the passion and focusing, you'll be able to achieve your goal.

Dennise Cardona  20:30  
Well said, Thank you so much, Dr. Samarah, for being here speaking with us about software engineering and your passion for it. It's really it's a fascinating conversation because there's such a world of opportunity available to people who really do want to make that difference and make their mark in the world and have a passion for making the world a better place. So thank you so much for being here with us.

Dr. Mohammad Samarah  20:55  
I'm delighted to be here. Thank you so much, Denise.

Dennise Cardona  20:58  
Thank you for taking the time to listen to this episode of UMBC Mic'd Up. We hope that you enjoyed it. If you'd like to learn more about your UMBC's software engineering suite of courses, please click on the link in the show notes.