日韩精品

Skip to Main Content Skip to Footer Toggle Navigation Menu

Software Design and Development

Stock image of the silhouette of a woman with her hand on her chin, looking up thoughtfully. CGI icons representing the internet surround her face.

Professor Joslenne Pe帽a believes that developing empathy and inclusiveness is just as crucial as learning code.

By Joe Linstroth

Software development is not just about code and functionality. The process also requires a human-centered approach that relies on collaboration and communication. When Joslenne Pe帽a, assistant professor of mathematics, statistics, and computer science, teaches 鈥淪oftware Design and Development,鈥 she takes great care to ensure that students understand that empathy and inclusiveness are just as crucial to developing the next great piece of software as knowing Python and JavaScript.

You describe creating software as both an art and a craft. What do you mean by that?

Generally, people don鈥檛 tend to think about creating software as an art and a craft, not just in the finished product but also in the process. In the class, we try to emphasize that the design process鈥攖he ideation, the brainstorming鈥攊s really important. And in each step, you have a lot of agency and autonomy independently but also in collaboration with other people, like the stakeholders for whom you鈥檙e actually building the software.

In the course, you divide students into teams that each come up with an idea for a software project and then implement it. How do these longer-term projects differ from more garden-variety homework assignments?

What really sets this course apart is that it is a semester-long project where the instructor is really just a facilitator. The other difference is that we don鈥檛 tell students what to do or what project to choose, which is why I think it鈥檚 really rewarding at the end when they鈥檙e finished. We don鈥檛 lecture, and there is no homework besides just reading up on software techniques and tools and having discussions about what makes software collaborative and impactful. Students are not used to having a class where it鈥檚 a free-for-all, but it鈥檚 a great learning experience because in industry, I鈥檓 not going to be there and someone鈥檚 going to give you a task and they鈥檙e not going to tell you what to do. You have to figure it out and ask questions.

What makes a new software product a success in your view?

It depends on the problem you鈥檙e trying to solve and on who the audience is. I also think it depends on the process, like what happened between A and B, from the conceptualization of an idea to when it鈥檚 actually completed and released. Was there careful thought and consideration throughout the entire software engineering life cycle? Did you actively talk to community partners and stakeholders and not assume the user鈥檚 needs? That is a big thing.

The second part I鈥檒l throw in there is consideration for things like reducing and preventing harm. A lot of software that gets put out into the world is harmful to people, whether we鈥檙e talking about surveillance apps or apps that include some form of AI that hasn鈥檛 been ethically considered in some way. If there鈥檚 a level of consideration for social justice and ethical issues, that鈥檚 important. Hopefully the products that get released will actually be effective, but also show some humanity too.

What aspects of designing new software tend to challenge students the most?

A big part of the class is about team dynamics, conflict resolution, and communication. The big learning piece of this class often isn鈥檛 really the technology or the software, or even the building and programming of it, it鈥檚 the human aspect. You can鈥檛 build good software without talking to other people. We put them into teams because that鈥檚 what they鈥檙e going to experience in the real world, and navigating team conflicts and getting consensus are some of the most challenging parts. What does it mean to have a productive meeting and to move forward on tasks? I think students often struggle with communication and coming to a consensus about a project idea and the best approach.

Your work as a computer science researcher focuses on understanding how to solve design and computing problems through the lens of the user. Is there an example that comes to mind from your career that crystallizes this importance for you?

An example I like to share is that my last name, Pe帽a, has a tilde over the 鈥渘.鈥 It鈥檚 a special character, and many computer systems and apps do not recognize my last name with that tilde. It will actually say there鈥檚 an error or that it鈥檚 unrecognized. One of my diplomas didn鈥檛 have it, and I had to contact the registrar to let them know that it鈥檚 a part of my last name. I make that connection to tell students that this is what happens sometimes when you are building something and you don鈥檛 have the foresight to think that other people have last names with tildes or other special characters. Something as small as that doesn鈥檛 seem like a big deal, but it is to certain people when it feels like you鈥檙e erasing their identity. This is what happens when you build software without talking to people and collaborating and making sure you are intentional about inclusivity.

Joe Linstroth is director of media relations at Macalester.