8 habits that software designers should keep in mind to step up
From the book “ Software Design Decoded ”, which summarizes the work styles and customs of professional software designers, eight customs that software designers should learn to step up are picked up.
Eight Habits of Expert Software Designers: An Illustrated Guide | The MIT Press Reader
◆ 1: Engage with users
A good designer has a keen insight into the user. Investigate users by asking them to investigate, talk to, deliberately engage in the design process and intermediate design testing, and even take an active role in the design team. But you don't have to accept all of your words at face value, you have to find out what your needs are and what you really need.
◆ 2: Simple abstraction
Almost all software developers do abstraction, but good designers aim for simpler abstraction. A good abstraction makes it easy to see what problems are being addressed and how to solve them. We also intentionally design an abstraction that can efficiently introduce and reference complex structures.
◆ 3: Exploring the nature of the problem
To successfully solve problems that arise in software design, there is a core part to consider with emphasis. If you change the design without thinking and try to solve the problem, the design breaks down, leading to a drastic change in the design of the peripheral device. Good designers focus first on the nature of the problem and reduce the effort spent on peripheral design.
◆ 4: Simulate the design
A good designer simulates the expected software behavior and imagines what part of the design plays what role, how it works. When carrying out a project in cooperation with others, the operation of the software is verbalized step by step and the design is explained step by step. Simulate the design in your head and repeat it over time.
◆ 5: Learn from others
Just as an architect walks around the city to get inspiration from an existing building, a good software designer examines someone else's software design to 'see how it works'. They also learn from others' software to add to the repertoire of design solutions that may be useful in the future.
◆ 6: Capture problems from a wide perspective
A good designer goes one step further from the problem to work on, looks at the problem space from a broader perspective, and looks for alternative ways to understand what the problem is. By rethinking the problem space or changing another policy in the same space to change the policy and deliberately selecting a solution that is different from the original design problem, the main problem is where the actual problem is. We have insights on how to solve obstacles.
◆ 7: Error is a chance
Errors occur regularly in software design. A good designer is not afraid of errors, but accepts them as opportunities. Accept errors as a design feature and investigate the error and surrounding context over time. In many cases, understanding what has happened reveals insights into problems and solutions.
◆ 8: Consider unintended behavior
While it's natural to design software with a focus on goals, good designers also spend time thinking about unintended behavior when designing. Investigate whether the software design is over-designed or over-designed.
in Software, Posted by darkhorse_log