starting a new project with your team? nice! what are you talking about?
good:
- what problem are we solving?
- who are the stakeholders?
- what are the goals and especially non-goals?
- what's the minimum viable feature set?
- how do we measure success?
good:
- what problem are we solving?
- who are the stakeholders?
- what are the goals and especially non-goals?
- what's the minimum viable feature set?
- how do we measure success?
maybe not good:
- which message broker should we use?
- which logging library should we use?
- how many databases should we support?
- how should we structure our documentation?
- tabs or spaces?
- which message broker should we use?
- which logging library should we use?
- how many databases should we support?
- how should we structure our documentation?
- tabs or spaces?
the message broker you use is an implementation detail, which follows from the design, which follows from an understanding of the problem
problem → design → implementation
problem → design → implementation
"we should use gRPC because it has all of these features"
OK, but do you need those features?
answering "yes" requires a design doc demonstrating that need, in the context of the problem it solves
and that can only happen after you've all agreed on the problem
OK, but do you need those features?
answering "yes" requires a design doc demonstrating that need, in the context of the problem it solves
and that can only happen after you've all agreed on the problem