
Aimed at software developers, this book proposes the creation of a new profession of software design. The examples in the text are updated to reflect new platforms along with additional case studies where appropriate.
These come from an era before HCI was a professional discipline taught in schools. I suspect newer books don't teach these general principles because they take for granted that a professional will have learned them already through their formal training, so they can focus on specifics.
https://www.amazon.com/About-Face-2-0-Essentials-Interaction...
https://www.amazon.com/-/es/Don-Norman/dp/0465050654/ref=pd_...
https://www.amazon.com/-/es/Steve-Krug/dp/0321965515/ref=pd_...
2. Lean Customer Development, Cindy Alvarez Practical and immediately useful guide to interviewing and talking to users. Read after the Contextual Inquiry book above. If that book teaches what to understand about a user's workflow and environment, this one teaches how to elicit those answers from customers when talking to them.
3. About Face 3, alan cooper If the previous two are about (a) what to look for when understanding a customer and (b) how to get the info you need to build solutions for those customers, then this book is about translating those learnings into user journeys and experiences.
a. About Face 3 by Alan Cooper
b. Contextual Design by Karen Holtzblatt
These two will set you up.
1. Write a list of desired features. Next, prioritize those features.
2. Write brief functional specifications for features of highest priority.
3. Decide on how you want to use the software stacks for different tiers, e.g.
Browser - Bootstrap or Zurb, AngularJS
Server stack - node.js, Ruby, Python
Database - MySQL, Postgres
These examples are sketchy, just to give a feel of things.
4. Research any libraries that automatically handle common functional units, such as authentication and authorization, analytics et al.5. Some functional units might be implemented more easily by gluing together services. E.g. using New Relic for deep application monitoring, Twilio for cloud communications.
6. Design and implement all functional units.
7. Profit!
8. Write a Thank you HN note, :)
One should do this exercise for a "toy" application like "To Do List" first. It helps remarkably when we go about building serious stuff.
Books: 1. Code Complete by Steve McConnell - worth at least skimming it.
2. Design Patterns by Erich Gamma et al http://www.c2.com/cgi/wiki?DesignPatterns
Also, definitely have a look at Peter Norvig's slides: http://norvig.com/design-patterns
3. About Face 3: The Essentials of Interaction Design by Alan Cooper
4. Writing Effective Use Cases by Alistair Cockburn
Websites: 1. Obviously, HN, :)
2. http://highscalability.com/
It may look like a huge undertaking, but it really isn't. A quote from Michael Abrash seems appropriate here, "Winning a hard race prepares us for the next harder one."
This is just top of the mind; hope this helps.
Good luck.
Edit: formatting.
