33 Reflection & Lessons Learned

CONTENT

  • Looking Back
  • Looking Inward
  • Looking Forward
  • A Final Reflection

When students first begin CIS3750, many believe software design is about creating software.

By the end of the semester, most realize it is really about understanding people.

Throughout this course, you have worked with teammates, community partners, users. You have also worked with uncertainty, changing requirements, competing priorities, and incomplete information. You have asked questions, revised assumptions, received feedback, and probably discovered that your first idea was not your best idea.

That is exactly what good software designers do.

Reflection is an important part of the design process because it helps transform experience into learning. Without reflection, projects simply end. With reflection, every project becomes an opportunity to improve.

Looking Back

Take a moment to think about your project.

Ask yourself:

  • What surprised you most?
  • What assumptions turned out to be wrong?
  • Which decisions worked well?
  • Which decisions would you make differently today?
  • What feedback changed your thinking?
  • When did your team learn the most?

There may not be one correct answer. Different team members often have very different experiences, and those different perspectives are valuable.

Looking Inward

Software design is not only about understanding systems. It is also about understanding ourselves.

Consider:

  • How did you respond to uncertainty?
  • Were you willing to change your ideas?
  • Did you actively listen to your community partner?
  • How well did you work with your teammates?
  • What strengths did you bring to the project?
  • What skills would you like to continue developing?

Being an effective software designer means continually learning – not just about technology, but about how we think, communicate, and collaborate.

Looking Forward

The methods you learned in CIS3750 are tools, not rules.

Some future projects may use every technique presented in this textbook. Others may use only a few. What matters is not memorizing every method, but understanding when each one is appropriate.

As you continue through co-op placements, research, graduate school, or industry, you will encounter new tools, new processes, and new ways of working. The strongest software designers remain curious. They ask questions, adapt to new situations, and continue learning throughout their careers.

A Final Reflection

Throughout this textbook, one idea has appeared again and again:

Good software begins by understanding people.

Technology changes quickly. Programming languages evolve. Development frameworks come and go.

But curiosity, empathy, communication, critical thinking, and collaboration remain essential.

If this course has helped you become more thoughtful, more reflective, and more willing to learn from others, then you have already taken an important step toward becoming an excellent software designer.

License

Software Design: Planning Purposeful Solutions Together - A Community-Engaged Approach Copyright © 2026 by Daniel Gillis; Nicolas Durish; and Alessandro Arezza. All Rights Reserved.