Before committing the design of a complex system be sure solutions are available for the basic technical problems that limit the system; leadership in [software] engineering requires understanding basic technical processes; and a good [software] engineer personally validates the analysis [in a prototype].