Sunday, April 15, 2018

Difference between providing requirements and giving implementation details?

Difference between providing requirements and giving implementation details ?
Here is a metaphor for this:
Can you increase the power of the engine vs. can you make the car go faster?
Which one of these is a true requirement coming from the overall car product manager and which one is an implementation detail?
We can definitely make the car go faster by increasing the power of the engine, but it depends how much faster you want to go. For example, we can instead put some lightweight wheels on the car and it will definitely go faster because we are reducing the inertia. Or if it is about going faster on a track doing multiple laps, then adding better brakes will also make you do faster laps.
So asking us to make the engine more powerful is not necessarily a requirement but rather an implementation instruction.
You can now apply this in software engineering and as a software engineer please truly understand the requirements and if they are not requirements, ask for them. It is important that you do NOT narrow your thinking and end up doing a wrong implementation.
Thank you for reading.
Almir

No comments:

Post a Comment