Architecture?
- Big Picture, What, Where of the software development process
- Architecture Patterns(Microkernel, Microservices, Layered, Event-based, Space-based)
- Trade-offs(Quality, Cost, Portability, Time to market, Longevity, Technical debt, etc.)
- Technology, Storage, Security, Disaster Recovery
Design?
- How of the software development process
- Design Patterns
- Classes, interfaces, functions
What is a good design?
- Solves a problem
- Easy to understand
- Follows a common design pattern
- Doesn't reinvent the wheel
- Supported by everyone
- Cost of changing the design is affordable
How to create high-quality designs?
- Applying software design principles is the key to creating high-quality designs
- Flow Charts & User stories with good acceptance criteria
- Manage essential complexity
- Eliminate accidental complexity
- Document the rationales of the design decisions
- Lots of small conversations with a lot of different people to get alignment
How to evaluate a design quality?
- Adherence to Coarse-grained principles like abstraction, encapsulation, modularization, hierarchy, cohesion and coupling
- Subjecting the design to change and then evaluate the cost
- Adherence to Project-specific constraints such as language constraints, platform constraints, framework and library constraints, domain constraints, architectural constraints, hardware constraints, and process constraints
Who is a good designer?
- Good designer is a great communicator
- Approach
- What problem does this solve?
- Select a style that matches the needs of the problem
- How does this affect the user?
- Why this is better than the alternative?
- Designer shouldn't reinvent the wheel
- Understanding
- See their perspective
- Remove distractions
- Anticipate reactions
- Clarify your assumption
- Listening
- Let go off the ego
- Let them talk
- Hear what they're not saying
- Uncover the real problem
- Convert "Likes" into "Works"
- Ask for examples
- Responding
- Give up control
- Lead with a Yes!
What are the tactics designer should use?
- Appeal to a nobler motive during negotiations
- Show a comparison
- Propose an alternative
- Give them a choice
- Speak the language of your audience
- Focus on acceptance criteria avoid gold plating
- Postpone the decision, we are smarter tomorrow than today
Top comments (0)