Briefly summarize The Gaming Room client and their software requirements. Who was the client? What type of software did they want you to design?
The Gaming Room client tasked us with designing a software application for their game “Draw It or Lose It” seeking an engaging and accessible cross-platform gaming experience. The game required managing and rendering a large library of high-definition images quickly and efficiently to maintain an enjoyable user experience. Compatibility with a diverse set of operating systems, including desktop and mobile platforms, was emphasized to ensure wide accessibility across multiple devices.
The comprehensive analysis of memory and storage management requirements was a relatively strong point in developing this documentation. It included detailed strategies for image loading, optimization, caching, and efficient use of resources. This also required consideration of optimization across different platforms which would require the use of several different technologies to cater to the specific characteristics of each platform.
What about the process of working through a design document did you find helpful when developing the code?
Working through a design document allowed me to have a structural approach to architecting software, which painted a clear roadmap from conceptualization to implementation. The process allowed me to develop a better understanding of the various challenges facing the project and acted as a blueprint for the game’s functionality, allowing for cross-platform operation to be carefully planned for.,
If you could choose one part of your work on these documents to revise, what would you pick? How would you improve it?
Cross-platform compatibility and testing would need to be revised (or outright added). This section would need to contain a list of all the target platforms as well as the requirements and potential risks for developing on the platforms. Breaking the cross-platform compatibility down in this way would allow me to structure the code in such a way that a platform-agnostic abstraction layer could be built that allowed for rapid prototyping and development on multiple platforms without affecting the fundamental core code of the game.
How did you interpret the user’s needs and implement them into your software design? Why is it so important to consider the user’s needs when designing?
I considered the user engagement and experience instead of the functional needs of the project, taking a more empathetic approach to designing the software. This required prioritizing user-first features such as fast image loading and rendering and UX/UI design. Understanding the users needs is fundamental to the overall design of a user-facing project like this as the vast majority of the success of the product will rely on how the end user feels, rather than the technical objectives the product sets out to achieve.
How did you approach designing software? What techniques or strategies would you use in the future to analyze and design a similar software application?
I took an iterative approach to designing software, starting with a foundation of user requirements followed by system specifications, using both of these to determine an acceptable feature set that could meet the requirements of the project while, simultaneously, offering the end user a fluid experience. This underscores the importance of the user-centric design philosophy. By considering user needs throughout the design process ensures that not only does the product meet technical specifications but also meets the needs of the end user.