The price of entry for being a software designer, is not design school by learning to paint, draw, or sketch, it is your willingness to pick up and write code that keeps the needs of humans in mind.
22:59 - 30:06 Chris Lattner from the Lex Fridman podcast, and an amazing interview. No need to listen to the whole thing, but for the purposes of design, about 7 minutes and change that speaks to design, especially in the context of programming. He speaks to the challenges of design, and my favorite quote from this is, "Good design is something you can feel!!!" they are!!! Note how he noticed they were making some of the same mistakes they had made earlier.
10:36 - 19:45 James Gosling from the Lex Fridman podcast, A great insight that computers could be anything and everything, and if you remember from week 1, this is an opportunity and a challenge. "Arbitrarily complicated things and I didn't need any physical materials." at 18:18 is brilliant
1:11:03 - 1:17:23, or to 1:20:10 James Gosling from the Lex Fridman podcast The origin of Java, and a great insight into how Design happened in the beginnings of Java. I love the story of visiting people and seeing their challenges first hand. Road trips, and visiting users where they are.
Design has many definitions and if you put 10 designers in a room, you will probably get 11 definitions. The definition I use, Design is how something makes you feel. For a developer, probably not the easiest of definitions to use, but these 6 modules give you methods to assess the feelings generated and gives you tools to discuss those outcomes in a structured way. Design, has a long history and can be grouped into 4 time periods as explained below.
Jay Doblin, is one of the most influential Designers that the world has never heard of. From 1955 to 1969 he was the dean at the Institute of Design in Chicago. He wrote many things, and one of the most interesting pieces are the Seven Levels of Design:
LEVELS OF DESIGN
Changing levels can give designers an opportunity to innovate. A gasoline pump can be used as an example:
- LEVEL 1: The designer accepts the pump’s performance but shortens and cleans up its form.
- LEVEL 2: Performance improvements are made. Either money, gallonage, or fillip can be punched directly. Inserted credit card automatically bills the customer.
- LEVEL 3: Changes the basic mechanism. The station is like a parking lot where hoses are pulled from trap doors below ground. All the controls are on the nozzle.
- LEVEL 4: Involves products which are outside the company’s control. No liquid fuel is pumped; pressurized cartridges are inserted into the car. One cartridge fits all cars (like sealed beam headlamps), a one-price sale.
- LEVEL 5: The service performed is changed; there are no more gas stations. Fuel cartridges are bought anywhere, like beer.
- LEVEL 6: The service is eliminated; cars never need refueling, they run indefinitely on atomic power.
- LEVEL 7: Transportation is eliminated; all human contact is by telecommunications.
Jay Doblin, September 15, 1978 Innovation: A Cook Book Approach
How do programming projects that you are working on align to these 7 levels?
Where should they align to these 7 levels?
Software Design History in the context of a BJ Fogg’s Computing Persuasion Model.
He thought of software development and delivery as being done in one of four ways as follows. I’ve also layered this article on top of his software Major Waves in Computing.
The First Way (Functionality): Beginning with the earliest computers and programming in the 1940s & 1950s and continuing to today, software development can be entirely about its functionality, capabilities, and most likely scratching an itch of its creator. This type of software creation uses “Unintentional Design” and is typified by incoherent and non-unified experiences for end-users. Typically this can manifest itself as disjointed error messages, user dead ends, error messages that don’t make sense, and generally bad emotions felt by your users since they realize not enough care was given to their needs and requirements.
The Second Way (Entertainment): Moving forward to the mid-1970s software and computers were beginning to extensively be used for entertainment. With the rise of the arcade and video game consoles, researchers began to understand the changes in people’s behavior in the context of playing these games. Often capable designers and developers could “Self Design” these games. They did not require the cross-functional teams required today.
The Third Way (Ease of Use): With the advent of the Macintosh and Windows in the 1980s, we begin to see the broad deployment of computers in businesses, schools, and homes. No longer were caretakers with white lab coats required to use these machines, however, anyone with the time could learn how to effectively use these computers. It is during the early 1990s that the term User Experience is coined by Don Norman at Apple and both Apple and Microsoft begin to use User Acceptance teams and full time designers to create fully curated experiences for end users. This is the beginning of human centered design in Software, and you can label this as “Activity-Focused Design”. Meeting the needs of the users where they are, and not expecting them to know all the ins and outs of what it is you are delivering to them.
The Fourth (Persuasion): As you enter the mid-1990s, computers are seen to be change agents and devices for human behavior change. The addictiveness of games, the internet, email and many other typical activities are seen to be altering the pace and way of daily life. Some of these changes are for good and others are for worse. Designing software in this way can be “Experience-Focused Design” and encompasses the entire journey for the user. Service System design is typically used to ensure a holistic view of the users journey, and to model each of the touch points along the way and to ensure that the user has positive emotions around the experience.
Persona for Developers Worksheet
Make a copy of the below worksheet, it can be used either as a starting point, or as a way to assess how you are meeting the needs of your users. My thinking is that only of these should exist for a product or feature. I’ve seen too many times, that developers will point to the persona that meets the needs of what they think a product should do, ignoring the requirements of vast quantities of needs for other users.
All comments welcome!!!
Persona for Developers Worksheet
An older version of this page,let me know what you think of this older version and how it compares to this, the current one.
Page 11, Don’t blame the developers: making security usable for IT professionals.
This is an amazing article that speaks to the requirements of good user experience dovetailing with security and that you can not have good security without also having solid Human-Centered design. In other words, if your users can not make good choices in the context of security, you are dooming them to having intrinsic issues around security in the context of your offering.
Jim Kingsberg, The Seven Levels of Design A Thought Experiment to Help Teams Transform and Transcend Problems
Jay Doblin’s Innovation: A Cook Book Approach