Last Responsible Moment - KeynesYouDigIt/Knowledge GitHub Wiki

via Software-Development#high-level-methodologies

The Last Responsible Moment (LRM) is a lean development principle defined as:

“A strategy of not making a premature decision but instead delaying commitment and keeping important and irreversible decisions open until the cost of not making a decision becomes greater than the cost of making a decision.”

This doesn't guarantee the "right" decision, but it does increase the amount of data and iterations you have to get to that decision.

This can apply in many different ways, but a great way is this -

  • Stub out tests - test for the top n priority functions (eg, we KNOW we need to return a user id from this service so the user can change their bio. test that and maybe just that)

  • Stub out funcs/classes or build interfaces WITHOUT making a decision on implementations (allow your self to keep building the bigger picture and see how it feels. Changing a NON-implementing iface/funk/class by changing the name or comments is SO much easier than changing an implementation)

  • start with the key parts first (judgement call but youll know) and iterate, allowing the loose iface(ish) pieces to adjust around you until you really need to start implementing.

https://effectivesoftwaredesign.com/2014/03/27/lean-software-development-before-and-after-the-last-responsible-moment/#:~:text=The%20Last%20Responsible%20Moment%20(LRM,cost%20of%20making%20a%20decision.%E2%80%9D