Software design is the activity of deciding what properties, elements, responsibilities, interfaces, relationships and interactions are required in order to create an effective piece of software.
- Stackoverflow.com Wiki
Go to books ↓
So what does a game designer do? Are you an artist? Do you design characters and write the story? Or no, wait, you’re a programmer?
We spend crazy amounts of time creating personas and charting down user flows. We nail the product to its core and define different usage patterns and provide solutions to the various complexities involved. Often times we know that the one’s who use our products have different preferences, and so we go ahead and give users the ability to configure the product to their usage. This article will give you some guidelines in creating a good settings/preferences for your product.
Developers generally assume always-on connectivity and design their software with that premise. But such applications crash when they can't reach the Internet or have poky connections. If you want happy users, design applications that can function remotely.
There are two words every designer needs to feel comfortable saying: “no” and “why.” Those words are the foundation of what we do. They’re the foundation of building an ethical framework.
Most of these, very much apply to software design too.