Ralph Johnson defined architecture as “the decisions that you wish you could get right early in a project.” Given our inability to tell the future, how can we design effectively for it? Much project management thinking is based on the elimination of uncertainty, and advice on software architecture and guidance for future-proofing code often revolves around adding complexity to embrace uncertainty. In most cases, this is exactly the opposite path to the one that should be taken. Kevlin Henney explains how uncertainty, lack of knowledge, and options can be used to drive both a system’s architecture and its development schedule.
Ещё видео!