more fundamental question is when

·

How big should services be? How big should repositories be? Events versus explicit service invocation. Objects versus functions versus imperative code. These what debates hide a more fundamental disagreement among software designers: when? Here’s a caricature of the poles of this disagreement:

  • Speculative design - We know what we want to do next, so let’s design for it today. It will be cheaper to design now. Besides, once the software is in production we will never have the chance to design, so let’s pile it all in today.
  • Reactive design - Features are all anyone cares about, so let’s design as little as we can today so we can get back to features. Only when features become nearly impossible to add will we begrudgingly improve the design, and then only just enough to get back to features.

I aspire to answer the question of “when?” with “somewhere in the middle.” When we observe that a certain class of features is hard to add, we design until the pressure is relieved.

Link:: Tidy First


Сложность в software engineering заключается в вопросе когда нам что-то надо переделывать.

Обратные ссылки